Skip to content

Argo CD - Accelerate your application delivery pipeline with ease - Try ArgoCD now and experience efficient and automated deployments!

License

Notifications You must be signed in to change notification settings

easy-modules/terraform-easy-argocd

Repository files navigation

README

Terraform easy modules

Terraform module to deploy ArgoCD

Usage

module "argo_cd" {
  source = "easy-modules/argocd/easy"

  namespace = "argocd-system"
  stage     = "dev"

  argo_chart      = "argo-cd"
  argo_repository = "https://argoproj.github.io/argo-helm"
  argo_version    = "5.27.1"

  values = [
    {
      name  = "configs.cm.timeout.reconciliation"
      value = "40s"
    },
    {
      name  = "configs.cm.params.applicationsetcontroller.enable.progressive.syncs"
      value = true
    },
    {
      name  = "crds.install"
      value = true
    },
  ]

  project = {
    easy_modules = {
      project_description = "Easy Modules project"
      project_name        = "easy"
    }
  }
  
  public_repo = {
    easy_modules = {
      app_name        = "prometheus"
      public_repo_url = "https://github.com/prometheus-community/helm-charts"
    }
  }

  applications = {
    easy_modules = {
      app_name              = "kube-state-metrics"
      app_namespace         = "kube-state-metrics"
      app_path              = "charts/kube-state-metrics"
      app_repo_url          = "https://github.com/prometheus-community/helm-charts"
      app_target_revision   = "HEAD"
      app_directory_recurse = false
      app_project           = "easy"
    }
    alert-manager = {
      app_name              = "alert-manager"
      app_namespace         = "alert-manager"
      app_path              = "charts/alertmanager"
      app_repo_url          = "https://github.com/prometheus-community/helm-charts"
      app_target_revision   = "HEAD"
      app_directory_recurse = false
      app_project           = "easy"
    },
  }
}

LOGIN

If you want to login to argo CD using default credentials you can use the following command:

Username: admin

Password: kubectl get -namespace argocd-system secrets argocd-initial-admin-secret -o=jsonpath='{.data.password}' | base64 -d

Requirements

Name Version
terraform >=1.0.0
aws 4.0.0
helm 2.9.0
kubectl >= 1.7.0

Providers

Name Version
helm 2.9.0
kubectl >= 1.7.0

Modules

No modules.

Resources

Name Type
helm_release.argo_cd_install resource
kubectl_manifest.argo_cd_application resource
kubectl_manifest.argo_cd_notification resource
kubectl_manifest.argo_cd_private_repo resource
kubectl_manifest.argo_cd_project resource
kubectl_manifest.argo_cd_public_repo resource

Inputs

Name Description Type Default Required
applications Application Setup any
{
"alert-manager": {
"app_directory_recurse": false,
"app_name": "alert-manager",
"app_namespace": "alert-manager",
"app_path": "charts/alertmanager",
"app_project": "easy",
"app_repo_url": "https://github.com/prometheus-community/helm-charts",
"app_target_revision": "HEAD"

}, "easy": { "app_directory_recurse": false, "app_name": "kube-state-metrics", "app_namespace": "kube-state-metrics", "app_path": "charts/kube-state-metrics", "app_project": "easy", "app_repo_url": "https://github.com/prometheus-community/helm-charts", "app_target_revision": "HEAD" } } | no | | argo_chart | ArgoCD chart | string | "argo-cd" | no | | argo_repository | ArgoCD repository | string | "https://argoproj.github.io/argo-helm" | no | | argo_version | ArgoCD version | string | "5.27.1" | no | | namespace | Namespace to deploy ArgoCD | string | "argocd-system" | no | | notification | Notification Setup | any | {} | no | | private_repo | Private repository | any | {} | no | | project | Project Setup | any |

{
"ezops": {
"project_description": "Easy project",
"project_name": "easy"
}
}
| no | | public_repo | Private repository | any |
{
"ezops": {
"app_name": "prometheus",
"public_repo_url": "https://github.com/prometheus-community/helm-charts"
}
}
| no | | stage | Stage to deploy ArgoCD | string | "dev" | no | | values | ArgoCD values |
list(object({
name  = string
value = string
}))
|
[
{
"name": "configs.cm.timeout.reconciliation",
"value": "40s"
},
{
"name": "configs.cm.params.applicationsetcontroller.enable.progressive.syncs",
"value": true
},
{
"name": "crds.install",
"value": true
}
]
| no |

Outputs

Name Description
argo_cd_application_name The name of the application
argo_cd_application_namespace The namespace in which the application is installed
argo_cd_notification_id The id of the notification
argo_cd_notification_name The name of the notification
argo_cd_private_repo_id The id of the private repo
argo_cd_private_repo_name The name of the private repo
argo_cd_project_id The id of the project
argo_cd_project_name The name of the project
argo_cd_public_repo_id The id of the public repo
argo_cd_public_repo_name The name of the public repo
helm_release_name The name of the release
helm_release_namespace The namespace in which the release is installed
helm_release_namespace_id The namespace in which the release is installed

About

Argo CD - Accelerate your application delivery pipeline with ease - Try ArgoCD now and experience efficient and automated deployments!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published