Installation Guide: ArgoCD on Linux with Minikube and Argo CLI
This guide covers the installation of Minikube and ArgoCD on Ubuntu 22.04, enabling a local Kubernetes cluster for GitOps workflows. It includes steps to set up Minikube, install ArgoCD within a dedicated namespace, retrieve admin credentials, access the web interface, and configure the Argo CLI for command-line management.
Prerequisites
I performed these installation steps on Ubuntu — 20.04.6 LTS with Admin access (sudo access).
Step 1: Install Minikube
Minikube provides a local Kubernetes cluster for testing and development.
1.1 Download Minikube:
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
1.2 Install Minikube:
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
1.3 Verify Minikube installation:
minikube version
1.4 Start Minikube:
minikube start
1.5 List all running pods in Kubernetes:
kubectl get pods - all-namespaces
Step 2: Create Namespace for ArgoCD
Namespaces allow isolating resources in Kubernetes.
2.1 Create a namespace for ArgoCD:
kubectl create ns argo
2.2 Verify the namespace:
kubectl get ns
Step 3: Install ArgoCD in Minikube
ArgoCD is a declarative GitOps continuous delivery tool.
3.1 Apply ArgoCD manifests to install ArgoCD:
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
where,
-n specifies the namespace (in this case, argo).
-f fetches the configuration files from the specified URL.
Verify the installation:
3.2 Check the running pods:
kubectl get pods -n argo
3.3 Check the services:
kubectl get svc -n argo
Step 4: Retrieve ArgoCD Admin Credentials
4.1 Get the initial admin secret:
kubectl get secret -n argo argocd-initial-admin-secret -o yaml
apiVersion: v1
data:
password: bUVmaEJJWThDUTc0T3VKSA==
kind: Secret
metadata:
creationTimestamp: "2025-01-22T06:11:36Z"
name: argocd-initial-admin-secret
namespace: argo
resourceVersion: "1413"
uid: 8a1ec989-20da-4b68-8815-50af2702cf69
type: Opaque
4.2 Extract and decode the password:
# In my case
echo -n "bUVmaEJJWThDUTc0T3VKSA==" | base64 -d
Example output:
mEfhBIY8CQ74OuJH
4.3 Retrieve the password in a single command:
$ kubectl -n argo get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
mEfhBIY8CQ74OuJH
Step 5: Access ArgoCD Web Interface
5.1 Forward port 443 to the default port (2746):
# I am forwarding port 2746; feel free to use any port that is open.
kubectl port-forward svc/argocd-server -n argo 2746:443
5.2 Open the ArgoCD web interface in your browser:
Username: admin
Password: The decoded password from the previous step in step 4.2 or 4.3
Step 6: Install Argo CLI & Login
Argo CLI allows ArgoCD to be managed from the command line.
6.1 Fetch the latest version number from GitHub:
VERSION=$(curl -L -s https://raw.githubusercontent.com/argoproj/argo-cd/stable/VERSION)
6.2 Download the Argo CLI binary:
curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/download/v$VERSION/argocd-linux-amd64
6.3 Install the binary locally:
sudo install -m 555 argocd-linux-arm64 /usr/local/bin/argocd
6.4 Remove the downloaded file after installation:
rm argocd-linux-arm64
6.5 Check the version of ArgoCD
$ argocd version
argocd: v2.13.2+dc43124
BuildDate: 2024-12-11T19:01:33Z
GitCommit: dc43124058130db9a747d141d86d7c2f4aac7bf9
GitTreeState: clean
GoVersion: go1.22.9
Compiler: gc
Platform: linux/amd64
argocd-server: v2.13.2+dc43124
BuildDate: 2024-12-11T18:37:15Z
GitCommit: dc43124058130db9a747d141d86d7c2f4aac7bf9
GitTreeState: clean
GoVersion: go1.23.1
Compiler: gc
Platform: linux/amd64
Kustomize Version: v5.4.3 2024-07-19T16:40:33Z
Helm Version: v3.15.4+gfa9efb0
Kubectl Version: v0.31.0
Jsonnet Version: v0.20.0
6.6 Login in ArgoCD with CLI
# port depends on steps 5.1
# same credentials from step 4.2
$ argocd login localhost:2746
WARNING: server certificate had error: tls: failed to verify certificate: x509: certificate signed by unknown authority. Proceed insecurely (y/n)? y
Username: admin
Password:
'admin:login' logged in successfully
Context 'localhost:2746' updated
Summary
You have successfully installed and configured:
- Minikube for running Kubernetes locally.
- ArgoCD within a Kubernetes namespace (
argo
). - Argo CLI for managing ArgoCD instances from the command line.
You can now access the ArgoCD web interface and start managing your applications with GitOps!