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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions docs/week-10-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Week 10 — ArgoCD GitOps Setup

## What ArgoCD does
ArgoCD watches your GitHub repo. When anything in k8s/base/ changes,
it automatically applies those changes to the EKS cluster.
No more manual kubectl apply.

## To Install ArgoCD
winget install -e --id argoproj.argocd

The official Argo CD CLI documentation also lists WinGet as a supported installation method.

## I got this!!
PS C:\Projects\crms> argocd version --client
argocd: v3.4.4+443415b
BuildDate: 2026-06-18T09:15:00Z
GitCommit: 443415b5527ac55366e0760c93ef0e1abd0cf273
GitTreeState: clean
GoVersion: go1.26.0
Compiler: gc
Platform: windows/amd64

## Install ArgoCD on cluster
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

## Access ArgoCD UI
kubectl port-forward svc/argocd-server -n argocd 8080:443

## Get initial admin password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

## Deploy CRMS Application
kubectl apply -f k8s/argocd/crms-application.yaml

## GitOps flow after setup
1. Developer pushes code to GitHub
2. GitHub Actions builds new Docker image, pushes to GHCR
3. GitHub Actions updates image tag in k8s/base/backend-deployment.yaml
4. ArgoCD detects change in Git
5. ArgoCD automatically syncs to EKS cluster
6. New pods roll out with zero downtime
23 changes: 23 additions & 0 deletions k8s/argocd/crms-application.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: crms
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/crms-devops/crms.git
targetRevision: main
path: k8s/base
destination:
server: https://kubernetes.default.svc
namespace: crms
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
6 changes: 6 additions & 0 deletions k8s/argocd/namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: argocd
labels:
app: argocd
Loading