Skip to content

Commit

Permalink
Added ArgoCD installation to TF
Browse files Browse the repository at this point in the history
  • Loading branch information
dm3ch committed Mar 2, 2024
1 parent 968428a commit 2910fc2
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 9 deletions.
20 changes: 20 additions & 0 deletions terraform/.terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

55 changes: 55 additions & 0 deletions terraform/argocd.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
locals {
argocd_values = {
# Configure repository connection
configs = {
# credentialTemplates = {
# github-ssh = {
# url = var.argocd_repository_url
# sshPrivateKey = var.argocd_private_key
# }
# }
# repositories = {
# github = {
# url = var.argocd_repository_url
# }
# }
}

# Configure initial applications list
# server = {
# additionalApplications = yamldecode(var.argocd_applications_definition)
# }

# Configure rbac to enable application CRD sync
repoServer = {
rbac = [{
apiGroups = ["argoproj.io"]
resources = ["applications"]
verbs = ["get", "list", "watch"]
}]
}

# Disable not used ArgoCD components
notifications = {
enabled = "false"
}
dex = {
enabled = "false"
}
applicationSet = {
enabled = "false"
}
}
}

resource "helm_release" "argocd" {
name = "argocd"
namespace = "argocd"
create_namespace = true

repository = "https://argoproj.github.io/argo-helm"
chart = "argo-cd"
version = var.argocd_version

values = [yamlencode(local.argocd_values)]
}
29 changes: 21 additions & 8 deletions terraform/providers.tf
Original file line number Diff line number Diff line change
@@ -1,23 +1,36 @@
terraform {
backend "gcs" {
bucket = "p2p-org-task-terraform-state"
prefix = "terraform/state"
}
required_providers {
google = {
source = "hashicorp/google"
source = "hashicorp/google"
version = "5.18.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
}
helm = {
source = "hashicorp/helm"
version = "2.12.1"
}
}
}

provider "google" {
project = var.project_id
region = var.region
project = var.project_id
region = var.region
}

terraform {
backend "gcs" {
bucket = "p2p-org-task-terraform-state"
prefix = "terraform/state"
data "google_client_config" "default" {
depends_on = [module.gke]
}

provider "helm" {
kubernetes {
host = "https://${module.gke.endpoint}"
token = data.google_client_config.default.access_token
cluster_ca_certificate = base64decode(module.gke.ca_certificate)
}
}
}
4 changes: 4 additions & 0 deletions terraform/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ variable "ip_range_services" {

variable "ip_range_nodes" {
description = "The subnetwork ip range to use for nodes"
}

variable "argocd_version" {
description = "Version of Argo CD to install"
}
4 changes: 3 additions & 1 deletion terraform/vars.auto.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ subnetwork_name = "gke-cluster"

ip_range_pods = "192.168.0.0/16"
ip_range_services = "10.96.0.0/12"
ip_range_nodes = "10.32.0.0/20"
ip_range_nodes = "10.32.0.0/20"

argocd_version = "6.6.0"

0 comments on commit 2910fc2

Please sign in to comment.