In this article, we will show you How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS.
Minikube is a tool that allows you to run a single-node Kubernetes cluster on your local machine. It’s designed for development and testing purposes.
Table of Contents
Prerequisites
- Pre-Install Ubuntu 24.04 LTS
- Sudo User with admin privileges
- 2 GB RAM or more
- 2 CPU / vCPU or more
- 20 GB free hard disk space or more
- Docker / Virtual Machine Manager – KVM & VirtualBox
- Stable Internet Connection
Step #1:Install Minikube on Ubuntu 24.04 LTS
Update the system packages on Ubuntu 24.04 LTS
sudo apt update -y
Run the following to Install minikube dependencies.
sudo apt install curl wget apt-transport-https -y
Install Docker on Ubuntu 24.04 LTS
sudo apt install docker.io
Configure to Run docker without sudo permission
sudo usermod -aG docker $USER
sudo chmod 666 /var/run/docker.sock
To check whether virtualization support is enabled on your machine or not
egrep -q 'vmx|svm' /proc/cpuinfo && echo yes || echo no
Install the KVM and and other tools on Ubuntu 24.04 LTS
sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon
Download latest minikube binary setup.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
Run the following to Install minikube dependencies.
sudo apt install -y curl wget apt-transport-https
Install Minikube on Ubuntu 24.04 LTS
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Check minikube version on Ubuntu.
minikube version
Output:
ubuntu@ip-172-31-11-216:~$ minikube version
minikube version: v1.33.1
commit: 5883c09216182566a63dff4c326a6fc9ed2982ff
Step #2:Install kubectl on Minikube
Kubectl is a command line utility which is used to interact with Kubernetes cluster. It is used for managing deployments, service and pods etc.
Download kubectl binary setup on minikube.
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
Set the executable permissions on kubectl binary.
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
To check kubectl version.
kubectl version --client --output=yaml
Output:
clientVersion:
buildDate: "2024-06-11T20:29:44Z"
compiler: gc
gitCommit: 39683505b630ff2121012f3c5b16215a1449d5ed
gitTreeState: clean
gitVersion: v1.30.2
goVersion: go1.22.4
major: "1"
minor: "30"
platform: linux/amd64
kustomizeVersion: v5.0.4-0.20230601165947-6ce0bf390ce3
Step #3:Start Mini Kube on Ubuntu 24.04 LTS
Start the minikube with the docker driver and run. There are several driver options that we can use to start a minikube cluster (virtualbox, docker, hyperv). We are using driver as docker.
minikube start --vm-driver docker
Output:
* minikube v1.33.1 on Ubuntu 24.04 (xen/amd64)
* Using the docker driver based on user configuration
* Using Docker driver with root privileges
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.44 ...
* Downloading Kubernetes v1.30.0 preload ...
> preloaded-images-k8s-v18-v1...: 342.90 MiB / 342.90 MiB 100.00% 15.65 M
> gcr.io/k8s-minikube/kicbase...: 481.58 MiB / 481.58 MiB 100.00% 15.40 M
* Creating docker container (CPUs=2, Memory=2200MB) ...
* Preparing Kubernetes v1.30.0 on Docker 26.1.1 ...
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Perfect, above output confirms that minikube cluster has been configured and started successfully.
In case you want to start minikube with customize resources and want installer to automatically select the driver then you can run following command.
minikube start --addons=ingress --cpus=2 --cni=flannel --install-addons=true --Kubernetes-version=stable --memory=6g
Output:
* minikube v1.33.1 on Ubuntu 24.04 (xen/amd64)
* Using the docker driver based on existing profile
! You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.44 ...
* Updating the running docker "minikube" container ...
* Preparing Kubernetes v1.30.0 on Docker 26.1.1 ...
* Verifying Kubernetes components...
- Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1
- Using image registry.k8s.io/ingress-nginx/controller:v1.10.1
- Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Verifying ingress addon...
* Enabled addons: default-storageclass, storage-provisioner, ingress
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
To Check the status of Minikube.
minikube status
Output:
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
Run the kubectl command to verify the Kubernetes version, node status and cluster info.
kubectl cluster-info
kubectl get nodes
In case you want to customize you will use this,Addons are the additional functionality to minikube cluster, below are the list of addons of minikube.
minikube addons list
Kubernetes to create a deployment named my-app
that runs the NGINX web server.
kubectl create deployment my-app --image=nginx
Kubernetes to create a service that exposes the my-app
deployment to external traffic.
kubectl expose deployment my-app --name=my-app-svc --type=NodePort --port=80
To retrieve information about the Kubernetes service named my-app-svc
kubectl get svc my-app-svc
To retrieve the URL of a service running in the Minikube cluster.
minikube service my-app-svc --url
Step #4:Install ArgoCD on Minikube
We will create a namespace for argocd.
kubectl create ns argocd
ArgoCD can be installed using its manifests. First, you’ll need to download these manifests and apply them to your Minikube cluster.
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.5.8/manifests/install.yaml
verify the installation by getting all the objects in the ArgoCD namespace.
kubectl get all -n argocd

Step #5:Access ArgoCD UI on Browser
By default, the ArgoCD server is not exposed outside the cluster. You can expose it using port-forwarding to access the ArgoCD UI.
kubectl port-forward svc/argocd-server -n argocd --address 0.0.0.0 8080:443

The ArgoCD UI will be available at http://localhost/IP:8080
. Access it through your web browser. Now we can go to a browser and open instance_ip:8080
You will see a privacy warning. ignore the warning, click on Advanced and then hit on Proceed to localhost (unsafe)
to continue to the GUI interface. (Your browser setting may present a different option to continue).

Get the initial password for the admin
user to log in

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Use the generated password to log in as the admin
user in the ArgoCD UI. We have covered all Installation steps ArgoCD on minikube.

Step #6:Deploying an app on ArgoCD
Now we are in the user interface, we can create a new app. The source code for my application is in my GitHub repo, so We will connect my GitHub repo to ArgoCD.
After logging in, click the + New App button as shown below:

Give your app the name guestbook
, use the project default
, and leave the sync policy as Manual
:

Connect to repo to ArgoCD official github repo by setting repository url to the GitHub repo url, leave revision as HEAD
, and set the path to guestbook
:
For Destination, set cluster URL to https://kubernetes.default.svc
(or in-cluster
for cluster name) and namespace to default
:
Click on Create after that you can see.
Click on guestbook then you will see the result.
Click on Synchronize.

Now we can App got deployed on ArgoCD.

Conclusion:
We have wrapped up Install Minikube on Ubuntu 24.04 LTS, How to Install ArgoCD on Minikube and Deploy an App on ArgoCD.
minikube start –addons=ingress –cpus=2 –cni=flannel –install-addons=true –Kubernetes-version=stable –memory=6g
Error: unknown flag: –Kubernetes-version
See ‘minikube start –help’ for usage.
–(K)ubenetes-version=stable != –kubernetes-version=stable
Best regards,
User