Minikube Setup
Install Minikube
Start Minikube
minikube start
Start Minikube Dashboard
minikube dashboard
If the LoadBalancer gets stuck on Minikube in Pending state, you can create a tunnel executing minikube tunnel
Since Minikube runs locally on your machine and doesn’t have access to cloud load balancers, LoadBalancer services don’t get external IP addresses by default.
When you run minikube tunnel, it essentially creates a routing layer that provides external IP addresses for LoadBalancer services in Minikube, mimicking how LoadBalancer services would work in a cloud environment.
minikube tunnel
Installing ArgoCD in Minikube
You can use Helm for the deployment:
helm repo add argo https://argoproj.github.io/argo-helm
Installing ArgCD and creating LoadBalancer for external access
helm upgrade argocd argo/argo-cd --set server.service.type=LoadBalancer --namespace argocd --install --create-namespace
Accessing ArgoCD
We need to forward our ArgoCD port, otherwise we don’t get an access to the dashboard:
kubectl port-forward service/argocd-server -n argocd 8080:443
The deployment creates the following services:
(base) adamszendrei@mac manifests % kubectl get svc --namespace argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-applicationset-controller ClusterIP 10.109.226.54 <none> 7000/TCP 23d
argocd-dex-server ClusterIP 10.106.183.129 <none> 5556/TCP,5557/TCP 23d
argocd-redis ClusterIP 10.97.128.188 <none> 6379/TCP 23d
argocd-repo-server ClusterIP 10.100.51.206 <none> 8081/TCP 23d
argocd-server LoadBalancer 10.103.234.146 127.0.0.1 80:32454/TCP,443:32325/TCP 23d
Now you can access to the dashboard:
After reaching the UI the first time you can login with username: admin and the random password generated during the installation. You can find the password by running:
kubectl -n argo-system get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
or you can find the secret on the Kubernetes dashboard as well:
(You should delete the initial secret afterwards as suggested by the Getting Started Guide: https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli)
After logging in ArgoCD:
Creating application
You can use the following application:
You can specify the application and the project name:
You can specify the Helm chart path and namespace where you want to deploy the application:
After specifying the Helm path ArgoCD automatically detects the values.yaml
After clicking on Create the application deployment is starting:
The pod is starting up, but it is unhealthy:
It looks like we need to add the initialDelaySeconds:
You can modify the deployment.yaml file and create a pull request:
After merging the pull request back to the Master branch, you can see the changes clicking on the History and Rollback:
After the sync the configuration is applied to the deployment.yaml and the application is now up and running:
Now we can access to the application via its LoadBalancer service:
Comments