From 05de4eec7d6f973c168551a987bf5edd76e1a526 Mon Sep 17 00:00:00 2001 From: Muhammad Hamza Date: Sun, 28 Sep 2025 07:51:22 +0500 Subject: [PATCH 01/22] On branch master Your branch is up to date with 'origin/master'. Changes to be committed: modified: .gitignore new file: infra/.helm/cache/argo-cd-8.5.7.tgz new file: infra/main.tf new file: infra/modules/argocd/main.tf new file: infra/modules/argocd/outputs.tf new file: infra/modules/argocd/variables.tf new file: infra/outputs.tf new file: infra/providers.tf new file: infra/variables.tf new file: k8s/namespace.yaml --- .gitignore | 46 +++++++++++++++++++++++- infra/.helm/cache/argo-cd-8.5.7.tgz | Bin 0 -> 200689 bytes infra/main.tf | 22 ++++++++++++ infra/modules/argocd/main.tf | 47 ++++++++++++++++++++++++ infra/modules/argocd/outputs.tf | 15 ++++++++ infra/modules/argocd/variables.tf | 17 +++++++++ infra/outputs.tf | 14 ++++++++ infra/providers.tf | 38 ++++++++++++++++++++ infra/variables.tf | 54 ++++++++++++++++++++++++++++ k8s/namespace.yaml | 0 10 files changed, 252 insertions(+), 1 deletion(-) create mode 100644 infra/.helm/cache/argo-cd-8.5.7.tgz create mode 100644 infra/main.tf create mode 100644 infra/modules/argocd/main.tf create mode 100644 infra/modules/argocd/outputs.tf create mode 100644 infra/modules/argocd/variables.tf create mode 100644 infra/outputs.tf create mode 100644 infra/providers.tf create mode 100644 infra/variables.tf create mode 100644 k8s/namespace.yaml diff --git a/.gitignore b/.gitignore index 8cd0df3..1470115 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,46 @@ .vscode -.idea \ No newline at end of file +.idea + +# Node.js dependencies (frontend + gateway) +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Python dependencies (quoteservice or others) +__pycache__/ +*.py[cod] +*.egg-info/ +.venv/ +venv/ +env/ + +# Terraform +*.tfstate +*.tfstate.* +crash.log +*.tfvars +.terraform/ +.terraform.lock.hcl + +# Kustomize build output (just in case) +kustomization.yaml.backup +*.out + +# Minikube / kubectl +.kube/ +minikube/ + +# IDE / Editor +.vscode/ +.idea/ +*.swp +*.swo + +# OS-specific +.DS_Store +Thumbs.db + +# Logs +*.log +logs/ diff --git a/infra/.helm/cache/argo-cd-8.5.7.tgz b/infra/.helm/cache/argo-cd-8.5.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..63d59fd76289aca86cb590449920a15b3ff0c189 GIT binary patch literal 200689 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

Oo&L8ScFCrz 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

8y>c{HT!E{|wuHH> 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 P009600>r)T09GOZBGz#7 literal 0 HcmV?d00001 diff --git a/infra/main.tf b/infra/main.tf new file mode 100644 index 0000000..8d6db18 --- /dev/null +++ b/infra/main.tf @@ -0,0 +1,22 @@ +module "minikube" { + source = "./modules/minikube" + + cluster_name = "emumba-minikube-cluster" + kubernetes_version = var.minikube_kubernetes_version + driver = var.minikube_driver + nodes = var.minikube_nodes + cpus = var.minikube_cpus + memory = var.minikube_memory + cni = var.minikube_cni + addons = var.minikube_addons + delete_on_failure = var.minikube_delete_on_failure +} + +# module "argocd" { +# depends_on = [module.minikube] +# source = "./modules/argocd" + +# namespace = "argocd" +# release_name = "argo-cd" +# server_service_type = "NodePort" +# } diff --git a/infra/modules/argocd/main.tf b/infra/modules/argocd/main.tf new file mode 100644 index 0000000..ef5c7dd --- /dev/null +++ b/infra/modules/argocd/main.tf @@ -0,0 +1,47 @@ +terraform { + required_version = ">= 1.10.0" + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = ">= 2.38.0" + } + helm = { + source = "hashicorp/helm" + version = "3.0.2" + } + } +} + +resource "kubernetes_namespace" "argocd" { + metadata { + name = var.namespace + labels = { + "app.kubernetes.io/name" = "argocd" + "app.kubernetes.io/part-of" = "emumba-assessment-k8s-iac" + "app.kubernetes.io/managed-by" = "terraform" + } + } +} + +resource "helm_release" "argocd" { + name = var.release_name + repository = "https://argoproj.github.io/argo-helm" + chart = "argo-cd" + namespace = kubernetes_namespace.argocd.metadata[0].name + version = "8.5.7" + + values = [yamlencode({ + configs = { + params = { + "server.insecure" = "true" + } + } + server = { + service = { + type = var.server_service_type + } + } + })] + + depends_on = [kubernetes_namespace.argocd] +} diff --git a/infra/modules/argocd/outputs.tf b/infra/modules/argocd/outputs.tf new file mode 100644 index 0000000..32ce1c4 --- /dev/null +++ b/infra/modules/argocd/outputs.tf @@ -0,0 +1,15 @@ +output "namespace" { + value = kubernetes_namespace.argocd.metadata[0].name +} + +output "server_service" { + value = "${var.release_name}-argocd-server" +} + +output "admin_password_cmd" { + value = "kubectl -n ${kubernetes_namespace.argocd.metadata[0].name} get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d && echo" +} + +output "port_forward_cmd" { + value = "kubectl -n ${kubernetes_namespace.argocd.metadata[0].name} port-forward svc/${var.release_name}-argocd-server 8080:80" +} diff --git a/infra/modules/argocd/variables.tf b/infra/modules/argocd/variables.tf new file mode 100644 index 0000000..d632b1d --- /dev/null +++ b/infra/modules/argocd/variables.tf @@ -0,0 +1,17 @@ +variable "namespace" { + description = "Namespace for Argo CD" + type = string + default = "argocd" +} + +variable "release_name" { + description = "Helm release name" + type = string + default = "argo-cd" +} + +variable "server_service_type" { + description = "Service type for Argo CD server" + type = string + default = "NodePort" # good for local +} diff --git a/infra/outputs.tf b/infra/outputs.tf new file mode 100644 index 0000000..7d55958 --- /dev/null +++ b/infra/outputs.tf @@ -0,0 +1,14 @@ +output "cluster_name" { + value = module.minikube.cluster_name + description = "Created Minikube cluster name" +} + +output "api_server" { + value = module.minikube.host + description = "Kubernetes API server endpoint" +} + +output "how_to_use_kubectl" { + description = "Tip: set a kubeconfig context to talk to this cluster" + value = "kubectl cluster-info && kubectl get nodes" +} diff --git a/infra/providers.tf b/infra/providers.tf new file mode 100644 index 0000000..835d519 --- /dev/null +++ b/infra/providers.tf @@ -0,0 +1,38 @@ +terraform { + required_version = ">= 1.10.0" + + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = "2.38.0" + } + minikube = { + source = "scott-the-programmer/minikube" + version = ">= 0.5.3" + } + helm = { + source = "hashicorp/helm" + version = "3.0.2" + } + } +} + +# provider "kubernetes" { +# host = module.minikube.host +# client_certificate = module.minikube.client_certificate +# client_key = module.minikube.client_key +# cluster_ca_certificate = module.minikube.cluster_ca_certificate +# } + +# provider "helm" { +# kubernetes = { +# host = module.minikube.host +# client_certificate = module.minikube.client_certificate +# client_key = module.minikube.client_key +# cluster_ca_certificate = module.minikube.cluster_ca_certificate +# } + +# # keep repo cache local to the repo (prevents Temp-path issues on Windows) +# repository_config_path = "${path.module}/.helm/repositories.yaml" +# repository_cache = "${path.module}/.helm/cache" +# } \ No newline at end of file diff --git a/infra/variables.tf b/infra/variables.tf new file mode 100644 index 0000000..8643b0a --- /dev/null +++ b/infra/variables.tf @@ -0,0 +1,54 @@ +variable "minikube_driver" { + description = "Driver to use for Minikube (docker, hyperv, etc.)" + type = string + default = "docker" +} + +variable "minikube_nodes" { + description = "Total nodes for Minikube" + type = number + default = 3 +} + +variable "minikube_cpus" { + description = "CPUs for Minikube" + type = number + default = 4 +} + +variable "minikube_memory" { + description = "Memory for Minikube (e.g., 8192mb, 8g)" + type = string + default = "8192mb" +} + +variable "minikube_kubernetes_version" { + description = "Kubernetes version for Minikube" + type = string + default = "v1.30.0" +} + +variable "minikube_cni" { + description = "CNI plugin to use" + type = string + default = "bridge" +} + +variable "minikube_addons" { + description = "Addons to enable" + type = set(string) + default = [ + "dashboard", + "default-storageclass", + "ingress", + "metrics-server", + "storage-provisioner", + ] +} + +variable "minikube_delete_on_failure" { + description = "Delete cluster if start fails" + type = bool + default = true +} + diff --git a/k8s/namespace.yaml b/k8s/namespace.yaml new file mode 100644 index 0000000..e69de29 From d2c37d419fd8ebceaec40558aaca7d2396dbaba5 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 16:56:51 +0500 Subject: [PATCH 02/22] On branch master Your branch is up to date with 'origin/master'. Changes to be committed: deleted: infra/.helm/cache/argo-cd-8.5.7.tgz modified: infra/main.tf modified: infra/providers.tf deleted: k8s/namespace.yaml --- infra/.helm/cache/argo-cd-8.5.7.tgz | Bin 200689 -> 0 bytes infra/main.tf | 16 ++++++------- infra/providers.tf | 34 ++++++++++++++-------------- k8s/namespace.yaml | 0 4 files changed, 25 insertions(+), 25 deletions(-) delete mode 100644 infra/.helm/cache/argo-cd-8.5.7.tgz delete mode 100644 k8s/namespace.yaml diff --git a/infra/.helm/cache/argo-cd-8.5.7.tgz b/infra/.helm/cache/argo-cd-8.5.7.tgz deleted file mode 100644 index 63d59fd76289aca86cb590449920a15b3ff0c189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200689 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

Oo&L8ScFCrz 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

8y>c{HT!E{|wuHH> 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 P009600>r)T09GOZBGz#7 diff --git a/infra/main.tf b/infra/main.tf index 8d6db18..c351651 100644 --- a/infra/main.tf +++ b/infra/main.tf @@ -1,7 +1,7 @@ module "minikube" { source = "./modules/minikube" - cluster_name = "emumba-minikube-cluster" + cluster_name = "emumba-minikube-cluster-iac" kubernetes_version = var.minikube_kubernetes_version driver = var.minikube_driver nodes = var.minikube_nodes @@ -12,11 +12,11 @@ module "minikube" { delete_on_failure = var.minikube_delete_on_failure } -# module "argocd" { -# depends_on = [module.minikube] -# source = "./modules/argocd" +module "argocd" { + depends_on = [module.minikube] + source = "./modules/argocd" -# namespace = "argocd" -# release_name = "argo-cd" -# server_service_type = "NodePort" -# } + namespace = "argocd" + release_name = "argo-cd" + server_service_type = "NodePort" +} diff --git a/infra/providers.tf b/infra/providers.tf index 835d519..90860d5 100644 --- a/infra/providers.tf +++ b/infra/providers.tf @@ -17,22 +17,22 @@ terraform { } } -# provider "kubernetes" { -# host = module.minikube.host -# client_certificate = module.minikube.client_certificate -# client_key = module.minikube.client_key -# cluster_ca_certificate = module.minikube.cluster_ca_certificate -# } +provider "kubernetes" { + host = module.minikube.host + client_certificate = module.minikube.client_certificate + client_key = module.minikube.client_key + cluster_ca_certificate = module.minikube.cluster_ca_certificate +} -# provider "helm" { -# kubernetes = { -# host = module.minikube.host -# client_certificate = module.minikube.client_certificate -# client_key = module.minikube.client_key -# cluster_ca_certificate = module.minikube.cluster_ca_certificate -# } +provider "helm" { + kubernetes = { + host = module.minikube.host + client_certificate = module.minikube.client_certificate + client_key = module.minikube.client_key + cluster_ca_certificate = module.minikube.cluster_ca_certificate + } -# # keep repo cache local to the repo (prevents Temp-path issues on Windows) -# repository_config_path = "${path.module}/.helm/repositories.yaml" -# repository_cache = "${path.module}/.helm/cache" -# } \ No newline at end of file + # keep repo cache local to the repo (prevents Temp-path issues on Windows) + repository_config_path = "${path.module}/.helm/repositories.yaml" + repository_cache = "${path.module}/.helm/cache" +} \ No newline at end of file diff --git a/k8s/namespace.yaml b/k8s/namespace.yaml deleted file mode 100644 index e69de29..0000000 From 3405b762f619c460ba90944f26f24512c4454b56 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 19:11:40 +0500 Subject: [PATCH 03/22] On branch master Your branch is up to date with 'origin/master'. Changes to be committed: modified: infra/main.tf modified: infra/variables.tf --- infra/main.tf | 16 ++++++++-------- infra/variables.tf | 19 +++++-------------- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/infra/main.tf b/infra/main.tf index c351651..486a7be 100644 --- a/infra/main.tf +++ b/infra/main.tf @@ -1,7 +1,7 @@ module "minikube" { source = "./modules/minikube" - cluster_name = "emumba-minikube-cluster-iac" + cluster_name = var.minikube_cluster_name kubernetes_version = var.minikube_kubernetes_version driver = var.minikube_driver nodes = var.minikube_nodes @@ -12,11 +12,11 @@ module "minikube" { delete_on_failure = var.minikube_delete_on_failure } -module "argocd" { - depends_on = [module.minikube] - source = "./modules/argocd" +# module "argocd" { +# depends_on = [module.minikube] +# source = "./modules/argocd" - namespace = "argocd" - release_name = "argo-cd" - server_service_type = "NodePort" -} +# namespace = "argocd" +# release_name = "argo-cd" +# server_service_type = "NodePort" +# } diff --git a/infra/variables.tf b/infra/variables.tf index 8643b0a..7f23a56 100644 --- a/infra/variables.tf +++ b/infra/variables.tf @@ -1,54 +1,45 @@ variable "minikube_driver" { description = "Driver to use for Minikube (docker, hyperv, etc.)" type = string - default = "docker" } variable "minikube_nodes" { description = "Total nodes for Minikube" type = number - default = 3 } variable "minikube_cpus" { description = "CPUs for Minikube" type = number - default = 4 } variable "minikube_memory" { description = "Memory for Minikube (e.g., 8192mb, 8g)" type = string - default = "8192mb" } variable "minikube_kubernetes_version" { description = "Kubernetes version for Minikube" type = string - default = "v1.30.0" } variable "minikube_cni" { description = "CNI plugin to use" type = string - default = "bridge" } variable "minikube_addons" { description = "Addons to enable" type = set(string) - default = [ - "dashboard", - "default-storageclass", - "ingress", - "metrics-server", - "storage-provisioner", - ] + } variable "minikube_delete_on_failure" { description = "Delete cluster if start fails" type = bool - default = true } +variable "minikube_cluster_name" { + description = "Name for the Minikube cluster" + type = string +} \ No newline at end of file From e1ba7538a2978161fa252064eabfd0f6376082f3 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 19:46:50 +0500 Subject: [PATCH 04/22] On branch master Your branch is up to date with 'origin/master'. Changes to be committed: new file: infra/terraform.tfvars.example --- infra/terraform.tfvars.example | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 infra/terraform.tfvars.example diff --git a/infra/terraform.tfvars.example b/infra/terraform.tfvars.example new file mode 100644 index 0000000..ea0f817 --- /dev/null +++ b/infra/terraform.tfvars.example @@ -0,0 +1,15 @@ +minikube_driver = "docker" +minikube_nodes = 3 +minikube_cpus = 4 +minikube_memory = "8192mb" +minikube_kubernetes_version = "v1.30.0" +minikube_cni = "bridge" +minikube_addons = [ + "dashboard", + "default-storageclass", + "ingress", + "metrics-server", + "storage-provisioner", +] +minikube_delete_on_failure = true +minikube_cluster_name = "minikube-cluster" From 4ef1d3f1f82bb2ab6761f261cebaab055ab1804f Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 19:48:36 +0500 Subject: [PATCH 05/22] On branch master Your branch is up to date with 'origin/master'. Changes to be committed: modified: .gitignore new file: infra/modules/minikube/main.tf new file: infra/modules/minikube/outputs.tf new file: infra/modules/minikube/variables.tf --- .gitignore | 2 +- infra/modules/minikube/main.tf | 24 ++++++++++++++++ infra/modules/minikube/outputs.tf | 22 +++++++++++++++ infra/modules/minikube/variables.tf | 44 +++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 infra/modules/minikube/main.tf create mode 100644 infra/modules/minikube/outputs.tf create mode 100644 infra/modules/minikube/variables.tf diff --git a/.gitignore b/.gitignore index 1470115..cb733db 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ kustomization.yaml.backup # Minikube / kubectl .kube/ -minikube/ + # IDE / Editor .vscode/ diff --git a/infra/modules/minikube/main.tf b/infra/modules/minikube/main.tf new file mode 100644 index 0000000..a980514 --- /dev/null +++ b/infra/modules/minikube/main.tf @@ -0,0 +1,24 @@ +terraform { + required_version = ">= 1.10.0" + required_providers { + minikube = { + source = "scott-the-programmer/minikube" + version = ">= 0.5.3" + } + } +} + +provider "minikube" { + kubernetes_version = var.kubernetes_version +} + +resource "minikube_cluster" "this" { + cluster_name = var.cluster_name + driver = var.driver + nodes = var.nodes + cpus = var.cpus + memory = var.memory + cni = var.cni + delete_on_failure = var.delete_on_failure + addons = var.addons +} diff --git a/infra/modules/minikube/outputs.tf b/infra/modules/minikube/outputs.tf new file mode 100644 index 0000000..1769a9b --- /dev/null +++ b/infra/modules/minikube/outputs.tf @@ -0,0 +1,22 @@ +output "host" { + value = minikube_cluster.this.host + description = "Kubernetes API server host" +} +output "client_certificate" { + value = minikube_cluster.this.client_certificate + description = "Client certificate (PEM)" + sensitive = true +} +output "client_key" { + value = minikube_cluster.this.client_key + description = "Client key (PEM)" + sensitive = true +} +output "cluster_ca_certificate" { + value = minikube_cluster.this.cluster_ca_certificate + description = "Cluster CA certificate (PEM)" +} +output "cluster_name" { + value = minikube_cluster.this.cluster_name + description = "Minikube cluster name" +} diff --git a/infra/modules/minikube/variables.tf b/infra/modules/minikube/variables.tf new file mode 100644 index 0000000..d2d80c2 --- /dev/null +++ b/infra/modules/minikube/variables.tf @@ -0,0 +1,44 @@ +variable "cluster_name" { + description = "Name of the Minikube cluster" + type = string +} + +variable "kubernetes_version" { + description = "Kubernetes version for Minikube (e.g., v1.30.0 or 'stable')" + type = string +} + +variable "driver" { + description = "Minikube driver (docker, hyperv, virtualbox, hyperkit, kvm2, etc.)" + type = string +} + +variable "nodes" { + description = "Total nodes (control-plane + workers)" + type = number +} + +variable "cpus" { + description = "Number of CPUs allocated to the cluster" + type = number +} + +variable "memory" { + description = "RAM for the cluster, e.g. 8192mb, 8g" + type = string +} + +variable "cni" { + description = "CNI plugin (auto, bridge, calico, cilium, flannel, kindnet, or path)" + type = string +} + +variable "addons" { + description = "Minikube addons to enable" + type = set(string) +} + +variable "delete_on_failure" { + description = "Delete cluster if start fails" + type = bool +} From eaa3c61de1a71b7b917808f0c3bd1521856d63b5 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 20:57:20 +0500 Subject: [PATCH 06/22] On branch local-exec-minikube Changes to be committed: modified: infra/main.tf modified: infra/modules/argocd/main.tf modified: infra/modules/argocd/variables.tf modified: infra/modules/minikube/main.tf modified: infra/modules/minikube/outputs.tf modified: infra/modules/minikube/variables.tf modified: infra/outputs.tf modified: infra/providers.tf modified: infra/variables.tf --- infra/main.tf | 32 ++++++++--------- infra/modules/argocd/main.tf | 4 +++ infra/modules/argocd/variables.tf | 2 +- infra/modules/minikube/main.tf | 47 +++++++++++++++++-------- infra/modules/minikube/outputs.tf | 22 ------------ infra/modules/minikube/variables.tf | 2 ++ infra/outputs.tf | 14 -------- infra/providers.tf | 28 +++++---------- infra/variables.tf | 54 +++++------------------------ 9 files changed, 72 insertions(+), 133 deletions(-) diff --git a/infra/main.tf b/infra/main.tf index 486a7be..aee3d08 100644 --- a/infra/main.tf +++ b/infra/main.tf @@ -1,22 +1,20 @@ module "minikube" { source = "./modules/minikube" - cluster_name = var.minikube_cluster_name - kubernetes_version = var.minikube_kubernetes_version - driver = var.minikube_driver - nodes = var.minikube_nodes - cpus = var.minikube_cpus - memory = var.minikube_memory - cni = var.minikube_cni - addons = var.minikube_addons - delete_on_failure = var.minikube_delete_on_failure + cluster_name = var.cluster_name + kubernetes_version = var.kubernetes_version + driver = var.driver + nodes = var.nodes + cpus = var.cpus + memory = var.memory + cni = var.cni + addons = var.addons + delete_on_failure = var.delete_on_failure } -# module "argocd" { -# depends_on = [module.minikube] -# source = "./modules/argocd" - -# namespace = "argocd" -# release_name = "argo-cd" -# server_service_type = "NodePort" -# } +module "argocd" { + source = "./modules/argocd" + namespace = "argocd" + release_name = "argo-cd" + server_service_type = "NodePort" +} \ No newline at end of file diff --git a/infra/modules/argocd/main.tf b/infra/modules/argocd/main.tf index ef5c7dd..b6a6534 100644 --- a/infra/modules/argocd/main.tf +++ b/infra/modules/argocd/main.tf @@ -12,6 +12,10 @@ terraform { } } +provider "kubernetes" { + config_path = "~/.kube/config" +} + resource "kubernetes_namespace" "argocd" { metadata { name = var.namespace diff --git a/infra/modules/argocd/variables.tf b/infra/modules/argocd/variables.tf index d632b1d..ef6562b 100644 --- a/infra/modules/argocd/variables.tf +++ b/infra/modules/argocd/variables.tf @@ -13,5 +13,5 @@ variable "release_name" { variable "server_service_type" { description = "Service type for Argo CD server" type = string - default = "NodePort" # good for local + default = "NodePort" } diff --git a/infra/modules/minikube/main.tf b/infra/modules/minikube/main.tf index a980514..dcecc00 100644 --- a/infra/modules/minikube/main.tf +++ b/infra/modules/minikube/main.tf @@ -1,24 +1,41 @@ terraform { - required_version = ">= 1.10.0" required_providers { - minikube = { - source = "scott-the-programmer/minikube" - version = ">= 0.5.3" + null = { + source = "hashicorp/null" + version = "3.2.4" } } } -provider "minikube" { - kubernetes_version = var.kubernetes_version +# Build the start command from your variables (no addons) +locals { + start_cmd = join(" ", [ + "minikube start", + "--profile=${var.cluster_name}", + "--driver=${var.driver}", + "--nodes=${var.nodes}", + "--cpus=${var.cpus}", + "--memory=${var.memory}", + "--kubernetes-version=${var.kubernetes_version}", + "--cni=${var.cni}" + ]) } -resource "minikube_cluster" "this" { - cluster_name = var.cluster_name - driver = var.driver - nodes = var.nodes - cpus = var.cpus - memory = var.memory - cni = var.cni - delete_on_failure = var.delete_on_failure - addons = var.addons +# Start a Minikube cluster +resource "null_resource" "minikube_cluster" { + # Keep it simple: if any input changes, re-run using a single trigger + triggers = { + cmd = local.start_cmd + profile_name = var.cluster_name + } + + provisioner "local-exec" { + command = local.start_cmd + } + + provisioner "local-exec" { + when = destroy + # Destroy-time provisioners may only reference self.*, so use trigger + command = "minikube delete -p ${self.triggers.profile_name}" + } } diff --git a/infra/modules/minikube/outputs.tf b/infra/modules/minikube/outputs.tf index 1769a9b..e69de29 100644 --- a/infra/modules/minikube/outputs.tf +++ b/infra/modules/minikube/outputs.tf @@ -1,22 +0,0 @@ -output "host" { - value = minikube_cluster.this.host - description = "Kubernetes API server host" -} -output "client_certificate" { - value = minikube_cluster.this.client_certificate - description = "Client certificate (PEM)" - sensitive = true -} -output "client_key" { - value = minikube_cluster.this.client_key - description = "Client key (PEM)" - sensitive = true -} -output "cluster_ca_certificate" { - value = minikube_cluster.this.cluster_ca_certificate - description = "Cluster CA certificate (PEM)" -} -output "cluster_name" { - value = minikube_cluster.this.cluster_name - description = "Minikube cluster name" -} diff --git a/infra/modules/minikube/variables.tf b/infra/modules/minikube/variables.tf index d2d80c2..aa1081c 100644 --- a/infra/modules/minikube/variables.tf +++ b/infra/modules/minikube/variables.tf @@ -31,11 +31,13 @@ variable "memory" { variable "cni" { description = "CNI plugin (auto, bridge, calico, cilium, flannel, kindnet, or path)" type = string + default = "bridge" } variable "addons" { description = "Minikube addons to enable" type = set(string) + } variable "delete_on_failure" { diff --git a/infra/outputs.tf b/infra/outputs.tf index 7d55958..e69de29 100644 --- a/infra/outputs.tf +++ b/infra/outputs.tf @@ -1,14 +0,0 @@ -output "cluster_name" { - value = module.minikube.cluster_name - description = "Created Minikube cluster name" -} - -output "api_server" { - value = module.minikube.host - description = "Kubernetes API server endpoint" -} - -output "how_to_use_kubectl" { - description = "Tip: set a kubeconfig context to talk to this cluster" - value = "kubectl cluster-info && kubectl get nodes" -} diff --git a/infra/providers.tf b/infra/providers.tf index 90860d5..68c3c3c 100644 --- a/infra/providers.tf +++ b/infra/providers.tf @@ -1,14 +1,13 @@ terraform { required_version = ">= 1.10.0" - required_providers { + null = { + source = "hashicorp/null" + version = "3.2.4" + } kubernetes = { source = "hashicorp/kubernetes" - version = "2.38.0" - } - minikube = { - source = "scott-the-programmer/minikube" - version = ">= 0.5.3" + version = ">= 2.38.0" } helm = { source = "hashicorp/helm" @@ -18,21 +17,12 @@ terraform { } provider "kubernetes" { - host = module.minikube.host - client_certificate = module.minikube.client_certificate - client_key = module.minikube.client_key - cluster_ca_certificate = module.minikube.cluster_ca_certificate + config_path = "~/.kube/config" } provider "helm" { kubernetes = { - host = module.minikube.host - client_certificate = module.minikube.client_certificate - client_key = module.minikube.client_key - cluster_ca_certificate = module.minikube.cluster_ca_certificate + config_path = "~/.kube/config" + config_context = "emumba-minikube-cluster" } - - # keep repo cache local to the repo (prevents Temp-path issues on Windows) - repository_config_path = "${path.module}/.helm/repositories.yaml" - repository_cache = "${path.module}/.helm/cache" -} \ No newline at end of file +} diff --git a/infra/variables.tf b/infra/variables.tf index 7f23a56..44aa21e 100644 --- a/infra/variables.tf +++ b/infra/variables.tf @@ -1,45 +1,9 @@ -variable "minikube_driver" { - description = "Driver to use for Minikube (docker, hyperv, etc.)" - type = string -} - -variable "minikube_nodes" { - description = "Total nodes for Minikube" - type = number -} - -variable "minikube_cpus" { - description = "CPUs for Minikube" - type = number -} - -variable "minikube_memory" { - description = "Memory for Minikube (e.g., 8192mb, 8g)" - type = string -} - -variable "minikube_kubernetes_version" { - description = "Kubernetes version for Minikube" - type = string -} - -variable "minikube_cni" { - description = "CNI plugin to use" - type = string -} - -variable "minikube_addons" { - description = "Addons to enable" - type = set(string) - -} - -variable "minikube_delete_on_failure" { - description = "Delete cluster if start fails" - type = bool -} - -variable "minikube_cluster_name" { - description = "Name for the Minikube cluster" - type = string -} \ No newline at end of file +variable "cluster_name" { type = string } +variable "kubernetes_version" { type = string } +variable "driver" { type = string } +variable "nodes" { type = number } +variable "cpus" { type = number } +variable "memory" { type = string } +variable "cni" { type = string } +variable "addons" { type = set(string) } +variable "delete_on_failure" { type = bool } \ No newline at end of file From 2ea3704546079550aa36da3b03fab31ca663350f Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 21:50:33 +0500 Subject: [PATCH 07/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: infra/main.tf modified: infra/modules/argocd/main.tf modified: infra/modules/argocd/variables.tf modified: infra/modules/minikube/main.tf modified: infra/providers.tf modified: infra/variables.tf new file: k8s/base/apigateway/configmap.yaml new file: k8s/base/apigateway/deployment.yaml new file: k8s/base/apigateway/hpa.yaml new file: k8s/base/apigateway/service.yaml new file: k8s/base/frontend/configmap.yaml new file: k8s/base/frontend/deployment.yaml new file: k8s/base/frontend/hpa.yaml new file: k8s/base/frontend/service.yaml new file: k8s/base/kustomization.yaml new file: k8s/base/namespace.yaml new file: k8s/base/overlays/dev/kustomization.yaml new file: k8s/base/quoteservice/configmap.yaml new file: k8s/base/quoteservice/deployment.yaml new file: k8s/base/quoteservice/hpa.yaml new file: k8s/base/quoteservice/service.yaml new file: k8s/base/rbac/role-readonly.yaml new file: k8s/base/rbac/role-readwrite.yaml new file: k8s/base/rbac/rolebinding-readonly.yaml new file: k8s/base/rbac/rolebinding-readwrite.yaml new file: k8s/base/resourcequota.yaml --- infra/main.tf | 5 +- infra/modules/argocd/main.tf | 83 +++++++++++++++++++++++- infra/modules/argocd/variables.tf | 23 +++++++ infra/modules/minikube/main.tf | 6 +- infra/providers.tf | 2 +- infra/variables.tf | 21 +++--- k8s/base/apigateway/configmap.yaml | 7 ++ k8s/base/apigateway/deployment.yaml | 37 +++++++++++ k8s/base/apigateway/hpa.yaml | 19 ++++++ k8s/base/apigateway/service.yaml | 13 ++++ k8s/base/frontend/configmap.yaml | 7 ++ k8s/base/frontend/deployment.yaml | 34 ++++++++++ k8s/base/frontend/hpa.yaml | 19 ++++++ k8s/base/frontend/service.yaml | 11 ++++ k8s/base/kustomization.yaml | 22 +++++++ k8s/base/namespace.yaml | 6 ++ k8s/base/overlays/dev/kustomization.yaml | 12 ++++ k8s/base/quoteservice/configmap.yaml | 6 ++ k8s/base/quoteservice/deployment.yaml | 34 ++++++++++ k8s/base/quoteservice/hpa.yaml | 19 ++++++ k8s/base/quoteservice/service.yaml | 11 ++++ k8s/base/rbac/role-readonly.yaml | 9 +++ k8s/base/rbac/role-readwrite.yaml | 9 +++ k8s/base/rbac/rolebinding-readonly.yaml | 13 ++++ k8s/base/rbac/rolebinding-readwrite.yaml | 13 ++++ k8s/base/resourcequota.yaml | 12 ++++ 26 files changed, 438 insertions(+), 15 deletions(-) create mode 100644 k8s/base/apigateway/configmap.yaml create mode 100644 k8s/base/apigateway/deployment.yaml create mode 100644 k8s/base/apigateway/hpa.yaml create mode 100644 k8s/base/apigateway/service.yaml create mode 100644 k8s/base/frontend/configmap.yaml create mode 100644 k8s/base/frontend/deployment.yaml create mode 100644 k8s/base/frontend/hpa.yaml create mode 100644 k8s/base/frontend/service.yaml create mode 100644 k8s/base/kustomization.yaml create mode 100644 k8s/base/namespace.yaml create mode 100644 k8s/base/overlays/dev/kustomization.yaml create mode 100644 k8s/base/quoteservice/configmap.yaml create mode 100644 k8s/base/quoteservice/deployment.yaml create mode 100644 k8s/base/quoteservice/hpa.yaml create mode 100644 k8s/base/quoteservice/service.yaml create mode 100644 k8s/base/rbac/role-readonly.yaml create mode 100644 k8s/base/rbac/role-readwrite.yaml create mode 100644 k8s/base/rbac/rolebinding-readonly.yaml create mode 100644 k8s/base/rbac/rolebinding-readwrite.yaml create mode 100644 k8s/base/resourcequota.yaml diff --git a/infra/main.tf b/infra/main.tf index aee3d08..769d0a3 100644 --- a/infra/main.tf +++ b/infra/main.tf @@ -13,8 +13,11 @@ module "minikube" { } module "argocd" { - source = "./modules/argocd" + source = "./modules/argocd" namespace = "argocd" release_name = "argo-cd" server_service_type = "NodePort" + github_pat = var.github_pat + github_repo_url = var.github_repo_url + github_username = var.github_username } \ No newline at end of file diff --git a/infra/modules/argocd/main.tf b/infra/modules/argocd/main.tf index b6a6534..9c80663 100644 --- a/infra/modules/argocd/main.tf +++ b/infra/modules/argocd/main.tf @@ -13,9 +13,16 @@ terraform { } provider "kubernetes" { - config_path = "~/.kube/config" + config_path = pathexpand("~/.kube/config") } +provider "helm" { + kubernetes = { + config_path = pathexpand("~/.kube/config") + } +} + + resource "kubernetes_namespace" "argocd" { metadata { name = var.namespace @@ -49,3 +56,77 @@ resource "helm_release" "argocd" { depends_on = [kubernetes_namespace.argocd] } + +# Repo credential (HTTPS + PAT) +resource "kubernetes_secret" "argocd_repo_github_https" { + metadata { + name = "repo-github-emumba-https" + namespace = kubernetes_namespace.argocd.metadata[0].name + labels = { "argocd.argoproj.io/secret-type" = "repository" } + } + type = "Opaque" + data = { + type = "git" + url = var.github_repo_url + username = "git" + password = var.github_pat + } +} + +# AppProject that your Application references +resource "kubernetes_manifest" "emumba_project" { + manifest = { + apiVersion = "argoproj.io/v1alpha1" + kind = "AppProject" + metadata = { + name = "emumba-deployment" + namespace = kubernetes_namespace.argocd.metadata[0].name + labels = { "app.kubernetes.io/part-of" = "emumba-assessment-k8s-iac" } + } + spec = { + description = "Project for Emumba assessment" + sourceRepos = [var.github_repo_url] # or ["*"] + destinations = [{ + namespace = "emumba-assessment" + server = "https://kubernetes.default.svc" + }] + clusterResourceWhitelist = [{ group = "*", kind = "*" }] + namespaceResourceWhitelist = [{ group = "*", kind = "*" }] + } + } + depends_on = [helm_release.argocd] +} + +# Application that deploys your Kustomize overlay +resource "kubernetes_manifest" "app" { + manifest = { + apiVersion = "argoproj.io/v1alpha1" + kind = "Application" + metadata = { + name = "emumba-assessment-app" + namespace = kubernetes_namespace.argocd.metadata[0].name + labels = { "app.kubernetes.io/part-of" = "emumba-assessment-k8s-iac" } + } + spec = { + project = "emumba-deployment" + source = { + repoURL = var.github_repo_url + targetRevision = "local-exec-minikube" + path = "k8s/overlays/dev" + } + destination = { + server = "https://kubernetes.default.svc" + namespace = "emumba-assessment" + } + syncPolicy = { + automated = { prune = true, selfHeal = true } + syncOptions = ["CreateNamespace=true"] + } + } + } + depends_on = [ + helm_release.argocd, + kubernetes_manifest.emumba_project, + kubernetes_secret.argocd_repo_github_https + ] +} diff --git a/infra/modules/argocd/variables.tf b/infra/modules/argocd/variables.tf index ef6562b..f62c0e7 100644 --- a/infra/modules/argocd/variables.tf +++ b/infra/modules/argocd/variables.tf @@ -15,3 +15,26 @@ variable "server_service_type" { type = string default = "NodePort" } + +variable "application_name" { + description = "Name of the Argo CD Application" + type = string + default = "emumba-assessment-app" +} + +variable "github_repo_url" { + type = string + description = "HTTPS URL to the repo" + default = "https://github.com/aliannus2/emumba-assessment-k8s-iac.git" +} +variable "github_pat" { + type = string + description = "GitHub Personal Access Token (read-only)" + sensitive = true +} + +variable "github_username" { + type = string + description = "GitHub username or organization name" + default = "aliannus2" +} \ No newline at end of file diff --git a/infra/modules/minikube/main.tf b/infra/modules/minikube/main.tf index dcecc00..620f844 100644 --- a/infra/modules/minikube/main.tf +++ b/infra/modules/minikube/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { null = { - source = "hashicorp/null" + source = "hashicorp/null" version = "3.2.4" } } @@ -25,7 +25,7 @@ locals { resource "null_resource" "minikube_cluster" { # Keep it simple: if any input changes, re-run using a single trigger triggers = { - cmd = local.start_cmd + cmd = local.start_cmd profile_name = var.cluster_name } @@ -34,7 +34,7 @@ resource "null_resource" "minikube_cluster" { } provisioner "local-exec" { - when = destroy + when = destroy # Destroy-time provisioners may only reference self.*, so use trigger command = "minikube delete -p ${self.triggers.profile_name}" } diff --git a/infra/providers.tf b/infra/providers.tf index 68c3c3c..0e13525 100644 --- a/infra/providers.tf +++ b/infra/providers.tf @@ -17,7 +17,7 @@ terraform { } provider "kubernetes" { - config_path = "~/.kube/config" + config_path = "~/.kube/config" } provider "helm" { diff --git a/infra/variables.tf b/infra/variables.tf index 44aa21e..3b89f75 100644 --- a/infra/variables.tf +++ b/infra/variables.tf @@ -1,9 +1,12 @@ -variable "cluster_name" { type = string } -variable "kubernetes_version" { type = string } -variable "driver" { type = string } -variable "nodes" { type = number } -variable "cpus" { type = number } -variable "memory" { type = string } -variable "cni" { type = string } -variable "addons" { type = set(string) } -variable "delete_on_failure" { type = bool } \ No newline at end of file +variable "cluster_name" { type = string } +variable "kubernetes_version" { type = string } +variable "driver" { type = string } +variable "nodes" { type = number } +variable "cpus" { type = number } +variable "memory" { type = string } +variable "cni" { type = string } +variable "addons" { type = set(string) } +variable "delete_on_failure" { type = bool } +variable "github_username" { type = string } +variable "github_pat" { type = string } +variable "github_repo_url" { type = string } \ No newline at end of file diff --git a/k8s/base/apigateway/configmap.yaml b/k8s/base/apigateway/configmap.yaml new file mode 100644 index 0000000..cbe327c --- /dev/null +++ b/k8s/base/apigateway/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: apigateway-config + namespace: emumba-assessment +data: + QUOTE_SERVICE_URL: "http://quoteservice.emumba-assessment.svc.cluster.local:5000" diff --git a/k8s/base/apigateway/deployment.yaml b/k8s/base/apigateway/deployment.yaml new file mode 100644 index 0000000..5496ad9 --- /dev/null +++ b/k8s/base/apigateway/deployment.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: apigateway + namespace: emumba-assessment + labels: &lbl + app.kubernetes.io/name: apigateway + app.kubernetes.io/part-of: emumba-assessment-k8s-iac +spec: + replicas: 2 + selector: { matchLabels: *lbl } + template: + metadata: { labels: *lbl } + spec: + containers: + - name: apigateway + image: ghcr.io/your/repo/apigateway:dev # TODO update + ports: [{ containerPort: 3000 }] + envFrom: + - configMapRef: { name: apigateway-config } + readinessProbe: + httpGet: { path: /api/status, port: 3000 } + initialDelaySeconds: 5 + periodSeconds: 5 + livenessProbe: + httpGet: { path: /api/status, port: 3000 } + initialDelaySeconds: 10 + periodSeconds: 10 + resources: + requests: { cpu: "100m", memory: "128Mi" } + limits: { cpu: "500m", memory: "512Mi" } + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + labelSelector: + matchLabels: *lbl diff --git a/k8s/base/apigateway/hpa.yaml b/k8s/base/apigateway/hpa.yaml new file mode 100644 index 0000000..9b78d46 --- /dev/null +++ b/k8s/base/apigateway/hpa.yaml @@ -0,0 +1,19 @@ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: apigateway + namespace: emumba-assessment +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: apigateway + minReplicas: 2 + maxReplicas: 5 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 60 diff --git a/k8s/base/apigateway/service.yaml b/k8s/base/apigateway/service.yaml new file mode 100644 index 0000000..48746a1 --- /dev/null +++ b/k8s/base/apigateway/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: apigateway + namespace: emumba-assessment +spec: + selector: + app.kubernetes.io/name: apigateway + ports: + - port: 3000 + targetPort: 3000 + protocol: TCP + type: ClusterIP diff --git a/k8s/base/frontend/configmap.yaml b/k8s/base/frontend/configmap.yaml new file mode 100644 index 0000000..0446ff6 --- /dev/null +++ b/k8s/base/frontend/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: frontend-config + namespace: emumba-assessment +data: + API_GATEWAY: "http://apigateway.emumba-assessment.svc.cluster.local:3000" diff --git a/k8s/base/frontend/deployment.yaml b/k8s/base/frontend/deployment.yaml new file mode 100644 index 0000000..b0fcc95 --- /dev/null +++ b/k8s/base/frontend/deployment.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend + namespace: emumba-assessment + labels: &lbl + app.kubernetes.io/name: frontend + app.kubernetes.io/part-of: emumba-assessment-k8s-iac +spec: + replicas: 2 + selector: { matchLabels: *lbl } + template: + metadata: { labels: *lbl } + spec: + containers: + - name: frontend + image: ghcr.io/your/repo/frontend:dev # TODO update + ports: [{ containerPort: 8080 }] + envFrom: + - configMapRef: { name: frontend-config } + readinessProbe: + httpGet: { path: /, port: 8080 } + initialDelaySeconds: 5 + livenessProbe: + httpGet: { path: /, port: 8080 } + initialDelaySeconds: 10 + resources: + requests: { cpu: "50m", memory: "64Mi" } + limits: { cpu: "250m", memory: "256Mi" } + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + labelSelector: { matchLabels: *lbl } diff --git a/k8s/base/frontend/hpa.yaml b/k8s/base/frontend/hpa.yaml new file mode 100644 index 0000000..4741f3b --- /dev/null +++ b/k8s/base/frontend/hpa.yaml @@ -0,0 +1,19 @@ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: frontend + namespace: emumba-assessment +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: frontend + minReplicas: 2 + maxReplicas: 5 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 60 diff --git a/k8s/base/frontend/service.yaml b/k8s/base/frontend/service.yaml new file mode 100644 index 0000000..0a789a3 --- /dev/null +++ b/k8s/base/frontend/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend + namespace: emumba-assessment +spec: + selector: + app.kubernetes.io/name: frontend + ports: + - port: 8080 + targetPort: 8080 diff --git a/k8s/base/kustomization.yaml b/k8s/base/kustomization.yaml new file mode 100644 index 0000000..ab89a5f --- /dev/null +++ b/k8s/base/kustomization.yaml @@ -0,0 +1,22 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: emumba-assessment +resources: + - namespace.yaml + - resourcequota.yaml + - rbac/role-readonly.yaml + - rbac/role-readwrite.yaml + - rbac/rolebinding-readonly.yaml + - rbac/rolebinding-readwrite.yaml + - apigateway/deployment.yaml + - apigateway/service.yaml + - apigateway/configmap.yaml + - apigateway/hpa.yaml + - quoteservice/deployment.yaml + - quoteservice/service.yaml + - quoteservice/configmap.yaml + - quoteservice/hpa.yaml + - frontend/deployment.yaml + - frontend/service.yaml + - frontend/configmap.yaml + - frontend/hpa.yaml diff --git a/k8s/base/namespace.yaml b/k8s/base/namespace.yaml new file mode 100644 index 0000000..385ad87 --- /dev/null +++ b/k8s/base/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: emumba-assessment + labels: + app.kubernetes.io/part-of: emumba-assessment-k8s-iac diff --git a/k8s/base/overlays/dev/kustomization.yaml b/k8s/base/overlays/dev/kustomization.yaml new file mode 100644 index 0000000..1e35dff --- /dev/null +++ b/k8s/base/overlays/dev/kustomization.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base +images: + - name: ghcr.io/your/repo/apigateway + newTag: dev + - name: ghcr.io/your/repo/quoteservice + newTag: dev + - name: ghcr.io/your/repo/frontend + newTag: dev +namespace: emumba-assessment \ No newline at end of file diff --git a/k8s/base/quoteservice/configmap.yaml b/k8s/base/quoteservice/configmap.yaml new file mode 100644 index 0000000..864c271 --- /dev/null +++ b/k8s/base/quoteservice/configmap.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: quoteservice-config + namespace: emumba-assessment +data: {} diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml new file mode 100644 index 0000000..4580f20 --- /dev/null +++ b/k8s/base/quoteservice/deployment.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: quoteservice + namespace: emumba-assessment + labels: &lbl + app.kubernetes.io/name: quoteservice + app.kubernetes.io/part-of: emumba-assessment-k8s-iac +spec: + replicas: 2 + selector: { matchLabels: *lbl } + template: + metadata: { labels: *lbl } + spec: + containers: + - name: quoteservice + image: ghcr.io/your/repo/quoteservice:dev # TODO update + ports: [{ containerPort: 5000 }] # TODO confirm port + envFrom: + - configMapRef: { name: quoteservice-config } + readinessProbe: + httpGet: { path: /healthz, port: 5000 } # TODO confirm path + initialDelaySeconds: 5 + livenessProbe: + httpGet: { path: /healthz, port: 5000 } # TODO confirm path + initialDelaySeconds: 10 + resources: + requests: { cpu: "100m", memory: "128Mi" } + limits: { cpu: "500m", memory: "512Mi" } + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + labelSelector: { matchLabels: *lbl } diff --git a/k8s/base/quoteservice/hpa.yaml b/k8s/base/quoteservice/hpa.yaml new file mode 100644 index 0000000..326a6b6 --- /dev/null +++ b/k8s/base/quoteservice/hpa.yaml @@ -0,0 +1,19 @@ +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: quoteservice + namespace: emumba-assessment +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: quoteservice + minReplicas: 2 + maxReplicas: 5 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 60 diff --git a/k8s/base/quoteservice/service.yaml b/k8s/base/quoteservice/service.yaml new file mode 100644 index 0000000..edea15e --- /dev/null +++ b/k8s/base/quoteservice/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: quoteservice + namespace: emumba-assessment +spec: + selector: + app.kubernetes.io/name: quoteservice + ports: + - port: 5000 # TODO confirm + targetPort: 5000 diff --git a/k8s/base/rbac/role-readonly.yaml b/k8s/base/rbac/role-readonly.yaml new file mode 100644 index 0000000..8634153 --- /dev/null +++ b/k8s/base/rbac/role-readonly.yaml @@ -0,0 +1,9 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: readonly + namespace: emumba-assessment +rules: +- apiGroups: [""] + resources: ["pods","services","configmaps","endpoints"] + verbs: ["get","list","watch"] diff --git a/k8s/base/rbac/role-readwrite.yaml b/k8s/base/rbac/role-readwrite.yaml new file mode 100644 index 0000000..0e9744a --- /dev/null +++ b/k8s/base/rbac/role-readwrite.yaml @@ -0,0 +1,9 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: readwrite + namespace: emumba-assessment +rules: +- apiGroups: [""] + resources: ["pods","services","configmaps","endpoints"] + verbs: ["get","list","watch","create","update","patch","delete"] diff --git a/k8s/base/rbac/rolebinding-readonly.yaml b/k8s/base/rbac/rolebinding-readonly.yaml new file mode 100644 index 0000000..6e08b42 --- /dev/null +++ b/k8s/base/rbac/rolebinding-readonly.yaml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: readonly-binding + namespace: emumba-assessment +subjects: +- kind: ServiceAccount + name: default + namespace: emumba-assessment +roleRef: + kind: Role + name: readonly + apiGroup: rbac.authorization.k8s.io diff --git a/k8s/base/rbac/rolebinding-readwrite.yaml b/k8s/base/rbac/rolebinding-readwrite.yaml new file mode 100644 index 0000000..8f26034 --- /dev/null +++ b/k8s/base/rbac/rolebinding-readwrite.yaml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: readwrite-binding + namespace: emumba-assessment +subjects: +- kind: ServiceAccount + name: default + namespace: emumba-assessment +roleRef: + kind: Role + name: readwrite + apiGroup: rbac.authorization.k8s.io diff --git a/k8s/base/resourcequota.yaml b/k8s/base/resourcequota.yaml new file mode 100644 index 0000000..9e93b2a --- /dev/null +++ b/k8s/base/resourcequota.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ResourceQuota +metadata: + name: rq-standard + namespace: emumba-assessment +spec: + hard: + requests.cpu: "2" + requests.memory: 4Gi + limits.cpu: "4" + limits.memory: 8Gi + pods: "30" From b6418fbe88b8727a0faf2ade31a528882a3523eb Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 21:54:44 +0500 Subject: [PATCH 08/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: renamed: k8s/base/overlays/dev/kustomization.yaml -> k8s/overlays/dev/kustomization.yaml --- k8s/{base => }/overlays/dev/kustomization.yaml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename k8s/{base => }/overlays/dev/kustomization.yaml (100%) diff --git a/k8s/base/overlays/dev/kustomization.yaml b/k8s/overlays/dev/kustomization.yaml similarity index 100% rename from k8s/base/overlays/dev/kustomization.yaml rename to k8s/overlays/dev/kustomization.yaml From ff29962bcedd3962bdcb300cac6579d98f1e94bf Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:10:35 +0500 Subject: [PATCH 09/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/apigateway/deployment.yaml modified: k8s/base/frontend/deployment.yaml modified: k8s/base/quoteservice/deployment.yaml --- k8s/base/apigateway/deployment.yaml | 2 +- k8s/base/frontend/deployment.yaml | 2 +- k8s/base/quoteservice/deployment.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/k8s/base/apigateway/deployment.yaml b/k8s/base/apigateway/deployment.yaml index 5496ad9..892247d 100644 --- a/k8s/base/apigateway/deployment.yaml +++ b/k8s/base/apigateway/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: apigateway - image: ghcr.io/your/repo/apigateway:dev # TODO update + image: annasali2/emumba-apigateway:latest ports: [{ containerPort: 3000 }] envFrom: - configMapRef: { name: apigateway-config } diff --git a/k8s/base/frontend/deployment.yaml b/k8s/base/frontend/deployment.yaml index b0fcc95..385ece7 100644 --- a/k8s/base/frontend/deployment.yaml +++ b/k8s/base/frontend/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: frontend - image: ghcr.io/your/repo/frontend:dev # TODO update + image: annasali2/emumba-frontend:latest ports: [{ containerPort: 8080 }] envFrom: - configMapRef: { name: frontend-config } diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index 4580f20..dc0c75c 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: quoteservice - image: ghcr.io/your/repo/quoteservice:dev # TODO update + image: annasali2/emumba-quoteservice:latest ports: [{ containerPort: 5000 }] # TODO confirm port envFrom: - configMapRef: { name: quoteservice-config } From 339d70b548a8fc840762e1bda26fd4ddba95d59d Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:23:12 +0500 Subject: [PATCH 10/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/apigateway/configmap.yaml modified: k8s/base/apigateway/deployment.yaml modified: k8s/base/apigateway/service.yaml modified: k8s/base/frontend/configmap.yaml modified: k8s/base/frontend/deployment.yaml modified: k8s/base/frontend/service.yaml modified: k8s/base/quoteservice/deployment.yaml modified: k8s/base/quoteservice/service.yaml --- k8s/base/apigateway/configmap.yaml | 2 +- k8s/base/apigateway/deployment.yaml | 12 +++++------- k8s/base/apigateway/service.yaml | 3 ++- k8s/base/frontend/configmap.yaml | 2 +- k8s/base/frontend/deployment.yaml | 9 ++++----- k8s/base/frontend/service.yaml | 7 +++++-- k8s/base/quoteservice/deployment.yaml | 17 ++++++++--------- k8s/base/quoteservice/service.yaml | 5 ++++- 8 files changed, 30 insertions(+), 27 deletions(-) diff --git a/k8s/base/apigateway/configmap.yaml b/k8s/base/apigateway/configmap.yaml index cbe327c..3aad3f4 100644 --- a/k8s/base/apigateway/configmap.yaml +++ b/k8s/base/apigateway/configmap.yaml @@ -4,4 +4,4 @@ metadata: name: apigateway-config namespace: emumba-assessment data: - QUOTE_SERVICE_URL: "http://quoteservice.emumba-assessment.svc.cluster.local:5000" + QUOTES_API: "http://quoteservice:5000" diff --git a/k8s/base/apigateway/deployment.yaml b/k8s/base/apigateway/deployment.yaml index 892247d..303f149 100644 --- a/k8s/base/apigateway/deployment.yaml +++ b/k8s/base/apigateway/deployment.yaml @@ -3,21 +3,20 @@ kind: Deployment metadata: name: apigateway namespace: emumba-assessment - labels: &lbl + labels: &albl app.kubernetes.io/name: apigateway app.kubernetes.io/part-of: emumba-assessment-k8s-iac spec: replicas: 2 - selector: { matchLabels: *lbl } + selector: { matchLabels: *albl } template: - metadata: { labels: *lbl } + metadata: { labels: *albl } spec: containers: - name: apigateway image: annasali2/emumba-apigateway:latest ports: [{ containerPort: 3000 }] - envFrom: - - configMapRef: { name: apigateway-config } + envFrom: [{ configMapRef: { name: apigateway-config } }] readinessProbe: httpGet: { path: /api/status, port: 3000 } initialDelaySeconds: 5 @@ -33,5 +32,4 @@ spec: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway - labelSelector: - matchLabels: *lbl + labelSelector: { matchLabels: *albl } diff --git a/k8s/base/apigateway/service.yaml b/k8s/base/apigateway/service.yaml index 48746a1..0798f25 100644 --- a/k8s/base/apigateway/service.yaml +++ b/k8s/base/apigateway/service.yaml @@ -7,7 +7,8 @@ spec: selector: app.kubernetes.io/name: apigateway ports: - - port: 3000 + - name: http + port: 3000 targetPort: 3000 protocol: TCP type: ClusterIP diff --git a/k8s/base/frontend/configmap.yaml b/k8s/base/frontend/configmap.yaml index 0446ff6..752d8c5 100644 --- a/k8s/base/frontend/configmap.yaml +++ b/k8s/base/frontend/configmap.yaml @@ -4,4 +4,4 @@ metadata: name: frontend-config namespace: emumba-assessment data: - API_GATEWAY: "http://apigateway.emumba-assessment.svc.cluster.local:3000" + API_GATEWAY: "http://apigateway:3000" \ No newline at end of file diff --git a/k8s/base/frontend/deployment.yaml b/k8s/base/frontend/deployment.yaml index 385ece7..bbb02e0 100644 --- a/k8s/base/frontend/deployment.yaml +++ b/k8s/base/frontend/deployment.yaml @@ -15,14 +15,13 @@ spec: containers: - name: frontend image: annasali2/emumba-frontend:latest - ports: [{ containerPort: 8080 }] - envFrom: - - configMapRef: { name: frontend-config } + ports: [{ containerPort: 80 }] + envFrom: [{ configMapRef: { name: frontend-config } }] readinessProbe: - httpGet: { path: /, port: 8080 } + httpGet: { path: /, port: 80 } initialDelaySeconds: 5 livenessProbe: - httpGet: { path: /, port: 8080 } + httpGet: { path: /, port: 80 } initialDelaySeconds: 10 resources: requests: { cpu: "50m", memory: "64Mi" } diff --git a/k8s/base/frontend/service.yaml b/k8s/base/frontend/service.yaml index 0a789a3..064ecbd 100644 --- a/k8s/base/frontend/service.yaml +++ b/k8s/base/frontend/service.yaml @@ -7,5 +7,8 @@ spec: selector: app.kubernetes.io/name: frontend ports: - - port: 8080 - targetPort: 8080 + - name: http + port: 80 + targetPort: 80 + protocol: TCP + type: ClusterIP diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index dc0c75c..9ba57fd 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -3,26 +3,25 @@ kind: Deployment metadata: name: quoteservice namespace: emumba-assessment - labels: &lbl + labels: &qlbl app.kubernetes.io/name: quoteservice app.kubernetes.io/part-of: emumba-assessment-k8s-iac spec: replicas: 2 - selector: { matchLabels: *lbl } + selector: { matchLabels: *qlbl } template: - metadata: { labels: *lbl } + metadata: { labels: *qlbl } spec: containers: - name: quoteservice image: annasali2/emumba-quoteservice:latest - ports: [{ containerPort: 5000 }] # TODO confirm port - envFrom: - - configMapRef: { name: quoteservice-config } + ports: [{ containerPort: 5000 }] + envFrom: [{ configMapRef: { name: quoteservice-config } }] readinessProbe: - httpGet: { path: /healthz, port: 5000 } # TODO confirm path + httpGet: { path: /healthz, port: 5000 } initialDelaySeconds: 5 livenessProbe: - httpGet: { path: /healthz, port: 5000 } # TODO confirm path + httpGet: { path: /healthz, port: 5000 } initialDelaySeconds: 10 resources: requests: { cpu: "100m", memory: "128Mi" } @@ -31,4 +30,4 @@ spec: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway - labelSelector: { matchLabels: *lbl } + labelSelector: { matchLabels: *qlbl } diff --git a/k8s/base/quoteservice/service.yaml b/k8s/base/quoteservice/service.yaml index edea15e..984028c 100644 --- a/k8s/base/quoteservice/service.yaml +++ b/k8s/base/quoteservice/service.yaml @@ -7,5 +7,8 @@ spec: selector: app.kubernetes.io/name: quoteservice ports: - - port: 5000 # TODO confirm + - name: http + port: 5000 targetPort: 5000 + protocol: TCP + type: ClusterIP From 41ad26d87d7c16d42c0e62cffab8f5b6e61cbd27 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:25:15 +0500 Subject: [PATCH 11/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/quoteservice/deployment.yaml --- k8s/base/quoteservice/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index 9ba57fd..443d12b 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: quoteservice - image: annasali2/emumba-quoteservice:latest + image: annasali2/emumba-quouteservice:latest ports: [{ containerPort: 5000 }] envFrom: [{ configMapRef: { name: quoteservice-config } }] readinessProbe: From 35024704f0eb42c37ededaf8d3710b1e6cb1d8e7 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:28:08 +0500 Subject: [PATCH 12/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/quoteservice/deployment.yaml --- k8s/base/quoteservice/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index 443d12b..9ba57fd 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: quoteservice - image: annasali2/emumba-quouteservice:latest + image: annasali2/emumba-quoteservice:latest ports: [{ containerPort: 5000 }] envFrom: [{ configMapRef: { name: quoteservice-config } }] readinessProbe: From e9255dd8a62dc68562d1a939ec0112dcfbcbb7f2 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:34:37 +0500 Subject: [PATCH 13/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/quoteservice/deployment.yaml --- k8s/base/quoteservice/deployment.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index 9ba57fd..c174c85 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -17,12 +17,6 @@ spec: image: annasali2/emumba-quoteservice:latest ports: [{ containerPort: 5000 }] envFrom: [{ configMapRef: { name: quoteservice-config } }] - readinessProbe: - httpGet: { path: /healthz, port: 5000 } - initialDelaySeconds: 5 - livenessProbe: - httpGet: { path: /healthz, port: 5000 } - initialDelaySeconds: 10 resources: requests: { cpu: "100m", memory: "128Mi" } limits: { cpu: "500m", memory: "512Mi" } From 80cac366bd8a5382e4334e13ed7a6e6ad682143c Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:37:12 +0500 Subject: [PATCH 14/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/quoteservice/deployment.yaml --- k8s/base/quoteservice/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index c174c85..cb9838d 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -7,7 +7,7 @@ metadata: app.kubernetes.io/name: quoteservice app.kubernetes.io/part-of: emumba-assessment-k8s-iac spec: - replicas: 2 + replicas: 1 selector: { matchLabels: *qlbl } template: metadata: { labels: *qlbl } From b415f80e531c02933faea12a2ce2fb3d821d88df Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 22:37:29 +0500 Subject: [PATCH 15/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: k8s/base/quoteservice/deployment.yaml --- k8s/base/quoteservice/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/base/quoteservice/deployment.yaml b/k8s/base/quoteservice/deployment.yaml index cb9838d..c174c85 100644 --- a/k8s/base/quoteservice/deployment.yaml +++ b/k8s/base/quoteservice/deployment.yaml @@ -7,7 +7,7 @@ metadata: app.kubernetes.io/name: quoteservice app.kubernetes.io/part-of: emumba-assessment-k8s-iac spec: - replicas: 1 + replicas: 2 selector: { matchLabels: *qlbl } template: metadata: { labels: *qlbl } From 06fa16e7cb747c8e5731a254ab508de2a8bb0357 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Sun, 28 Sep 2025 23:28:09 +0500 Subject: [PATCH 16/22] On branch local-exec-minikube Your branch is up to date with 'origin/local-exec-minikube'. Changes to be committed: modified: README.md new file: README_App.md modified: infra/main.tf modified: infra/modules/argocd/main.tf modified: infra/modules/argocd/variables.tf modified: infra/modules/minikube/main.tf modified: infra/modules/minikube/outputs.tf modified: infra/terraform.tfvars.example --- README.md | 203 ++++++++++++++++++++++++------ README_App.md | 43 +++++++ infra/main.tf | 1 + infra/modules/argocd/main.tf | 5 +- infra/modules/argocd/variables.tf | 5 + infra/modules/minikube/main.tf | 4 - infra/modules/minikube/outputs.tf | 3 + infra/terraform.tfvars.example | 27 ++-- 8 files changed, 232 insertions(+), 59 deletions(-) create mode 100644 README_App.md diff --git a/README.md b/README.md index 6f87592..c5c5e65 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,174 @@ -# Simple Microservice Example +# GitOps Kubernetes Setup -A very simple microservice example with NodeJS, Python and Docker +A simple GitOps-style local Kubernetes setup using **Terraform**, **Minikube**, **Argo CD**, and **Kustomize**. -## Run the API gateway +## Prerequisites -- Install `docker` and `docker-compose` according to your operating system +Install the following tools for your operating system: +- Docker +- Terraform (>= 1.10) +- Minikube +- kubectl +- Helm +- Kustomize -- Clone the repository and navigate to it +## Getting Started -- Run `docker-compose up` to start the services +### 1. Clone and Setup -- Try `GET http://YOUR_HOST:3000/api/status` to check whether application is running +```bash +git clone +cd emumba-assessment-k8s-iac +``` -## Build the frontend - -The application uses a frontend written with plain html with jQuery and to style with Bulma. -This is built with webpack. This default application is built assuming you are using the `localhost`. - -To build this to fit your own **IP Address** please follow the steps before you running the `docker-compose up` - -- Install NodeJs on your system - -- Go to FrontendApplication directory - -- Run `npm install` or if you have yarn `yarn` to install packages - -- Now you need to set the API Gateway for this frontend application. It can be any host you have. - - Let's say you are hosting this application on `http://example.com` then your `API_GATEWAY` would be this one. - - If you are hosting in some machine with IP `123.324.345.1` then your `API_GATEWAY` would be your IP. - -- To pass this setting to webpack build you need to set an Environment Variable - - Windows : `set API_GATEWAY=http://YOUR_HOST` - - Linux/Max : `API_GATEWAY=http://YOUR_HOST` - * Remember no / at the end of the URL to get your web app work - -- Now you can do `npm run build` or `yarn build` - -- Check `dist/` folder for newly created index.html and the main.js - -- Now run the `docker-compose up` on the root folder of project and check `http://YOUR_HOST:8080` to see web app - -![image](https://user-images.githubusercontent.com/13379595/42726706-82eb0ae6-87b6-11e8-8456-d933b9dfa73b.png) +### 2. Configure Terraform Variables + +Create `infra/terraform.tfvars` with your local settings and GitHub token (**do not** commit this file): + +```hcl +# --- Cluster Configuration --- +cluster_name = "emumba-minikube-cluster" +kubernetes_version = "v1.30.0" +driver = "docker" +nodes = 3 +cpus = 4 +memory = "8192mb" +cni = "bridge" +delete_on_failure = true + +# --- Argo CD Configuration --- +namespace = "argocd" +release_name = "argo-cd" +server_service_type = "NodePort" + +# --- Repository Configuration --- +github_repo_url = "https://github.com//emumba-assessment-k8s-iac.git" +github_pat = "ghp_********" +``` + +### 3. Deploy the Stack + +From the `infra` directory, run Terraform to: +- Start Minikube cluster +- Install Argo CD +- Bootstrap GitOps + +```bash +cd infra +terraform init +terraform apply -auto-approve +``` + +### 4. Verify Deployment + +Check if everything is running correctly: + +```bash +# Check Argo CD applications +kubectl -n argocd get appprojects,applications + +# Check application deployments +kubectl -n emumba-assessment get deploy,svc +``` + +## GitOps Configuration + +This repository follows GitOps principles: + +- **Manifest Location**: All Kubernetes manifests are stored under `k8s/` +- **Sync Path**: Argo CD syncs from `k8s/overlays/dev` +- **Automated Deployment**: No manual `kubectl apply` required +- **Change Tracking**: Argo CD automatically tracks and syncs repository changes + +### Repository Configuration + +If you fork this repository to a different location, update the `github_repo_url` in `infra/terraform.tfvars` before applying Terraform. + +### Environment Variables (Optional) + +For scripting purposes, you can set your GitHub PAT as an environment variable: + +**Windows:** +```cmd +set GITHUB_PAT=ghp_******** +``` + +**Linux/macOS:** +```bash +export GITHUB_PAT=ghp_******** +``` + +> **Note:** Your PAT is only used by Terraform providers. Never commit it to the repository. + +## Directory Structure + +``` +emumba-assessment-k8s-iac/ +├── README.md +├── infra/ # Terraform infrastructure code +│ ├── providers.tf +│ ├── variables.tf +│ ├── main.tf +│ ├── outputs.tf +│ └── terraform.tfvars # Local config (not committed) +├── modules/ # Terraform modules +│ └── minikube/ +│ ├── main.tf # Minikube cluster setup +│ ├── variables.tf +│ └── outputs.tf +└── k8s/ # Kubernetes manifests + ├── base/ # Base configurations + │ ├── namespace.yaml + │ ├── resourcequota.yaml + │ ├── rbac/ + │ │ ├── role-readonly.yaml + │ │ ├── role-readwrite.yaml + │ │ ├── rolebinding-readonly.yaml + │ │ └── rolebinding-readwrite.yaml + │ ├── apigateway/ + │ │ ├── deployment.yaml + │ │ ├── service.yaml + │ │ └── configmap.yaml + │ ├── quoteservice/ + │ │ ├── deployment.yaml + │ │ ├── service.yaml + │ │ └── configmap.yaml + │ ├── frontend/ + │ │ ├── deployment.yaml + │ │ ├── service.yaml + │ │ └── configmap.yaml + │ └── kustomization.yaml + └── overlays/ + └── dev/ + └── kustomization.yaml +``` + +## Architecture Components + +- **Terraform**: Infrastructure as Code for cluster provisioning +- **Minikube**: Local Kubernetes cluster +- **Argo CD**: GitOps continuous deployment +- **Kustomize**: Configuration management and overlays + +## Clean Up + +To destroy all resources and stop the Minikube cluster: + +```bash +cd infra +terraform destroy +``` + +This will remove: +- Minikube cluster +- Argo CD installation +- All GitOps applications and configurations + +## Troubleshooting + +### Common Issues + +1. **Docker not running**: Ensure Docker Desktop is started before running Terraform +2. **Port conflicts**: Check if required ports are available on your system +3. **Resource limits**: Adjust CPU and memory settings in `terraform.tfvars` if needed +4. **GitHub PAT permissions**: Ensure your PAT has appropriate repository access diff --git a/README_App.md b/README_App.md new file mode 100644 index 0000000..6f87592 --- /dev/null +++ b/README_App.md @@ -0,0 +1,43 @@ +# Simple Microservice Example + +A very simple microservice example with NodeJS, Python and Docker + +## Run the API gateway + +- Install `docker` and `docker-compose` according to your operating system + +- Clone the repository and navigate to it + +- Run `docker-compose up` to start the services + +- Try `GET http://YOUR_HOST:3000/api/status` to check whether application is running + +## Build the frontend + +The application uses a frontend written with plain html with jQuery and to style with Bulma. +This is built with webpack. This default application is built assuming you are using the `localhost`. + +To build this to fit your own **IP Address** please follow the steps before you running the `docker-compose up` + +- Install NodeJs on your system + +- Go to FrontendApplication directory + +- Run `npm install` or if you have yarn `yarn` to install packages + +- Now you need to set the API Gateway for this frontend application. It can be any host you have. + - Let's say you are hosting this application on `http://example.com` then your `API_GATEWAY` would be this one. + - If you are hosting in some machine with IP `123.324.345.1` then your `API_GATEWAY` would be your IP. + +- To pass this setting to webpack build you need to set an Environment Variable + - Windows : `set API_GATEWAY=http://YOUR_HOST` + - Linux/Max : `API_GATEWAY=http://YOUR_HOST` + * Remember no / at the end of the URL to get your web app work + +- Now you can do `npm run build` or `yarn build` + +- Check `dist/` folder for newly created index.html and the main.js + +- Now run the `docker-compose up` on the root folder of project and check `http://YOUR_HOST:8080` to see web app + +![image](https://user-images.githubusercontent.com/13379595/42726706-82eb0ae6-87b6-11e8-8456-d933b9dfa73b.png) diff --git a/infra/main.tf b/infra/main.tf index 769d0a3..b5f3eba 100644 --- a/infra/main.tf +++ b/infra/main.tf @@ -20,4 +20,5 @@ module "argocd" { github_pat = var.github_pat github_repo_url = var.github_repo_url github_username = var.github_username + kubeconfig_path = module.minikube.kubeconfig_path } \ No newline at end of file diff --git a/infra/modules/argocd/main.tf b/infra/modules/argocd/main.tf index 9c80663..b1ee62a 100644 --- a/infra/modules/argocd/main.tf +++ b/infra/modules/argocd/main.tf @@ -57,7 +57,6 @@ resource "helm_release" "argocd" { depends_on = [kubernetes_namespace.argocd] } -# Repo credential (HTTPS + PAT) resource "kubernetes_secret" "argocd_repo_github_https" { metadata { name = "repo-github-emumba-https" @@ -73,7 +72,6 @@ resource "kubernetes_secret" "argocd_repo_github_https" { } } -# AppProject that your Application references resource "kubernetes_manifest" "emumba_project" { manifest = { apiVersion = "argoproj.io/v1alpha1" @@ -85,7 +83,7 @@ resource "kubernetes_manifest" "emumba_project" { } spec = { description = "Project for Emumba assessment" - sourceRepos = [var.github_repo_url] # or ["*"] + sourceRepos = [var.github_repo_url] destinations = [{ namespace = "emumba-assessment" server = "https://kubernetes.default.svc" @@ -97,7 +95,6 @@ resource "kubernetes_manifest" "emumba_project" { depends_on = [helm_release.argocd] } -# Application that deploys your Kustomize overlay resource "kubernetes_manifest" "app" { manifest = { apiVersion = "argoproj.io/v1alpha1" diff --git a/infra/modules/argocd/variables.tf b/infra/modules/argocd/variables.tf index f62c0e7..c6094eb 100644 --- a/infra/modules/argocd/variables.tf +++ b/infra/modules/argocd/variables.tf @@ -37,4 +37,9 @@ variable "github_username" { type = string description = "GitHub username or organization name" default = "aliannus2" +} + +variable "kubeconfig_path" { + type = string + description = "Path to kubeconfig file" } \ No newline at end of file diff --git a/infra/modules/minikube/main.tf b/infra/modules/minikube/main.tf index 620f844..ffe481a 100644 --- a/infra/modules/minikube/main.tf +++ b/infra/modules/minikube/main.tf @@ -7,7 +7,6 @@ terraform { } } -# Build the start command from your variables (no addons) locals { start_cmd = join(" ", [ "minikube start", @@ -21,9 +20,7 @@ locals { ]) } -# Start a Minikube cluster resource "null_resource" "minikube_cluster" { - # Keep it simple: if any input changes, re-run using a single trigger triggers = { cmd = local.start_cmd profile_name = var.cluster_name @@ -35,7 +32,6 @@ resource "null_resource" "minikube_cluster" { provisioner "local-exec" { when = destroy - # Destroy-time provisioners may only reference self.*, so use trigger command = "minikube delete -p ${self.triggers.profile_name}" } } diff --git a/infra/modules/minikube/outputs.tf b/infra/modules/minikube/outputs.tf index e69de29..b64ccf1 100644 --- a/infra/modules/minikube/outputs.tf +++ b/infra/modules/minikube/outputs.tf @@ -0,0 +1,3 @@ +output "kubeconfig_path" { + value = pathexpand("~/.kube/config") +} \ No newline at end of file diff --git a/infra/terraform.tfvars.example b/infra/terraform.tfvars.example index ea0f817..ef4dfeb 100644 --- a/infra/terraform.tfvars.example +++ b/infra/terraform.tfvars.example @@ -1,15 +1,12 @@ -minikube_driver = "docker" -minikube_nodes = 3 -minikube_cpus = 4 -minikube_memory = "8192mb" -minikube_kubernetes_version = "v1.30.0" -minikube_cni = "bridge" -minikube_addons = [ - "dashboard", - "default-storageclass", - "ingress", - "metrics-server", - "storage-provisioner", -] -minikube_delete_on_failure = true -minikube_cluster_name = "minikube-cluster" +cluster_name = "emumba-minikube-cluster" +kubernetes_version = "v1.34.0" +driver = "docker" +nodes = 3 +cpus = 4 +memory = "8192mb" +cni = "flannel" +addons = ["default-storageclass", "storage-provisioner", "ingress", "metrics-server"] +delete_on_failure = true +github_username = "aliannus2" +github_pat = "ghp_fnsadjsgadhgdssdasfas" # Place your github_pat +github_repo_url = "https://github.com/aliannus2/emumba-assessment-k8s-iac.git" # Enter you github_repo_url \ No newline at end of file From 66089ee7042c14b0ed1fecfe53f291b161d0e1ce Mon Sep 17 00:00:00 2001 From: Annas Ali <58392315+aliannus2@users.noreply.github.com> Date: Sun, 28 Sep 2025 23:32:21 +0500 Subject: [PATCH 17/22] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c5c5e65..5639e9c 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Create `infra/terraform.tfvars` with your local settings and GitHub token (**do ```hcl # --- Cluster Configuration --- cluster_name = "emumba-minikube-cluster" -kubernetes_version = "v1.30.0" +kubernetes_version = "v1.34.0" driver = "docker" nodes = 3 cpus = 4 From 9e193019b8645b66b6433d21ea1489da1707a44c Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Mon, 29 Sep 2025 03:35:24 +0500 Subject: [PATCH 18/22] On branch all-in-one-deployment Changes to be committed: deleted: infra/main.tf new file: infra/modules/application/main.tf new file: infra/modules/application/outputs.tf new file: infra/modules/application/variables.tf modified: infra/modules/argocd/main.tf modified: infra/modules/argocd/outputs.tf modified: infra/modules/argocd/variables.tf new file: infra/modules/cluster-minikube/main.tf new file: infra/modules/cluster-minikube/outputs.tf new file: infra/modules/cluster-minikube/variables.tf deleted: infra/modules/minikube/main.tf deleted: infra/modules/minikube/outputs.tf deleted: infra/modules/minikube/variables.tf deleted: infra/outputs.tf new file: infra/projects/application/main.tf new file: infra/projects/application/outputs.tf new file: infra/projects/application/providers.tf new file: infra/projects/application/variabels.tf new file: infra/projects/argocd/main.tf new file: infra/projects/argocd/outputs.tf renamed: infra/providers.tf -> infra/projects/argocd/providers.tf new file: infra/projects/argocd/terraform.tfvars.example new file: infra/projects/argocd/variables.tf new file: infra/projects/cluster/main.tf new file: infra/projects/cluster/outputs.tf new file: infra/projects/cluster/provider.tf new file: infra/projects/cluster/terraform.tfvars.example new file: infra/projects/cluster/variables.tf deleted: infra/terraform.tfvars.example deleted: infra/variables.tf --- infra/main.tf | 24 ---- infra/modules/application/main.tf | 92 ++++++++++++++ infra/modules/application/outputs.tf | 3 + infra/modules/application/variables.tf | 73 +++++++++++ infra/modules/argocd/main.tf | 120 +++--------------- infra/modules/argocd/outputs.tf | 17 +-- infra/modules/argocd/variables.tf | 52 ++++---- infra/modules/cluster-minikube/main.tf | 24 ++++ infra/modules/cluster-minikube/outputs.tf | 4 + infra/modules/cluster-minikube/variables.tf | 34 +++++ infra/modules/minikube/main.tf | 37 ------ infra/modules/minikube/outputs.tf | 3 - infra/modules/minikube/variables.tf | 46 ------- infra/outputs.tf | 0 infra/projects/application/main.tf | 22 ++++ infra/projects/application/outputs.tf | 3 + infra/projects/application/providers.tf | 20 +++ infra/projects/application/variabels.tf | 46 +++++++ infra/projects/argocd/main.tf | 15 +++ infra/projects/argocd/outputs.tf | 2 + infra/{ => projects/argocd}/providers.tf | 21 +-- .../projects/argocd/terraform.tfvars.example | 3 + infra/projects/argocd/variables.tf | 24 ++++ infra/projects/cluster/main.tf | 11 ++ infra/projects/cluster/outputs.tf | 1 + infra/projects/cluster/provider.tf | 10 ++ .../projects/cluster/terraform.tfvars.example | 22 ++++ infra/projects/cluster/variables.tf | 28 ++++ infra/terraform.tfvars.example | 12 -- infra/variables.tf | 12 -- 30 files changed, 495 insertions(+), 286 deletions(-) delete mode 100644 infra/main.tf create mode 100644 infra/modules/application/main.tf create mode 100644 infra/modules/application/outputs.tf create mode 100644 infra/modules/application/variables.tf create mode 100644 infra/modules/cluster-minikube/main.tf create mode 100644 infra/modules/cluster-minikube/outputs.tf create mode 100644 infra/modules/cluster-minikube/variables.tf delete mode 100644 infra/modules/minikube/main.tf delete mode 100644 infra/modules/minikube/outputs.tf delete mode 100644 infra/modules/minikube/variables.tf delete mode 100644 infra/outputs.tf create mode 100644 infra/projects/application/main.tf create mode 100644 infra/projects/application/outputs.tf create mode 100644 infra/projects/application/providers.tf create mode 100644 infra/projects/application/variabels.tf create mode 100644 infra/projects/argocd/main.tf create mode 100644 infra/projects/argocd/outputs.tf rename infra/{ => projects/argocd}/providers.tf (54%) create mode 100644 infra/projects/argocd/terraform.tfvars.example create mode 100644 infra/projects/argocd/variables.tf create mode 100644 infra/projects/cluster/main.tf create mode 100644 infra/projects/cluster/outputs.tf create mode 100644 infra/projects/cluster/provider.tf create mode 100644 infra/projects/cluster/terraform.tfvars.example create mode 100644 infra/projects/cluster/variables.tf delete mode 100644 infra/terraform.tfvars.example delete mode 100644 infra/variables.tf diff --git a/infra/main.tf b/infra/main.tf deleted file mode 100644 index b5f3eba..0000000 --- a/infra/main.tf +++ /dev/null @@ -1,24 +0,0 @@ -module "minikube" { - source = "./modules/minikube" - - cluster_name = var.cluster_name - kubernetes_version = var.kubernetes_version - driver = var.driver - nodes = var.nodes - cpus = var.cpus - memory = var.memory - cni = var.cni - addons = var.addons - delete_on_failure = var.delete_on_failure -} - -module "argocd" { - source = "./modules/argocd" - namespace = "argocd" - release_name = "argo-cd" - server_service_type = "NodePort" - github_pat = var.github_pat - github_repo_url = var.github_repo_url - github_username = var.github_username - kubeconfig_path = module.minikube.kubeconfig_path -} \ No newline at end of file diff --git a/infra/modules/application/main.tf b/infra/modules/application/main.tf new file mode 100644 index 0000000..c5ea227 --- /dev/null +++ b/infra/modules/application/main.tf @@ -0,0 +1,92 @@ +# App runtime namespace +resource "kubernetes_namespace" "app" { + metadata { + name = var.application_namespace + labels = { + "app.kubernetes.io/name" = var.application_name + "app.kubernetes.io/part-of" = var.cluster_name # <- use cluster_name instead of a static project label + "app.kubernetes.io/managed-by" = "terraform" + } + } +} + + +# Register the repo in Argo CD (Secret in argocd namespace) +resource "kubernetes_secret" "argocd_repo_github_https" { + metadata { + name = var.repo_secret_name + namespace = var.argocd_namespace + labels = { + "argocd.argoproj.io/secret-type" = "repository" + "app.kubernetes.io/part-of" = var.cluster_name + "app.kubernetes.io/managed-by" = "terraform" + } + } + type = "Opaque" + + # stringData lets us provide plaintext; provider encodes to data + data = { + type = "git" + url = var.github_repo_url + username = var.repo_username + password = var.github_pat + } +} + +# AppProject (scopes repos/destinations) +resource "kubernetes_manifest" "argocd_project" { + manifest = { + apiVersion = "argoproj.io/v1alpha1" + kind = "AppProject" + metadata = { + name = var.project_name + namespace = var.argocd_namespace + labels = { + "app.kubernetes.io/part-of" = var.cluster_name + "app.kubernetes.io/managed-by" = "terraform" + } + } + spec = { + description = "Project for ${var.cluster_name}" + sourceRepos = [var.github_repo_url] + destinations = [{ + namespace = var.application_namespace + server = "https://kubernetes.default.svc" + }] + clusterResourceWhitelist = [{ group = "*", kind = "*" }] + namespaceResourceWhitelist = [{ group = "*", kind = "*" }] + } + } +} + +# Argo CD Application +resource "kubernetes_manifest" "argocd_application" { + manifest = { + apiVersion = "argoproj.io/v1alpha1" + kind = "Application" + metadata = { + name = var.application_name + namespace = var.argocd_namespace + labels = { + "app.kubernetes.io/part-of" = var.cluster_name + "app.kubernetes.io/managed-by" = "terraform" + } + } + spec = { + project = var.project_name + source = { + repoURL = var.github_repo_url + targetRevision = var.target_revision + path = var.kustomize_path + } + destination = { + server = "https://kubernetes.default.svc" + namespace = var.application_namespace + } + syncPolicy = { + automated = { prune = true, selfHeal = true } + syncOptions = ["CreateNamespace=true"] + } + } + } +} diff --git a/infra/modules/application/outputs.tf b/infra/modules/application/outputs.tf new file mode 100644 index 0000000..5073528 --- /dev/null +++ b/infra/modules/application/outputs.tf @@ -0,0 +1,3 @@ +output "application_namespace" { value = var.application_namespace } +output "application_name" { value = var.application_name } +output "project_name" { value = var.project_name } diff --git a/infra/modules/application/variables.tf b/infra/modules/application/variables.tf new file mode 100644 index 0000000..4aabef8 --- /dev/null +++ b/infra/modules/application/variables.tf @@ -0,0 +1,73 @@ +variable "cluster_name" { + description = "Used in labels and for context-aware manifests (passed from project)" + type = string +} + +variable "argocd_namespace" { + description = "Namespace where Argo CD is installed" + type = string + default = "argocd" +} + +variable "application_namespace" { + description = "Namespace where the app will run" + type = string + default = "emumba-assessment" +} + +variable "project_name" { + description = "Argo CD AppProject name" + type = string + default = "emumba-deployment" +} + +variable "application_name" { + description = "Argo CD Application name" + type = string + default = "emumba-assessment-app" +} + +variable "github_repo_url" { + description = "Git repository URL for the app (https)" + type = string +} + +variable "github_pat" { + description = "GitHub personal access token (read access)" + type = string + sensitive = true +} + +variable "repo_username" { + description = "Repository username for basic auth" + type = string + default = "git" +} + +variable "repo_secret_name" { + description = "K8s Secret name registered in Argo CD" + type = string + default = "repo-github-emumba-https" +} + +variable "kustomize_path" { + description = "Path inside the repo to Kustomize overlay" + type = string + default = "k8s/overlays/dev" +} + +variable "target_revision" { + description = "Git revision (branch, tag, or commit SHA)" + type = string + default = "HEAD" +} + +terraform { + required_version = ">= 1.10.0" + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = ">= 2.38.0" + } + } +} diff --git a/infra/modules/argocd/main.tf b/infra/modules/argocd/main.tf index b1ee62a..6b3d29d 100644 --- a/infra/modules/argocd/main.tf +++ b/infra/modules/argocd/main.tf @@ -1,47 +1,17 @@ -terraform { - required_version = ">= 1.10.0" - required_providers { - kubernetes = { - source = "hashicorp/kubernetes" - version = ">= 2.38.0" - } - helm = { - source = "hashicorp/helm" - version = "3.0.2" - } - } -} - -provider "kubernetes" { - config_path = pathexpand("~/.kube/config") -} - -provider "helm" { - kubernetes = { - config_path = pathexpand("~/.kube/config") - } -} - - resource "kubernetes_namespace" "argocd" { metadata { name = var.namespace labels = { "app.kubernetes.io/name" = "argocd" - "app.kubernetes.io/part-of" = "emumba-assessment-k8s-iac" + "app.kubernetes.io/part-of" = "emumba-minikube-cluster" "app.kubernetes.io/managed-by" = "terraform" } } } -resource "helm_release" "argocd" { - name = var.release_name - repository = "https://argoproj.github.io/argo-helm" - chart = "argo-cd" - namespace = kubernetes_namespace.argocd.metadata[0].name - version = "8.5.7" - - values = [yamlencode({ +locals { + base_values = yamlencode({ + installCRDs = true configs = { params = { "server.insecure" = "true" @@ -52,78 +22,20 @@ resource "helm_release" "argocd" { type = var.server_service_type } } - })] - - depends_on = [kubernetes_namespace.argocd] + }) + merged_values = concat([local.base_values], var.extra_values_yaml) } -resource "kubernetes_secret" "argocd_repo_github_https" { - metadata { - name = "repo-github-emumba-https" - namespace = kubernetes_namespace.argocd.metadata[0].name - labels = { "argocd.argoproj.io/secret-type" = "repository" } - } - type = "Opaque" - data = { - type = "git" - url = var.github_repo_url - username = "git" - password = var.github_pat - } -} +resource "helm_release" "argocd" { + name = var.release_name + repository = "https://argoproj.github.io/argo-helm" + chart = "argo-cd" + namespace = kubernetes_namespace.argocd.metadata[0].name + version = var.chart_version -resource "kubernetes_manifest" "emumba_project" { - manifest = { - apiVersion = "argoproj.io/v1alpha1" - kind = "AppProject" - metadata = { - name = "emumba-deployment" - namespace = kubernetes_namespace.argocd.metadata[0].name - labels = { "app.kubernetes.io/part-of" = "emumba-assessment-k8s-iac" } - } - spec = { - description = "Project for Emumba assessment" - sourceRepos = [var.github_repo_url] - destinations = [{ - namespace = "emumba-assessment" - server = "https://kubernetes.default.svc" - }] - clusterResourceWhitelist = [{ group = "*", kind = "*" }] - namespaceResourceWhitelist = [{ group = "*", kind = "*" }] - } - } - depends_on = [helm_release.argocd] -} + wait = true + timeout = 600 -resource "kubernetes_manifest" "app" { - manifest = { - apiVersion = "argoproj.io/v1alpha1" - kind = "Application" - metadata = { - name = "emumba-assessment-app" - namespace = kubernetes_namespace.argocd.metadata[0].name - labels = { "app.kubernetes.io/part-of" = "emumba-assessment-k8s-iac" } - } - spec = { - project = "emumba-deployment" - source = { - repoURL = var.github_repo_url - targetRevision = "local-exec-minikube" - path = "k8s/overlays/dev" - } - destination = { - server = "https://kubernetes.default.svc" - namespace = "emumba-assessment" - } - syncPolicy = { - automated = { prune = true, selfHeal = true } - syncOptions = ["CreateNamespace=true"] - } - } - } - depends_on = [ - helm_release.argocd, - kubernetes_manifest.emumba_project, - kubernetes_secret.argocd_repo_github_https - ] + values = local.merged_values } + diff --git a/infra/modules/argocd/outputs.tf b/infra/modules/argocd/outputs.tf index 32ce1c4..0832e2b 100644 --- a/infra/modules/argocd/outputs.tf +++ b/infra/modules/argocd/outputs.tf @@ -1,15 +1,2 @@ -output "namespace" { - value = kubernetes_namespace.argocd.metadata[0].name -} - -output "server_service" { - value = "${var.release_name}-argocd-server" -} - -output "admin_password_cmd" { - value = "kubectl -n ${kubernetes_namespace.argocd.metadata[0].name} get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d && echo" -} - -output "port_forward_cmd" { - value = "kubectl -n ${kubernetes_namespace.argocd.metadata[0].name} port-forward svc/${var.release_name}-argocd-server 8080:80" -} +output "namespace" { value = var.namespace } +output "release_name" { value = helm_release.argocd.name } diff --git a/infra/modules/argocd/variables.tf b/infra/modules/argocd/variables.tf index c6094eb..74ea92f 100644 --- a/infra/modules/argocd/variables.tf +++ b/infra/modules/argocd/variables.tf @@ -1,5 +1,5 @@ variable "namespace" { - description = "Namespace for Argo CD" + description = "Namespace for Argo CD control plane" type = string default = "argocd" } @@ -11,35 +11,39 @@ variable "release_name" { } variable "server_service_type" { - description = "Service type for Argo CD server" + description = "Service type for argocd-server (ClusterIP|NodePort|LoadBalancer)" type = string - default = "NodePort" + default = "ClusterIP" } -variable "application_name" { - description = "Name of the Argo CD Application" +variable "chart_version" { + description = "argo-helm chart version" type = string - default = "emumba-assessment-app" + default = "8.5.7" } -variable "github_repo_url" { - type = string - description = "HTTPS URL to the repo" - default = "https://github.com/aliannus2/emumba-assessment-k8s-iac.git" -} -variable "github_pat" { - type = string - description = "GitHub Personal Access Token (read-only)" - sensitive = true +variable "extra_values_yaml" { + description = "Optional extra Helm values as YAML strings (each item is a full YAML document)" + type = list(string) + default = [] } -variable "github_username" { - type = string - description = "GitHub username or organization name" - default = "aliannus2" -} +terraform { -variable "kubeconfig_path" { - type = string - description = "Path to kubeconfig file" -} \ No newline at end of file + required_version = ">= 1.10.0" + + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = ">= 2.30.0" + } + helm = { + source = "hashicorp/helm" + version = ">= 2.13.0" + } + null = { + source = "hashicorp/null" + version = ">= 3.2.4" + } + } +} diff --git a/infra/modules/cluster-minikube/main.tf b/infra/modules/cluster-minikube/main.tf new file mode 100644 index 0000000..9a618d8 --- /dev/null +++ b/infra/modules/cluster-minikube/main.tf @@ -0,0 +1,24 @@ +terraform { + required_version = ">= 1.10.0" + required_providers { + null = { + source = "hashicorp/null" + version = ">= 3.2.0" + } + } +} + +resource "null_resource" "minikube" { + triggers = { + profile = var.cluster_name + } + + provisioner "local-exec" { + command = "minikube start --profile=${self.triggers.profile} --driver=${var.driver} --nodes=${var.nodes} --cpus=${var.cpus} --memory=${var.memory} --kubernetes-version=${var.kubernetes_version} --cni=${var.cni}" + } + + provisioner "local-exec" { + when = destroy + command = "minikube delete -p ${self.triggers.profile}" + } +} diff --git a/infra/modules/cluster-minikube/outputs.tf b/infra/modules/cluster-minikube/outputs.tf new file mode 100644 index 0000000..06e11aa --- /dev/null +++ b/infra/modules/cluster-minikube/outputs.tf @@ -0,0 +1,4 @@ +output "profile_name" { + description = "Minikube profile name" + value = var.cluster_name +} diff --git a/infra/modules/cluster-minikube/variables.tf b/infra/modules/cluster-minikube/variables.tf new file mode 100644 index 0000000..1376382 --- /dev/null +++ b/infra/modules/cluster-minikube/variables.tf @@ -0,0 +1,34 @@ +variable "cluster_name" { + type = string + default = "emumba-minikube-cluster" +} + +variable "driver" { + type = string + default = "docker" +} + +variable "nodes" { + type = number + default = 1 +} + +variable "cpus" { + type = number + default = 2 +} + +variable "memory" { + type = string + default = "4g" +} + +variable "kubernetes_version" { + type = string + default = "v1.34.0" +} + +variable "cni" { + type = string + default = "flannel" +} diff --git a/infra/modules/minikube/main.tf b/infra/modules/minikube/main.tf deleted file mode 100644 index ffe481a..0000000 --- a/infra/modules/minikube/main.tf +++ /dev/null @@ -1,37 +0,0 @@ -terraform { - required_providers { - null = { - source = "hashicorp/null" - version = "3.2.4" - } - } -} - -locals { - start_cmd = join(" ", [ - "minikube start", - "--profile=${var.cluster_name}", - "--driver=${var.driver}", - "--nodes=${var.nodes}", - "--cpus=${var.cpus}", - "--memory=${var.memory}", - "--kubernetes-version=${var.kubernetes_version}", - "--cni=${var.cni}" - ]) -} - -resource "null_resource" "minikube_cluster" { - triggers = { - cmd = local.start_cmd - profile_name = var.cluster_name - } - - provisioner "local-exec" { - command = local.start_cmd - } - - provisioner "local-exec" { - when = destroy - command = "minikube delete -p ${self.triggers.profile_name}" - } -} diff --git a/infra/modules/minikube/outputs.tf b/infra/modules/minikube/outputs.tf deleted file mode 100644 index b64ccf1..0000000 --- a/infra/modules/minikube/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "kubeconfig_path" { - value = pathexpand("~/.kube/config") -} \ No newline at end of file diff --git a/infra/modules/minikube/variables.tf b/infra/modules/minikube/variables.tf deleted file mode 100644 index aa1081c..0000000 --- a/infra/modules/minikube/variables.tf +++ /dev/null @@ -1,46 +0,0 @@ -variable "cluster_name" { - description = "Name of the Minikube cluster" - type = string -} - -variable "kubernetes_version" { - description = "Kubernetes version for Minikube (e.g., v1.30.0 or 'stable')" - type = string -} - -variable "driver" { - description = "Minikube driver (docker, hyperv, virtualbox, hyperkit, kvm2, etc.)" - type = string -} - -variable "nodes" { - description = "Total nodes (control-plane + workers)" - type = number -} - -variable "cpus" { - description = "Number of CPUs allocated to the cluster" - type = number -} - -variable "memory" { - description = "RAM for the cluster, e.g. 8192mb, 8g" - type = string -} - -variable "cni" { - description = "CNI plugin (auto, bridge, calico, cilium, flannel, kindnet, or path)" - type = string - default = "bridge" -} - -variable "addons" { - description = "Minikube addons to enable" - type = set(string) - -} - -variable "delete_on_failure" { - description = "Delete cluster if start fails" - type = bool -} diff --git a/infra/outputs.tf b/infra/outputs.tf deleted file mode 100644 index e69de29..0000000 diff --git a/infra/projects/application/main.tf b/infra/projects/application/main.tf new file mode 100644 index 0000000..13577c8 --- /dev/null +++ b/infra/projects/application/main.tf @@ -0,0 +1,22 @@ +module "application" { + source = "../../modules/application" + + cluster_name = var.cluster_name + argocd_namespace = var.argocd_namespace + application_namespace = var.application_namespace + + project_name = var.project_name + application_name = var.application_name + + github_repo_url = var.github_repo_url + github_pat = var.github_pat + repo_username = var.repo_username + repo_secret_name = var.repo_secret_name + + kustomize_path = var.kustomize_path + target_revision = var.target_revision + + providers = { + kubernetes = kubernetes + } +} diff --git a/infra/projects/application/outputs.tf b/infra/projects/application/outputs.tf new file mode 100644 index 0000000..672de66 --- /dev/null +++ b/infra/projects/application/outputs.tf @@ -0,0 +1,3 @@ +output "application_namespace" { value = module.application.application_namespace } +output "application_name" { value = module.application.application_name } +output "project_name" { value = module.application.project_name } diff --git a/infra/projects/application/providers.tf b/infra/projects/application/providers.tf new file mode 100644 index 0000000..06a6aba --- /dev/null +++ b/infra/projects/application/providers.tf @@ -0,0 +1,20 @@ +terraform { + required_version = ">= 1.6.0" + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = ">= 2.38.0" + } + } +} + +variable "cluster_name" { + description = "Minikube cluster name (used as kube context)" + type = string + default = "emumba-minikube-cluster" +} + +provider "kubernetes" { + config_path = pathexpand("~/.kube/config") + config_context = var.cluster_name +} diff --git a/infra/projects/application/variabels.tf b/infra/projects/application/variabels.tf new file mode 100644 index 0000000..7cc6b5a --- /dev/null +++ b/infra/projects/application/variabels.tf @@ -0,0 +1,46 @@ +# You already defined cluster_name in providers.tf + +variable "argocd_namespace" { + type = string + default = "argocd" +} +variable "application_namespace" { + type = string + default = "emumba-assessment" +} +variable "project_name" { + type = string + default = "emumba-deployment" +} +variable "application_name" { + type = string + default = "emumba-assessment-app" +} + +variable "github_repo_url" { + type = string + description = "HTTPS repo URL that Argo CD will pull from" +} + +variable "github_pat" { + type = string + sensitive = true + description = "GitHub token with read access" +} + +variable "repo_username" { + type = string + default = "aliannus2" +} +variable "repo_secret_name" { + type = string + default = "repo-github-emumba-https" +} +variable "kustomize_path" { + type = string + default = "k8s/overlays/dev" +} +variable "target_revision" { + type = string + default = "HEAD" +} diff --git a/infra/projects/argocd/main.tf b/infra/projects/argocd/main.tf new file mode 100644 index 0000000..23f3391 --- /dev/null +++ b/infra/projects/argocd/main.tf @@ -0,0 +1,15 @@ +module "argocd" { + source = "../../modules/argocd" + + namespace = var.namespace + release_name = var.release_name + server_service_type = var.server_service_type + chart_version = var.chart_version + extra_values_yaml = var.extra_values_yaml + + providers = { + kubernetes = kubernetes + helm = helm + null = null + } +} diff --git a/infra/projects/argocd/outputs.tf b/infra/projects/argocd/outputs.tf new file mode 100644 index 0000000..fcea2ec --- /dev/null +++ b/infra/projects/argocd/outputs.tf @@ -0,0 +1,2 @@ +output "namespace" { value = module.argocd.namespace } +output "release" { value = module.argocd.release_name } diff --git a/infra/providers.tf b/infra/projects/argocd/providers.tf similarity index 54% rename from infra/providers.tf rename to infra/projects/argocd/providers.tf index 0e13525..d17a0b2 100644 --- a/infra/providers.tf +++ b/infra/projects/argocd/providers.tf @@ -1,28 +1,31 @@ terraform { + required_version = ">= 1.10.0" + required_providers { - null = { - source = "hashicorp/null" - version = "3.2.4" - } kubernetes = { source = "hashicorp/kubernetes" - version = ">= 2.38.0" + version = ">= 2.30.0" } helm = { source = "hashicorp/helm" - version = "3.0.2" + version = ">= 2.13.0" + } + null = { + source = "hashicorp/null" + version = ">= 3.2.4" } } } provider "kubernetes" { - config_path = "~/.kube/config" + config_path = pathexpand("~/.kube/config") + config_context = var.cluster_name } provider "helm" { kubernetes = { - config_path = "~/.kube/config" - config_context = "emumba-minikube-cluster" + config_path = pathexpand("~/.kube/config") + config_context = var.cluster_name } } diff --git a/infra/projects/argocd/terraform.tfvars.example b/infra/projects/argocd/terraform.tfvars.example new file mode 100644 index 0000000..b70627e --- /dev/null +++ b/infra/projects/argocd/terraform.tfvars.example @@ -0,0 +1,3 @@ +# kubeconfig is hardcoded; nothing to set here unless you want overrides +# server_service_type = "NodePort" +# chart_version = "8.5.7" diff --git a/infra/projects/argocd/variables.tf b/infra/projects/argocd/variables.tf new file mode 100644 index 0000000..53da68e --- /dev/null +++ b/infra/projects/argocd/variables.tf @@ -0,0 +1,24 @@ +variable "namespace" { + type = string + default = "argocd" +} +variable "release_name" { + type = string + default = "argo-cd" +} +variable "server_service_type" { + type = string + default = "NodePort" +} +variable "chart_version" { + type = string + default = "8.5.7" +} +variable "extra_values_yaml" { + type = list(string) + default = [] +} +variable "cluster_name" { + type = string + default = "emumba-minikube-cluster" +} diff --git a/infra/projects/cluster/main.tf b/infra/projects/cluster/main.tf new file mode 100644 index 0000000..d2f7160 --- /dev/null +++ b/infra/projects/cluster/main.tf @@ -0,0 +1,11 @@ +module "cluster_minikube" { + source = "../../modules/cluster-minikube" + + cluster_name = var.cluster_name + driver = var.driver + nodes = var.nodes + cpus = var.cpus + memory = var.memory + kubernetes_version = var.kubernetes_version + cni = var.cni +} diff --git a/infra/projects/cluster/outputs.tf b/infra/projects/cluster/outputs.tf new file mode 100644 index 0000000..b40d75b --- /dev/null +++ b/infra/projects/cluster/outputs.tf @@ -0,0 +1 @@ +output "profile_name" { value = module.cluster_minikube.profile_name } diff --git a/infra/projects/cluster/provider.tf b/infra/projects/cluster/provider.tf new file mode 100644 index 0000000..cf3d018 --- /dev/null +++ b/infra/projects/cluster/provider.tf @@ -0,0 +1,10 @@ +terraform { + required_version = ">= 1.10.0" + required_providers { + null = { + source = "hashicorp/null" + version = "3.2.4" + } + } +} +# No provider blocks needed for null provider. diff --git a/infra/projects/cluster/terraform.tfvars.example b/infra/projects/cluster/terraform.tfvars.example new file mode 100644 index 0000000..d804dfb --- /dev/null +++ b/infra/projects/cluster/terraform.tfvars.example @@ -0,0 +1,22 @@ +# Override defaults here if you like + +cluster_name = "emumba-minikube-cluster" +driver = "docker" +nodes = 1 +cpus = 4 +memory = 8192 +kubernetes_version = "v1.34.0" +cni = "flannel" + +# e.g., add-ons or preload off +extra_flags = [ + "--addons=ingress,metrics-server", + "--preload=false" +] + +wait_for_nodes = true +delete_on_destroy = true + +# If you prefer a custom kubeconfig path, set it here; +# otherwise Minikube will update ~/.kube/config which is what the next projects use. +kubeconfig_path = pathexpand("~/.kube/config") diff --git a/infra/projects/cluster/variables.tf b/infra/projects/cluster/variables.tf new file mode 100644 index 0000000..045b894 --- /dev/null +++ b/infra/projects/cluster/variables.tf @@ -0,0 +1,28 @@ +variable "cluster_name" { + type = string + default = "emumba-minikube-cluster" +} +variable "driver" { + type = string + default = "docker" +} +variable "nodes" { + type = number + default = 1 +} +variable "cpus" { + type = number + default = 4 +} +variable "memory" { + type = number + default = 8192 +} +variable "kubernetes_version" { + type = string + default = "v1.34.0" +} +variable "cni" { + type = string + default = "flannel" +} diff --git a/infra/terraform.tfvars.example b/infra/terraform.tfvars.example deleted file mode 100644 index ef4dfeb..0000000 --- a/infra/terraform.tfvars.example +++ /dev/null @@ -1,12 +0,0 @@ -cluster_name = "emumba-minikube-cluster" -kubernetes_version = "v1.34.0" -driver = "docker" -nodes = 3 -cpus = 4 -memory = "8192mb" -cni = "flannel" -addons = ["default-storageclass", "storage-provisioner", "ingress", "metrics-server"] -delete_on_failure = true -github_username = "aliannus2" -github_pat = "ghp_fnsadjsgadhgdssdasfas" # Place your github_pat -github_repo_url = "https://github.com/aliannus2/emumba-assessment-k8s-iac.git" # Enter you github_repo_url \ No newline at end of file diff --git a/infra/variables.tf b/infra/variables.tf deleted file mode 100644 index 3b89f75..0000000 --- a/infra/variables.tf +++ /dev/null @@ -1,12 +0,0 @@ -variable "cluster_name" { type = string } -variable "kubernetes_version" { type = string } -variable "driver" { type = string } -variable "nodes" { type = number } -variable "cpus" { type = number } -variable "memory" { type = string } -variable "cni" { type = string } -variable "addons" { type = set(string) } -variable "delete_on_failure" { type = bool } -variable "github_username" { type = string } -variable "github_pat" { type = string } -variable "github_repo_url" { type = string } \ No newline at end of file From 06be38dc0edc261ff589a17fecdbe3a77583defb Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Mon, 29 Sep 2025 03:45:10 +0500 Subject: [PATCH 19/22] On branch all-in-one-deployment Your branch is up to date with 'origin/all-in-one-deployment'. Changes to be committed: renamed: infra/modules/application/main.tf -> modules/application/main.tf renamed: infra/modules/application/outputs.tf -> modules/application/outputs.tf renamed: infra/modules/application/variables.tf -> modules/application/variables.tf renamed: infra/modules/argocd/main.tf -> modules/argocd/main.tf renamed: infra/modules/argocd/outputs.tf -> modules/argocd/outputs.tf renamed: infra/modules/argocd/variables.tf -> modules/argocd/variables.tf renamed: infra/modules/cluster-minikube/main.tf -> modules/cluster-minikube/main.tf renamed: infra/modules/cluster-minikube/outputs.tf -> modules/cluster-minikube/outputs.tf renamed: infra/modules/cluster-minikube/variables.tf -> modules/cluster-minikube/variables.tf renamed: infra/projects/application/main.tf -> projects/application/main.tf renamed: infra/projects/application/outputs.tf -> projects/application/outputs.tf renamed: infra/projects/application/providers.tf -> projects/application/providers.tf renamed: infra/projects/application/variabels.tf -> projects/application/variabels.tf renamed: infra/projects/argocd/main.tf -> projects/argocd/main.tf renamed: infra/projects/argocd/outputs.tf -> projects/argocd/outputs.tf renamed: infra/projects/argocd/providers.tf -> projects/argocd/providers.tf renamed: infra/projects/argocd/terraform.tfvars.example -> projects/argocd/terraform.tfvars.example renamed: infra/projects/argocd/variables.tf -> projects/argocd/variables.tf renamed: infra/projects/cluster/main.tf -> projects/cluster/main.tf renamed: infra/projects/cluster/outputs.tf -> projects/cluster/outputs.tf renamed: infra/projects/cluster/provider.tf -> projects/cluster/provider.tf renamed: infra/projects/cluster/terraform.tfvars.example -> projects/cluster/terraform.tfvars.example renamed: infra/projects/cluster/variables.tf -> projects/cluster/variables.tf --- {infra/modules => modules}/application/main.tf | 2 +- {infra/modules => modules}/application/outputs.tf | 0 {infra/modules => modules}/application/variables.tf | 0 {infra/modules => modules}/argocd/main.tf | 0 {infra/modules => modules}/argocd/outputs.tf | 0 {infra/modules => modules}/argocd/variables.tf | 0 {infra/modules => modules}/cluster-minikube/main.tf | 0 {infra/modules => modules}/cluster-minikube/outputs.tf | 0 {infra/modules => modules}/cluster-minikube/variables.tf | 0 {infra/projects => projects}/application/main.tf | 0 {infra/projects => projects}/application/outputs.tf | 0 {infra/projects => projects}/application/providers.tf | 0 {infra/projects => projects}/application/variabels.tf | 0 {infra/projects => projects}/argocd/main.tf | 0 {infra/projects => projects}/argocd/outputs.tf | 0 {infra/projects => projects}/argocd/providers.tf | 0 {infra/projects => projects}/argocd/terraform.tfvars.example | 0 {infra/projects => projects}/argocd/variables.tf | 0 {infra/projects => projects}/cluster/main.tf | 0 {infra/projects => projects}/cluster/outputs.tf | 0 {infra/projects => projects}/cluster/provider.tf | 1 - {infra/projects => projects}/cluster/terraform.tfvars.example | 0 {infra/projects => projects}/cluster/variables.tf | 0 23 files changed, 1 insertion(+), 2 deletions(-) rename {infra/modules => modules}/application/main.tf (95%) rename {infra/modules => modules}/application/outputs.tf (100%) rename {infra/modules => modules}/application/variables.tf (100%) rename {infra/modules => modules}/argocd/main.tf (100%) rename {infra/modules => modules}/argocd/outputs.tf (100%) rename {infra/modules => modules}/argocd/variables.tf (100%) rename {infra/modules => modules}/cluster-minikube/main.tf (100%) rename {infra/modules => modules}/cluster-minikube/outputs.tf (100%) rename {infra/modules => modules}/cluster-minikube/variables.tf (100%) rename {infra/projects => projects}/application/main.tf (100%) rename {infra/projects => projects}/application/outputs.tf (100%) rename {infra/projects => projects}/application/providers.tf (100%) rename {infra/projects => projects}/application/variabels.tf (100%) rename {infra/projects => projects}/argocd/main.tf (100%) rename {infra/projects => projects}/argocd/outputs.tf (100%) rename {infra/projects => projects}/argocd/providers.tf (100%) rename {infra/projects => projects}/argocd/terraform.tfvars.example (100%) rename {infra/projects => projects}/argocd/variables.tf (100%) rename {infra/projects => projects}/cluster/main.tf (100%) rename {infra/projects => projects}/cluster/outputs.tf (100%) rename {infra/projects => projects}/cluster/provider.tf (76%) rename {infra/projects => projects}/cluster/terraform.tfvars.example (100%) rename {infra/projects => projects}/cluster/variables.tf (100%) diff --git a/infra/modules/application/main.tf b/modules/application/main.tf similarity index 95% rename from infra/modules/application/main.tf rename to modules/application/main.tf index c5ea227..112a547 100644 --- a/infra/modules/application/main.tf +++ b/modules/application/main.tf @@ -4,7 +4,7 @@ resource "kubernetes_namespace" "app" { name = var.application_namespace labels = { "app.kubernetes.io/name" = var.application_name - "app.kubernetes.io/part-of" = var.cluster_name # <- use cluster_name instead of a static project label + "app.kubernetes.io/part-of" = var.cluster_name "app.kubernetes.io/managed-by" = "terraform" } } diff --git a/infra/modules/application/outputs.tf b/modules/application/outputs.tf similarity index 100% rename from infra/modules/application/outputs.tf rename to modules/application/outputs.tf diff --git a/infra/modules/application/variables.tf b/modules/application/variables.tf similarity index 100% rename from infra/modules/application/variables.tf rename to modules/application/variables.tf diff --git a/infra/modules/argocd/main.tf b/modules/argocd/main.tf similarity index 100% rename from infra/modules/argocd/main.tf rename to modules/argocd/main.tf diff --git a/infra/modules/argocd/outputs.tf b/modules/argocd/outputs.tf similarity index 100% rename from infra/modules/argocd/outputs.tf rename to modules/argocd/outputs.tf diff --git a/infra/modules/argocd/variables.tf b/modules/argocd/variables.tf similarity index 100% rename from infra/modules/argocd/variables.tf rename to modules/argocd/variables.tf diff --git a/infra/modules/cluster-minikube/main.tf b/modules/cluster-minikube/main.tf similarity index 100% rename from infra/modules/cluster-minikube/main.tf rename to modules/cluster-minikube/main.tf diff --git a/infra/modules/cluster-minikube/outputs.tf b/modules/cluster-minikube/outputs.tf similarity index 100% rename from infra/modules/cluster-minikube/outputs.tf rename to modules/cluster-minikube/outputs.tf diff --git a/infra/modules/cluster-minikube/variables.tf b/modules/cluster-minikube/variables.tf similarity index 100% rename from infra/modules/cluster-minikube/variables.tf rename to modules/cluster-minikube/variables.tf diff --git a/infra/projects/application/main.tf b/projects/application/main.tf similarity index 100% rename from infra/projects/application/main.tf rename to projects/application/main.tf diff --git a/infra/projects/application/outputs.tf b/projects/application/outputs.tf similarity index 100% rename from infra/projects/application/outputs.tf rename to projects/application/outputs.tf diff --git a/infra/projects/application/providers.tf b/projects/application/providers.tf similarity index 100% rename from infra/projects/application/providers.tf rename to projects/application/providers.tf diff --git a/infra/projects/application/variabels.tf b/projects/application/variabels.tf similarity index 100% rename from infra/projects/application/variabels.tf rename to projects/application/variabels.tf diff --git a/infra/projects/argocd/main.tf b/projects/argocd/main.tf similarity index 100% rename from infra/projects/argocd/main.tf rename to projects/argocd/main.tf diff --git a/infra/projects/argocd/outputs.tf b/projects/argocd/outputs.tf similarity index 100% rename from infra/projects/argocd/outputs.tf rename to projects/argocd/outputs.tf diff --git a/infra/projects/argocd/providers.tf b/projects/argocd/providers.tf similarity index 100% rename from infra/projects/argocd/providers.tf rename to projects/argocd/providers.tf diff --git a/infra/projects/argocd/terraform.tfvars.example b/projects/argocd/terraform.tfvars.example similarity index 100% rename from infra/projects/argocd/terraform.tfvars.example rename to projects/argocd/terraform.tfvars.example diff --git a/infra/projects/argocd/variables.tf b/projects/argocd/variables.tf similarity index 100% rename from infra/projects/argocd/variables.tf rename to projects/argocd/variables.tf diff --git a/infra/projects/cluster/main.tf b/projects/cluster/main.tf similarity index 100% rename from infra/projects/cluster/main.tf rename to projects/cluster/main.tf diff --git a/infra/projects/cluster/outputs.tf b/projects/cluster/outputs.tf similarity index 100% rename from infra/projects/cluster/outputs.tf rename to projects/cluster/outputs.tf diff --git a/infra/projects/cluster/provider.tf b/projects/cluster/provider.tf similarity index 76% rename from infra/projects/cluster/provider.tf rename to projects/cluster/provider.tf index cf3d018..2ec933e 100644 --- a/infra/projects/cluster/provider.tf +++ b/projects/cluster/provider.tf @@ -7,4 +7,3 @@ terraform { } } } -# No provider blocks needed for null provider. diff --git a/infra/projects/cluster/terraform.tfvars.example b/projects/cluster/terraform.tfvars.example similarity index 100% rename from infra/projects/cluster/terraform.tfvars.example rename to projects/cluster/terraform.tfvars.example diff --git a/infra/projects/cluster/variables.tf b/projects/cluster/variables.tf similarity index 100% rename from infra/projects/cluster/variables.tf rename to projects/cluster/variables.tf From 6bc84cb1a6f14eef0e821da9bb1509a65ec64fde Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Mon, 29 Sep 2025 04:09:18 +0500 Subject: [PATCH 20/22] On branch all-in-one-deployment Your branch is up to date with 'origin/all-in-one-deployment'. Changes to be committed: new file: stacks/all-in-one/main.tf new file: stacks/all-in-one/providers.tf new file: stacks/all-in-one/variables.tf --- stacks/all-in-one/main.tf | 88 ++++++++++++++++++++++++++++++++++ stacks/all-in-one/providers.tf | 9 ++++ stacks/all-in-one/variables.tf | 18 +++++++ 3 files changed, 115 insertions(+) create mode 100644 stacks/all-in-one/main.tf create mode 100644 stacks/all-in-one/providers.tf create mode 100644 stacks/all-in-one/variables.tf diff --git a/stacks/all-in-one/main.tf b/stacks/all-in-one/main.tf new file mode 100644 index 0000000..df2facb --- /dev/null +++ b/stacks/all-in-one/main.tf @@ -0,0 +1,88 @@ +locals { + cluster_dir = "../../projects/cluster" + argocd_dir = "../../projects/argocd" + application_dir = "../../projects/application" +} + +# 1) Cluster INIT +resource "null_resource" "cluster_init" { + triggers = { + dir = local.cluster_dir + bump = "1" + } + provisioner "local-exec" { + command = "terraform -chdir=${self.triggers.dir} init -upgrade" + } +} + +# 1) Cluster APPLY +resource "null_resource" "cluster_apply" { + triggers = { + init_done = null_resource.cluster_init.id + dir = local.cluster_dir + bump = "1" + } + provisioner "local-exec" { + command = "terraform -chdir=${self.triggers.dir} apply -auto-approve" + } + provisioner "local-exec" { + when = destroy + command = "terraform -chdir=${self.triggers.dir} destroy -auto-approve" + } +} + +# 2) Argo CD INIT +resource "null_resource" "argocd_init" { + triggers = { + cluster_done = null_resource.cluster_apply.id + dir = local.argocd_dir + bump = "1" + } + provisioner "local-exec" { + command = "terraform -chdir=${self.triggers.dir} init -upgrade" + } +} + +# 2) Argo CD APPLY +resource "null_resource" "argocd_apply" { + triggers = { + init_done = null_resource.argocd_init.id + dir = local.argocd_dir + bump = "1" + } + provisioner "local-exec" { + command = "terraform -chdir=${self.triggers.dir} apply -auto-approve" + } + provisioner "local-exec" { + when = destroy + command = "terraform -chdir=${self.triggers.dir} destroy -auto-approve" + } +} + +# 3) Application INIT +resource "null_resource" "application_init" { + triggers = { + argocd_done = null_resource.argocd_apply.id + dir = local.application_dir + bump = "1" + } + provisioner "local-exec" { + command = "terraform -chdir=${self.triggers.dir} init -upgrade" + } +} + +# 3) Application APPLY +resource "null_resource" "application_apply" { + triggers = { + init_done = null_resource.application_init.id + dir = local.application_dir + bump = "1" + } + provisioner "local-exec" { + command = "terraform -chdir=${self.triggers.dir} apply -auto-approve" + } + provisioner "local-exec" { + when = destroy + command = "terraform -chdir=${self.triggers.dir} destroy -auto-approve" + } +} diff --git a/stacks/all-in-one/providers.tf b/stacks/all-in-one/providers.tf new file mode 100644 index 0000000..7e01038 --- /dev/null +++ b/stacks/all-in-one/providers.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.10.0" + required_providers { + null = { + source = "hashicorp/null" + version = ">= 3.2.4" + } + } +} diff --git a/stacks/all-in-one/variables.tf b/stacks/all-in-one/variables.tf new file mode 100644 index 0000000..fbc73c8 --- /dev/null +++ b/stacks/all-in-one/variables.tf @@ -0,0 +1,18 @@ +# Minimal inputs — keep everything else defaulted in each project. + +variable "cluster_name" { + description = "Minikube profile / kube context used by Application project" + type = string + default = "emumba-minikube-cluster" +} + +variable "github_repo_url" { + description = "HTTPS repo URL that Argo CD Application will sync" + type = string +} + +variable "github_pat" { + description = "GitHub token with read access" + type = string + sensitive = true +} From e17a81692a321d1f88cb6109acd8beb631cde317 Mon Sep 17 00:00:00 2001 From: Annas Ali Date: Mon, 29 Sep 2025 04:25:44 +0500 Subject: [PATCH 21/22] On branch all-in-one-deployment Your branch is up to date with 'origin/all-in-one-deployment'. Changes to be committed: modified: README.md deleted: README_App.md new file: projects/application/terraform.tfvars.example new file: stacks/all-in-one/outputs.tf Changes not staged for commit: modified: README.md --- README.md | 351 +++++++++++------- README_App.md | 43 --- projects/application/terraform.tfvars.example | 21 ++ stacks/all-in-one/outputs.tf | 24 ++ 4 files changed, 270 insertions(+), 169 deletions(-) delete mode 100644 README_App.md create mode 100644 projects/application/terraform.tfvars.example create mode 100644 stacks/all-in-one/outputs.tf diff --git a/README.md b/README.md index 5639e9c..f303dee 100644 --- a/README.md +++ b/README.md @@ -1,174 +1,273 @@ -# GitOps Kubernetes Setup +# Local GitOps on Minikube (Terraform + Argo CD) -A simple GitOps-style local Kubernetes setup using **Terraform**, **Minikube**, **Argo CD**, and **Kustomize**. +Spin up a local Kubernetes cluster with **Minikube**, install **Argo CD** via Helm, and deploy your app GitOps-style — all with Terraform. + +Each component is a **standalone Terraform project** (cluster / argocd / application), and there's an optional **all-in-one stack** that orchestrates all projects for a one-shot deployment. + +## Table of Contents + +- [Repository Layout](#repository-layout) +- [Prerequisites](#prerequisites) +- [Getting Started](#getting-started) +- [Individual Project Deployment](#individual-project-deployment) +- [Manifest Structure](#manifest-structure) +- [Configuration](#configuration) +- [Accessing Argo CD](#accessing-argo-cd) +- [Cleanup](#cleanup) +- [Troubleshooting](#troubleshooting) +- [Notes](#notes) + +## Repository Layout + +``` +modules/ +├── cluster-minikube/ # Minikube cluster management (reusable) +├── argocd/ # Argo CD Helm installation (reusable) +└── application/ # Argo CD Project + Application (reusable) + +projects/ +├── cluster/ # Standalone TF: creates Minikube cluster +├── argocd/ # Standalone TF: installs Argo CD +└── application/ # Standalone TF: registers repo + Argo App + +stacks/ +└── all-in-one/ # Optional: orchestrates all 3 projects +``` + +> Each **project** has its own `providers.tf`, `variables.tf`, and `terraform.tfvars`. +> Providers read `~/.kube/config`. Application project sets `config_context = var.cluster_name`. ## Prerequisites -Install the following tools for your operating system: -- Docker -- Terraform (>= 1.10) -- Minikube -- kubectl -- Helm -- Kustomize +- **Terraform** ≥ 1.10.0 +- **Minikube** + **Docker** (or another supported driver) +- **kubectl**, **Helm**, and **Kustomize** +- A Git repository with your Kustomize layout (see [Manifest Structure](#manifest-structure)) +- A GitHub **Personal Access Token (PAT)** with read access to that repository + +> On Windows, use **PowerShell** or **Git Bash**. All commands below are provided as single lines. ## Getting Started -### 1. Clone and Setup +### 1. Configure Your Application Settings + +Before deploying, you need to configure your GitHub repository and credentials: + +1. **Navigate to the application project:** + ```bash + cd projects/application/ + ``` + +2. **Copy the example configuration:** + ```bash + cp terraform.tfvars.example terraform.tfvars + ``` + +3. **Edit `terraform.tfvars` and update:** + - `github_repo_url`: Replace with your actual GitHub repository URL + - `github_pat`: Add your GitHub Personal Access Token (PAT) with read access to the repository + + **⚠️ Security Note:** Instead of putting your PAT directly in the file, you can set it as an environment variable: + ```bash + export TF_VAR_github_pat="ghp_XXXXXXXXXXXXXXXX" + ``` + Then leave `github_pat = ""` in the terraform.tfvars file. + +4. **Return to the repository root:** + ```bash + cd ../../ + ``` + +### 2. All-in-One Deployment + +The fastest way to get everything running! This stack orchestrates all three projects in the correct order. + +Run from `stacks/all-in-one/`: + +```bash +terraform init && terraform apply -auto-approve +``` + +The stack provides helpful outputs including Argo CD access instructions once deployment completes. + +## Individual Project Deployment + +If you prefer granular control, deploy each component individually. Run from the repository root - each project reads its **own** `terraform.tfvars`. + +### 1. Create Minikube Cluster +```bash +terraform -chdir=projects/cluster init -upgrade && terraform -chdir=projects/cluster apply -auto-approve +``` + +### 2. Install Argo CD +```bash +terraform -chdir=projects/argocd init -upgrade && terraform -chdir=projects/argocd apply -auto-approve +``` +### 3. Deploy Application ```bash -git clone -cd emumba-assessment-k8s-iac +terraform -chdir=projects/application init -upgrade && terraform -chdir=projects/application apply -auto-approve ``` -### 2. Configure Terraform Variables +## Manifest Structure -Create `infra/terraform.tfvars` with your local settings and GitHub token (**do not** commit this file): +Your Git repository should contain Kubernetes manifests organized with Kustomize. Here's the expected structure: +``` +k8s/ +├── base/ +│ ├── namespace.yaml +│ ├── resourcequota.yaml +│ ├── rbac/ +│ │ ├── role-readonly.yaml +│ │ ├── role-readwrite.yaml +│ │ ├── rolebinding-readonly.yaml +│ │ └── rolebinding-readwrite.yaml +│ ├── apigateway/ +│ │ ├── deployment.yaml +│ │ ├── service.yaml +│ │ └── configmap.yaml +│ ├── quoteservice/ +│ │ ├── deployment.yaml +│ │ ├── service.yaml +│ │ └── configmap.yaml +│ ├── frontend/ +│ │ ├── deployment.yaml +│ │ ├── service.yaml +│ │ └── configmap.yaml +│ └── kustomization.yaml +└── overlays/ + └── dev/ + └── kustomization.yaml +``` + +The `kustomize_path` in your configuration should point to the overlay you want to deploy (e.g., `k8s/overlays/dev`). + +Configure each project by editing its respective `terraform.tfvars` file: + +### projects/cluster/terraform.tfvars ```hcl -# --- Cluster Configuration --- cluster_name = "emumba-minikube-cluster" -kubernetes_version = "v1.34.0" driver = "docker" -nodes = 3 +nodes = 1 cpus = 4 -memory = "8192mb" -cni = "bridge" -delete_on_failure = true +memory = 8192 +kubernetes_version = "v1.34.0" +cni = "flannel" +extra_flags = ["--addons=ingress,metrics-server", "--preload=false"] +``` -# --- Argo CD Configuration --- +### projects/argocd/terraform.tfvars +```hcl namespace = "argocd" release_name = "argo-cd" -server_service_type = "NodePort" +server_service_type = "ClusterIP" # or "NodePort" / "LoadBalancer" +chart_version = "8.5.7" +# extra_values_yaml = [] +``` + +### projects/application/terraform.tfvars +```hcl +cluster_name = "emumba-minikube-cluster" # Kubernetes context to use +argocd_namespace = "argocd" +application_namespace = "emumba-assessment" -# --- Repository Configuration --- -github_repo_url = "https://github.com//emumba-assessment-k8s-iac.git" -github_pat = "ghp_********" +project_name = "emumba-deployment" +application_name = "emumba-assessment-app" + +github_repo_url = "https://github.com/your-org/your-repo.git" +github_pat = "" # Prefer env: TF_VAR_github_pat +kustomize_path = "k8s/overlays/dev" +target_revision = "HEAD" ``` -### 3. Deploy the Stack +## All-in-One Stack + +This stack orchestrates all three projects in the correct order (init → apply). -From the `infra` directory, run Terraform to: -- Start Minikube cluster -- Install Argo CD -- Bootstrap GitOps +Run from `stacks/all-in-one/`: ```bash -cd infra -terraform init -terraform apply -auto-approve +terraform init && terraform apply -auto-approve ``` -### 4. Verify Deployment +The stack provides helpful outputs including Argo CD access instructions. -Check if everything is running correctly: +## Accessing Argo CD -```bash -# Check Argo CD applications -kubectl -n argocd get appprojects,applications +### Get Admin Password -# Check application deployments -kubectl -n emumba-assessment get deploy,svc +**Bash/Git Bash:** +```bash +kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo ``` -## GitOps Configuration - -This repository follows GitOps principles: +**PowerShell:** +```powershell +$p=(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}"); [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($p)) +``` -- **Manifest Location**: All Kubernetes manifests are stored under `k8s/` -- **Sync Path**: Argo CD syncs from `k8s/overlays/dev` -- **Automated Deployment**: No manual `kubectl apply` required -- **Change Tracking**: Argo CD automatically tracks and syncs repository changes +### Access the UI -### Repository Configuration +1. **Port-forward to Argo CD:** + ```bash + kubectl port-forward service/argo-cd-argocd-server -n argocd 8080:443 + ``` -If you fork this repository to a different location, update the `github_repo_url` in `infra/terraform.tfvars` before applying Terraform. +2. **Open:** https://localhost:8080 -### Environment Variables (Optional) +3. **Login:** + - Username: `admin` + - Password: (from commands above) -For scripting purposes, you can set your GitHub PAT as an environment variable: +## Cleanup -**Windows:** -```cmd -set GITHUB_PAT=ghp_******** -``` +Destroy resources in reverse order: -**Linux/macOS:** +### Individual Projects ```bash -export GITHUB_PAT=ghp_******** -``` - -> **Note:** Your PAT is only used by Terraform providers. Never commit it to the repository. - -## Directory Structure - -``` -emumba-assessment-k8s-iac/ -├── README.md -├── infra/ # Terraform infrastructure code -│ ├── providers.tf -│ ├── variables.tf -│ ├── main.tf -│ ├── outputs.tf -│ └── terraform.tfvars # Local config (not committed) -├── modules/ # Terraform modules -│ └── minikube/ -│ ├── main.tf # Minikube cluster setup -│ ├── variables.tf -│ └── outputs.tf -└── k8s/ # Kubernetes manifests - ├── base/ # Base configurations - │ ├── namespace.yaml - │ ├── resourcequota.yaml - │ ├── rbac/ - │ │ ├── role-readonly.yaml - │ │ ├── role-readwrite.yaml - │ │ ├── rolebinding-readonly.yaml - │ │ └── rolebinding-readwrite.yaml - │ ├── apigateway/ - │ │ ├── deployment.yaml - │ │ ├── service.yaml - │ │ └── configmap.yaml - │ ├── quoteservice/ - │ │ ├── deployment.yaml - │ │ ├── service.yaml - │ │ └── configmap.yaml - │ ├── frontend/ - │ │ ├── deployment.yaml - │ │ ├── service.yaml - │ │ └── configmap.yaml - │ └── kustomization.yaml - └── overlays/ - └── dev/ - └── kustomization.yaml -``` - -## Architecture Components - -- **Terraform**: Infrastructure as Code for cluster provisioning -- **Minikube**: Local Kubernetes cluster -- **Argo CD**: GitOps continuous deployment -- **Kustomize**: Configuration management and overlays - -## Clean Up - -To destroy all resources and stop the Minikube cluster: +terraform -chdir=projects/application destroy -auto-approve +terraform -chdir=projects/argocd destroy -auto-approve +terraform -chdir=projects/cluster destroy -auto-approve +``` +### All-in-One Stack +From `stacks/all-in-one/`: ```bash -cd infra -terraform destroy +terraform destroy -auto-approve ``` -This will remove: -- Minikube cluster -- Argo CD installation -- All GitOps applications and configurations - ## Troubleshooting -### Common Issues +### Context not found / Connection refused +- Ensure Minikube is running and `cluster_name` matches your Minikube profile +- Check: `kubectl config get-contexts` and `minikube profile list` + +### Argo CD CRDs missing +- Apply `projects/argocd` before `projects/application` + +### Port 8080 already in use +- Change the local port: `kubectl port-forward ... 9090:443` + +### Windows CRLF issues in shell scripts +- Use PowerShell for one-liners, or set `*.tf text eol=lf` in `.gitattributes` + +### Re-run a single stage +- Just rerun its one-liner (e.g., `terraform -chdir=projects/argocd apply -auto-approve`) + +## Notes + +- **Argo CD Helm values include:** + - `installCRDs = true` + - `server.insecure = true` + - Service type configurable via `server_service_type` + +- **Application project uses `kubernetes_manifest` to create:** + - Argo CD AppProject + - Argo CD Application (pointing at `github_repo_url` + `kustomize_path`) + +- **Security:** Always prefer `TF_VAR_github_pat` environment variable over committing tokens to files or shell history + +--- -1. **Docker not running**: Ensure Docker Desktop is started before running Terraform -2. **Port conflicts**: Check if required ports are available on your system -3. **Resource limits**: Adjust CPU and memory settings in `terraform.tfvars` if needed -4. **GitHub PAT permissions**: Ensure your PAT has appropriate repository access +**Happy GitOps-ing!** 🚀 \ No newline at end of file diff --git a/README_App.md b/README_App.md deleted file mode 100644 index 6f87592..0000000 --- a/README_App.md +++ /dev/null @@ -1,43 +0,0 @@ -# Simple Microservice Example - -A very simple microservice example with NodeJS, Python and Docker - -## Run the API gateway - -- Install `docker` and `docker-compose` according to your operating system - -- Clone the repository and navigate to it - -- Run `docker-compose up` to start the services - -- Try `GET http://YOUR_HOST:3000/api/status` to check whether application is running - -## Build the frontend - -The application uses a frontend written with plain html with jQuery and to style with Bulma. -This is built with webpack. This default application is built assuming you are using the `localhost`. - -To build this to fit your own **IP Address** please follow the steps before you running the `docker-compose up` - -- Install NodeJs on your system - -- Go to FrontendApplication directory - -- Run `npm install` or if you have yarn `yarn` to install packages - -- Now you need to set the API Gateway for this frontend application. It can be any host you have. - - Let's say you are hosting this application on `http://example.com` then your `API_GATEWAY` would be this one. - - If you are hosting in some machine with IP `123.324.345.1` then your `API_GATEWAY` would be your IP. - -- To pass this setting to webpack build you need to set an Environment Variable - - Windows : `set API_GATEWAY=http://YOUR_HOST` - - Linux/Max : `API_GATEWAY=http://YOUR_HOST` - * Remember no / at the end of the URL to get your web app work - -- Now you can do `npm run build` or `yarn build` - -- Check `dist/` folder for newly created index.html and the main.js - -- Now run the `docker-compose up` on the root folder of project and check `http://YOUR_HOST:8080` to see web app - -![image](https://user-images.githubusercontent.com/13379595/42726706-82eb0ae6-87b6-11e8-8456-d933b9dfa73b.png) diff --git a/projects/application/terraform.tfvars.example b/projects/application/terraform.tfvars.example new file mode 100644 index 0000000..af2eadc --- /dev/null +++ b/projects/application/terraform.tfvars.example @@ -0,0 +1,21 @@ +# Use the Minikube profile name you started the cluster with: +cluster_name = "emumba-minikube-cluster" + +# Argo CD location +argocd_namespace = "argocd" + +# App destination namespace +application_namespace = "emumba-assessment" + +# Argo CD objects +project_name = "emumba-deployment" +application_name = "emumba-assessment-app" + +# Repo details +github_repo_url = "https://github.com/aliannus2/emumba-assessment-k8s-iac.git" +github_pat = "ghp_Qasdfasdgasdgasfs" +repo_username = "aliannus2" + +# Kustomize path and revision +kustomize_path = "k8s/overlays/dev" +target_revision = "HEAD" diff --git a/stacks/all-in-one/outputs.tf b/stacks/all-in-one/outputs.tf new file mode 100644 index 0000000..4a5f380 --- /dev/null +++ b/stacks/all-in-one/outputs.tf @@ -0,0 +1,24 @@ +output "argocd_username" { + value = "admin" + description = "Argo CD initial username." +} + +output "argocd_admin_password_bash_cmd" { + value = "kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 -d; echo" + description = "Run in Bash/zsh/Git Bash to print the Argo CD admin password." +} + +output "argocd_admin_password_powershell_cmd" { + value = "$p=(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\"); [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($p))" + description = "Run in Windows PowerShell to print the Argo CD admin password." +} + +output "argocd_port_forward_cmd" { + value = "kubectl port-forward service/argo-cd-argocd-server -n argocd 8080:443" + description = "Run this to access Argo CD at https://localhost:8080." +} + +output "argocd_url" { + value = "https://localhost:8080" + description = "Open this in your browser after running the port-forward command." +} \ No newline at end of file From 4272388bb9e17e0544c3ff1c94ef9a16c8c54ae1 Mon Sep 17 00:00:00 2001 From: Annas Ali <58392315+aliannus2@users.noreply.github.com> Date: Mon, 29 Sep 2025 04:25:58 +0500 Subject: [PATCH 22/22] On branch all-in-one-deployment Your branch is ahead of 'origin/all-in-one-deployment' by 1 commit. (use "git push" to publish your local commits) Changes to be committed: modified: README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index f303dee..388e272 100644 --- a/README.md +++ b/README.md @@ -267,7 +267,3 @@ terraform destroy -auto-approve - Argo CD Application (pointing at `github_repo_url` + `kustomize_path`) - **Security:** Always prefer `TF_VAR_github_pat` environment variable over committing tokens to files or shell history - ---- - -**Happy GitOps-ing!** 🚀 \ No newline at end of file