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
- kubectl
Install Flux
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:
- 0.36
- 0.35
- 0.34
- 0.33
- 0.32
In this section we are going to do the following:
- Create a git repository
fleet-infra
in 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
repo
scope)export GITHUB_TOKEN=<your-token>
export GITHUB_USER=<your-username>Check your Kubernetes cluster
flux check --pre
The output is similar to:
► checking prerequisites
✔ kubernetes 1.22.2 >=1.20.6
✔ prerequisites checks passedInstall Flux onto your cluster with the
flux bootstrap
command. The command below assumes the Git provider to begithub
, alter this if you would rather usegitlab
.flux bootstrap github \
--owner=$GITHUB_USER \
--repository=fleet-infra \
--branch=main \
--path=./clusters/my-cluster \
--personalinfoFull 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-infra
repository has been created.
Install the gitops
CLI
Weave GitOps includes a command-line interface to help users create and manage resources.
The 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 gitops
CLI:
- curl
- Homebrew
curl --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.21.2/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp
sudo mv /tmp/gitops /usr/local/bin
gitops version
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
HelmRelease
andHelmRepository
objects. - 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
fleet-infra
repo. - 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
cd fleet-infraRun the following command which will create a
HelmRepository
andHelmRelease
to deploy Weave GitOpsPASSWORD="<your password>"
gitops create dashboard ww-gitops \
--password=$PASSWORD \
--export > ./clusters/my-cluster/weave-gitops-dashboard.yamldangerThis 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
weave-gitops-dashboard.yaml
to thefleet-infra
repositorygit add -A && git commit -m "Add Weave GitOps Dashboard"
git pushValidate 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 5mtipThere are many other things you can configure in the Weave GitOps Helm Chart. The full Chart reference can be found here.
Next steps
In the following Get Started document, we will walk you through logging into the GitOps Dashboard and deploying an application.