Невозможно создать роль IAM с помощью Crossplane из-за отсутствия региона.

Я использую Crossplane с Kubernetes как средство подготовки инфраструктуры AWS. Развертывание ресурсов автоматизировано с помощью ArgoCD. Ресурсы AWS предоставляются с помощью [email protected] .

Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь создать какие-либо ресурсы IAM, такие как ,RolePolicyAttachment,PolicyилиOpenIDConnectProvider, создание ресурсов не удается, и указанная причина заключается в отсутствии предоставленного региона.

Ниже приведено сообщение, возникшее из-за невозможности создатьRole:

      failed to get Role with name: operation error IAM: GetRole, failed to resolve service endpoint, an AWS region is required, but was not found

Используя этот манифест:

      apiVersion: iam.aws.crossplane.io/v1beta1
kind: Role
metadata:
  name: test-role
spec:
  providerConfigRef:
    name: aws
  forProvider:
    assumeRolePolicyDocument: |
      {
        // redacted
      }

Обратите внимание, что невозможно передать регион в диаграмму ролей, как описано здесь . Также нет способа указать регион в ProviderConfig.

Конечная точка службы для IAM также не содержит региона , поскольку она глобальная.

В документации AWS API также предполагается, что для выполнения вызова GetRole не требуется указывать регион .

Ошибка предполагает, что требуется регион, однако кажется, что он не нужен для предоставления ресурса, и что я не могу предоставить его Crossplane. Я ожидаю, что то, что у меня есть, должно работать. Обратите внимание, что другие ресурсы, имеющие поля региона, можно подготовить с помощью настройки Crossplane, с которой я работаю.

1 ответ

Решением этой проблемы является предоставлениеAWS_REGIONпеременная среды вControllerConfigдекларация. Например:

      kind: ControllerConfig
metadata:
  name: aws-config
spec:
  args: ['-d']
  env:
  - name: AWS_REGION
    value: us-east-1
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: crossplane-provider-aws
spec:
  package: crossplane/provider-aws:v0.32.0
  controllerConfigRef:
    name: aws-config

Ответ был получен из этой проблемы Github наprovider-awsрепо, в котором говорится о той же проблеме.

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