From 917598acf80ae5a93818044e8951b3673f847e3e Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Mon, 22 Jun 2020 17:44:13 +0300 Subject: [PATCH 1/2] Add toolkit components docs --- .github/workflows/docs.yaml | 2 ++ docs/_files/kustomize-controller.png | Bin 0 -> 53020 bytes docs/_files/source-controller.png | Bin 0 -> 33983 bytes docs/components/kustomize/controller.md | 23 +++++++++++++++++++++++ docs/components/source/controller.md | 24 ++++++++++++++++++++++++ docs/index.md | 11 ++++++++--- mkdocs.yml | 5 +++++ 7 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 docs/_files/kustomize-controller.png create mode 100644 docs/_files/source-controller.png create mode 100644 docs/components/kustomize/controller.md create mode 100644 docs/components/source/controller.md diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 0deb0910..158b258a 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -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: diff --git a/docs/_files/kustomize-controller.png b/docs/_files/kustomize-controller.png new file mode 100644 index 0000000000000000000000000000000000000000..10a5e77645da144aacbd36b866f1b04f1703df51 GIT binary patch literal 53020 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 E0nTEa`Tzg` literal 0 HcmV?d00001 diff --git a/docs/_files/source-controller.png b/docs/_files/source-controller.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4f4c7abd4a9ab4aaba76cdb1989acaba687583 GIT binary patch literal 33983 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 literal 0 HcmV?d00001 diff --git a/docs/components/kustomize/controller.md b/docs/components/kustomize/controller.md new file mode 100644 index 00000000..af699231 --- /dev/null +++ b/docs/components/kustomize/controller.md @@ -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) diff --git a/docs/components/source/controller.md b/docs/components/source/controller.md new file mode 100644 index 00000000..fa4b8f00 --- /dev/null +++ b/docs/components/source/controller.md @@ -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) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index bca35de7..876d6f6e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,12 +9,17 @@ cluster admins or by other automated tools. The GitOps Toolkit components interact with each other via Kubernetes events and are responsible for the reconciliation of their designated API objects. -![](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 Flux CD team is looking for feedback and help as + the toolkit is in an active experimentation phase. + 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). + diff --git a/mkdocs.yml b/mkdocs.yml index f03df7ba..36a68a52 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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 From 807848b6bbbd848b062814d8630b8e25b751c798 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Tue, 23 Jun 2020 11:44:22 +0300 Subject: [PATCH 2/2] Add git repositories and kustomizations docs --- .github/workflows/docs.yaml | 2 ++ mkdocs.yml | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 158b258a..c5a6f8b2 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -16,7 +16,9 @@ jobs: 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/source-controller/master/docs/spec/v1alpha1/gitrepositories.md > docs/components/source/gitrepositories.md curl https://raw.githubusercontent.com/fluxcd/kustomize-controller/master/docs/api/kustomize.md > docs/components/kustomize/api.md + curl https://raw.githubusercontent.com/fluxcd/kustomize-controller/master/docs/spec/v1alpha1/kustomization.md > docs/components/kustomize/kustomization.md - name: Deploy docs uses: mhausenblas/mkdocs-deploy-gh-pages@master env: diff --git a/mkdocs.yml b/mkdocs.yml index 36a68a52..e701e2c0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -39,9 +39,11 @@ nav: - Get Started: get-started/index.md - Toolkit Components: - Source Controller: components/source/controller.md - - Source API: components/source/api.md + - GitRepository CRD: components/source/gitrepositories.md + - Source API Reference: components/source/api.md - Kustomize Controller: components/kustomize/controller.md - - Kustomize API: components/kustomize/api.md + - Kustomization CRD: components/kustomize/kustomization.md + - Kustomize API Reference: components/kustomize/api.md - Toolkit CLI: - Bootstrap: cmd/tk_bootstrap.md - Check: cmd/tk_check.md