Progressive Delivery with Linkerd, Flagger and Flux v2
In order to install the workshop prerequisites you'll need a Kubernetes cluster 1.18 or newer with Load Balancer support and RBAC enabled.
Install the CLI on MacOS or Linux using Homebrew:
brew install fluxcd/tap/flux yq
Verify that your cluster satisfies the prerequisites with:
$ flux check --pre
► checking prerequisites
✔ kubectl 1.19.2 >=1.18.0
✔ Kubernetes 1.18.9 >=1.16.0
✔ prerequisites checks passed
Fork this repo, and create a Personal Access Token with repo
access.
Then export your github-user, repo name, and PAT.
export GITHUB_USER=stealthybox
export GITHUB_TOKEN="$(cat ~/.config/gh/flux-bootstrap-demos.pat)"
export GITHUB_REPO=gitops-linkerd
Bootsrap Flux and your repository into your cluster.
If you do not have one, you can create one with kind create cluster
flux bootstrap github \
--personal \
--owner "${GITHUB_USER}" \
--repository "${GITHUB_REPO}" \
--path "clusters/kind0"
If you use a different --path
, be sure to copy the ./flux-system-config
directory to it.
The cluster will now boot a dependency tree including Flux, Linkerd, Contour, Flagger, and the frontend/backend podinfo workloads.
From here, you can carry on with Progressive Delivery experiments using the Flagger Canary objects for the frontend and backend. See the EKS handson, Canary Releases and Canary Tests sections for more references.