Helm + ArgoCD Setup¶
Overview¶
Installs Helm (package manager) and ArgoCD (GitOps controller) on the k3s cluster. This pair forms the deployment workflow used for all subsequent application and infrastructure workloads on this cluster.
Scope note: Rancher vs. ArgoCD¶
Rancher is a distinct product — a full cluster-management UI and, separately, its own k8s distribution. It is not installed as part of this document. ArgoCD's UI provides equivalent visibility into cluster/application state for a GitOps workflow. If a Rancher dashboard is required in addition to ArgoCD, it is a separate, optional installation and should be documented independently.
Prerequisites¶
- A running single-node k3s cluster with
kubectlconfigured for the current user
Procedure¶
1. Install Helm¶
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm version
Helm packages Kubernetes manifests into versioned, configurable "charts." It is used later for stateful workloads (PostgreSQL, Redis, Redpanda) and infrastructure components such as cert-manager and the observability stack.
2. Install ArgoCD¶
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Wait for all pods to reach Running:
kubectl get pods -n argocd -w
3. Retrieve initial admin credentials¶
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Username: admin. Rotate this password after first login; do not leave it in shell history.
4. Access the ArgoCD UI¶
Run this command on the machine where the browser is open:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Open https://localhost:8080.
Port-forward is suitable for initial setup verification. If permanent access is required, continue with Networking and TLS and add authentication or a VPN rather than publishing an admin UI without protection.
Verification¶
helm version
# expected: valid client version string
kubectl get pods -n argocd
# expected: all pods Running
kubectl get svc -n argocd
Next Steps¶
- Traefik + cert-manager: domain routing and TLS
- GitOps repository structure (
gitops-vps), wired into ArgoCD as an app-of-apps root - Stateful workloads: PostgreSQL, Redis, and optional Redpanda
- Observability stack: Prometheus, Grafana, Loki, and Alloy