This module can be used used to deploy helm packages to a Kubernetes cluster.
Examples available here
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"
}
Terraform module documentation
Name | Version |
---|---|
terraform | >= 0.14.11 |
helm | >= 2.1 |
Name | Version |
---|---|
helm | 2.9.0 |
No modules.
Name | Type |
---|---|
helm_release.main | resource |
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 |
Name | Description |
---|---|
metadata | Block status of the deployed release. |
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
- Install with
- 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
- Install with
- tflint - Used to lint the Terraform code
- Install with
brew install tflint
- Manually use via pre-commit
- Install with
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