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 NotesSample Usage
- Terraform
- Terragrunt
# ------------------------------------------------------------------------------------------------------
# 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.2"
# ----------------------------------------------------------------------------------------------------
# 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
# Tags to apply to all AWS resources managed by this module.
default_tags = {}
# The name of the EKS Cluster that Argo CD will be deployed to. Required if
# deploying to Fargate.
eks_cluster_name = ""
# A map of custom tags to apply to the Fargate Profile IAM Role if enabled.
# The key is the tag name and the value is the tag value.
fargate_profile_iam_role_tags = {}
# A map of custom tags to apply to the Fargate Profile if enabled. The key is
# the tag name and the value is the tag value.
fargate_profile_tags = {}
# 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 = []
}
# ------------------------------------------------------------------------------------------------------
# DEPLOY GRUNTWORK'S EKS-ARGOCD MODULE
# ------------------------------------------------------------------------------------------------------
terraform {
source = "git::git@github.com:gruntwork-io/terraform-aws-service-catalog.git//modules/services/eks-argocd?ref=v0.118.2"
}
inputs = {
# ----------------------------------------------------------------------------------------------------
# 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
# Tags to apply to all AWS resources managed by this module.
default_tags = {}
# The name of the EKS Cluster that Argo CD will be deployed to. Required if
# deploying to Fargate.
eks_cluster_name = ""
# A map of custom tags to apply to the Fargate Profile IAM Role if enabled.
# The key is the tag name and the value is the tag value.
fargate_profile_iam_role_tags = {}
# A map of custom tags to apply to the Fargate Profile if enabled. The key is
# the tag name and the value is the tag value.
fargate_profile_tags = {}
# 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
- Inputs
- Outputs
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_name
stringThe Helm chart name for the argocd chart.
"argo-cd"
argocd_chart_namespace
stringThe k8s namespace that the argocd Helm chart will be deployed to.
"argocd"
The Helm release name for the Argo CD chart.
"argocd"
argocd_chart_repository
stringThe 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_version
stringThe version of the argocd Helm chart.
"5.42.2"
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_partition
stringThe 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_resources
boolConditional flag to optionally create resources in this module.
true
default_tags
map(string)Tags to apply to all AWS resources managed by this module.
{}
eks_cluster_name
stringThe name of the EKS Cluster that Argo CD will be deployed to. Required if deploying to Fargate.
""
fargate_profile_iam_role_tags
map(string)A map of custom tags to apply to the Fargate Profile IAM Role if enabled. The key is the tag name and the value is the tag value.
{}
fargate_profile_tags
map(string)A map of custom tags to apply to the Fargate Profile if enabled. The key is the tag name and the value is the tag value.
{}
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_ids
list(string)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.
[]