Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/ruanbekker/terraform-kubernetes-apps-module
- Owner: ruanbekker
- License: mit
- Created: 2024-07-27T16:24:51.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-07-27T23:33:38.000Z (5 months ago)
- Last Synced: 2024-07-28T18:01:16.659Z (5 months ago)
- Topics: apps, helm, helm-releases, kubernetes, terraform
- Language: HCL
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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
})){| no |
"whoami": {
"chart": "whoami",
"create_namespace": true,
"namespace": "apps",
"repository": "https://cowboysysop.github.io/charts/",
"values_file": "templates/whoami/values.yaml",
"version": "5.1.1"
}
}## 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}
```