Code Monkey home page Code Monkey logo

terraform-helm-release's Introduction

License Latest Release Build Status Build Status Build Status Build Status Build Status Build Status Build Status

Helm Release Terraform module

Description

This module can be used used to deploy helm packages to a Kubernetes cluster.

Examples available here

Usage

NOTE: These examples use the latest version of this module

module "minimum_helm" {
  source     = "boldlink/release/helm"
  name       = "my-redis-release"
  repository = "https://charts.bitnami.com/bitnami"
  chart      = "redis"
}

Documentation

Helm Documentation

Terraform module documentation

Requirements

Name Version
terraform >= 0.14.11
helm >= 2.1

Providers

Name Version
helm 2.9.0

Modules

No modules.

Resources

Name Type
helm_release.main resource

Inputs

Name Description Type Default Required
atomic (Optional) 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 (Required) 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 n/a yes
chart_version (Optional) Specify the exact chart version to install. If this is not specified, the latest version is installed. string null no
cleanup_on_fail (Optional) Allow deletion of new resources created in this upgrade when upgrade fails. Defaults to false. bool false no
create_namespace Optional) Create the namespace if it does not yet exist. Defaults to false. bool false no
dependency_update (Optional) Runs helm dependency update before installing the chart. Defaults to false. bool false no
description (Optional) Set release description attribute (visible in the history). string null no
devel (Optional) Use chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored. string null no
disable_openapi_validation (Optional) If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema. Defaults to false. bool false no
disable_webhooks (Optional) Prevent hooks from running. Defaults to false. bool false no
force_update (Optional) Force resource update through delete/recreate if needed. Defaults to false. bool false no
keyring (Optional) Location of public keys used for verification. Used only if verify is true. Defaults to /.gnupg/pubring.gpg in the location set by home string null no
lint (Optional) Run the helm chart linter during the plan. Defaults to false. bool false no
max_history (Optional) Maximum number of release versions stored per release. Defaults to 0 (no limit). number 0 no
name (Required) Release name. string n/a yes
namespace (Optional) The namespace to install the release into. Defaults to default. string "default" no
postrender (Optional) Configure a command to run after helm renders the manifest which can alter the manifest contents. list(any) [] no
recreate_pods (Optional) Perform pods restart during upgrade/rollback. Defaults to false. bool false no
render_subchart_notes (Optional) If set, render subchart notes along with the parent. Defaults to true. bool true no
replace (Optional) Re-use the given name, only if that name is a deleted release which remains in the history. This is unsafe in production. Defaults to false. bool false no
repository (Optional) Repository URL where to locate the requested chart. string null no
repository_ca_file (Optional) The Repositories CA File. string null no
repository_cert_file (Optional) The repositories cert file string null no
repository_key_file (Optional) The repositories cert key file string null no
repository_password (Optional) Password for HTTP basic authentication against the repository. string null no
repository_username (Optional) Username for HTTP basic authentication against the repository. string null no
reset_values (Optional) When upgrading, reset the values to the ones built into the chart. Defaults to false. bool false no
reuse_values (Optional) When upgrading, reuse the last release's values and merge in any overrides. If 'reset_values' is specified, this is ignored. Defaults to false. bool false no
set (Optional) Value block with custom values to be merged with the values yaml. list(any) [] no
set_sensitive (Optional) Value block with custom sensitive values to be merged with the values yaml that won't be exposed in the plan's diff. list(any) [] no
skip_crds (Optional) If set, no CRDs will be installed. By default, CRDs are installed if not already present. Defaults to false. bool false no
timeout (Optional) Time in seconds to wait for any individual kubernetes operation (like Jobs for hooks). Defaults to 300 seconds. number 300 no
values (Optional) List of values in raw yaml to pass to helm. Values will be merged, in order, as Helm does with multiple -f options. list(any) [] no
verify (Optional) Verify the package before installing it. Helm uses a provenance file to verify the integrity of the chart; this must be hosted alongside the chart. For more information see the Helm Documentation. Defaults to false. bool false no
wait (Optional) 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 false no
wait_for_jobs (Optional) 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 false no

Outputs

Name Description
metadata Block status of the deployed release.

Third party software

This repository uses third party software:

  • pre-commit - Used to help ensure code and documentation consistency
    • Install with brew install pre-commit
    • Manually use with pre-commit run
  • terraform 0.14.11 For backwards compatibility we are using version 0.14.11 for testing making this the min version tested and without issues with terraform-docs.
  • terraform-docs - Used to generate the Inputs and Outputs sections
    • Install with brew install terraform-docs
    • Manually use via pre-commit
  • tflint - Used to lint the Terraform code
    • Install with brew install tflint
    • Manually use via pre-commit

Makefile

The makefile contained in this repo is optimized for linux paths and the main purpose is to execute testing for now.

  • Create all tests: $ make tests
  • Clean all tests: $ make clean

BOLDLink-SIG 2022

terraform-helm-release's People

Contributors

boldlinksig avatar hugoalmeida264 avatar ndegwajohn avatar patrickmukumbu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.