Installing Weave GitOps on your Cluster
These are the instructions to install the OSS tier Weave GitOps. To install Enterprise Weave GitOps, follow the instructions here.
Before you begin
To follow along, you will need the following:
- A Kubernetes cluster - such as Kind
- A GitHub account and personal access token with repo permissions
Weave GitOps is an extension to Flux and therefore requires that Flux 0.32 or later has already been installed on your Kubernetes cluster. Full documentation is available here.
This version of Weave GitOps is tested against the following Flux releases:
In this section we are going to do the following:
- Create a git repository
fleet-infrain your Git account
- Add Flux component manifests to the repository
- Deploy Flux Components to your Kubernetes Cluster
- Configure Flux components to track the path
./clusters/my-cluster/in the repository
Let's get into it... ✨
Install the flux CLI
brew install fluxcd/tap/flux
For other installation methods, see the relevant Flux documentation.
Export your credentials (ensure your PAT has
Check your Kubernetes cluster
flux check --pre
The output is similar to:
► checking prerequisites
✔ kubernetes 1.22.2 >=1.20.6
✔ prerequisites checks passed
Install Flux onto your cluster with the
flux bootstrapcommand. The command below assumes the Git provider to be
github, alter this if you would rather use
flux bootstrap github \
Full installation documentation including how to work with other Git providers is available here.
If you navigate to your Git provider, you will see that the
fleet-infrarepository has been created.
Weave GitOps includes a command-line interface to help users create and manage resources.
gitops CLI is currently supported on Mac (x86 and Arm), and Linux - including Windows Subsystem for Linux (WSL).
Windows support is a planned enhancement.
There are multiple ways to install the
curl --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.19.0/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp
sudo mv /tmp/gitops /usr/local/bin
brew tap weaveworks/tap
brew install weaveworks/tap/gitops
Deploy Weave GitOps
In this section we will do the following:
- Use the GitOps CLI tool to generate
- Create some login credentials to access the dashboard. This is a simple but insecure method of protecting and accessing your GitOps dashboard.
- Commit the generated yamls to our
- Observe as they are synced to the cluster.
Clone your git repository where Flux has been bootstrapped.
git clone https://github.com/$GITHUB_USER/fleet-infra
Run the following command which will create a
HelmReleaseto deploy Weave GitOps
gitops create dashboard ww-gitops \
--export > ./clusters/my-cluster/weave-gitops-dashboard.yamldanger
This command stores a hash of a password. While this is relatively safe for demo and testing purposes it is recommended that you look at more secure methods of storing secrets (such as Flux's SOPS integration) for production systems.
More guidance and alternative login methods can be found in Securing access to the dashboard.
Commit and push the
git add -A && git commit -m "Add Weave GitOps Dashboard"
Validate that Weave GitOps and Flux are installed. Note: this wont be instantaneous, give the Flux controllers a couple of minutes to pull the latest commit.
kubectl get pods -n flux-system
You should see something similar to:
NAME READY STATUS RESTARTS AGE
helm-controller-5bfd65cd5f-gj5sz 1/1 Running 0 10m
kustomize-controller-6f44c8d499-s425n 1/1 Running 0 10m
notification-controller-844df5f694-2pfcs 1/1 Running 0 10m
source-controller-6b6c7bc4bb-ng96p 1/1 Running 0 10m
ww-gitops-weave-gitops-86b645c9c6-k9ftg 1/1 Running 0 5mtip
There are many other things you can configure in the Weave GitOps Helm Chart. The full Chart reference can be found here.
In the following Get Started document, we will walk you through logging into the GitOps Dashboard and deploying an application.