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-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/fluxFor other installation methods, see the relevant Flux documentation.
-
Export your credentials (ensure your PAT has
reposcope)export GITHUB_TOKEN=<your-token>
export GITHUB_USER=<your-username> -
Check your Kubernetes cluster
flux check --preThe 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 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-infrarepository 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.17.0/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
HelmReleaseandHelmRepositoryobjects. - 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-infrarepo. - 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-infra -
Run the following command which will create a
HelmRepositoryandHelmReleaseto deploy Weave GitOpsPASSWORD="<your password>"
gitops create dashboard ww-gitops \
--password=$PASSWORD \
--export > ./clusters/my-cluster/weave-gitops-dashboard.yamlwarningThis command stores a hash of a password. While this is relatively safe for demo and testing purposes it is recommend 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.yamlto thefleet-infrarepositorygit add -A && git commit -m "Add Weave GitOps Dashboard"
git push -
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-systemYou 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. For a reference, see our value file reference.
Next steps
In the following Get Started document, we will walk you through logging into the GitOps Dashboard and deploying an application.