Skip to content

Commit

Permalink
Add toolkit components docs
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanprodan committed Jun 22, 2020
1 parent b8bddf6 commit 2331cbe
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ jobs:
- name: Copy assets
run: |
cp install/tk.sh docs/install.sh
curl https://raw.githubusercontent.com/fluxcd/source-controller/master/docs/api/source.md > docs/components/source/api.md
curl https://raw.githubusercontent.com/fluxcd/kustomize-controller/master/docs/api/kustomize.md > docs/components/kustomize/api.md
- name: Deploy docs
uses: mhausenblas/mkdocs-deploy-gh-pages@master
env:
Expand Down
Binary file added docs/_files/kustomize-controller.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_files/source-controller.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions docs/components/kustomize/controller.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Kustomize Controller

The kustomize-controller is a Kubernetes operator,
specialized in running continuous delivery pipelines for infrastructure and
workloads defined with Kubernetes manifests and assembled with Kustomize.

![](../../_files/kustomize-controller.png)

Features:

- Reconciles the cluster state from multiple sources (provided by source-controller)
- Generates manifests with Kustomize (from plain Kubernetes yamls or Kustomize overlays)
- Validates manifests against Kubernetes API
- Impersonates service accounts (multi-tenancy RBAC)
- Health assessment of the deployed workloads
- Runs pipelines in a specific order (depends-on relationship)
- Prunes objects removed from source (garbage collection)
- Reports cluster state changes (Slack/Discord)

Links:

- Source code [fluxcd/kustomize-controller](https://github.com/fluxcd/kustomize-controller)
- Specification [docs](https://github.com/fluxcd/kustomize-controller/tree/master/docs/spec)
24 changes: 24 additions & 0 deletions docs/components/source/controller.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Source Controller

The main role of the source management component is to provide a common interface for artifacts acquisition.
The source API defines a set of Kubernetes objects that cluster admins and various automated operators can
interact with to offload the Git and Helm repositories operations to a dedicated controller.

![](../../_files/source-controller.png)

Features:

- Validate source definitions
- Authenticate to sources (SSH, user/password, API token)
- Validate source authenticity (PGP)
- Detect source changes based on update policies (semver)
- Fetch resources on-demand and on-a-schedule
- Package the fetched resources into a well-known format (tar.gz, yaml)
- Make the artifacts addressable by their source identifier (sha, version, ts)
- Make the artifacts available in-cluster to interested 3rd parties
- Notify interested 3rd parties of source changes and availability (status conditions, events, hooks)

Links:

- Source code [fluxcd/source-controller](https://github.com/fluxcd/source-controller)
- Specification [docs](https://github.com/fluxcd/source-controller/tree/master/docs/spec)
11 changes: 9 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,17 @@ events and are responsible for the reconciliation of their designated API object

![](diagrams/tk-overview.png)

!!! hint "Work in Progress"
We envision a feature where **Flux v2** and **Helm Operator v2** will be assembled from
the GitOps Toolkit components. The toolkit is in an active experimentation phase,
the Flux CD team is looking for feedback and help. If you wish to take part in this quest
please reach out to us on Slack and GitHub.

Components:

- [Toolkit CLI](https://github.com/fluxcd/toolkit)
- [Source Controller](https://github.com/fluxcd/source-controller)
- [Kustomize Controller](https://github.com/fluxcd/kustomize-controller)
- [Source Controller](components/source/controller.md)
- [Kustomize Controller](components/kustomize/controller.md)

To get started with the toolkit please follow this [guide](get-started/index.md).

5 changes: 5 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ markdown_extensions:
nav:
- Introduction: index.md
- Get Started: get-started/index.md
- Toolkit Components:
- Source Controller: components/source/controller.md
- Source API: components/source/api.md
- Kustomize Controller: components/kustomize/controller.md
- Kustomize API: components/kustomize/api.md
- Toolkit CLI:
- Bootstrap: cmd/tk_bootstrap.md
- Check: cmd/tk_check.md
Expand Down

0 comments on commit 2331cbe

Please sign in to comment.