Installing Weave GitOps
Before you begin
We will provide a complete walk-through of getting Flux installed and Weave GitOps configured. However, if you have:
- an existing cluster bootstrapped Flux version >= 0.32.0 🎉
- followed our installation doc to configure access to the Weave GitOps dashboard then install Weave GitOps 👏
Then you can skip ahead to the Weave GitOps overview 🏃 but note ⚠️ you may need to alter commands where we are committing files to GitHub ⚠️.
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 at: https://fluxcd.io/docs/installation/.
This version of Weave GitOps is tested against the following Flux releases:
- 0.32
- 0.33
- 0.34
- 0.35
- 0.36
Install the flux CLI
brew install fluxcd/tap/flux
For other installation methods, see the relevant Flux documentation.
Export your credentials
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
commandflux bootstrap github \
--owner=$GITHUB_USER \
--repository=fleet-infra \
--branch=main \
--path=./clusters/my-cluster \
--personal
Full installation documentation including how to work with other Git providers is available here.
The bootstrap command above does the following:
- Create a git repository fleet-infra on your GitHub 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
Install Weave GitOps
For this guide we will use the cluster user, for complete documentation including how to configure an OIDC provider see the documentation here.
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.16.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
Deploying Weave GitOps
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.yaml
This 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.yaml
to thefleet-infra
repositorygit add -A && git commit -m "Add Weave GitOps Dashboard"
git pushValidate that Weave GitOps and Flux are installed
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 5m
There's many other things you can configure in the weave gitops helm chart. For a reference, see our value file reference.
Next steps
In our following Get Started document, we will walk you through logging into the GitOps Dashboard and deploying an application.