Skip to content

Helpers to quickly deploy helm charts on Kubernetes cluster

License

Notifications You must be signed in to change notification settings

blackbird-cloud/terraform-helm-deployment

Repository files navigation

Terraform Helm Deployment Module

Helpers to quickly deploy helm charts on Kubernetes cluster

blackbird-logo

Example

provider "helm" {
  kubernetes {
    host                   = "my-k8s-host"
    cluster_ca_certificate = "my-k8s-ca-cert"
    token                  = "my-k8s-token"
  }
}

module "helm_release" {
  source  = "blackbird-cloud/deployment/helm"
  version = "1.2.1"

  name        = "my-app"
  description = "my-app!"
  namespace   = "develop-app"

  cleanup_on_fail = true
  force_update    = true
  wait            = true
  wait_for_jobs   = true

  values = [
    yamlencode({
      image : {
        repository : "my-docker-image"
        tag : "v1.0.0"
      }
    })
  ]
}

Requirements

Name Version
terraform >= 1.1
helm ~> 2

Providers

Name Version
helm ~> 2

Resources

Name Type
helm_release.deployment resource

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. Defaults to the local chart in this module. 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
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

Outputs

Name Description
helm_release The installed 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

About

Helpers to quickly deploy helm charts on Kubernetes cluster

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •