Контроллер Flux Terraform не выбирает правильное состояние Terraform

У меня есть контроллер terraform для Flux, работающий с поставщиком Github, однако он, похоже, улавливает неправильное состояние Terraform, поэтому он продолжает пытаться воссоздать ресурсы снова и снова (и терпит неудачу, потому что они уже существуют)

Вот как это настраивается

      apiVersion: infra.contrib.fluxcd.io/v1alpha1
kind: Terraform
metadata:
  name: saas-github
  namespace: flux-system
spec:
  interval: 2h
  approvePlan: "auto"
  workspace: "prod"
  backendConfig:
    customConfiguration: |
      backend "s3" {
        bucket                      = "my-bucket"
        key                         = "my-key"
        region                      = "eu-west-1"
        dynamodb_table              = "state-lock"
        role_arn                    = "arn:aws:iam::11111:role/my-role"
        encrypt                     = true
      }
  path: ./terraform/saas/github
  runnerPodTemplate:
    metadata:
      annotations:
        iam.amazonaws.com/role: pod-role
  sourceRef:
    kind: GitRepository
    name: infrastructure
    namespace: flux-system

локально работающий terraforminit сstate.configфайл с аналогичной/такой же конфигурацией работает нормально и правильно определяет текущее состояние:

ведро = "мое ведро" ключ = "инфраструктура-github" регион = "eu-west-1" dynamodb_table = "блокировка состояния" role_arn = "arn:aws:iam::111111:role/my-role" encrypt = истинный

Читая документацию, я также увиделconfigPathкоторый можно было бы использовать, поэтому я попытался указать его на файл состояния, но затем получил ошибку:Failed to initialize kubernetes configuration: error loading config file couldn't get version/kind; json parse error

Что странно, как будто он пытается загрузить конфигурацию Kuberntes, а не Terraform, или, по крайней мере, он ожидает файл json, что не относится к моей конфигурации состояния.

Я запускаю Terraform 1.3.1 как локально, так и на модуле tf runner.

На беговой дорожке я вижуgenerated_backend_config.tfи это та же самая конфигурация и.terraform/terraform.tfstateтакже указывает на ведро

Единственная подозрительная вещь в логах, которую я смог найти, это:

      - Finding latest version of hashicorp/github...
- Finding integrations/github versions matching "~> 4.0"...
- Finding latest version of hashicorp/aws...
- Installing hashicorp/github v5.9.1...
- Installed hashicorp/github v5.9.1 (signed by HashiCorp)
- Installing integrations/github v4.31.0...
- Installed integrations/github v4.31.0 (signed by a HashiCorp partner, key ID 38027F80D7FD5FB2)
- Installing hashicorp/aws v4.41.0...
- Installed hashicorp/aws v4.41.0 (signed by HashiCorp)

Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html

Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.


Warning: Additional provider information from registry

The remote registry returned warnings for
registry.terraform.io/hashicorp/github:
- For users on Terraform 0.13 or greater, this provider has moved to
integrations/github. Please update your source in required_providers.

Кажется, он устанавливает 2 провайдера github, один от hashicorp и один от интеграций... Я изменил версии Terraform/provider во время разработки и удалил все ссылки на hashicorp, но это предупреждение все еще появляется.

Однако это также происходит локально, где считывается правильное состояние, поэтому я не думаю, что это связано.

0 ответов

Другие вопросы по тегам