Skip to content

Commit 1905343

Browse files
authored
Allow custom IAM role & SA names (#238)
* Add custom IAM role name Pass custom service account name to otel-config chart * Doc update
1 parent 70405b9 commit 1905343

File tree

7 files changed

+26
-7
lines changed

7 files changed

+26
-7
lines changed

modules/eks-monitoring/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ See examples using this Terraform modules in the **Amazon EKS** section of [this
111111
| <a name="input_helm_config"></a> [helm\_config](#input\_helm\_config) | Helm Config for Prometheus | `any` | `{}` | no |
112112
| <a name="input_irsa_iam_additional_policies"></a> [irsa\_iam\_additional\_policies](#input\_irsa\_iam\_additional\_policies) | IAM additional policies for IRSA roles | `list(string)` | `[]` | no |
113113
| <a name="input_irsa_iam_permissions_boundary"></a> [irsa\_iam\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `null` | no |
114+
| <a name="input_irsa_iam_role_name"></a> [irsa\_iam\_role\_name](#input\_irsa\_iam\_role\_name) | IAM role name for IRSA roles | `string` | `""` | no |
114115
| <a name="input_irsa_iam_role_path"></a> [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | no |
115116
| <a name="input_istio_config"></a> [istio\_config](#input\_istio\_config) | Configuration object for ISTIO monitoring | <pre>object({<br> enable_alerting_rules = bool<br> enable_recording_rules = bool<br> enable_dashboards = bool<br> scrape_sample_limit = number<br><br> flux_gitrepository_name = string<br> flux_gitrepository_url = string<br> flux_gitrepository_branch = string<br> flux_kustomization_name = string<br> flux_kustomization_path = string<br><br> managed_prometheus_workspace_id = string<br> prometheus_metrics_endpoint = string<br><br> dashboards = object({<br> cp = string<br> mesh = string<br> performance = string<br> service = string<br> })<br> })</pre> | `null` | no |
116117
| <a name="input_java_config"></a> [java\_config](#input\_java\_config) | Configuration object for Java/JMX monitoring | <pre>object({<br> enable_alerting_rules = bool<br> enable_recording_rules = bool<br> enable_dashboards = bool<br> scrape_sample_limit = number<br><br><br> flux_gitrepository_name = string<br> flux_gitrepository_url = string<br> flux_gitrepository_branch = string<br> flux_kustomization_name = string<br> flux_kustomization_path = string<br><br> grafana_dashboard_url = string<br><br> prometheus_metrics_endpoint = string<br> })</pre> | `null` | no |

modules/eks-monitoring/locals.tf

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ data "aws_eks_cluster" "eks_cluster" {
99
}
1010

1111
locals {
12-
name = "adot-collector-kubeprometheus"
13-
namespace = try(var.helm_config.namespace, local.name)
12+
name = "adot-collector-kubeprometheus"
13+
kube_service_account_name = try(var.helm_config.service_account, local.name)
14+
namespace = try(var.helm_config.namespace, local.name)
1415

1516
eks_oidc_issuer_url = replace(data.aws_eks_cluster.eks_cluster.identity[0].oidc[0].issuer, "https://", "")
1617
eks_cluster_endpoint = data.aws_eks_cluster.eks_cluster.endpoint

modules/eks-monitoring/main.tf

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,15 +188,23 @@ module "helm_addon" {
188188
{
189189
name = "enableAdotcollectorMetrics"
190190
value = var.enable_adotcollector_metrics
191+
},
192+
{
193+
name = "serviceAccount"
194+
value = local.kube_service_account_name
195+
},
196+
{
197+
name = "namespace"
198+
value = local.namespace
191199
}
192-
193200
]
194201

202+
irsa_iam_role_name = var.irsa_iam_role_name
195203
irsa_config = {
196204
create_kubernetes_namespace = true
197205
kubernetes_namespace = local.namespace
198206
create_kubernetes_service_account = true
199-
kubernetes_service_account = try(var.helm_config.service_account, local.name)
207+
kubernetes_service_account = local.kube_service_account_name
200208
irsa_iam_policies = flatten([
201209
"arn:${data.aws_partition.current.partition}:iam::aws:policy/AmazonPrometheusRemoteWriteAccess",
202210
"arn:${data.aws_partition.current.partition}:iam::aws:policy/AWSXrayWriteOnlyAccess",

modules/eks-monitoring/otel-config/templates/clusterrolebinding.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ roleRef:
88
name: otel-prometheus-role
99
subjects:
1010
- kind: ServiceAccount
11-
name: adot-collector-kubeprometheus
12-
namespace: adot-collector-kubeprometheus
11+
name: {{ default "adot-collector-kubeprometheus" .Values.serviceAccount }}
12+
namespace: {{ default "adot-collector-kubeprometheus" .Values.namespace }}

modules/eks-monitoring/otel-config/templates/opentelemetrycollector.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ metadata:
44
name: adot
55
spec:
66
mode: deployment
7-
serviceAccount: adot-collector-kubeprometheus
7+
serviceAccount: {{ default "adot-collector-kubeprometheus" .Values.serviceAccount }}
88
env:
99
- name: "K8S_NODE_NAME"
1010
valueFrom:

modules/eks-monitoring/otel-config/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@ istioPrometheusMetricsEndpoint: ${istio_prometheus_metrics_endpoint}
3434
adotLoglevel: ${adot_loglevel}
3535

3636
enableAdotcollectorMetrics: ${enable_adotcollector_metrics}
37+
38+
serviceAccount: ${service_account}
39+
namespace: ${namespace}

modules/eks-monitoring/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ variable "helm_config" {
2121
default = {}
2222
}
2323

24+
variable "irsa_iam_role_name" {
25+
description = "IAM role name for IRSA roles"
26+
type = string
27+
default = ""
28+
}
29+
2430
variable "irsa_iam_role_path" {
2531
description = "IAM role path for IRSA roles"
2632
type = string

0 commit comments

Comments
 (0)