Installation Guide: ArgoCD on Linux with Minikube and Argo CLI

Kuldip Mori
3 min readJan 22, 2025

--

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:

https://localhost:2746/

Login Page

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!

--

--

Kuldip Mori
Kuldip Mori

Written by Kuldip Mori

DevOps engineer — Ahemdabad

No responses yet