Cleanup internal docs

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
pull/3254/head
Stefan Prodan 2 years ago
parent 346e0ea734
commit a4d7e35cdd
No known key found for this signature in database
GPG Key ID: 3299AEB0E4085BAF

@ -43,7 +43,7 @@ runtime for Flux v2. The APIs comprise Kubernetes custom resources,
which can be created and updated by a cluster user, or by other which can be created and updated by a cluster user, or by other
automation tooling. automation tooling.
![overview](docs/_files/gitops-toolkit.png) ![overview](https://fluxcd.io/img/diagrams/gitops-toolkit.png)
You can use the toolkit to extend Flux, or to build your own systems You can use the toolkit to extend Flux, or to build your own systems
for continuous delivery -- see [the developer for continuous delivery -- see [the developer

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…
Cancel
Save