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 kubectl configured 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