Terraform module to assist in deploying Helm releases on your AWS EKS cluster.
provider "aws" {}
module "helm_release" {
source = "blackbird-cloud/eks-helm-release/aws"
version = "~> 1"
cluster_name = "my-develop-cluster"
name = "prometheus"
repository = "https://prometheus-community.github.io/helm-charts"
chart = "kube-prometheus-stack"
chart_version = "44.4.1"
namespace = "prometheus"
create_namespace = true
values = [
yamlencode({
grafana : {
enabled : false
}
prometheus : {
prometheusSpec : {
storageSpec : {
volumeClaimTemplate : {
spec : {
storageClassName : "gp3"
accessModes : ["ReadWriteOnce"]
resources : {
requests : {
storage : "50Gi"
}
}
}
}
}
}
}
})
]
cleanup_on_fail = true
force_update = true
}
Name | Version |
---|---|
terraform | >= 1.2 |
aws | ~> 5 |
helm | ~> 2 |
Name | Version |
---|---|
aws | ~> 5 |
Name | Type |
---|---|
aws_eks_cluster.cluster | data source |
aws_eks_cluster_auth.cluster | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
atomic | If set, installation process purges chart on fail. The wait flag will be set automatically if atomic is used. Defaults to false. | bool |
false |
no |
chart | Chart name to be installed. The chart name can be local path, a URL to a chart, or the name of the chart if repository is specified. It is also possible to use the / format here if you are running Terraform on a system that the repository has been added to with helm repo add but this is not recommended. | string |
"" |
no |
chart_version | Specify the exact chart version to install. If this is not specified, the latest version is installed. helm_release will not automatically grab the latest release, version must explicitly upgraded when upgrading an installed chart. | string |
null |
no |
cleanup_on_fail | Allow deletion of new resources created in this upgrade when upgrade fails. Defaults to true. | bool |
false |
no |
cluster_name | The AWS EKS Cluster's name, in which the chart will be installed. | string |
n/a | yes |
create_namespace | Create the namespace if it does not yet exist. Defaults to false. | bool |
false |
no |
description | Set release description attribute (visible in the history). | string |
null |
no |
disable_webhooks | Prevent hooks from running. Defaults to false. | bool |
false |
no |
force_update | Force resource update through delete/recreate if needed. Defaults to false. | bool |
false |
no |
name | Release name. | string |
n/a | yes |
namespace | The namespace to install the release into. Defaults to default. | string |
"default" |
no |
recreate_pods | Perform pods restart during upgrade/rollback. Defaults to false. | bool |
false |
no |
repository | Repository URL where to locate the requested chart. | string |
null |
no |
repository_password | Password for HTTP basic authentication against the repository. | string |
null |
no |
repository_username | Username for HTTP basic authentication against the repository. | string |
null |
no |
sensitive_values | Which sensitive values to install for the helm chart. | list(string) |
[] |
no |
timeout | Time in seconds to wait for any individual kubernetes operation (like Jobs for hooks). Defaults to 300 seconds. | number |
300 |
no |
values | Which values to install for the helm chart. | list(string) |
[] |
no |
wait | Will wait until all resources are in a ready state before marking the release as successful. It will wait for as long as timeout. Defaults to true. | bool |
true |
no |
wait_for_jobs | If wait is enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as timeout. Defaults to false. | bool |
true |
no |
Name | Description |
---|---|
helm_release | The installed Helm release. |
We are Blackbird Cloud, Amsterdam based cloud consultancy, and cloud management service provider. We help companies build secure, cost efficient, and scale-able solutions.
Checkout our other 👉 terraform modules
Copyright © 2017-2024 Blackbird Cloud