Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework Flux2 website intro #422

Merged
merged 4 commits into from Nov 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
26 changes: 26 additions & 0 deletions docs/components/index.md
@@ -0,0 +1,26 @@
# GitOps Toolkit components

The GitOps Toolkit is the set of APIs and controllers that make up the
runtime for Flux v2. The APIs comprise Kubernetes custom resources,
which can be created and updated by a cluster user, or by other
automation tooling.

You can use the toolkit to extend Flux, and to build your own systems
for continuous delivery. The [the source-watcher
guide](../dev-guides/source-watcher/) is a good place to start.

A reference for each component and API type is linked below.

- [Source Controller](source/controller.md)
- [GitRepository CRD](source/gitrepositories.md)
- [HelmRepository CRD](source/helmrepositories.md)
- [HelmChart CRD](source/helmcharts.md)
- [Bucket CRD](source/buckets.md)
- [Kustomize Controller](kustomize/controller.md)
- [Kustomization CRD](kustomize/kustomization.md)
- [Helm Controller](helm/controller.md)
- [HelmRelease CRD](helm/helmreleases.md)
- [Notification Controller](notification/controller.md)
- [Provider CRD](notification/provider.md)
- [Alert CRD](notification/alert.md)
- [Receiver CRD](notification/receiver.md)
86 changes: 46 additions & 40 deletions docs/index.md
Expand Up @@ -10,62 +10,68 @@ components of the Kubernetes ecosystem. In version 2, Flux supports
multi-tenancy and support for syncing an arbitrary number of Git
repositories, among other long-requested features.

Flux v2 is constructed with the [GitOps Toolkit](#gitops-toolkit), a
set of composable APIs and specialized tools for building Continuous
Flux v2 is constructed with the [GitOps Toolkit](components/index.md),
a set of composable APIs and specialized tools for building Continuous
Delivery on top of Kubernetes.

Features:
## Who is Flux for?

- Source management (Git and Helm repositories, S3 compatible buckets)
- Kustomize and Helm support
- Event-based and on-a-schedule reconciliation
- Role-based reconciliation (multi-tenancy)
- Health assessment (clusters and workloads)
- Dependency management (infra and workloads)
- Alerting to external systems (webhook senders)
- External events handling (webhook receivers)
- Source write-back (automated patching)
- Policy driven validation (OPA, admission controllers)
- Seamless integration with Git providers (GitHub, GitLab, Bitbucket)
- Interoperability with workflow providers (GitHub Actions, Tekton, Argo)
- Interoperability with CAPI providers
Flux helps

## GitOps Toolkit
- **cluster operators** who automate provision and configuration of clusters;
- **platform engineers** who build continuous delivery for developer teams;
- **app developers** who rely on continuous delivery to get their code live.

The GitOps Toolkit is the set of APIs and controllers that make up the
runtime for Flux v2. The APIs comprise Kubernetes custom resources,
which can be created and updated by a cluster user, or by other
automation tooling.
The [GitOps Toolkit](components/index.md) is for **platform
engineers** who want to make their own continuous delivery system, and
have requirements not covered by Flux.

![overview](diagrams/gitops-toolkit.png)
## What can I do with Flux?

You can use the toolkit to extend Flux, or to build your own systems
for continuous delivery -- see [the developer
guides](https://toolkit.fluxcd.io/dev-guides/source-watcher/).
Flux is based on a set of Kubernetes API extensions ("custom
resources"), which control how git repositories and other sources of
configuration are applied into the cluster ("synced").
For example, you create a `GitRepository` object to mirror
configuration from a Git repository, then a `Kustomization` object to
sync that configuration.

Components:
Flux works with Kubernetes' role-based access control (RBAC), so you
can lock down what any particular sync can change. It can send
notifications to Slack and other like systems when configuration is
synced and ready, and receive webhooks to tell it when to sync.

- [Source Controller](components/source/controller.md)
- [GitRepository CRD](components/source/gitrepositories.md)
- [HelmRepository CRD](components/source/helmrepositories.md)
- [HelmChart CRD](components/source/helmcharts.md)
- [Bucket CRD](components/source/buckets.md)
- [Kustomize Controller](components/kustomize/controller.md)
- [Kustomization CRD](components/kustomize/kustomization.md)
- [Helm Controller](components/helm/controller.md)
- [HelmRelease CRD](components/helm/helmreleases.md)
- [Notification Controller](components/notification/controller.md)
- [Provider CRD](components/notification/provider.md)
- [Alert CRD](components/notification/alert.md)
- [Receiver CRD](components/notification/receiver.md)
The `flux` command-line tool is a convenient way to bootstrap the
system in a cluster, and to access the custom resources that make up
the API.

![overview](diagrams/gitops-toolkit.png)

## Get Started
## Where do I start?

!!!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` CLI and running a couple of very simple commands,
you will have a GitOps workflow setup which involves a staging and a production cluster.

## More detail on what's in Flux

Features:

- Source configuration from Git and Helm repositories, and
S3-compatible buckets (e.g., Minio)
- Kustomize and Helm support
- Event-triggered and periodic reconciliation
- Integration with Kubernetes RBAC
- Health assessment (clusters and workloads)
- Dependency management (infrastructure and workloads)
- Alerting to external systems (webhook senders)
- External events handling (webhook receivers)
- Configuration update automation (automated patching)
- Policy-driven validation (OPA, admission controllers)
- Seamless integration with Git providers (GitHub, GitLab, Bitbucket)
- Interoperability with workflow providers (GitHub Actions, Tekton, Argo)
- Interoperability with Cluster API (CAPI) providers

## Community

The Flux project is always looking for new contributors and there are a multitude of ways to get involved.
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Expand Up @@ -56,6 +56,7 @@ nav:
- From Flux v1: guides/flux-v1-migration.md
- From the Helm Operator: guides/helm-operator-migration.md
- Toolkit Components:
- Overview: components/index.md
- Source Controller:
- Overview: components/source/controller.md
- GitRepository CRD: components/source/gitrepositories.md
Expand Down