使用 Terraform 修改现有 Kubernetes ClusterRole

Modify Existing Kubernetes ClusterRole with Terraform

提问人:Meow_ly 提问时间:11/18/2023 更新时间:11/18/2023 访问量:30

问:

我在 AWS EKS 上运行 Kubernetes 集群,并使用 Terraform 管理所有 Kubernetes 资源。我正在为仅用于策略(而不是网络)实施 Calico,所以我仍在使用 vpc-cni 插件。

按照官方 AWS 文档,我应该修改 ClusterRole 以添加所有 Pod 的操作:aws-nodepatch

创建一个可应用于集群的配置文件,该文件授予 aws-node Kubernetes clusterrole 修补 Pod 的权限。

cat << EOF > append.yaml
- apiGroups:
  - ""   
  resources:
  - pods   
  verbs:
  - patch 
EOF 

将更新的权限应用于您的集群。

kubectl apply -f <(cat <(kubectl get clusterrole aws-node -o yaml) append.yaml)

如何在 Terraform 中执行此操作?当然,我可以导入该资源,但由于它是我没有直接创建的基本 ClusterRole,因此我担心 Terraform 可能会覆盖 Terraform 之外对该资源发生的更改。

到目前为止,我已经查看了 Terraform 注册表中的 Kubernetes 提供程序文档;但是,似乎没有任何部分资源可以让我添加到现有的 ClusterRole。

我知道如何从 Terraform 修改 Kubernetes 中的现有 ClusterRole?

Kubernetes Terraform Amazon-EKS 基础设施即代码 Calico

评论

0赞 Paolo 11/18/2023
当然,我可以导入该资源,但由于它是我没有直接创建的基本 ClusterRole,因此我担心 Terraform 可能会覆盖 Terraform 之外对该资源发生的更改。您的配置应该只有一个事实来源
0赞 Meow_ly 11/18/2023
当然,在一个完美的世界里。FWIW,我不会直接进行这些更改,我认为 ClusterRole 是由 VPC-CNI 附加组件创建的,我只能假设将来可能会在我不知情的情况下对它进行更改新版本的附加组件。将其导入 TF 意味着 VPC-CNI 附加组件对其所做的任何更改都将被覆盖,并且可以说是处于更糟糕的状态。
3赞 Matthew Schuchard 11/18/2023
这种可能性已经存在,因为附加组件可能会覆盖您在问题中提出的修改。您要么冒着覆盖加载项更改的风险,要么面临加载项覆盖更改的风险。
0赞 Meow_ly 11/18/2023
这是一个很好的观点。您的建议是将 ClusterRole 导入我的 Terraform 吗?

答: 暂无答案