【发布时间】:2021-01-24 16:36:08
【问题描述】:
我有一个正在运行的 EKS 集群我想使用 Terraform 在该集群上部署 Vault,我的代码在部署时运行良好。这是我的 main.tf
data "aws_eks_cluster" "default" {
name = var.eks_cluster_name
}
data "aws_eks_cluster_auth" "default" {
name = var.eks_cluster_name
}
resource "kubernetes_namespace" "vault" {
metadata {
name = "vault"
}
}
resource "helm_release" "vault" {
name = "vault"
repository = "https://helm.releases.hashicorp.com/"
chart = "vault"
namespace = kubernetes_namespace.vault.metadata.0.name
values = [
"${file("values.json")}"
]
}
provider "kubernetes" {
host = data.aws_eks_cluster.default.endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority.0.data)
token = data.aws_eks_cluster_auth.default.token
load_config_file = false
}
provider "helm" {
kubernetes {
host = data.aws_eks_cluster.default.endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority.0.data)
token = data.aws_eks_cluster_auth.default.token
load_config_file = false
}
}
这是 values.json
server:
image:
repository: vault
tag: latest
dataStorage:
enabled: true
auditStorage:
enabled: true
ha:
enabled: true
replicas: 1
listener "tcp" {
address = "[::]:8200"
cluster_address = "[::]:8201"
}
storage "s3" {
access_key = "xxxxxxxxx"
secret_key = "xxxxxxxxxx"
bucket = "xxxx-vault"
region = "xxxx-xxxx-x"
}
service_registration "kubernetes" {}
extraVolumes:
- type: secret
name: tls
extraEnvironmentVars:
VAULT_ADDR: https://127.0.0.1:8200
VAULT_SKIP_VERIFY: true
ui:
enabled: true
serviceType: LoadBalancer
但每次将文件系统作为未给定 S3 存储桶的存储时,它不会在部署后将我的 S3 存储桶作为存储。这里有什么问题?
【问题讨论】:
-
为什么你的
values.json文件是YAML格式的?即使这样,它也不是正确的 YAML 格式,因为文件中的 Vault 配置是 JSON 格式。 -
更正,这是 YAML,除了 s3 之外,一切正常。
-
更重要的一点是它甚至不是有效的 YAML,因为它中间有一个 JSON 块
标签: kubernetes terraform amazon-eks hashicorp-vault