我正在尝试使用Terraform在Amazon EKS上创建K8s集群。所有代码都在github上:https://github.com/amorfis/aws-eks-terraform
为具有必需策略的用户配置access_key和secret,如README.md中所示。
我先运行terraform init
,然后运行terraform apply
,但失败并出现以下错误:
module.eks.null_resource.update_config_map_aws_auth (local-exec): error: unable to recognize "aws_auth_configmap.yaml": Unauthorized
我还签入了模块,看起来它应该创建2个文件:aws_auth_configmap.yaml
和kube_config.yaml
,但是我可以看到创建了2个不同的文件:kubeconfig_eks-cluster-created-with-tf
和{{ 1}}。
答案 0 :(得分:2)
这里的问题似乎是您尝试使用AssumedRole,但随后模块尝试执行本地exec,这就是它失败的原因。
您需要的是添加以下内容 “ kubeconfig_aws_authenticator_env_variables”到以下官方示例中的模块-
module "my-cluster" {
source = "terraform-aws-modules/eks/aws"
cluster_name = "my-cluster"
kubeconfig_aws_authenticator_env_variables = {
AWS_PROFILE = "NameOfProfile"
}
subnets = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"]
vpc_id = "vpc-1234556abcdef"
worker_groups = [
{
instance_type = "m4.large"
asg_max_size = 5
}
]
tags = {
environment = "test"
}
}
注意:已添加以下内容-
kubeconfig_aws_authenticator_env_variables = {
AWS_PROFILE = "NameOfProfile"
}
使用〜/ .aws / config中提供的名称替换配置文件的值。