The purpose of this repository is to show how you can take a plain NodeJS application, package it up as a docker container and deploy it to a local Kubernetes cluster using GitOps.
This will be demoed on a live stream Thursday the 13th of August 2020, youtube link here, come and join the discussion.
The following software needs to be installed prior to using the repository.
- docker
- docker hub account
- kubectl
- kustomize (it is important you are using the upstream binary and not the one packaged with kubectl).
- k3d
- fluxctl
- helm (its important you are using Helm v3 and not Helm v2)
The application we will be using for this example is a simple NodeJS application that prints environment variables in a table.
The src
directory contains the application we will be using for the demo.
The repository will be used to show the following steps:
- Building a docker image using a Dockerfile.
- Pushing that image to a container image registry.
- Setting up a local Kubernetes cluster.
- Deploying flux onto the kubernetes cluster ready to reconcile our repository.
- Constructing the resources required to deploy our NodeJS application to Kubernetes.
- Showing the initial sync of workloads into the cluster.
- Building and pushing a new image tag to our container image registry.
- Re-configuring our Kubernetes resources to force flux to deploy the latest images automatically.
The following supporting documents have been added:
- Steve Wade - Initial work - @swade1987
- Eddie Jaoude - Initial work - @eddiejaoude
This project is licensed under the MIT License - see the LICENSE.md file for details.