Skip to content

blackbird-cloud/terraform-google-gke-helm-deployment

Repository files navigation

Terraform Google Gke Helm Deployment Module

Helpers to quickly deploy helm charts on GKE cluster

blackbird-logo

Example

module "helm_release" {
  source  = "blackbird-cloud/gke-helm-deployment/google"
  version = "~> 1"

  project      = "my-google-project"
  region       = "europe-west4-c"
  cluster_name = "my-gke-cluster-name"

  name             = "my-app"
  namespace        = "my-app"
  create_namespace = true

  repository    = "https://prometheus-community.github.io/helm-charts"
  chart         = "prometheus"
  chart_version = "23.1.0"

  values = [
    yamlencode({
      alertmanager : {
        enabled : false
      },
      prometheus-pushgateway : {
        enabled : false
      }
    })
  ]

  cleanup_on_fail = true
  wait            = true
}

Requirements

Name Version
terraform >= 1.1
google 4.34.0
helm 2.6.0

Providers

Name Version
google 4.34.0

Resources

Name Type
google_client_config.provider data source
google_container_cluster.my_cluster data source

Inputs

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 Cluster name 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
project Google Project ID string n/a yes
recreate_pods Perform pods restart during upgrade/rollback. Defaults to false. bool false no
region Google Region string n/a yes
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

Outputs

Name Description
deployment The helm release

About

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

Copyright © 2017-2024 Blackbird Cloud