@@ -36,6 +36,17 @@ locals {
3636 base_endpoint = var. use_scc_wp_endpoint ? local. scc_wp_api_endpoint : local. monitoring_api_endpoint
3737 ingestion_endpoint = var. use_private_endpoint ? " ingest.private.${ local . base_endpoint } " : " ingest.${ local . base_endpoint } "
3838 api_host = replace (local. ingestion_endpoint , " ingest." , " " )
39+ dynamic_set_access_key_secret = var. existing_access_key_secret_name != null && var. existing_access_key_secret_name != " " ? [{
40+ name = " global.sysdig.accessKeySecret"
41+ type = " string"
42+ value = var.existing_access_key_secret_name
43+ }] : []
44+ dynamic_agent_tags = [for k , v in var . agent_tags :
45+ {
46+ name = " global.sysdig.tags.${ k } "
47+ value = v
48+ }
49+ ]
3950}
4051
4152resource "helm_release" "cloud_monitoring_agent" {
@@ -51,132 +62,114 @@ resource "helm_release" "cloud_monitoring_agent" {
5162 force_update = true
5263 reset_values = true
5364
54- # Values
55- set {
56- name = " Values.image.repository"
57- type = " string"
58- value = var.image_registry_base_url
59- }
60-
61- # Global
62- set {
63- name = " global.imageRegistry"
64- type = " string"
65- value = " ${ var . image_registry_base_url } /${ var . image_registry_namespace } "
66- }
67- set {
68- name = " global.sysdig.apiHost"
69- value = local.api_host
70- }
71- dynamic "set_sensitive" {
72- for_each = var. access_key != null && var. access_key != " " ? [1 ] : []
73- content {
74- name = " global.sysdig.accessKey"
65+ set = concat ([
66+ # Values
67+ {
68+ name = " Values.image.repository"
7569 type = " string"
76- value = var. access_key
77- }
78- }
79- dynamic "set" {
80- for_each = var. existing_access_key_secret_name != null && var. existing_access_key_secret_name != " " ? [1 ] : []
81- content {
82- name = " global.sysdig.accessKeySecret"
70+ value = var.image_registry_base_url
71+ },
72+ # Global
73+ {
74+ name = " global.imageRegistry"
8375 type = " string"
84- value = var. existing_access_key_secret_name
85- }
86- }
87- set {
88- name = " global.clusterConfig.name"
89- type = " string"
90- value = local.cluster_name
91- }
92- set {
93- name = " global.sysdig.tags.deployment"
94- type = " string"
95- value = var.deployment_tag
96- }
97- set {
98- name = " global.sysdig.tags.ibm-containers-kubernetes-cluster-name"
99- type = " string"
100- value = var.add_cluster_name ? local.cluster_name : null
101- }
102- dynamic "set" {
103- for_each = var. agent_tags
104- content {
105- name = " global.sysdig.tags.${ set . key } "
106- value = set . value
76+ value = " ${ var . image_registry_base_url } /${ var . image_registry_namespace } "
77+ },
78+ {
79+ name = " global.sysdig.apiHost"
80+ value = local.api_host
81+ },
82+ {
83+ name = " global.clusterConfig.name"
84+ type = " string"
85+ value = local.cluster_name
86+ },
87+ {
88+ name = " global.sysdig.tags.deployment"
89+ type = " string"
90+ value = var.deployment_tag
91+ },
92+ {
93+ name = " global.sysdig.tags.ibm-containers-kubernetes-cluster-name"
94+ type = " string"
95+ value = var.add_cluster_name ? local.cluster_name : null
96+ },
97+ # Cluster shield
98+ {
99+ name = " clusterShield.enabled"
100+ value = var.cluster_shield_deploy
101+ },
102+ {
103+ name = " clusterShield.image.repository"
104+ value = var.cluster_shield_image_repository
105+ },
106+ {
107+ name = " clusterShield.image.tag"
108+ value = var.cluster_shield_image_tag_digest
109+ },
110+ {
111+ name = " clusterShield.resources.requests.cpu"
112+ type = " string"
113+ value = var.cluster_shield_requests_cpu
114+ },
115+ {
116+ name = " clusterShield.resources.requests.memory"
117+ type = " string"
118+ value = var.cluster_shield_requests_memory
119+ },
120+ {
121+ name = " clusterShield.resources.limits.cpu"
122+ type = " string"
123+ value = var.cluster_shield_limits_cpu
124+ },
125+ {
126+ name = " clusterShield.resources.limits.memory"
127+ type = " string"
128+ value = var.cluster_shield_limits_memory
129+ },
130+ {
131+ name = " clusterShield.cluster_shield.sysdig_endpoint.region"
132+ type = " string"
133+ value = " custom"
134+ },
135+ {
136+ name = " clusterShield.cluster_shield.log_level"
137+ type = " string"
138+ value = " info"
139+ },
140+ {
141+ name = " clusterShield.cluster_shield.features.admission_control.enabled"
142+ value = var.cluster_shield_deploy
143+ },
144+ {
145+ name = " clusterShield.cluster_shield.features.container_vulnerability_management.enabled"
146+ value = var.cluster_shield_deploy
147+ },
148+ {
149+ name = " clusterShield.cluster_shield.features.audit.enabled"
150+ value = var.cluster_shield_deploy
151+ },
152+ {
153+ name = " clusterShield.cluster_shield.features.posture.enabled"
154+ value = var.cluster_shield_deploy
155+ },
156+ # nodeAnalyzer has been replaced by the host_scanner and kspm_analyzer functionality of main agent daemonset
157+ {
158+ name = " nodeAnalyzer.enabled"
159+ value = false
160+ },
161+ # clusterScanner has been replaced by cluster_shield component
162+ {
163+ name = " clusterScanner.enabled"
164+ value = false
107165 }
108- }
166+ ], local . dynamic_agent_tags , local . dynamic_set_access_key_secret )
109167
110- # Cluster shield
111- set {
112- name = " clusterShield.enabled"
113- value = var.cluster_shield_deploy
114- }
115- set {
116- name = " clusterShield.image.repository"
117- value = var.cluster_shield_image_repository
118- }
119- set {
120- name = " clusterShield.image.tag"
121- value = var.cluster_shield_image_tag_digest
122- }
123- set {
124- name = " clusterShield.resources.requests.cpu"
125- type = " string"
126- value = var.cluster_shield_requests_cpu
127- }
128- set {
129- name = " clusterShield.resources.requests.memory"
130- type = " string"
131- value = var.cluster_shield_requests_memory
132- }
133- set {
134- name = " clusterShield.resources.limits.cpu"
135- type = " string"
136- value = var.cluster_shield_limits_cpu
137- }
138- set {
139- name = " clusterShield.resources.limits.memory"
168+ set_sensitive = var. access_key != null && var. access_key != " " ? [{
169+ name = " global.sysdig.accessKey"
140170 type = " string"
141- value = var.cluster_shield_limits_memory
142- }
143- set {
144- name = " clusterShield.cluster_shield.sysdig_endpoint.region"
145- type = " string"
146- value = " custom"
147- }
148- set {
149- name = " clusterShield.cluster_shield.log_level"
150- type = " string"
151- value = " info"
152- }
153- set {
154- name = " clusterShield.cluster_shield.features.admission_control.enabled"
155- value = var.cluster_shield_deploy
156- }
157- set {
158- name = " clusterShield.cluster_shield.features.container_vulnerability_management.enabled"
159- value = var.cluster_shield_deploy
160- }
161- set {
162- name = " clusterShield.cluster_shield.features.audit.enabled"
163- value = var.cluster_shield_deploy
164- }
165- set {
166- name = " clusterShield.cluster_shield.features.posture.enabled"
167- value = var.cluster_shield_deploy
168- }
169-
170- # nodeAnalyzer has been replaced by the host_scanner and kspm_analyzer functionality of main agent daemonset
171- set {
172- name = " nodeAnalyzer.enabled"
173- value = false
174- }
175- # clusterScanner has been replaced by cluster_shield component
176- set {
177- name = " clusterScanner.enabled"
178- value = false
179- }
171+ value = var.access_key
172+ }] : []
180173
181174 # Had to use raw yaml here instead of converting HCL to yaml due to this issue with boolean getting converted to string which sysdig helm chart rejects:
182175 # https://github.com/hashicorp/terraform-provider-helm/issues/1677
0 commit comments