Skip to main content
Version: 0.24.0

Installing Weave GitOps on your Cluster

tip

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:

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... ✨

  1. Install the flux CLI

    brew install fluxcd/tap/flux

    For other installation methods, see the relevant Flux documentation.

  2. Export your credentials (ensure your PAT has repo scope)

    export GITHUB_TOKEN=<your-token>
    export GITHUB_USER=<your-username>
  3. Check your Kubernetes cluster

    flux check --pre

    The output is similar to:

    ► checking prerequisites
    ✔ kubernetes 1.22.2 >=1.20.6
    ✔ prerequisites checks passed
  4. Install Flux onto your cluster with the flux bootstrap command. The command below assumes the Git provider to be github, alter this if you would rather use gitlab.

    flux bootstrap github \
    --owner=$GITHUB_USER \
    --repository=fleet-infra \
    --branch=main \
    --path=./clusters/my-cluster \
    --personal
    info

    Full installation documentation including how to work with other Git providers is available here.

  5. 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.

Installation options

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 --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.24.0/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp
sudo mv /tmp/gitops /usr/local/bin
gitops version

Deploy Weave GitOps

In this section we will do the following:

  • Use the GitOps CLI tool to generate HelmRelease and HelmRepository 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.
  1. Clone your git repository where Flux has been bootstrapped.

    git clone https://github.com/$GITHUB_USER/fleet-infra
    cd fleet-infra
  2. Run the following command which will create a HelmRepository and HelmRelease to deploy Weave GitOps

    PASSWORD="<your password>"
    gitops create dashboard ww-gitops \
    --password=$PASSWORD \
    --export > ./clusters/my-cluster/weave-gitops-dashboard.yaml
    danger

    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.

  3. Commit and push the weave-gitops-dashboard.yaml to the fleet-infra repository

    git add -A && git commit -m "Add Weave GitOps Dashboard"
    git push
  4. 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 5m
    tip

    There 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.