Terraform module for gitops-bridge argocd bootstrap
It handles three aspect of ArgoCD bootstrap
- Installs an intial deployment of argocd, this deployment (gets replaced by argocd applicationset)
- Creates the ArgoCD cluster secret (including in-cluster)
- Creates the intial set App of Apps (addons, workloads, etc.)
To be use with gitops-bridge project, see example here
locals {
name = "ex-${replace(basename(path.cwd), "_", "-")}"
environment = "dev"
cluster_version = "1.27"
gitops_addons_url = "https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template"
gitops_addons_basepath = ""
gitops_addons_path = "bootstrap/control-plane/addons"
gitops_addons_revision = "HEAD"
oss_addons = {
enable_argo_workflows = true
enable_foo = true # you can add any addon here, make sure to update the gitops repo with the corresponding application set
}
addons = merge(local.oss_addons, { kubernetes_version = local.cluster_version })
addons_metadata = merge(
{
addons_repo_url = local.gitops_addons_url
addons_repo_basepath = local.gitops_addons_basepath
addons_repo_path = local.gitops_addons_path
addons_repo_revision = local.gitops_addons_revision
}
)
argocd_apps = {
addons = file("${path.module}/bootstrap/addons.yaml")
workloads = file("${path.module}/bootstrap/workloads.yaml")
}
}
################################################################################
# GitOps Bridge: Bootstrap
################################################################################
module "gitops_bridge_bootstrap" {
source = "gitops-bridge-dev/gitops-bridge/helm"
cluster = {
cluster_name = local.name
environment = local.environment
metadata = local.addons_metadata
addons = local.addons
}
apps = local.argocd_apps
}
| Name | Version |
|---|---|
| terraform | >= 1.0 |
| helm | >= 2.10.1 |
| kubernetes | >= 2.22.0 |
| Name | Version |
|---|---|
| helm | >= 2.10.1 |
| kubernetes | >= 2.22.0 |
No modules.
| Name | Type |
|---|---|
| helm_release.argocd | resource |
| helm_release.bootstrap | resource |
| kubernetes_secret_v1.cluster | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| apps | argocd app of apps to deploy | any |
{} |
no |
| argocd | argocd helm options | any |
{} |
no |
| cluster | argocd cluster secret | any |
null |
no |
| create | Create terraform resources | bool |
true |
no |
| install | Deploy argocd helm | bool |
true |
no |
| Name | Description |
|---|---|
| apps | ArgoCD apps |
| argocd | Argocd helm release |
| cluster | ArgoCD cluster |