Setting Up Flamingo: The Flux Subsystem for Argo on Minikube

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.