Невозможно создать роль 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
репо, в котором говорится о той же проблеме.