Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ spec:
namespace: 'argocd'
project: default
source:
path: bootstrap/control-plane/addons
repoURL: https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template
targetRevision: HEAD
path: ${path}
repoURL: ${repoURL}
targetRevision: ${targetRevision}
directory:
recurse: true
exclude: exclude/*
syncPolicy:
automated: {}
automated: {}
13 changes: 12 additions & 1 deletion argocd/iac/terraform/examples/eks/aws-secrets-manager/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ locals {
environment = "dev"
region = "us-west-2"
cluster_version = "1.27"
gitops_url = var.gitops_url
gitops_revision = var.gitops_revision
gitops_path = var.gitops_path

aws_addons = {
enable_cert_manager = true
Expand Down Expand Up @@ -93,11 +96,19 @@ locals {
aws_region = local.region
aws_account_id = data.aws_caller_identity.current.account_id
aws_vpc_id = module.vpc.vpc_id
},
{
gitops_bridge_repo_url = local.gitops_url
gitops_bridge_repo_revision = local.gitops_revision
}
)

argocd_bootstrap_app_of_apps = {
addons = file("${path.module}/bootstrap/addons.yaml")
addons = templatefile("${path.module}/bootstrap/addons.yaml", {
repoURL = local.gitops_url
targetRevision = local.gitops_revision
path = local.gitops_path
})
workloads = file("${path.module}/bootstrap/workloads.yaml")
}

Expand Down
13 changes: 12 additions & 1 deletion argocd/iac/terraform/examples/eks/aws-secrets-manager/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,19 @@ output "configure_argocd" {
kubectl config set-context --current --namespace argocd
argocd login --port-forward --username admin --password $(argocd admin initial-password | head -1)
echo "ArgoCD Username: admin"
echo "ArgoCD Password: $(aws secretsmanager get-secret-value --secret-id argocd)"
echo "ArgoCD Password: $(kubectl get secrets argocd-initial-admin-secret -n argocd --template="{{index .data.password | base64decode}}")"
echo Port Forward: http://localhost:8080
kubectl port-forward -n argocd svc/argo-cd-argocd-server 8080:80
EOT
}

output "access_argocd" {
description = "ArgoCD Access"
value = <<-EOT
export KUBECONFIG="/tmp/${module.eks.cluster_name}"
aws eks --region ${local.region} update-kubeconfig --name ${module.eks.cluster_name}
echo "ArgoCD URL: https://$(kubectl get svc -n argocd argo-cd-argocd-server -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')"
echo "ArgoCD Username: admin"
echo "ArgoCD Password: $(aws secretsmanager get-secret-value --secret-id argocd --output json | jq -r .SecretString)"
EOT
}
12 changes: 12 additions & 0 deletions argocd/iac/terraform/examples/eks/aws-secrets-manager/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variable "gitops_url" {
description = "Git repository contains for addons"
default = "https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template"
}
variable "gitops_revision" {
description = "Git repository revision/branch/ref for addons"
default = "HEAD"
}
variable "gitops_path" {
description = "Git repository path for addons"
default = "bootstrap/control-plane/addons"
}
10 changes: 5 additions & 5 deletions argocd/iac/terraform/examples/eks/complete/bootstrap/addons.yaml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: bootstrap-control-plane
name: bootstrap-addons
namespace: 'argocd'
spec:
destination:
server: https://kubernetes.default.svc
namespace: 'argocd'
project: default
source:
path: bootstrap/control-plane
repoURL: https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template
targetRevision: HEAD
path: ${path}
repoURL: ${repoURL}
targetRevision: ${targetRevision}
directory:
recurse: true
exclude: exclude/*
syncPolicy:
automated: {}
automated: {}
13 changes: 12 additions & 1 deletion argocd/iac/terraform/examples/eks/complete/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ locals {
environment = "dev"
region = "us-west-2"
cluster_version = "1.27"
gitops_url = var.gitops_url
gitops_revision = var.gitops_revision
gitops_path = var.gitops_path

aws_addons = {
enable_cert_manager = true
Expand Down Expand Up @@ -92,13 +95,21 @@ locals {
aws_account_id = data.aws_caller_identity.current.account_id
aws_vpc_id = module.vpc.vpc_id
},
{
gitops_bridge_repo_url = local.gitops_url
gitops_bridge_repo_revision = local.gitops_revision
},
try(local.aws_addons.enable_velero, false) ? {
velero_backup_s3_bucket_prefix = try(local.velero_backup_s3_bucket_prefix,"")
velero_backup_s3_bucket_name = try(local.velero_backup_s3_bucket_name,"") } : {} # Required when enabling addon velero
)

argocd_bootstrap_app_of_apps = {
addons = file("${path.module}/bootstrap/addons.yaml")
addons = templatefile("${path.module}/bootstrap/addons.yaml", {
repoURL = local.gitops_url
targetRevision = local.gitops_revision
path = local.gitops_path
})
workloads = file("${path.module}/bootstrap/workloads.yaml")
}

Expand Down
12 changes: 12 additions & 0 deletions argocd/iac/terraform/examples/eks/complete/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variable "gitops_url" {
description = "Git repository contains for addons"
default = "https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template"
}
variable "gitops_revision" {
description = "Git repository revision/branch/ref for addons"
default = "HEAD"
}
variable "gitops_path" {
description = "Git repository path for addons"
default = "bootstrap/control-plane/addons"
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: bootstrap-control-plane
name: bootstrap-addons
namespace: 'argocd'
spec:
destination:
server: https://kubernetes.default.svc
namespace: 'argocd'
project: default
source:
path: bootstrap/control-plane
repoURL: https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template
targetRevision: HEAD
path: ${path}
repoURL: ${repoURL}
targetRevision: ${targetRevision}
directory:
recurse: true
exclude: exclude/*
syncPolicy:
automated: {}
automated: {}
36 changes: 26 additions & 10 deletions argocd/iac/terraform/examples/eks/crossplane/main.tf
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
provider "aws" {
region = local.region
}
data "aws_caller_identity" "current" {}
data "aws_availability_zones" "available" {}


provider "helm" {
kubernetes {
host = module.eks.cluster_endpoint
Expand Down Expand Up @@ -43,9 +43,13 @@ provider "kubernetes" {
}

locals {
name = "ex-${replace(basename(path.cwd), "_", "-")}"
environment = "control-plane"
region = "us-west-2"
name = "ex-${replace(basename(path.cwd), "_", "-")}"
environment = "control-plane"
region = "us-west-2"
cluster_version = "1.27"
gitops_url = var.gitops_url
gitops_revision = var.gitops_revision
gitops_path = var.gitops_path

aws_addons = {
enable_cert_manager = true
Expand Down Expand Up @@ -87,20 +91,32 @@ locals {
#enable_vpa = 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.aws_addons, local.oss_addons)
addons = merge(local.aws_addons, local.oss_addons, { kubernetes_version = local.cluster_version })

addons_metadata = merge({
aws_vpc_id = module.vpc.vpc_id # Only required when enabling the aws_gateway_api_controller addon
},
addons_metadata = merge(
module.eks_blueprints_addons.gitops_metadata,
{
aws_cluster_name = module.eks.cluster_name
aws_region = local.region
aws_account_id = data.aws_caller_identity.current.account_id
aws_vpc_id = module.vpc.vpc_id
},
{
aws_crossplane_iam_role_arn = module.crossplane_irsa_aws.iam_role_arn
aws_upbound_crossplane_iam_role_arn = module.crossplane_irsa_aws.iam_role_arn
},
{
gitops_bridge_repo_url = local.gitops_url
gitops_bridge_repo_revision = local.gitops_revision
}
)

argocd_bootstrap_app_of_apps = {
addons = file("${path.module}/bootstrap/addons.yaml")
addons = templatefile("${path.module}/bootstrap/addons.yaml", {
repoURL = local.gitops_url
targetRevision = local.gitops_revision
path = local.gitops_path
})
workloads = file("${path.module}/bootstrap/workloads.yaml")
}

Expand Down Expand Up @@ -209,7 +225,7 @@ module "eks" {
version = "~> 19.13"

cluster_name = local.name
cluster_version = "1.27"
cluster_version = local.cluster_version
cluster_endpoint_public_access = true


Expand Down
12 changes: 12 additions & 0 deletions argocd/iac/terraform/examples/eks/crossplane/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variable "gitops_url" {
description = "Git repository contains for addons"
default = "https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template"
}
variable "gitops_revision" {
description = "Git repository revision/branch/ref for addons"
default = "HEAD"
}
variable "gitops_path" {
description = "Git repository path for addons"
default = "bootstrap/control-plane/addons"
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ spec:
namespace: 'argocd'
project: default
source:
path: bootstrap/control-plane
repoURL: https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template
targetRevision: HEAD
path: ${path}
repoURL: ${repoURL}
targetRevision: ${targetRevision}
directory:
recurse: true
exclude: exclude/*
syncPolicy:
automated: {}
automated: {}
13 changes: 12 additions & 1 deletion argocd/iac/terraform/examples/eks/external-secrets/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ locals {
environment = "dev"
region = "us-west-2"
cluster_version = "1.27"
gitops_url = var.gitops_url
gitops_revision = var.gitops_revision
gitops_path = var.gitops_path

aws_secret_manager_secret_name = "argocd-ssh-key"
git_private_ssh_key = "~/.ssh/id_rsa" # Update with the git ssh key to be used by ArgoCD
Expand Down Expand Up @@ -94,11 +97,19 @@ locals {
aws_region = local.region
aws_account_id = data.aws_caller_identity.current.account_id
aws_vpc_id = module.vpc.vpc_id
},
{
gitops_bridge_repo_url = local.gitops_url
gitops_bridge_repo_revision = local.gitops_revision
}
)

argocd_bootstrap_app_of_apps = {
addons = file("${path.module}/bootstrap/addons.yaml")
addons = templatefile("${path.module}/bootstrap/addons.yaml", {
repoURL = local.gitops_url
targetRevision = local.gitops_revision
path = local.gitops_path
})
workloads = file("${path.module}/bootstrap/workloads.yaml")
}

Expand Down
12 changes: 12 additions & 0 deletions argocd/iac/terraform/examples/eks/external-secrets/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variable "gitops_url" {
description = "Git repository contains for addons"
default = "https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template"
}
variable "gitops_revision" {
description = "Git repository revision/branch/ref for addons"
default = "HEAD"
}
variable "gitops_path" {
description = "Git repository path for addons"
default = "bootstrap/control-plane/addons"
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ spec:
namespace: 'argocd'
project: default
source:
path: bootstrap/control-plane/addons
repoURL: https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template
targetRevision: HEAD
path: ${path}
repoURL: ${repoURL}
targetRevision: ${targetRevision}
directory:
recurse: true
exclude: exclude/*
syncPolicy:
automated: {}
automated: {}
13 changes: 12 additions & 1 deletion argocd/iac/terraform/examples/eks/hello-world/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ locals {
environment = "dev"
region = "us-west-2"
cluster_version = "1.27"
gitops_url = var.gitops_url
gitops_revision = var.gitops_revision
gitops_path = var.gitops_path

aws_addons = {
enable_cert_manager = true
Expand Down Expand Up @@ -91,11 +94,19 @@ locals {
aws_region = local.region
aws_account_id = data.aws_caller_identity.current.account_id
aws_vpc_id = module.vpc.vpc_id
},
{
gitops_bridge_repo_url = local.gitops_url
gitops_bridge_repo_revision = local.gitops_revision
}
)

argocd_bootstrap_app_of_apps = {
addons = file("${path.module}/bootstrap/addons.yaml")
addons = templatefile("${path.module}/bootstrap/addons.yaml", {
repoURL = local.gitops_url
targetRevision = local.gitops_revision
path = local.gitops_path
})
workloads = file("${path.module}/bootstrap/workloads.yaml")
}

Expand Down
12 changes: 12 additions & 0 deletions argocd/iac/terraform/examples/eks/hello-world/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variable "gitops_url" {
description = "Git repository contains for addons"
default = "https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template"
}
variable "gitops_revision" {
description = "Git repository revision/branch/ref for addons"
default = "HEAD"
}
variable "gitops_path" {
description = "Git repository path for addons"
default = "bootstrap/control-plane/addons"
}
Loading