How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS

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.

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
How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 1

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
How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 2

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).

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 3

Get the initial password for the admin user to log in

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 4
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.

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 5

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:

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 6

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

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 7

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.

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 8

Now we can App got deployed on ArgoCD.

How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS 9

Conclusion:

We have wrapped up Install Minikube on Ubuntu 24.04 LTS, How to Install ArgoCD on Minikube and Deploy an App on ArgoCD.

Ankita Lunawat

Working as DevOps Intern likes to share Knowledge.

1 thought on “How to Install ArgoCD on Minikube with Ubuntu 24.04 LTS”

  1. 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

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share via
Copy link
Powered by Social Snap