Skip to main content
Service Catalog Version 0.118.1Last updated in version 0.114.0

Gruntwork GitOps "GruntOps"

GitOps is an operational framework that is built around DevOps best practices for a standardized approach to managing the lifecycle of Kubernetes based deployments. GitOps provides a unified approach to the deployment and management of container workloads, with Git being the single source of truth for the state of the container infrastructure. GitOps is a very developer-centric workflow that works best when adopted by individuals and teams that follow a git based development lifecycle. The core principles of GitOps have been at the center of Gruntwork from the beginning!

View Source Release Notes

Sample Usage

main.tf

# ------------------------------------------------------------------------------------------------------
# DEPLOY GRUNTWORK'S EKS-ARGOCD MODULE
# ------------------------------------------------------------------------------------------------------

module "eks_argocd" {

source = "git::git@github.com:gruntwork-io/terraform-aws-service-catalog.git//modules/services/eks-argocd?ref=v0.118.1"

# ----------------------------------------------------------------------------------------------------
# OPTIONAL VARIABLES
# ----------------------------------------------------------------------------------------------------

# Additional Helm chart values to pass to the argocd Helm chart. See the
# official argocd Helm chart values file and documentation for available
# configuration options.
argocd_chart_additional_values = {}

# Whether or not Helm should create the namespace to deploy the Argo CD chart
# to.
argocd_chart_create_namespace = true

# The Helm chart name for the argocd chart.
argocd_chart_name = "argo-cd"

# The k8s namespace that the argocd Helm chart will be deployed to.
argocd_chart_namespace = "argocd"

# The Helm release name for the Argo CD chart.
argocd_chart_release_name = "argocd"

# The Helm repository to obtain the Argo CD chart from.
argocd_chart_repository = "https://argoproj.github.io/argo-helm"

# Whether or not to skip CRD resource installation.
argocd_chart_skip_crds = false

# The version of the argocd Helm chart.
argocd_chart_version = "5.42.2"

# Whether or not to to wait until resources are in a ready state before
# marking the Helm release as successful.
argocd_chart_wait = false

# ARN of permissions boundary to apply to the Argo CD Fargate IAM role - the
# IAM role created for Argo CD.
argocd_iam_role_permissions_boundary = null

# The AWS partition used for default AWS Resources.
aws_partition = "aws"

# When set to true, create a dedicated Fargate execution role for Argo CD.
# When false, you must provide an existing fargate execution role in the
# variable var.pod_execution_iam_role_arn. Only used if
# var.create_fargate_profile is true.
create_fargate_execution_role = false

# When set to true, create a dedicated Fargate execution profile for the Argo
# CD.
create_fargate_profile = false

# Conditional flag to optionally create resources in this module.
create_resources = true

# The name of the EKS Cluster that Argo CD will be deployed to. Required if
# deploying to Fargate.
eks_cluster_name = ""

# ARN of IAM Role to use as the Pod execution role for Fargate. Set to null
# (default) to create a new one. Only used when var.create_fargate_profile is
# true.
pod_execution_iam_role_arn = null

# A list of the subnets into which the Argo CD pods will be launched. These
# should usually be all private subnets and include one in each AWS
# Availability Zone. Required when var.create_fargate_profile is true.
vpc_worker_subnet_ids = []

}


Reference

Optional

Additional Helm chart values to pass to the argocd Helm chart. See the official argocd Helm chart values file and documentation for available configuration options.

Any types represent complex values of variable type. For details, please consult `variables.tf` in the source repo.
{}

Whether or not Helm should create the namespace to deploy the Argo CD chart to.

true
argocd_chart_namestringoptional

The Helm chart name for the argocd chart.

"argo-cd"

The k8s namespace that the argocd Helm chart will be deployed to.

"argocd"

The Helm release name for the Argo CD chart.

"argocd"

The Helm repository to obtain the Argo CD chart from.

"https://argoproj.github.io/argo-helm"

Whether or not to skip CRD resource installation.

false
argocd_chart_versionstringoptional

The version of the argocd Helm chart.

"5.42.2"
argocd_chart_waitbooloptional

Whether or not to to wait until resources are in a ready state before marking the Helm release as successful.

false

ARN of permissions boundary to apply to the Argo CD Fargate IAM role - the IAM role created for Argo CD.

null
aws_partitionstringoptional

The AWS partition used for default AWS Resources.

"aws"

When set to true, create a dedicated Fargate execution role for Argo CD. When false, you must provide an existing fargate execution role in the variable pod_execution_iam_role_arn. Only used if create_fargate_profile is true.

false

When set to true, create a dedicated Fargate execution profile for the Argo CD.

false
create_resourcesbooloptional

Conditional flag to optionally create resources in this module.

true
eks_cluster_namestringoptional

The name of the EKS Cluster that Argo CD will be deployed to. Required if deploying to Fargate.

""

ARN of IAM Role to use as the Pod execution role for Fargate. Set to null (default) to create a new one. Only used when create_fargate_profile is true.

null
vpc_worker_subnet_idslist(string)optional

A list of the subnets into which the Argo CD pods will be launched. These should usually be all private subnets and include one in each AWS Availability Zone. Required when create_fargate_profile is true.

[]