Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1cab68e385 | ||
|
|
07e4fa8abd | ||
|
|
77b86c78a4 | ||
|
|
e4c701864a | ||
|
|
0275f28490 | ||
|
|
300c3dd578 | ||
|
|
fb81870803 | ||
|
|
bb6a61a313 | ||
|
|
976d917a57 | ||
|
|
7e13cc2ca8 | ||
|
|
704296df4e | ||
|
|
65244e3b8d |
20
README.md
20
README.md
@@ -20,12 +20,11 @@ Flux v2 is constructed with the [GitOps Toolkit](#gitops-toolkit), a
|
||||
set of composable APIs and specialized tools for building Continuous
|
||||
Delivery on top of Kubernetes.
|
||||
|
||||
## `flux` installation
|
||||
## Flux installation
|
||||
|
||||
With Homebrew:
|
||||
|
||||
```sh
|
||||
brew tap fluxcd/tap
|
||||
brew install fluxcd/tap/flux
|
||||
```
|
||||
|
||||
@@ -88,7 +87,8 @@ guides](https://toolkit.fluxcd.io/dev-guides/source-watcher/).
|
||||
|
||||
## Community
|
||||
|
||||
The Flux project is always looking for new contributors and there are a multitude of ways to get involved. Depending on what you want to do, some of the following bits might be your first steps:
|
||||
The Flux project is always looking for new contributors and there are a multitude of ways to get involved.
|
||||
Depending on what you want to do, some of the following bits might be your first steps:
|
||||
|
||||
- Join our upcoming dev meetings ([meeting access and agenda](https://docs.google.com/document/d/1l_M0om0qUEN_NNiGgpqJ2tvsF2iioHkaARDeh6b70B0/view))
|
||||
- Talk to us in the #flux channel on [CNCF Slack](https://slack.cncf.io/)
|
||||
@@ -97,15 +97,19 @@ The Flux project is always looking for new contributors and there are a multitud
|
||||
- To be part of the conversation about Flux's development, [join the flux-dev mailing list](https://lists.cncf.io/g/cncf-flux-dev).
|
||||
- Check out [how to contribute](CONTRIBUTING.md) to the project
|
||||
|
||||
## Featured Talks
|
||||
- 19 Oct 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 1](https://youtu.be/0v5bjysXTL8)
|
||||
### Featured Talks
|
||||
|
||||
- 28 Oct 2020 - [The Kubelist Podcast: Flux with Michael Bridgen](https://www.heavybit.com/library/podcasts/the-kubelist-podcast/ep-5-flux-with-michael-bridgen-of-weaveworks/)
|
||||
- 19 Oct 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 1 with Leigh Capili](https://youtu.be/0v5bjysXTL8)
|
||||
- 12 Oct 2020 - [Rawkode Live: Introduction to GitOps Toolkit with Stefan Prodan](https://youtu.be/HqTzuOBP0eY)
|
||||
- 4 Sep 2020 - [KubeCon/CloudNativeCon Europe: The road to Flux v2 and Progressive Delivery with Stefan Prodan & Hidde Beydals](https://youtu.be/8v94nUkXsxU)
|
||||
- 4 Sep 2020 - [KubeCon Europe: The road to Flux v2 and Progressive Delivery with Stefan Prodan & Hidde Beydals](https://youtu.be/8v94nUkXsxU)
|
||||
- 25 June 2020 - [Cloud Native Nordics: Introduction to GitOps & GitOps Toolkit with Alexis Richardson & Stefan Prodan](https://youtu.be/qQBtSkgl7tI)
|
||||
- 7 May 2020 - [GitOps Days - Community Special: GitOps Toolkit Experimentation with Stefan Prodan](https://youtu.be/WHzxunv4DKk?t=6521)
|
||||
|
||||
### Upcoming Meetups
|
||||
- 2 Nov 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 2](https://www.meetup.com/GitOps-Community/events/273934676/)
|
||||
### Upcoming Events
|
||||
|
||||
- 2 Nov 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 2 with Leigh Capili](https://www.meetup.com/GitOps-Community/events/273934676/)
|
||||
- 12-13 Nov 2020 - [GitOps Days EMEA](https://www.gitopsdays.com/) with talks and workshops on migrating to Flux v2 and Helm Controller
|
||||
- 19 Nov 2020 - [KubeCon NA: Progressive Delivery Techniques with Flagger and Flux v2 with Stefan Prodan](https://kccncna20.sched.com/event/1b04f8408b49976b843a5d0019cb8112)
|
||||
|
||||
We are looking forward to seeing you with us!
|
||||
|
||||
@@ -111,7 +111,7 @@ flux bootstrap github \
|
||||
|
||||
Example output:
|
||||
|
||||
```text
|
||||
```console
|
||||
$ flux bootstrap github --owner=gitopsrun --repository=fleet-infra --path=staging-cluster --team=devs
|
||||
► connecting to github.com
|
||||
✔ repository created
|
||||
@@ -122,6 +122,7 @@ $ flux bootstrap github --owner=gitopsrun --repository=fleet-infra --path=stagin
|
||||
► installing components in flux-system namespace
|
||||
deployment "source-controller" successfully rolled out
|
||||
deployment "kustomize-controller" successfully rolled out
|
||||
deployment "helm-controller" successfully rolled out
|
||||
deployment "notification-controller" successfully rolled out
|
||||
✔ install completed
|
||||
► configuring deploy key
|
||||
@@ -213,11 +214,11 @@ In about 30s the synchronization should start:
|
||||
|
||||
```console
|
||||
$ watch flux get kustomizations
|
||||
NAME REVISION SUSPENDED READY MESSAGE
|
||||
flux-system main/6eea299fe9997c8561b826b67950afaf9a476cf8 False True Applied revision: main/6eea299fe9997c8561b826b67950afaf9a476cf8
|
||||
webapp-backend False False dependency 'flux-system/webapp-common' is not ready
|
||||
webapp-common master/7411da595c25183daba255068814b83843fe3395 False True Applied revision: master/7411da595c25183daba255068814b83843fe3395
|
||||
webapp-frontend False False dependency 'flux-system/webapp-backend' is not ready
|
||||
NAME READY MESSAGE
|
||||
flux-system True Applied revision: main/6eea299fe9997c8561b826b67950afaf9a476cf8
|
||||
webapp-backend False dependency 'flux-system/webapp-common' is not ready
|
||||
webapp-common True Applied revision: master/7411da595c25183daba255068814b83843fe3395
|
||||
webapp-frontend False dependency 'flux-system/webapp-backend' is not ready
|
||||
```
|
||||
|
||||
When the synchronization finishes you can check that the webapp services are running:
|
||||
|
||||
315
docs/guides/flux-v1-migration.md
Normal file
315
docs/guides/flux-v1-migration.md
Normal file
@@ -0,0 +1,315 @@
|
||||
# Migrate from Flux v1 to v2
|
||||
|
||||
This guide walks you through migrating from Flux v1 to v2.
|
||||
Read the [FAQ](../faq/index.md) to find out what differences are between v1 and v2.
|
||||
|
||||
!!! info "Automated image updates"
|
||||
The image automation feature is under development in Flux v2.
|
||||
Please consult the [roadmap](../roadmap/index.md) for more details.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
You will need a Kubernetes cluster version **1.16** or newer
|
||||
and kubectl version **1.18** or newer.
|
||||
|
||||
### Install Flux v2 CLI
|
||||
|
||||
With Homebrew:
|
||||
|
||||
```sh
|
||||
brew install fluxcd/tap/flux
|
||||
```
|
||||
|
||||
With Bash:
|
||||
|
||||
```sh
|
||||
curl -s https://toolkit.fluxcd.io/install.sh | sudo bash
|
||||
|
||||
# enable completions in ~/.bash_profile
|
||||
. <(flux completion bash)
|
||||
```
|
||||
|
||||
Command-line completion for `zsh`, `fish`, and `powershell`
|
||||
are also supported with their own sub-commands.
|
||||
|
||||
Binaries for macOS, Windows and Linux AMD64/ARM are available for download on the
|
||||
[release page](https://github.com/fluxcd/flux2/releases).
|
||||
|
||||
Verify that your cluster satisfies the prerequisites with:
|
||||
|
||||
```sh
|
||||
flux check --pre
|
||||
```
|
||||
|
||||
## GitOps migration
|
||||
|
||||
Flux v2 offers an installation procedure that is declarative first
|
||||
and disaster resilient.
|
||||
|
||||
Using the `flux bootstrap` command you can install Flux on a
|
||||
Kubernetes cluster and configure it to manage itself from a Git
|
||||
repository. The Git repository created during bootstrap can be used
|
||||
to define the state of your fleet of Kubernetes clusters.
|
||||
|
||||
For a detailed walk-through of the bootstrap procedure please see the [installation guide](installation.md).
|
||||
|
||||
After you've installed Flux v2 on your cluster using bootstrap,
|
||||
you can delete the Flux v1 from your clusters and move the manifests from the
|
||||
Flux v1 repository to the bootstrap one.
|
||||
|
||||
## In-place migration
|
||||
|
||||
!!! warning
|
||||
For production use we recommend using the **bootstrap** procedure,
|
||||
but if you wish to install Flux v2 in the
|
||||
same way as Flux v1 then follow along.
|
||||
|
||||
### Flux read-only mode
|
||||
|
||||
Assuming you've installed Flux v1 to sync a directory with plain YAMLs from a private Git repo:
|
||||
|
||||
```sh
|
||||
# create namespace
|
||||
kubectl create ns flux
|
||||
|
||||
# deploy Flux v1
|
||||
fluxctl install \
|
||||
--git-url=git@github.com:org/app \
|
||||
--git-branch=main \
|
||||
--git-path=./deploy \
|
||||
--git-readonly \
|
||||
--namespace=flux | kubectl apply -f -
|
||||
|
||||
# print deploy key
|
||||
fluxctl identity --k8s-fwd-ns flux
|
||||
|
||||
# trigger sync
|
||||
fluxctl sync --k8s-fwd-ns flux
|
||||
```
|
||||
|
||||
!!! hint "Uninstall Flux v1"
|
||||
Before you proceed, scale the Flux v1 deployment to zero
|
||||
or delete its namespace and RBAC.
|
||||
|
||||
If there are YAML files in your `deploy` dir that are not meant to be
|
||||
applied on the cluster, you can exclude them by placing a `.sourceignore` in your repo root:
|
||||
|
||||
```console
|
||||
$ cat .sourceignore
|
||||
# exclude all
|
||||
/*
|
||||
# include deploy dir
|
||||
!/deploy
|
||||
# exclude files from deploy dir
|
||||
/deploy/**/eksctl.yaml
|
||||
/deploy/**/charts
|
||||
```
|
||||
|
||||
Install Flux v2 in the `flux-system` namespace:
|
||||
|
||||
```console
|
||||
$ flux install \
|
||||
--arch=amd64 \
|
||||
--network-policy=true \
|
||||
--watch-all-namespaces=true \
|
||||
--namespace=flux-systen
|
||||
✚ generating manifests
|
||||
✔ manifests build completed
|
||||
► installing components in flux-system namespace
|
||||
✔ install completed
|
||||
◎ verifying installation
|
||||
✔ source-controller ready
|
||||
✔ kustomize-controller ready
|
||||
✔ helm-controller ready
|
||||
✔ notification-controller ready
|
||||
✔ install finished
|
||||
```
|
||||
|
||||
Register your Git repository and add the deploy key with read-only access:
|
||||
|
||||
```console
|
||||
$ flux create source git app \
|
||||
--url=ssh://git@github.com/org/app \
|
||||
--branch=main \
|
||||
--interval=1m
|
||||
► generating deploy key pair
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp2x9ghVmv1zD...
|
||||
Have you added the deploy key to your repository: y
|
||||
► collecting preferred public key from SSH server
|
||||
✔ collected public key from SSH server:
|
||||
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A...
|
||||
► applying secret with keys
|
||||
✔ authentication configured
|
||||
✚ generating GitRepository source
|
||||
► applying GitRepository source
|
||||
✔ GitRepository source created
|
||||
◎ waiting for GitRepository source reconciliation
|
||||
✔ GitRepository source reconciliation completed
|
||||
✔ fetched revision: main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b
|
||||
```
|
||||
|
||||
Configure the reconciliation of the `deploy` dir on your cluster:
|
||||
|
||||
```console
|
||||
$ flux create kustomization app \
|
||||
--source=app \
|
||||
--path="./deploy" \
|
||||
--prune=true \
|
||||
--interval=10m
|
||||
✚ generating Kustomization
|
||||
► applying Kustomization
|
||||
✔ Kustomization created
|
||||
◎ waiting for Kustomization reconciliation
|
||||
✔ Kustomization app is ready
|
||||
✔ applied revision main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b
|
||||
```
|
||||
|
||||
If your repository contains secrets encrypted with Mozilla SOPS, please read this [guide](mozilla-sops.md).
|
||||
|
||||
Pull changes from Git and apply them immediately:
|
||||
|
||||
```sh
|
||||
flux reconcile kustomization app --with-source
|
||||
```
|
||||
|
||||
List all Kubernetes objects reconciled by `app`:
|
||||
|
||||
```sh
|
||||
kubectl get all --all-namespaces \
|
||||
-l=kustomize.toolkit.fluxcd.io/name=app \
|
||||
-l=kustomize.toolkit.fluxcd.io/namespace=flux-system
|
||||
```
|
||||
|
||||
### Flux with Kustomize
|
||||
|
||||
Assuming you've installed Flux v1 to sync a Kustomize overlay from an HTTPS Git repository:
|
||||
|
||||
```sh
|
||||
fluxctl install \
|
||||
--git-url=https://github.com/org/app \
|
||||
--git-branch=main \
|
||||
--manifest-generation \
|
||||
--namespace=flux | kubectl apply -f -
|
||||
```
|
||||
|
||||
With the following `.flux.yaml` in the root dir:
|
||||
|
||||
```yaml
|
||||
version: 1
|
||||
patchUpdated:
|
||||
generators:
|
||||
- command: kustomize build ./overlays/prod
|
||||
patchFile: flux-patch.yaml
|
||||
```
|
||||
|
||||
!!! hint "Uninstall Flux v1"
|
||||
Before you proceed, delete the Flux v1 namespace
|
||||
and remove the `.flux.yaml` from your repo.
|
||||
|
||||
Install Flux v2 in the `flux-system` namespace:
|
||||
|
||||
```sh
|
||||
flux install
|
||||
```
|
||||
|
||||
Register the Git repository using a personal access token:
|
||||
|
||||
```sh
|
||||
flux create source git app \
|
||||
--url=https://github.com/org/app \
|
||||
--branch=main \
|
||||
--username=git \
|
||||
--password=token \
|
||||
--interval=1m
|
||||
```
|
||||
|
||||
Configure the reconciliation of the `prod` overlay on your cluster:
|
||||
|
||||
```sh
|
||||
flux create kustomization app \
|
||||
--source=app \
|
||||
--path="./overlays/prod" \
|
||||
--prune=true \
|
||||
--interval=10m
|
||||
```
|
||||
|
||||
Check the status of the Kustomization reconciliation:
|
||||
|
||||
```console
|
||||
$ flux get kustomizations app
|
||||
NAME REVISION SUSPENDED READY
|
||||
app main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b False True
|
||||
```
|
||||
|
||||
### Flux with Slack notifications
|
||||
|
||||
Assuming you've configured Flux v1 to send notifications to Slack with FluxCloud.
|
||||
|
||||
With Flux v2, create an alert provider for a Slack channel:
|
||||
|
||||
```sh
|
||||
flux create alert-provider slack \
|
||||
--type=slack \
|
||||
--channel=general \
|
||||
--address=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
|
||||
```
|
||||
|
||||
And configure notifications for the `app` reconciliation events:
|
||||
|
||||
```sh
|
||||
flux create alert app \
|
||||
--provider-ref=slack \
|
||||
--event-severity=info \
|
||||
--event-source=GitRepository/app \
|
||||
--event-source=Kustomization/app
|
||||
```
|
||||
|
||||
For more details, read the guides on how to configure
|
||||
[notifications](notifications.md) and [webhooks](webhook-receivers.md).
|
||||
|
||||
### Flux debugging
|
||||
|
||||
Check the status of Git operations:
|
||||
|
||||
```console
|
||||
$ kubectl -n flux-system get gitrepositories
|
||||
NAME READY MESSAGE
|
||||
app True Fetched revision: main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b
|
||||
test False SSH handshake failed: unable to authenticate, attempted methods [none publickey]
|
||||
```
|
||||
|
||||
Check the status of the cluster reconciliation with kubectl:
|
||||
|
||||
```console
|
||||
$ kubectl -n flux-system get kustomizations
|
||||
NAME READY STATUS
|
||||
app True Applied revision: main/5302d04c2ab8f0579500747efa0fe7abc72c8f9
|
||||
test False The Service 'backend' is invalid: spec.type: Unsupported value: 'Ingress'
|
||||
```
|
||||
|
||||
Suspend a reconciliation:
|
||||
|
||||
```console
|
||||
$ flux suspend kustomization app
|
||||
► suspending kustomization app in flux-system namespace
|
||||
✔ kustomization suspended
|
||||
```
|
||||
|
||||
Check the status with kubectl:
|
||||
|
||||
```console
|
||||
$ kubectl -n flux-system get kustomization app
|
||||
NAME READY STATUS
|
||||
app False Kustomization is suspended, skipping reconciliation
|
||||
```
|
||||
|
||||
Resume a reconciliation:
|
||||
|
||||
```console
|
||||
$ flux resume kustomization app
|
||||
► resuming Kustomization app in flux-system namespace
|
||||
✔ Kustomization resumed
|
||||
◎ waiting for Kustomization reconciliation
|
||||
✔ Kustomization reconciliation completed
|
||||
✔ applied revision main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b
|
||||
```
|
||||
@@ -67,7 +67,7 @@ flux bootstrap <GIT-PROVIDER> \
|
||||
and `--arch=arm64` for ARMv8 64-bit container images.
|
||||
|
||||
If you wish to install a specific version, use the Flux
|
||||
[release tag](https://github.com/fluxcd/flux2/releases) e.g. `--version=v0.0.14`.
|
||||
[release tag](https://github.com/fluxcd/flux2/releases) e.g. `--version=v0.2.0`.
|
||||
|
||||
With `--path` you can configure the directory which will be used to reconcile the target cluster.
|
||||
To control multiple clusters from the same Git repository, you have to set a unique path per
|
||||
@@ -76,9 +76,9 @@ cluster e.g. `staging-cluster` and `production-cluster`:
|
||||
```sh
|
||||
├── staging-cluster # <- path=staging-cluster
|
||||
│ └── flux-system # <- namespace dir generated by bootstrap
|
||||
│ ├── toolkit-components.yaml
|
||||
│ ├── toolkit-kustomization.yaml
|
||||
│ └── toolkit-source.yaml
|
||||
│ ├── gotk-components.yaml
|
||||
│ ├── gotk-sync.yaml
|
||||
│ └── kustomization.yaml
|
||||
└── production-cluster # <- path=production-cluster
|
||||
└── flux-system
|
||||
```
|
||||
@@ -213,16 +213,16 @@ Generate the Flux manifests with:
|
||||
```sh
|
||||
flux install --version=latest \
|
||||
--arch=amd64 \ # on ARM64/AARCH64 clusters use --arch=arm64
|
||||
--export > ./my-cluster/flux-system/toolkit-components.yaml
|
||||
--export > ./my-cluster/flux-system/gotk-components.yaml
|
||||
```
|
||||
|
||||
If your cluster must pull images from a private container registry, first you should pull
|
||||
the toolkit images from GitHub Container Registry and push them to your registry, for example:
|
||||
|
||||
```sh
|
||||
docker pull ghcr.io/fluxcd/source-controller:v0.0.14
|
||||
docker tag ghcr.io/fluxcd/source-controller:v0.0.14 registry.internal/fluxcd/source-controller:v0.0.14
|
||||
docker push registry.internal/fluxcd/source-controller:v0.0.14
|
||||
docker pull ghcr.io/fluxcd/source-controller:v0.2.0
|
||||
docker tag ghcr.io/fluxcd/source-controller:v0.2.0 registry.internal/fluxcd/source-controller:v0.2.0
|
||||
docker push registry.internal/fluxcd/source-controller:v0.2.0
|
||||
```
|
||||
|
||||
Create the pull secret in the `flux-system` namespace:
|
||||
@@ -241,19 +241,19 @@ Set your registry domain, and the pull secret when generating the manifests:
|
||||
flux install --version=latest \
|
||||
--registry=registry.internal/fluxcd \
|
||||
--image-pull-secret=regcred \
|
||||
--export > ./my-cluster/flux-system/toolkit-components.yaml
|
||||
--export > ./my-cluster/flux-system/gotk-components.yaml
|
||||
```
|
||||
|
||||
Commit and push the manifest to the master branch:
|
||||
|
||||
```sh
|
||||
git add -A && git commit -m "add toolkit manifests" && git push
|
||||
git add -A && git commit -m "add components" && git push
|
||||
```
|
||||
|
||||
Apply the manifests on your cluster:
|
||||
|
||||
```sh
|
||||
kubectl apply -f ./my-cluster/flux-system/toolkit-components.yaml
|
||||
kubectl apply -f ./my-cluster/flux-system/gotk-components.yaml
|
||||
```
|
||||
|
||||
Verify that the controllers have started:
|
||||
@@ -297,25 +297,27 @@ flux create kustomization flux-system \
|
||||
--interval=10m
|
||||
```
|
||||
|
||||
Export both objects, commit and push the manifests to Git:
|
||||
Export both objects, generate a `kustomization.yaml`, commit and push the manifests to Git:
|
||||
|
||||
```sh
|
||||
flux export source git flux-system \
|
||||
> ./my-cluster/flux-system/toolkit-source.yaml
|
||||
> ./my-cluster/flux-system/gotk-sync.yaml
|
||||
|
||||
flux export kustomization flux-system \
|
||||
> ./my-cluster/flux-system/toolkit-kustomization.yaml
|
||||
>> ./my-cluster/flux-system/gotk-sync.yaml
|
||||
|
||||
git add -A && git commit -m "add toolkit reconciliation" && git push
|
||||
cd ./my-cluster/flux-system && kustomize create --autodetect
|
||||
|
||||
git add -A && git commit -m "add sync manifests" && git push
|
||||
```
|
||||
|
||||
To upgrade the toolkit to a newer version, run the install command and commit the changes:
|
||||
To upgrade the Flux components to a newer version, run the install command and commit the changes:
|
||||
|
||||
```sh
|
||||
flux install --version=latest \
|
||||
--export > ./my-cluster/flux-system/toolkit-components.yaml
|
||||
--export > ./my-cluster/flux-system/gotk-components.yaml
|
||||
|
||||
git add -A && git commit -m "update toolkit" && git push
|
||||
git add -A && git commit -m "update flux" && git push
|
||||
```
|
||||
|
||||
The source-controller will pull the changes on the cluster, then the kustomize-controller
|
||||
|
||||
@@ -45,7 +45,6 @@ guides](https://toolkit.fluxcd.io/dev-guides/source-watcher/).
|
||||
|
||||
Components:
|
||||
|
||||
- [Flux CLI](https://github.com/fluxcd/flux2)
|
||||
- [Source Controller](components/source/controller.md)
|
||||
- [GitRepository CRD](components/source/gitrepositories.md)
|
||||
- [HelmRepository CRD](components/source/helmrepositories.md)
|
||||
@@ -63,26 +62,35 @@ Components:
|
||||
## Get Started
|
||||
|
||||
!!!hint "Get started with Flux v2!"
|
||||
Following this [guide](get-started/index.md) will just take a couple of minutes to complete: After installing the `flux` binary and running a couple of very simple commands, you will have a GitOps workflow setup which involves a staging and a production cluster.
|
||||
Following this [guide](get-started/index.md) will just take a couple of minutes to complete:
|
||||
After installing the `flux` CLI and running a couple of very simple commands,
|
||||
you will have a GitOps workflow setup which involves a staging and a production cluster.
|
||||
|
||||
## Community
|
||||
|
||||
The Flux project is always looking for new contributors and there are a multitude of ways to get involved. Depending on what you want to do, some of the following bits might be your first steps:
|
||||
The Flux project is always looking for new contributors and there are a multitude of ways to get involved.
|
||||
Depending on what you want to do, some of the following bits might be your first steps:
|
||||
|
||||
- Join our upcoming dev meetings ([meeting access and agenda](https://docs.google.com/document/d/1l_M0om0qUEN_NNiGgpqJ2tvsF2iioHkaARDeh6b70B0/view))
|
||||
- Ask questions and add suggestions in our [GitOps Toolkit Discussions](https://github.com/fluxcd/toolkit/discussions)
|
||||
- Talk to us in the #flux channel on [CNCF Slack](https://slack.cncf.io/)
|
||||
- Join the [planning discussions](https://github.com/fluxcd/flux2/discussions)
|
||||
- And if you are completely new to Flux v2 and the GitOps Toolkit, take a look at our [Get Started guide](get-started/index.md) and give us feedback
|
||||
- Check out [how to contribute](contributing/index.md) to the project
|
||||
|
||||
## Featured Talks
|
||||
### Featured Talks
|
||||
|
||||
- 28 Oct 2020 - [The Kubelist Podcast: Flux with Michael Bridgen](https://www.heavybit.com/library/podcasts/the-kubelist-podcast/ep-5-flux-with-michael-bridgen-of-weaveworks/)
|
||||
- 19 Oct 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 1 with Leigh Capili](https://youtu.be/0v5bjysXTL8)
|
||||
- 12 Oct 2020 - [Rawkode Live: Introduction to GitOps Toolkit with Stefan Prodan](https://youtu.be/HqTzuOBP0eY)
|
||||
- 4 Sep 2020 - [KubeCon/CloudNativeCon Europe: The road to Flux v2 and Progressive Delivery with Stefan Prodan & Hidde Beydals](https://youtu.be/8v94nUkXsxU)
|
||||
- 4 Sep 2020 - [KubeCon Europe: The road to Flux v2 and Progressive Delivery with Stefan Prodan & Hidde Beydals](https://youtu.be/8v94nUkXsxU)
|
||||
- 25 June 2020 - [Cloud Native Nordics: Introduction to GitOps & GitOps Toolkit with Alexis Richardson & Stefan Prodan](https://youtu.be/qQBtSkgl7tI)
|
||||
- 7 May 2020 - [GitOps Days - Community Special: GitOps Toolkit Experimentation with Stefan Prodan](https://youtu.be/WHzxunv4DKk?t=6521)
|
||||
|
||||
### Upcoming Meetups
|
||||
- 19 Oct 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 1](https://www.meetup.com/GitOps-Community/events/273640196/)
|
||||
- 2 Nov 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 2](https://www.meetup.com/GitOps-Community/events/273934676/)
|
||||
### Upcoming Events
|
||||
|
||||
- 2 Nov 2020 - [The Power of GitOps with Flux & GitOps Toolkit - Part 2 with Leigh Capili](https://www.meetup.com/GitOps-Community/events/273934676/)
|
||||
- 12-13 Nov 2020 - [GitOps Days EMEA](https://www.gitopsdays.com/) with talks and workshops on migrating to Flux v2 and Helm Controller
|
||||
- 19 Nov 2020 - [KubeCon NA: Progressive Delivery Techniques with Flagger and Flux v2 with Stefan Prodan](https://kccncna20.sched.com/event/1b04f8408b49976b843a5d0019cb8112)
|
||||
|
||||
We are looking forward to seeing you with us!
|
||||
|
||||
@@ -12,7 +12,7 @@ All of the above will constitute "Flux v2".
|
||||
|
||||
### Flux read-only feature parity
|
||||
|
||||
[= 90% "90%"]
|
||||
[= 100% "100%"]
|
||||
|
||||
This would be the first stepping stone: we want Flux v2 to be on-par with today's Flux in
|
||||
[read-only mode](https://github.com/fluxcd/flux/blob/master/docs/faq.md#can-i-run-flux-with-readonly-git-access)
|
||||
@@ -20,8 +20,8 @@ and [FluxCloud](https://github.com/justinbarrick/fluxcloud) notifications.
|
||||
|
||||
Goals
|
||||
|
||||
- Offer a migration guide for those that are using Flux in read-only mode to synchronize plain manifests
|
||||
- Offer a migration guide for those that are using Flux in read-only mode to synchronize Kustomize overlays
|
||||
- <span class="check-bullet">:material-check-bold:</span> [Offer a migration guide for those that are using Flux in read-only mode to synchronize plain manifests](https://toolkit.fluxcd.io/guides/flux-v1-migration/)
|
||||
- <span class="check-bullet">:material-check-bold:</span> [Offer a migration guide for those that are using Flux in read-only mode to synchronize Kustomize overlays](https://toolkit.fluxcd.io/guides/flux-v1-migration/)
|
||||
- <span class="check-bullet">:material-check-bold:</span> [Offer a dedicated component for forwarding events to external messaging platforms](https://toolkit.fluxcd.io/guides/notifications/)
|
||||
|
||||
Non-Goals
|
||||
@@ -38,7 +38,7 @@ Tasks
|
||||
- [x] <span style="color:grey">Implement a notification controller for Slack, MS Teams, Discord, Rocket</span>
|
||||
- [x] <span style="color:grey">Implement Prometheus metrics in source and kustomize controllers</span>
|
||||
- [x] <span style="color:grey">Review the git source and kustomize APIs</span>
|
||||
- [ ] Create a migration guide for `flux.yaml` kustomize users
|
||||
- [x] <span style="color:grey">Create a migration guide for `flux.yaml` kustomize users</span>
|
||||
- [x] <span style="color:grey">Include support for SOPS</span>
|
||||
|
||||
### Flux image update feature parity
|
||||
@@ -91,5 +91,5 @@ Tasks
|
||||
- [x] <span style="color:grey">Implement conditional remediation on (failed) Helm actions</span>
|
||||
- [x] <span style="color:grey">Implement support for Helm charts from Git</span>
|
||||
- [x] <span style="color:grey">Implement support for referring to an alternative chart values file</span>
|
||||
- [ ] Stabilize API
|
||||
- [x] <span style="color:grey">Stabilize API</span>
|
||||
- [ ] Create a migration guide for Helm Operator users
|
||||
|
||||
2
go.mod
2
go.mod
@@ -12,7 +12,7 @@ require (
|
||||
github.com/fluxcd/pkg/runtime v0.1.2
|
||||
github.com/fluxcd/pkg/ssh v0.0.5
|
||||
github.com/fluxcd/pkg/untar v0.0.5
|
||||
github.com/fluxcd/source-controller/api v0.2.0
|
||||
github.com/fluxcd/source-controller/api v0.2.1
|
||||
github.com/manifoldco/promptui v0.7.0
|
||||
github.com/olekukonko/tablewriter v0.0.4
|
||||
github.com/spf13/cobra v1.0.0
|
||||
|
||||
4
go.sum
4
go.sum
@@ -131,8 +131,8 @@ github.com/fluxcd/pkg/ssh v0.0.5 h1:rnbFZ7voy2JBlUfMbfyqArX2FYaLNpDhccGFC3qW83A=
|
||||
github.com/fluxcd/pkg/ssh v0.0.5/go.mod h1:7jXPdXZpc0ttMNz2kD9QuMi3RNn/e0DOFbj0Tij/+Hs=
|
||||
github.com/fluxcd/pkg/untar v0.0.5 h1:UGI3Ch1UIEIaqQvMicmImL1s9npQa64DJ/ozqHKB7gk=
|
||||
github.com/fluxcd/pkg/untar v0.0.5/go.mod h1:O6V9+rtl8c1mHBafgqFlJN6zkF1HS5SSYn7RpQJ/nfw=
|
||||
github.com/fluxcd/source-controller/api v0.2.0 h1:a+N8+kLDH24lN2hp3klIFGuET3uMhhBWTM9qKdIRhM8=
|
||||
github.com/fluxcd/source-controller/api v0.2.0/go.mod h1:1ac/vj49YVPKF+xBHTo/9pfFj64TcLc1RLaxi4MwVEM=
|
||||
github.com/fluxcd/source-controller/api v0.2.1 h1:CK2vpnEHa1nB1cqc3dAuO+hL6HGcSnh2xGmQfzmGef4=
|
||||
github.com/fluxcd/source-controller/api v0.2.1/go.mod h1:1ac/vj49YVPKF+xBHTo/9pfFj64TcLc1RLaxi4MwVEM=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
|
||||
@@ -6,7 +6,7 @@ Binaries for macOS and Linux AMD64 are available for download on the
|
||||
To install the latest release run:
|
||||
|
||||
```bash
|
||||
curl -s https://raw.githubusercontent.com/fluxcd/flux2/master/install/flux.sh | sudo bash
|
||||
curl -s https://raw.githubusercontent.com/fluxcd/flux2/main/install/flux.sh | sudo bash
|
||||
```
|
||||
|
||||
The install script does the following:
|
||||
@@ -27,10 +27,10 @@ Clone the repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/fluxcd/flux2
|
||||
cd toolkit
|
||||
cd flux2
|
||||
```
|
||||
|
||||
Build the `flux` binary (requires go >= 1.14):
|
||||
Build the `flux` binary (requires go >= 1.15):
|
||||
|
||||
```bash
|
||||
make build
|
||||
|
||||
@@ -119,7 +119,7 @@ download() {
|
||||
|
||||
# Download hash from Github URL
|
||||
download_hash() {
|
||||
HASH_URL="https://github.com/${GITHUB_REPO}/releases/download/v${VERSION_FLUX}/toolkit_${VERSION_FLUX}_checksums.txt"
|
||||
HASH_URL="https://github.com/${GITHUB_REPO}/releases/download/v${VERSION_FLUX}/flux2_${VERSION_FLUX}_checksums.txt"
|
||||
info "Downloading hash ${HASH_URL}"
|
||||
download "${TMP_HASH}" "${HASH_URL}"
|
||||
HASH_EXPECTED=$(grep " flux_${VERSION_FLUX}_${OS}_${ARCH}.tar.gz$" "${TMP_HASH}")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- https://github.com/fluxcd/source-controller/archive/v0.2.0.zip//source-controller-0.2.0/config/crd
|
||||
- https://github.com/fluxcd/source-controller/archive/v0.2.0.zip//source-controller-0.2.0/config/manager
|
||||
- https://github.com/fluxcd/source-controller/archive/v0.2.1.zip//source-controller-0.2.1/config/crd
|
||||
- https://github.com/fluxcd/source-controller/archive/v0.2.1.zip//source-controller-0.2.1/config/manager
|
||||
patchesJson6902:
|
||||
- target:
|
||||
group: apps
|
||||
|
||||
@@ -52,6 +52,7 @@ nav:
|
||||
- Monitoring with Prometheus: guides/monitoring.md
|
||||
- Sealed Secrets: guides/sealed-secrets.md
|
||||
- Mozilla SOPS: guides/mozilla-sops.md
|
||||
- Migrate from Flux v1 to v2: guides/flux-v1-migration.md
|
||||
- Toolkit Components:
|
||||
- Source Controller:
|
||||
- Overview: components/source/controller.md
|
||||
@@ -140,8 +141,8 @@ nav:
|
||||
- Reconcile source helm: cmd/flux_reconcile_source_helm.md
|
||||
- Reconcile source bucket: cmd/flux_reconcile_source_bucket.md
|
||||
- Uninstall: cmd/flux_uninstall.md
|
||||
- Roadmap: roadmap/index.md
|
||||
- Contributing: contributing/index.md
|
||||
- Dev Guides:
|
||||
- Watching for source changes: dev-guides/source-watcher.md
|
||||
- Roadmap: roadmap/index.md
|
||||
- Contributing: contributing/index.md
|
||||
- FAQ: faq/index.md
|
||||
|
||||
Reference in New Issue
Block a user