Skip to content

Commit 186e45b

Browse files
authored
feat: updated required helm provider to >= 3.0.0, <4.0.0 (#136)
1 parent 77c12e9 commit 186e45b

File tree

10 files changed

+126
-132
lines changed

10 files changed

+126
-132
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ provider "ibm" {
5050
}
5151
5252
provider "helm" {
53-
kubernetes {
53+
kubernetes = {
5454
host = data.ibm_container_cluster_config.cluster_config.host
5555
token = data.ibm_container_cluster_config.cluster_config.token
5656
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate
@@ -88,7 +88,7 @@ You need the following permissions to run this module.
8888
| Name | Version |
8989
|------|---------|
9090
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.9.0 |
91-
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.15.0, <3.0.0 |
91+
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 3.0.0, <4.0.0 |
9292
| <a name="requirement_ibm"></a> [ibm](#requirement\_ibm) | >= 1.79.2, <2.0.0 |
9393

9494
### Modules

examples/obs-agent-iks/provider.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ provider "ibm" {
44
}
55

66
provider "helm" {
7-
kubernetes {
7+
kubernetes = {
88
host = data.ibm_container_cluster_config.cluster_config.host
99
token = data.ibm_container_cluster_config.cluster_config.token
1010
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate

examples/obs-agent-iks/version.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ terraform {
1010
}
1111
helm = {
1212
source = "hashicorp/helm"
13-
version = "2.15.0"
13+
version = "3.0.2"
1414
}
1515
# The kubernetes provider is not actually required by the module itself, just this example, so OK to use ">=" here instead of locking into a version
1616
kubernetes = {

examples/obs-agent-ocp/provider.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ provider "ibm" {
44
}
55

66
provider "helm" {
7-
kubernetes {
7+
kubernetes = {
88
host = data.ibm_container_cluster_config.cluster_config.host
99
token = data.ibm_container_cluster_config.cluster_config.token
1010
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate

examples/obs-agent-ocp/version.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ terraform {
1010
}
1111
helm = {
1212
source = "hashicorp/helm"
13-
version = ">= 2.15.0"
13+
version = ">= 3.0.0, <4.0.0"
1414
}
1515
kubernetes = {
1616
source = "hashicorp/kubernetes"

main.tf

Lines changed: 114 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -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

4152
resource "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

solutions/fully-configurable/provider.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ provider "kubernetes" {
99
}
1010

1111
provider "helm" {
12-
kubernetes {
12+
kubernetes = {
1313
host = data.ibm_container_cluster_config.cluster_config.host
1414
token = data.ibm_container_cluster_config.cluster_config.token
1515
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate

solutions/fully-configurable/version.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ terraform {
1010
}
1111
helm = {
1212
source = "hashicorp/helm"
13-
version = "2.17.0"
13+
version = "3.0.2"
1414
}
1515
kubernetes = {
1616
source = "hashicorp/kubernetes"

tests/pr_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,9 @@ func TestRunAgentClassicKubernetes(t *testing.T) {
261261
CloudInfoService: sharedInfoSvc,
262262
})
263263
options.TerraformVars = map[string]any{
264-
"datacenter": "syd01",
265-
"prefix": options.Prefix,
264+
"resource_group": resourceGroup,
265+
"datacenter": "syd01",
266+
"prefix": options.Prefix,
266267
}
267268

268269
output, err := options.RunTestConsistency()

version.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ terraform {
1616
}
1717
helm = {
1818
source = "hashicorp/helm"
19-
version = ">= 2.15.0, <3.0.0"
19+
version = ">= 3.0.0, <4.0.0"
2020
}
2121
}
2222
}

0 commit comments

Comments
 (0)