mirror of https://github.com/fluxcd/flux2.git
Cleanup internal docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>pull/3254/head
parent
346e0ea734
commit
a4d7e35cdd
Binary file not shown.
Before Width: | Height: | Size: 61 KiB |
@ -1,18 +0,0 @@
|
||||
# individual rules
|
||||
/core-concepts https://fluxcd.io/flux/concepts 301!
|
||||
/contributing https://fluxcd.io/contributing 301!
|
||||
/install.sh https://fluxcd.io/install.sh 301!
|
||||
|
||||
# refer to https://github.com/fluxcd/flux2/discussions/367
|
||||
/dev-guides/* https://fluxcd.io/flux/gitops-toolkit/:splat 301!
|
||||
|
||||
|
||||
# this is how things looked in the navbar anyway..?
|
||||
/guides/faq-migration https://fluxcd.io/flux/migration/faq-migration 301!
|
||||
/guides/flux-v1-automation-migration https://fluxcd.io/flux/migration/flux-v1-automation-migration 301!
|
||||
/guides/flux-v1-migration https://fluxcd.io/flux/migration/flux-v1-migration 301!
|
||||
/guides/helm-operator-migration https://fluxcd.io/flux/migration/helm-operator-migration 301!
|
||||
|
||||
|
||||
# catch all
|
||||
/* https://fluxcd.io/flux/:splat 301!
|
@ -1,83 +0,0 @@
|
||||
# Flux Diagrams
|
||||
|
||||
## Cluster sync from Git
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor me
|
||||
participant git as Git<br><br>repository
|
||||
participant sc as Flux<br><br>source-controller
|
||||
participant kc as Flux<br><br>kustomize-controller
|
||||
participant kube as Kubernetes<br><br>api-server
|
||||
participant nc as Flux<br><br>notification-controller
|
||||
me->>git: 1. git push
|
||||
sc->>git: 2. git pull
|
||||
sc->>sc: 3. build artifact for revision
|
||||
sc->>kube: 4. update status for revision
|
||||
sc-->>nc: 5. emit events
|
||||
kube->>kc: 6. notify about new revision
|
||||
kc->>sc: 7. fetch artifact for revision
|
||||
kc->>kc: 8. build manifests to objects
|
||||
kc-->>kc: 9. decrypt secrets
|
||||
kc->>kube: 10. validate objects
|
||||
kc->>kube: 11. apply objects
|
||||
kc-->>kube: 12. delete objects
|
||||
kc-->>kube: 13. wait for readiness
|
||||
kc->>kube: 14. update status for revision
|
||||
kc-->>nc: 15. emit events
|
||||
nc-->>me: 16. send alerts for revision
|
||||
```
|
||||
|
||||
## Helm release upgrade from Git
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor me
|
||||
participant git as Git<br><br>repository
|
||||
participant sc as Flux<br><br>source-controller
|
||||
participant hc as Flux<br><br>helm-controller
|
||||
participant kube as Kubernetes<br><br>api-server
|
||||
participant nc as Flux<br><br>notification-controller
|
||||
me->>git: 1. git push
|
||||
sc->>git: 2. git pull
|
||||
sc->>sc: 3. build chart for revision
|
||||
sc->>kube: 4. update chart status
|
||||
sc-->>nc: 5. emit events
|
||||
kube->>hc: 6. notify about new revision
|
||||
hc->>sc: 7. fetch chart
|
||||
hc->>kube: 8. get values
|
||||
hc->>hc: 9. render and customize manifests
|
||||
hc-->>kube: 10. apply CRDs
|
||||
hc->>kube: 11. upgrade release
|
||||
hc-->>kube: 12. run tests
|
||||
hc-->>kube: 13. wait for readiness
|
||||
hc->>kube: 14. update status
|
||||
hc-->>nc: 15. emit events
|
||||
nc-->>me: 16. send alerts
|
||||
```
|
||||
|
||||
## Image update to Git
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor me
|
||||
participant oci as Image<br><br>repository
|
||||
participant irc as Flux<br><br>image-reflector-controller
|
||||
participant iac as Flux<br><br>image-automation-controller
|
||||
participant kube as Kubernetes<br><br>api-server
|
||||
participant nc as Flux<br><br>notification-controller
|
||||
participant git as Git<br><br>repository
|
||||
me->>oci: 1. docker push
|
||||
irc->>oci: 2. list tags
|
||||
irc->>irc: 3. match tags to policies
|
||||
irc->>kube: 4. update status
|
||||
irc-->>nc: 5. emit events
|
||||
kube->>iac: 6. notify about new tags
|
||||
iac->>git: 7. git clone
|
||||
iac->>iac: 8. patch manifests with new tags
|
||||
iac->>git: 9. git push
|
||||
iac->>kube: 10. update status
|
||||
iac-->>nc: 11. emit events
|
||||
nc-->>me: 12. send alerts
|
||||
```
|
||||
|
@ -1,139 +0,0 @@
|
||||
# Flux release procedure
|
||||
|
||||
The Flux Go modules and the GitOps Toolkit controllers are released by following the [semver](https://semver.org) conventions.
|
||||
|
||||
Repositories subject to semver releases:
|
||||
|
||||
1. [fluxcd/pkg](https://github.com/fluxcd/pkg)
|
||||
- modules: `apis/meta`, `runtime`, various utilities
|
||||
- dependencies: `k8s.io/*`, `sigs.k8s.io/controller-runtime`
|
||||
1. [fluxcd/source-controller](https://github.com/fluxcd/source-controller)
|
||||
- modules: `api`
|
||||
- dependencies: `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/kustomize-controller](https://github.com/fluxcd/kustomize-controller)
|
||||
- modules: `api`
|
||||
- dependencies: `github.com/fluxcd/source-controller/api`, `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/helm-controller](https://github.com/fluxcd/helm-controller)
|
||||
- modules: `api`
|
||||
- dependencies: `github.com/fluxcd/source-controller/api`, `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/image-reflector-controller](https://github.com/fluxcd/image-reflector-controller)
|
||||
- modules: `api`
|
||||
- dependencies: `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/image-automation-controller](https://github.com/fluxcd/image-automation-controller)
|
||||
- modules: `api`
|
||||
- dependencies: `github.com/fluxcd/source-controller/api`, `github.com/fluxcd/image-reflector-controller/api`, `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/notification-controller](https://github.com/fluxcd/notification-controller)
|
||||
- modules: `api`
|
||||
- dependencies: `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/flux2](https://github.com/fluxcd/flux2)
|
||||
- modules: `manifestgen`
|
||||
- dependencies: `github.com/fluxcd/source-controller/api`, `github.com/fluxcd/kustomize-controller/api`, `github.com/fluxcd/helm-controller/api`, `github.com/fluxcd/image-reflector-controller/api`, `github.com/fluxcd/image-automation-controller/api`, `github.com/fluxcd/notification-controller/api`, `github.com/fluxcd/pkg/*`
|
||||
1. [fluxcd/terraform-provider-flux](https://github.com/fluxcd/terraform-provider-flux)
|
||||
- dependencies: `github.com/fluxcd/flux2/pkg/manifestgen`
|
||||
|
||||
## Release procedure
|
||||
|
||||
### Go packages
|
||||
|
||||
The Go packages in [fluxcd/pkg](https://github.com/fluxcd/pkg) are dedicated modules,
|
||||
each module has its own set of dependencies and release cycle.
|
||||
|
||||
Release procedure for a package:
|
||||
|
||||
1. Checkout the `main` branch and pull changes from remote.
|
||||
1. Run `make release-<package name> VER=<next semver>`.
|
||||
|
||||
### Controllers
|
||||
|
||||
A toolkit controller has a dedicated module for its API, the API module
|
||||
has its own set of dependencies.
|
||||
|
||||
Release procedure for a controller and its API:
|
||||
|
||||
1. Checkout the `main` branch and pull changes from remote.
|
||||
1. Create a `api/<next semver>` tag and push it to remote.
|
||||
1. Create a new branch from `main` i.e. `release-<next semver>`. This
|
||||
will function as your release preparation branch.
|
||||
1. Update the `github.com/fluxcd/<NAME>-controller/api` version in `go.mod`
|
||||
1. Add an entry to the `CHANGELOG.md` for the new release and change the
|
||||
`newTag` value in ` config/manager/kustomization.yaml` to that of the
|
||||
semver release you are going to make. Commit and push your changes.
|
||||
1. Create a PR for your release branch and get it merged into `main`.
|
||||
1. Create a `<next semver>` tag for the merge commit in `main` and
|
||||
push it to remote.
|
||||
1. Confirm CI builds and releases the newly tagged version.
|
||||
|
||||
### Flux
|
||||
|
||||
Release procedure for Flux:
|
||||
|
||||
1. Checkout the `main` branch and pull changes from remote.
|
||||
1. Create a `<next semver>` tag form `main` and push it to remote.
|
||||
1. Confirm CI builds and releases the newly tagged version.
|
||||
|
||||
## Upgrade Kubernetes modules
|
||||
|
||||
Flux has the following Kubernetes dependencies:
|
||||
|
||||
- `k8s.io/api`
|
||||
- `k8s.io/apiextensions-apiserver`
|
||||
- `k8s.io/apimachinery`
|
||||
- `k8s.io/cli-runtime`
|
||||
- `k8s.io/client-go`
|
||||
- `sigs.k8s.io/controller-runtime`
|
||||
|
||||
**Note** that all `k8s.io/*` packages must have the same version in `go.mod` e.g.:
|
||||
|
||||
```
|
||||
k8s.io/api v0.20.2
|
||||
k8s.io/apiextensions-apiserver v0.20.2
|
||||
k8s.io/apimachinery v0.20.2
|
||||
k8s.io/cli-runtime v0.20.2
|
||||
k8s.io/client-go v0.20.2
|
||||
```
|
||||
|
||||
The specialised reconcilers depend on:
|
||||
|
||||
- kustomize-controller: `sigs.k8s.io/kustomize/api`
|
||||
- image-automation-controller: `sigs.k8s.io/kustomize/kyaml`
|
||||
- helm-controller: `helm.sh/helm/v3`
|
||||
|
||||
**Note** that the `k8s.io/*` version must be compatible with both `kustomize/api` and `helm/v3`.
|
||||
If there is a breaking change in `client-go` we have to wait for Kustomize and Helm to upgrade first.
|
||||
|
||||
### Upgrade procedure:
|
||||
|
||||
`fluxcd/pkg`:
|
||||
|
||||
1. Update the `k8s.io/*` version in `pkg/apis/meta/go.mod`
|
||||
1. Release the `apis/meta` package
|
||||
1. Update `apis/meta` version in `pkg/runtime/go.mod`
|
||||
1. Update the `k8s.io/*` version in `pkg/runtime/go.mod`
|
||||
1. Update `sigs.k8s.io/controller-runtime` version in `pkg/runtime/go.mod`
|
||||
1. Release the `runtime` package
|
||||
|
||||
`fluxcd/source-controller`:
|
||||
|
||||
1. Update the `github.com/fluxcd/pkg/apis/meta` version in `source-controller/api/go.mod` and `source-controller/go.mod`
|
||||
1. Update the `k8s.io/*` version in `source-controller/api/go.mod` and `source-controller/go.mod`
|
||||
1. Update the `sigs.k8s.io/controller-runtime` version in `source-controller/api/go.mod` and `source-controller/go.mod`
|
||||
1. Update the `github.com/fluxcd/pkg/runtime` version in `source-controller/go.mod`
|
||||
1. Release the `api` package
|
||||
|
||||
`fluxcd/<kustomize|helm|notification|image-automation>-controller`:
|
||||
|
||||
1. Update the `github.com/fluxcd/source-controller/api` version in `<NAME>-controller/api/go.mod` and `<NAME>-controller/go.mod`
|
||||
1. Update the `github.com/fluxcd/pkg/apis/meta` version in `<NAME>-controller/api/go.mod` and `<NAME>-controller/go.mod`
|
||||
1. Update the `k8s.io/*` version in `<NAME>-controller/api/go.mod` and `<NAME>-controller/go.mod`
|
||||
1. Update the `github.com/fluxcd/pkg/runtime` version in `<NAME>-controller/go.mod`
|
||||
1. Release the `api` package
|
||||
|
||||
`fluxcd/flux2`:
|
||||
|
||||
1. Update the `github.com/fluxcd/*-controller/api` version in `flux2/go.mod` (automated with [GitHub Actions](../../.github/workflows/update.yaml))
|
||||
1. Update the `github.com/fluxcd/pkg/*` version in `flux2/go.mod`
|
||||
1. Update the `k8s.io/*` and `github.com/fluxcd/pkg/runtime` version in `flux2/go.mod`
|
||||
|
||||
`fluxcd/terraform-provider-flux`:
|
||||
|
||||
1. Update the `github.com/fluxcd/flux2` version in `terraform-provider-flux/go.mod` (automated with [GitHub Actions](https://github.com/fluxcd/terraform-provider-flux/blob/main/.github/workflows/update.yaml))
|
Loading…
Reference in New Issue