@@ -3,8 +3,27 @@ locals {
33 " k8s.io/cluster-autoscaler/enabled" = " true"
44 " k8s.io/cluster-autoscaler/${local.name}" = " owned"
55 }
6- eks_addon_vpc_cni = merge (var. eks_addons . vpc-cni , { service_account_role_arn = module.vpc_cni_irsa.iam_role_arn })
7- eks_addons = merge (var. eks_addons , { vpc-cni = local.eks_addon_vpc_cni })
6+
7+ eks_addons = merge ({
8+ vpc-cni = {
9+ resolve_conflicts = " OVERWRITE"
10+ addon_version = data.aws_eks_addon_version.vpc_cni.version
11+ service_account_role_arn = module.vpc_cni_irsa.iam_role_arn
12+ },
13+ aws-ebs-csi-driver = {
14+ resolve_conflicts = " OVERWRITE"
15+ addon_version = data.aws_eks_addon_version.aws_ebs_csi_driver.version
16+ service_account_role_arn = module.aws_ebs_csi_driver.iam_role_arn
17+ },
18+ coredns = {
19+ resolve_conflicts = " OVERWRITE"
20+ addon_version = data.aws_eks_addon_version.coredns.version
21+ },
22+ kube-proxy = {
23+ resolve_conflicts = " OVERWRITE"
24+ addon_version = data.aws_eks_addon_version.kube_proxy.version
25+ }
26+ })
827
928 eks_map_roles = [
1029 {
@@ -247,6 +266,23 @@ module "vpc_cni_irsa" {
247266 tags = local. tags
248267}
249268
269+ module "aws_ebs_csi_driver" {
270+ source = " terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
271+ version = " 4.14.0"
272+
273+ role_name = " ${ local . name } -aws-ebs-csi-driver"
274+ attach_ebs_csi_policy = true
275+
276+ oidc_providers = {
277+ main = {
278+ provider_arn = module.eks.oidc_provider_arn
279+ namespace_service_accounts = [" kube-system:ebs-csi-controller-sa" ]
280+ }
281+ }
282+
283+ tags = local. tags
284+ }
285+
250286resource "aws_kms_key" "eks" {
251287 count = var. eks_cluster_encryption_config_enable ? 1 : 0
252288 description = " EKS Secret Encryption Key"
@@ -255,3 +291,23 @@ resource "aws_kms_key" "eks" {
255291resource "kubectl_manifest" "aws_auth_configmap" {
256292 yaml_body = local. aws_auth_configmap_yaml
257293}
294+
295+ data "aws_eks_addon_version" "aws_ebs_csi_driver" {
296+ addon_name = " aws-ebs-csi-driver"
297+ kubernetes_version = var. eks_cluster_version
298+ }
299+
300+ data "aws_eks_addon_version" "coredns" {
301+ addon_name = " coredns"
302+ kubernetes_version = var. eks_cluster_version
303+ }
304+
305+ data "aws_eks_addon_version" "kube_proxy" {
306+ addon_name = " kube-proxy"
307+ kubernetes_version = var. eks_cluster_version
308+ }
309+
310+ data "aws_eks_addon_version" "vpc_cni" {
311+ addon_name = " vpc-cni"
312+ kubernetes_version = var. eks_cluster_version
313+ }
0 commit comments