Setting Up Flamingo: The Flux Subsystem for Argo on Minikube
Introduction:-
Flamingo is a powerful Flux subsystem designed to enhance GitOps workflows for Kubernetes. With Flamingo, you can automate deployments, manage configurations, and ensure continuous delivery in your Kubernetes cluster. In this step-by-step guide, we will walk through the process of setting up Flamingo on #Minikube, allowing you to leverage the benefits of GitOps and streamline your application deployments.
Pre-Requestisites :-
- #Minikube should be installed on your local machine
Step 1: Install #Minikube To get started, make sure you have #Minikube installed on your local machine. #Minikube allows you to run a single-node Kubernetes cluster locally for development and testing purposes. Follow the official #Minikube documentation to install #Minikube on your operating system.
Step 2: Start #Minikube Cluster
Launch your #Minikube cluster by running the following command:
minikube start --driver=docker
This will create a local Kubernetes cluster using the #Minikube environment and we will get the output as mentioned in the below screenshot.
Step 3 : Installing Flux CLI:
Install the Flux CLI, which provides command-line utilities for interacting with Flamingo. Run the following command to install the Flux CLI:
curl -s https://fluxcd.io/install.sh | sudo bash
and below can see the flux cli installed on your system.
Step 4 : Installing Kind CLI
Below are the commands to install the Kind CLI
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.18.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
Step 5 : Installing argocd CLI
Below are the commands to install the argocd CLI
curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
rm argocd-linux-amd64
Step 6 : Create a fresh KIND cluster using the below command
kind create cluster
After executing this command we will get the output as mention in the below screenshot
Step 7 : Install Flux Custom Resource Definitions (CRDs) Flux uses custom resource definitions (CRDs) to manage its resources. Install the Flux CRDs by running the following command:
flux install
After executing this command we will get the output as shown in the below screenshot
You can check the Flux namespace for running pods using the below command
kubectl get pods -n flux-system
we will get the output as mention in the below screenshot
Step 7 : Create a directory with some name ex: Flux and from that directory you create one .yaml file ex : flux-demo-config.yaml
Here’s a complete example of the YAML file to deploy Flamingo on #Minikube
Step 8 : Apply the yaml file with the below command
kubectl apply -f flux-demo-config.yaml
we will get the output as mention in the below screenshot
Step 9 : Check ArgoCD pods are running and Ready by using the below command
kubectl get -n argocd pods
we will get the output as mentioned in the below screenshot
Step 10 : USe The below command to set up port forwarding from your local machine to the ArgoCD server running in the argocd namespace.
kubectl -n argocd port-forward svc/argocd-server 8080:443
we will get the output as mention in the below screenshot
Step 11 : Now we can login our browser and type http://localhost:8080
Step 12 : Login to the argocd Gui, thedefault user name is admin and Use the below command, we will get the password by executing this command.
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
Step 13 : Click on Sign in and we will get the sign in page, there need to give the user name as admin and password which we have received by executing in step 10. After we will get the output as mentioned in the below screenshot
Conclusion: -
We have successfully set up Flamingo, the Flux subsystem for Argo, on #Minikube. By leveraging Flamingo, you can streamline your GitOps workflows and automate Kubernetes deployments with ease. The Flamingo dashboard provides a comprehensive interface to manage your Git repositories, monitor applications, and ensure a smooth deployment pipeline. Explore Flamingo’s capabilities and unlock the power of GitOps in your Kubernetes environment.