Ravindra BagaleCourses & study guides मराठी Track your progress

Guides

How to Install Argo CD and Deploy Your First App

Install Argo CD, log in, create an Application pointing at a Git path, sync, and wait until Synced and Healthy.

Friends, Argo CD is the sync agent from the GitOps story. Chala mitrano — wait for Synced and Healthy, not just Applied.

Quick answer

Hold this vertical picture:

  1. Create argocd namespace and install.
  2. Wait for pods.
  3. Login; change admin password.
  4. Apply Application YAML.
  5. Sync; confirm Synced/Healthy.

Language: English · मराठी · हिंदी

Install in argocd nsPods Ready Login UI/CLIChange admin pw Application CRrepo + path SyncApply manifests Healthy/SyncedDone
Argo CD first app

Why Argo CD

It is the GitOps controller teams hire for.

Why: Manual kubectl cannot continuously reconcile. What: Install once; Applications point at Git. How: UI and CLI both work.

Example 1: Install namespace idea

Type this:

printf '%s\n' 'kubectl create namespace argocd'

You will see:

kubectl create namespace argocd

What it means: Argo CD components live in their own namespace.

Example 2: Install manifests reminder

Type this:

printf '%s\n' 'Apply the official Argo CD install manifests for your version from the project release notes (not a random blog copy)'

You will see:

Apply the official Argo CD install manifests for your version from the project release notes (not a random blog copy)

What it means: Pin the version your platform team approves.

Example 3: Wait for pods

Type this:

printf '%s\n' 'kubectl -n argocd get pods'

You will see:

kubectl -n argocd get pods

What it means: All controllers should become Running/Ready.

Concept 1: Access safely

Password and port-forward for labs.

Why: Default admin left unchanged is an incident. What: Read initial secret; change it; SSO later. How: CLI login for scripts.

Example 4: Initial admin password

Type this:

printf '%s\n' 'kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo'

You will see:

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

What it means: Change this password after first login — Infosys checklist.

Example 5: Port-forward UI

Type this:

printf '%s\n' 'kubectl -n argocd port-forward svc/argocd-server 8080:443'

You will see:

kubectl -n argocd port-forward svc/argocd-server 8080:443

What it means: Lab access; prod uses Ingress + SSO later.

Example 6: CLI login sketch

Type this:

printf '%s\n' 'argocd login 127.0.0.1:8080 --insecure'

You will see:

argocd login 127.0.0.1:8080 --insecure

What it means: --insecure only for local TLS labs.

Concept 2: Application object

repoURL, path, destination, syncPolicy.

Why: Wrong path syncs nothing useful. What: apply Application; app get; sync. How: Private Git URLs.

Example 7: Application YAML

Type this:

mkdir -p /tmp/argo && printf '%s\n' 'apiVersion: argoproj.io/v1alpha1' 'kind: Application' 'metadata: {name: web, namespace: argocd}' 'spec:' '  project: default' '  source:' '    repoURL: https://git.example.internal/demo/web-config.git' '    targetRevision: main' '    path: apps/web' '  destination:' '    server: https://kubernetes.default.svc' '    namespace: demo' '  syncPolicy: {automated: {prune: true, selfHeal: true}}' > /tmp/argo/app.yaml && head -5 /tmp/argo/app.yaml

You will see:

apiVersion: argoproj.io/v1alpha1

What it means: repoURL uses your company Git host — not a banned public host in samples.

Example 8: kubectl apply Application

Type this:

printf '%s\n' 'kubectl apply -f app.yaml && argocd app get web'

You will see:

kubectl apply -f app.yaml && argocd app get web

What it means: Look for Synced and Healthy.

Example 9: Manual sync

Type this:

printf '%s\n' 'argocd app sync web'

You will see:

argocd app sync web

What it means: Use when automation is off or first sync.

Concept 3: Heal prune RBAC

Automation knobs and who can click.

Why: Open admin UI without RBAC fails audits. What: selfHeal/prune carefully; map SSO groups. How: Read Healthy vs Progressing.

Example 10: Self-heal meaning

Type this:

printf '%s\n' 'selfHeal: true → controller reverts manual kubectl drift'

You will see:

selfHeal: true → controller reverts manual kubectl drift

What it means: Matches the GitOps lesson.

Example 11: Prune meaning

Type this:

printf '%s\n' 'prune: true → deletes cluster objects removed from Git'

You will see:

prune: true → deletes cluster objects removed from Git

What it means: Without prune, deleted YAML leaves orphans.

Example 12: RBAC note

Type this:

printf '%s\n' 'Map SSO groups to Argo CD RBAC before opening UI to everyone'

You will see:

Map SSO groups to Argo CD RBAC before opening UI to everyone

What it means: Admin for all is an audit fail at Capgemini.

Argo CD card

1 Install into argocd ns 2 Ready pods 3 Login + change password 4 Application YAML 5 sync 6 Synced+Healthy; RBAC later

Suppose: Progressing forever

Check repo access, path, and destination namespace.

Suppose: Unknown status

Image pull or resource errors — open App details.

Ravindra Bagale's Tip

At TCS platform teams, first app uses a private Git path and automated sync with prune+selfHeal in non-prod only until trust grows.

Check yourself (quiz)

Q1. Namespace?

argocd

Q2. Success statuses?

Synced and Healthy

Q3. Application points at?

Git repoURL + path

Q4. selfHeal?

Revert live drift

Q5. prune?

Delete orphans removed from Git

Q6. First password?

Change after login

Reading tracking

Mark this guide when you finish. Your browser remembers it on this device.

install → login → Application → sync → Healthy. Did you understand? Let us try it once more.

Frequently asked questions

Argo CD vs Flux?

Both GitOps; Argo has a popular UI.

Automated sync in prod?

Many teams enable after trust; start manual.

Where is admin password?

argocd-initial-admin-secret.

Progressing forever?

Repo credentials or bad path.

selfHeal risk?

Fights intentional break-glass edits — use policy.

App of apps?

Root Application managing many children.