Skip to content

Commit a7d4e81

Browse files
committed
Manage the EBS CSI add-on for the Archivematica cluster from terraform
Our Archivematica cluster uses the EBS CSI add-on to handle interactions with EBS volumes. I originally added it through the dashboard, but this led to some troublesome differences between environments. This commit adds it to our Terraform configuration to ensure it's the same across environments.
1 parent 1b14542 commit a7d4e81

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

archivematica/prod_cluster/eks-cluster.tf

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,28 @@ module "eks" {
2222
}
2323
}
2424

25+
addons = {
26+
coredns = {
27+
most_recent = true
28+
resolve_conflicts_on_create = "OVERWRITE"
29+
resolve_conflicts = "OVERWRITE"
30+
}
31+
kube-proxy = {
32+
most_recent = true
33+
resolve_conflicts_on_create = "OVERWRITE"
34+
resolve_conflicts = "OVERWRITE"
35+
}
36+
vpc-cni = {
37+
most_recent = true
38+
resolve_conflicts_on_create = "OVERWRITE"
39+
resolve_conflicts = "OVERWRITE"
40+
}
41+
aws-ebs-csi-driver = {
42+
most_recent = true
43+
service_account_role_arn = module.ebs_csi_irsa.iam_role_arn
44+
}
45+
}
46+
2547
eks_managed_node_groups = {
2648
one = {
2749
name = "node-group-1"
@@ -49,6 +71,21 @@ module "eks" {
4971
}
5072
}
5173

74+
module "ebs_csi_irsa" {
75+
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
76+
version = "5.60.0"
77+
78+
role_name_prefix = "${local.cluster_name}-ebs-csi-"
79+
attach_ebs_csi_policy = true
80+
81+
oidc_providers = {
82+
main = {
83+
provider_arn = module.eks.oidc_provider_arn
84+
namespace_service_accounts = ["kube-system:ebs-csi-controller-sa"]
85+
}
86+
}
87+
}
88+
5289
resource "kubernetes_cluster_role_binding" "eks_admins_cluster_admin" {
5390
metadata {
5491
name = "eks-admins-cluster-admin"

archivematica/test_cluster/eks-cluster.tf

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ module "eks" {
3838
resolve_conflicts_on_create = "OVERWRITE"
3939
resolve_conflicts = "OVERWRITE"
4040
}
41+
aws-ebs-csi-driver = {
42+
most_recent = true
43+
service_account_role_arn = module.ebs_csi_irsa.iam_role_arn
44+
}
4145
}
4246

4347
eks_managed_node_groups = {
@@ -68,6 +72,21 @@ module "eks" {
6872
}
6973
}
7074

75+
module "ebs_csi_irsa" {
76+
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
77+
version = "5.60.0"
78+
79+
role_name_prefix = "${local.cluster_name}-ebs-csi-"
80+
attach_ebs_csi_policy = true
81+
82+
oidc_providers = {
83+
main = {
84+
provider_arn = module.eks.oidc_provider_arn
85+
namespace_service_accounts = ["kube-system:ebs-csi-controller-sa"]
86+
}
87+
}
88+
}
89+
7190
resource "kubernetes_storage_class" "gp3" {
7291
metadata {
7392
name = "gp3"

0 commit comments

Comments
 (0)