Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ruanbekker/terraform-kubernetes-apps-module

Terraform Module to deploy Helm Apps to your Kubernetes Cluster.
https://github.com/ruanbekker/terraform-kubernetes-apps-module

apps helm helm-releases kubernetes terraform

Last synced: about 2 months ago
JSON representation

Terraform Module to deploy Helm Apps to your Kubernetes Cluster.

Awesome Lists containing this project

README

        

# terraform-kubernetes-apps-module

Terraform Module to deploy Helm Apps to your Kubernetes Cluster.

## About

This Terraform module deploys Helm releases to your Kubernetes cluster using the `helm_release` provider. The module defines default configurations for various applications, and you can easily deploy these applications by specifying them in the `apps` list. If you need to override the default values, you can provide your own values file.

## Features

- Deploy multiple Helm releases by specifying their names.
- Use default configurations or provide custom values.
- Automatically creates namespaces if specified.

## Applications Available

A list of available apps can be found in the variable `release` defined in [./variables.tf](./variables.tf).

To install them, you can pass them to the `apps` list variable, for a example see [examples](#example).

## Requirements

No requirements.

## Providers

| Name | Version |
|------|---------|
| [helm](#provider\_helm) | n/a |
| [null](#provider\_null) | n/a |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [helm_release.apps](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
| [null_resource.wait_for_cluster](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [apps](#input\_apps) | List of apps that will be deployed. | `list(string)` | `[]` | no |
| [cluster\_endpoint](#input\_cluster\_endpoint) | The endpoint of the Kubernetes cluster. | `string` | `null` | no |
| [cluster\_ready\_trigger](#input\_cluster\_ready\_trigger) | A trigger to indicate the Kubernetes cluster is ready. | `any` | n/a | yes |
| [release](#input\_release) | n/a |

map(object({
chart = string
repository = string
version = string
namespace = string
create_namespace = bool
values_file = string
}))
|
{
"whoami": {
"chart": "whoami",
"create_namespace": true,
"namespace": "apps",
"repository": "https://cowboysysop.github.io/charts/",
"values_file": "templates/whoami/values.yaml",
"version": "5.1.1"
}
}
| no |

## Outputs

No outputs.

## Example

You can see a full example at [./example/](./example/).

```hcl
module "kubernetes" {
source = "git::https://github.com/ruanbekker/terraform-kubernetes-vultr-module.git?ref=stable"

cluster_name = "test-cluster"
cluster_version = "v1.29.4+1"
}

module "apps" {
source = "../"

apps = [
"whoami"
]

cluster_endpoint = module.kubernetes.endpoint
cluster_ready_trigger = module.kubernetes

}
```