Kubernetes Guide with Argo CD
What will you learn in this guide?
In this guide
oaicite:0
using
**
oaicite:1
**on
You will learn how to set up a Continuous Deployment (CD) architecture that follows GitOps principles.
Eliminating errors caused by manual Kubernetes deployments,
Making Git the single source of truth and
With the “App of Apps” pattern, you will see how to manage multiple services from a single point.
Stage 1 – Technical Analysis and Summary
Technical topic: GitOps-based Continuous Delivery with Argo CD on Kubernetes
Solved problem:
Manual deployment processes are error-prone and make version tracking difficult.
Solution approach:
Argo CD has the desired state defined in the Git repository.
constantly compares the live state in the cluster
and automatically synchronizes when a difference occurs.
Main steps followed:
- Installing Argo CD on Kubernetes cluster
- Providing web interface and CLI access
- Preparing the Git repository structure
- Centralized management with App of Apps pattern
- Automatic synchronization and drift control
Prerequisites
-
A Kubernetes cluster with administrative rights
(GenixNode K8s, Minikube, etc.) -
kubectlis installed and cluster access is defined -
Git repository (GitHub or GitLab)
-
(Recommended)**
oaicite:2
**
-
argocdCLI
What is Argo CD?
Argo CD is a GitOps controller running on Kubernetes.
Main task:
- Monitoring defined state in Git
- Compare with the real situation in the cluster
- Report and correct any deviations
Occasions:
- Synced → Git and cluster compatible
- OutOfSync → There is a configuration deviation
- Healthy / Degraded → Resource health
Argo CD Application Concept
In Argo CD, each distribution is identified with an Application resource.
An Application specifies:
-Which Git repository -Which cluster? -Which namespace?
- Sync policy
Example Application CRD
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: ana-uygulama
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/genixnode/gitops-repo.git
targetRevision: main
path: kumesel/dev
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
- This structure:
-
Git automatically deploys when it changes
-
Deletes excess resources
-
Undoes manual interventions
Step 1 – Argo CD Installation
- Installation with Kubectl
kubectl create namespace argocd
kubectl apply -n argocd \
-f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml
- This command installs Argo CD in HA (High Availability) mode.
To verify installation:
kubectl get pods -n argocd
Step 2 – Accessing the Web Interface
kubectl port-forward svc/argocd-server -n argocd 8080:443
- From the browser:
https://localhost:8080
- Default admin password:
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d; echo
Step 3 – App of Apps Pattern
App of Apps is one of Argo CD's most powerful patterns. A single parent application manages all child applications.
Sample Git Structure
. ├── kumesel │ └── dev │ ├── nginx.yaml │ ├── redis.yaml │ └── prometheus.yaml └── root-app.yaml
- In this structure:
root-app.yaml → parent application
kumesel/dev → subapplications
Step 4 – Creating Parent Application
via CLI
argocd login localhost:8080
argocd app create ana-uygulama \
--dest-namespace argocd \
--dest-server https://kubernetes.default.svc \
--repo https://github.com/KULLANICI_ADINIZ/REPO_ADINIZ.git \
--path kumesel/dev
Via Web Interface
-
New App
-
Application Name: main-application
-
Sync Policy: Automatic
-
Source Path: kumesel/dev
Destination: https://kubernetes.default.svc
Step 5 – Synchronization and Drift Control
-
When the application is created, the status is OutOfSync.
-
Press the Sync button in the web interface
-
Argo CD automatically creates all sub-applications
-
Healthy ones switch to Healthy status
From this point on:
If you add new YAML to Git → automatically deploy
If you make manual changes → Argo CD rolls it back
Frequently Asked Questions (FAQ)
-
Does Argo CD support Helm? Yes. Helm, Kustomize, Jsonnet and plain YAML are supported.
-
How to do rollback? One click from the History and Rollback section on the interface.
-
Can more than one cluster be managed? Yes. Central management is possible with argocd cluster add.
-
What is Self Heal? It is the rollback of manual changes made in the cluster according to Git.
Result
Congratulations! With Argo CD, you have deployed a GitOps-based, auditable and automated Continuous Delivery architecture in your Kubernetes cluster.
Now:
Go → single source of truth
Argo CD → auditor
Kubernetes → performer
- You can run this structure safely on the GenixNode Kubernetes infrastructure and grow your projects scalably.

