0
0
Kubernetesdevops~30 mins

FluxCD for continuous delivery in Kubernetes - Mini Project: Build & Apply

Choose your learning style9 modes available
FluxCD for continuous delivery
📖 Scenario: You are working as a DevOps engineer for a small company. Your team wants to automate the deployment of applications to Kubernetes clusters using GitOps principles. You will use FluxCD, a tool that watches your Git repository and applies changes automatically to your cluster.
🎯 Goal: Set up a basic FluxCD configuration to deploy a simple Kubernetes application from a Git repository. You will create the initial Kubernetes manifest, configure FluxCD to watch the repository, apply the main deployment logic, and finally verify the deployment.
📋 What You'll Learn
Create a Kubernetes manifest file for a simple Nginx deployment
Add a FluxCD GitRepository resource to point to the Git repo
Create a FluxCD Kustomization resource to apply the deployment
Verify the deployment by checking the FluxCD sync status
💡 Why This Matters
🌍 Real World
FluxCD is widely used in real companies to automate Kubernetes deployments by syncing cluster state with Git repositories. This reduces manual errors and speeds up delivery.
💼 Career
Understanding FluxCD and GitOps is valuable for DevOps roles, Kubernetes administrators, and cloud engineers who manage continuous delivery pipelines.
Progress0 / 4 steps
1
Create the initial Kubernetes manifest
Create a file named nginx-deployment.yaml with a Kubernetes Deployment manifest for Nginx. Use apiVersion: apps/v1, kind: Deployment, and set metadata.name to nginx-deployment. The deployment should have 1 replica and use the image nginx:latest. Include a container port 80.
Kubernetes
Need a hint?

Remember to set metadata.name exactly to nginx-deployment and use nginx:latest as the container image.

2
Add FluxCD GitRepository resource
Create a file named flux-gitrepository.yaml with a FluxCD GitRepository resource. Set apiVersion to source.toolkit.fluxcd.io/v1beta2 and kind to GitRepository. Name the resource nginx-repo. Set the spec.url to https://github.com/example/nginx-config.git and spec.interval to 1m.
Kubernetes
Need a hint?

Make sure the GitRepository resource has the exact name nginx-repo and the URL matches exactly.

3
Create FluxCD Kustomization resource
Create a file named flux-kustomization.yaml with a FluxCD Kustomization resource. Use apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 and kind: Kustomization. Name it nginx-kustomization. Set spec.interval to 1m, spec.path to ./, and spec.sourceRef.name to nginx-repo with kind GitRepository. This will apply the manifests from the Git repository.
Kubernetes
Need a hint?

Ensure the Kustomization resource references the nginx-repo GitRepository by name and kind.

4
Verify FluxCD deployment sync status
Run the command flux get kustomizations in your terminal to check the sync status of the nginx-kustomization. This command shows if FluxCD has applied the manifests successfully.
Kubernetes
Need a hint?

Use the exact command flux get kustomizations to see the status. Look for nginx-kustomization in the output.