Kubernetes GitOps with Flux

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

GitOps means managing your environment using the well-known tool Git as a source of truth. In this lab, you will be able to experiment with GitOps by deploying an application to Kubernetes using a GitOps tool called Flux.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create a GitHub Personal Access Token

To bootstrap the repository, you can use a GitHub Personal Access Token (PAT) to authenticate with GitHub. The PAT will need repo permissions.

Hint: You can create a PAT on github.com. Select the account dropdown at the top right, then Settings > Developer settings > ((Personal access tokens > Generate new token. Check the repo** scope to provide the appropriate permissions.

When you are done, copy the PAT. You will need it for the next objective!

Bootstrap the Git Repository

Bootstrap the GitHub repository with Flux. You will need to supply your GitHub username and the personal access token (PAT). You can use a repository name such as acg-flux-lab, but this can really be any name you want. Flux is already installed, so you do not need to install it.

This process will create the repository in GitHub, so you may need to use a different name if you already have a repository by that name (such as if you go through this lab more than once).

Hint: The command looks like this:

flux bootstrap github --owner=<GitHub Username> --repository=acg-flux-lab --branch=main --path=./clusters/my-cluster --personal
Create a Deployment via the GitHub Repository Using Flux

Create a YAML file in the GitHub repository under clusters/my-cluster. Name this file turtle-deployment.yaml. Within the file, put a YAML manifest for a Deployment called turtle-deployment. Use the Deployment to run 3 replicas with the nginx:stable image.

You can put the Deployment in the default namespace, but you will need to specify the namespace in the manifest with metadata.namespace.

Commit the file, and after a few moments the Deployment should appear in your cluster!

Additional Resources

Welcome to TortoiseCorp! We work to build the future of fruit, lettuce, and heat lamps.

We are using Kubernetes, but we would like to start exploring GitOps. We have already installed a tool called Flux for this purpose.

Your task is to bootstrap a Git repository using Flux and use it to create a Kubernetes Deployment.

Note: You will need a GitHub account for this lab. If you do not have one, you can sign up at github.com.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?