Как настроить S3 в качестве внутреннего хранилища для хранилища hashicorp

У меня есть работающий кластер EKS. Я хочу развернуть Vault в этом кластере с помощью Terraform, мой код при развертывании работает нормально. Это мой 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. Что здесь не так?


person Akash Verma    schedule 09.10.2020    source источник
comment
Почему ваш values.json файл в формате YAML? Даже в этом случае это неправильный формат YAML, поскольку конфигурация Vault находится в формате JSON внутри файла.   -  person lxop    schedule 14.10.2020
comment
Поправка, вот YAML и кроме s3 все работает.   -  person Akash Verma    schedule 14.10.2020
comment
Более важным моментом является то, что это даже недействительный YAML, поскольку в его середине есть блок JSON.   -  person lxop    schedule 19.10.2020


Ответы (1)


думаю, вы пропустили ключ в файлах значений:

  ha:
    enabled: true
    replicas: 1
    config: |
      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" {}
person ptrh    schedule 13.11.2020