This module deploys an ArgoCD application custom resource. It utilizes the kubectl provider instead of the official Kubernetes provider to mitigate common problems with custom resources in Terraform, such as:
- Required API access during planning time, requiring multiple terraform states in order to deploy an application to Kubernetes.
- Sensitive values are displayed in logs, ref.
You can make use of the built-in templatefile() function to easily add secret values to the platform_services_values if secret configuration is required.
provider "kubectl" {
# provider configuration ...
}
module "my_app" {
source = "catalystcommunity/argocd-application/kubernetes"
name = "my-app"
source_chart = "my-app"
source_repo_url = "https://example.com/repository"
helm_values = templatefile("./helm-values/my-application-values.yaml", {
"exampleSecretInput" : var.example_secret
})
}
Name | Version |
---|---|
terraform | >= 0.13.1 |
kubectl | ~> 1.14.0 |
Name | Description | Type | Default | Required |
---|---|---|---|---|
name | Name of the ArgoCD application custom resource | string |
n/a | yes |
source_chart | Name of Helm chart | string |
n/a | yes |
source_repo_url | Helm repository URL | string |
n/a | yes |
helm_values | Helm values as a raw string in YAML format | string |
"" |
no |
namespace | Namespace to deploy the ArgoCD application custom resource. Should be in the same namespace as ArgoCD. | string |
"argo-cd" |
no |
project | ArgoCD project to associate the application to | string |
"default" |
no |
source_target_revision | Target revision of the helm chart | string |
">=1.0.0" |
no |
spec_override | Application spec override. Gets merged with the default applcation spec that's generated from existing variables. Allows specifying configuration that is not specifically implemented by this module. | map(any) |
{} |
no |
sync_policy | ArgoCD application sync policy. Defaults to a frequent automatic sync. | object({ |
{ |
no |
No outputs.
Name | Type |
---|---|
kubectl_manifest.application | resource |
No modules.