diff --git a/README.md b/README.md
index 20187336..4a13e5e5 100644
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@ You need the following permissions to run this module.
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.9.0 |
-| [helm](#requirement\_helm) | >= 2.15.0, <3.0.0 |
+| [helm](#requirement\_helm) | >= 3.0.0, <4.0.0 |
| [ibm](#requirement\_ibm) | >= 1.80.2, <2.0.0 |
### Modules
diff --git a/examples/logs-agent-iks/provider.tf b/examples/logs-agent-iks/provider.tf
index 76346099..4870cff2 100644
--- a/examples/logs-agent-iks/provider.tf
+++ b/examples/logs-agent-iks/provider.tf
@@ -4,17 +4,17 @@ provider "ibm" {
}
provider "helm" {
- kubernetes {
+ kubernetes = {
host = data.ibm_container_cluster_config.cluster_config.host
token = data.ibm_container_cluster_config.cluster_config.token
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate
}
# IBM Cloud credentials are required to authenticate to the helm repo
- registry {
+ registries = [{
url = "oci://icr.io/ibm/observe/logs-agent-helm"
username = "iamapikey"
password = var.ibmcloud_api_key
- }
+ }]
}
provider "kubernetes" {
diff --git a/examples/logs-agent-iks/version.tf b/examples/logs-agent-iks/version.tf
index bca3a4bc..baf11f66 100644
--- a/examples/logs-agent-iks/version.tf
+++ b/examples/logs-agent-iks/version.tf
@@ -10,7 +10,7 @@ terraform {
}
helm = {
source = "hashicorp/helm"
- version = "2.15.0"
+ version = "3.0.0"
}
# 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
kubernetes = {
diff --git a/examples/logs-agent-ocp/provider.tf b/examples/logs-agent-ocp/provider.tf
index 76346099..4870cff2 100644
--- a/examples/logs-agent-ocp/provider.tf
+++ b/examples/logs-agent-ocp/provider.tf
@@ -4,17 +4,17 @@ provider "ibm" {
}
provider "helm" {
- kubernetes {
+ kubernetes = {
host = data.ibm_container_cluster_config.cluster_config.host
token = data.ibm_container_cluster_config.cluster_config.token
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate
}
# IBM Cloud credentials are required to authenticate to the helm repo
- registry {
+ registries = [{
url = "oci://icr.io/ibm/observe/logs-agent-helm"
username = "iamapikey"
password = var.ibmcloud_api_key
- }
+ }]
}
provider "kubernetes" {
diff --git a/examples/logs-agent-ocp/version.tf b/examples/logs-agent-ocp/version.tf
index 397255ec..5c3402e9 100644
--- a/examples/logs-agent-ocp/version.tf
+++ b/examples/logs-agent-ocp/version.tf
@@ -11,7 +11,7 @@ terraform {
}
helm = {
source = "hashicorp/helm"
- version = ">= 2.15.0"
+ version = ">= 3.0.0, <4.0.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
diff --git a/main.tf b/main.tf
index 30823447..7da705f2 100644
--- a/main.tf
+++ b/main.tf
@@ -32,7 +32,7 @@ locals {
for metadata in var.logs_agent_additional_metadata : {
(metadata.key) = metadata.value
}]...) : {} # DO NOT REMOVE "...", it is used to convert list of objects into a single object
- cluster_name = var.is_vpc_cluster ? data.ibm_container_vpc_cluster.cluster[0].resource_name : data.ibm_container_cluster.cluster[0].resource_name # Not publically documented in provider. See https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4485
+ cluster_name = var.is_vpc_cluster ? data.ibm_container_vpc_cluster.cluster[0].resource_name : data.ibm_container_cluster.cluster[0].resource_name # Not publicly documented in provider. See https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4485
}
resource "helm_release" "logs_agent" {
@@ -47,78 +47,80 @@ resource "helm_release" "logs_agent" {
recreate_pods = true
force_update = true
- set {
- name = "metadata.name"
- type = "string"
- value = var.logs_agent_name
- }
- set {
- name = "image.version"
- type = "string"
- value = var.logs_agent_image_version
- }
- set {
- name = "env.ingestionHost"
- type = "string"
- value = local.cloud_logs_ingress_endpoint
- }
- set {
- name = "env.ingestionPort"
- value = var.cloud_logs_ingress_port
- }
- set_sensitive {
+ set = [
+ {
+ name = "metadata.name"
+ type = "string"
+ value = var.logs_agent_name
+ },
+ {
+ name = "image.version"
+ type = "string"
+ value = var.logs_agent_image_version
+ },
+ {
+ name = "env.ingestionHost"
+ type = "string"
+ value = local.cloud_logs_ingress_endpoint
+ },
+ {
+ name = "env.ingestionPort"
+ value = var.cloud_logs_ingress_port
+ },
+ {
+ name = "env.trustedProfileID"
+ type = "string"
+ value = local.logs_agent_trusted_profile_id
+ },
+ {
+ name = "env.iamMode"
+ type = "string"
+ value = var.logs_agent_iam_mode
+ },
+ {
+ name = "env.iamEnvironment"
+ type = "string"
+ value = var.logs_agent_iam_environment
+ },
+ {
+ name = "systemLogs"
+ type = "string"
+ value = join("\\,", var.logs_agent_system_logs)
+ },
+ {
+ name = "excludeLogSourcePaths"
+ type = "string"
+ value = join("\\,", var.logs_agent_exclude_log_source_paths)
+ },
+ {
+ name = "selectedLogSourcePaths"
+ type = "string"
+ value = join("\\,", local.logs_agent_selected_log_source_paths)
+ },
+ {
+ name = "clusterName"
+ type = "string"
+ value = local.cluster_name
+ },
+ {
+ name = "scc.create"
+ value = var.logs_agent_enable_scc
+ },
+ {
+ name = "enableMultiline"
+ value = var.enable_multiline
+ },
+ {
+ name = "includeAnnotations"
+ value = var.enable_annotations
+ }
+ ]
+
+ set_sensitive = [{
name = "secret.iamAPIKey"
type = "string"
value = local.logs_agent_iam_api_key
- }
- set {
- name = "env.trustedProfileID"
- type = "string"
- value = local.logs_agent_trusted_profile_id
- }
- set {
- name = "env.iamMode"
- type = "string"
- value = var.logs_agent_iam_mode
- }
- set {
- name = "env.iamEnvironment"
- type = "string"
- value = var.logs_agent_iam_environment
- }
- set {
- name = "systemLogs"
- type = "string"
- value = join("\\,", var.logs_agent_system_logs)
- }
- set {
- name = "excludeLogSourcePaths"
- type = "string"
- value = join("\\,", var.logs_agent_exclude_log_source_paths)
- }
- set {
- name = "selectedLogSourcePaths"
- type = "string"
- value = join("\\,", local.logs_agent_selected_log_source_paths)
- }
- set {
- name = "clusterName"
- type = "string"
- value = local.cluster_name
- }
- set {
- name = "scc.create"
- value = var.logs_agent_enable_scc
- }
- set {
- name = "enableMultiline"
- value = var.enable_multiline
- }
-
- set {
- name = "includeAnnotations"
- value = var.enable_annotations
- }
+ }]
# dummy value hack to force update https://github.com/hashicorp/terraform-provider-helm/issues/515#issuecomment-813088122
values = [
diff --git a/solutions/fully-configurable/provider.tf b/solutions/fully-configurable/provider.tf
index f49fb73b..6078c490 100644
--- a/solutions/fully-configurable/provider.tf
+++ b/solutions/fully-configurable/provider.tf
@@ -10,17 +10,17 @@ provider "kubernetes" {
}
provider "helm" {
- kubernetes {
+ kubernetes = {
host = data.ibm_container_cluster_config.cluster_config.host
token = data.ibm_container_cluster_config.cluster_config.token
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate
}
# IBM Cloud credentials are required to authenticate to the helm repo
- registry {
+ registries = [{
url = "oci://icr.io/ibm/observe/logs-agent-helm"
username = "iamapikey"
password = var.ibmcloud_api_key
- }
+ }]
}
# Retrieve information about an existing VPC cluster
diff --git a/solutions/fully-configurable/version.tf b/solutions/fully-configurable/version.tf
index 1d3def79..5c9c20a4 100644
--- a/solutions/fully-configurable/version.tf
+++ b/solutions/fully-configurable/version.tf
@@ -10,7 +10,7 @@ terraform {
}
helm = {
source = "hashicorp/helm"
- version = "2.17.0"
+ version = "3.0.2"
}
kubernetes = {
source = "hashicorp/kubernetes"
diff --git a/version.tf b/version.tf
index 8c347465..70a2a2e9 100644
--- a/version.tf
+++ b/version.tf
@@ -9,7 +9,7 @@ terraform {
}
helm = {
source = "hashicorp/helm"
- version = ">= 2.15.0, <3.0.0"
+ version = ">= 3.0.0, <4.0.0"
}
}
}