Skip to content

Terraform module tailored for effortless deployment of Helm charts, enhancing infrastructure management with seamless integration.

License

Notifications You must be signed in to change notification settings

cgarcia-l/terraform-helm-release

Repository files navigation

terraform-helm-release

Table of Contents

Description

This repository contains a Terraform module for deploying Helm charts using the Helm provider. It's designed to be flexible and easy to use, allowing you to deploy a variety of applications with a single module. The module takes a map of applications as input, each with its own set of configuration options.

Providers

Name Version
helm 2.13.1

Resources

Name Type
helm_release.this resource

Inputs

Name Description Type Default Required
apps Map of applications to deploy
map(object({
namespace = string
repository = string
name = string
chart = string
version = string
repository_key_file = optional(string)
repository_cert_file = optional(string)
repository_ca_file = optional(string)
repository_username = optional(string)
repository_password = optional(string)
force_update = optional(bool)
wait = optional(bool)
recreate_pods = optional(bool)
max_history = optional(number)
lint = optional(bool)
cleanup_on_fail = optional(bool)
create_namespace = optional(bool)
disable_webhooks = optional(bool)
verify = optional(bool)
reuse_values = optional(bool)
reset_values = optional(bool)
atomic = optional(bool)
skip_crds = optional(bool)
render_subchart_notes = optional(bool)
disable_openapi_validation = optional(bool)
wait_for_jobs = optional(bool)
dependency_update = optional(bool)
replace = optional(bool)
timeout = optional(string)
values = optional(list(string))
set = optional(list(object({
name = string
value = string
})))
set_sensitive = optional(list(object({
path = string
value = string
})))
}))
n/a yes

Outputs

Name Description
deployment The state of the helm deployment

Requirements

No requirements.

Examples

## Provider Configuration
provider "aws" {
  region = "eu-west-1"
}

## Helm Release Module
module "example" {
  source = "../../"

  apps = {
    app1 = {
      namespace  = "argocd"
      name       = "argocd"
      repository = "https://argoproj.github.io/argo-helm"
      chart      = "argo-cd"
      version    = "v6.7.14"
    },
    app2 = {
      namespace            = "jenkins"
      name                 = "jenkins"
      repository           = "https://charts.jenkins.io"
      chart                = "jenkins"
      version              = "v6.7.14"
      repository_key_file  = "path/to/keyfile"
      repository_cert_file = "path/to/certfile"
      repository_ca_file   = "path/to/cafile"
      repository_username  = "username"
      repository_password  = "password"
      set = [
        {
          name  = "key1"
          value = "value1"
        },
        {
          name  = "key2"
          value = "value2"
        }
      ]
      set_sensitive = [
        {
          path  = "secret1"
          value = "sensitive_value1"
        }
      ]
    }
  }
}

## Outputs

output "deployment" {
  value       = module.example.deployment
  description = "The state of the helm deployment"
}

How to Contribute

Submit a pull request

Authors

Currently maintained by Carlos García

License

Apache 2.0 Licensed. See LICENSE for full details.

About

Terraform module tailored for effortless deployment of Helm charts, enhancing infrastructure management with seamless integration.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages