Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.
Find a file
Sunny 3dbe870455 monitoring: Configure KSM & cluster dashboard
Update kube-prometheus-stack helm release values to configure
kube-state-metrics and use kube-state-metrics to collect gotk resource
state metrics.

- Configure kube-state-metrics to run in custom resource state only
  mode. In this mode, it'll only watch custom resources. Also, pass
  empty collectors as extra args to prevent passing all the core
  resources to watch as an argument.
- Running kube-state-metrics in custom resource state only mode makes
  the default grafana dashboards of no use. Disable the default
  dashboards.
- Add kube-state-metrics configuration to provide RBAC permissions to it
  to allow listing and watching flux CRDs.
- Also, configure custom resource state for each of the flux custom
  resources using Info type metrics called `gotk_resource_info`. KSM
  issues a warning if an Info type object doesn't have `_info` suffix.
  These metrics have the value 1 always. This works well for the CRD
  state metrics as a zero value would mean that the resource doesn't
  exist, in which case, the resource is deleted.
- Update the cluster dashboard panels to use `gotk_resource_info` in the
  queries.
  - Only the following panels have been updated
    - Cluster Reconcilers
    - Failing Reconcilers
    - Cluster reconciliation readiness
    - Kubernetes Manifests Sources
    - Failing Sources
    - Source acquisition readiness
  - The panels have been updated such that it's work with static
  resources which don't have any status as well. By default, it assumes
  such static resources to be in a Ready state. Resources are seen as
  failed only when the ready value is false.
  - The queries have been updated to Instant type in order to show the
  current data, instead of the result of past 15 minutes. This shows
  more accurate resource data as the resource metrics change.
  - The Stat visualizers have been updated to have zero as the default
  value when there's no data. This is to prevent showing no data when
  there's no object. This was motivated by the behavior of the previous
  configuration which depended on stale metrics from controllers and
  deleted conditions to show zero value when objects get deleted. With
  the fixes in the controller metrics that removes stale metrics, this
  will no longer work. In order to show a zero value for these stats, a
  default is set.
  - The `$namespace` variable has been updated to refer to
  `exported_namespace` from `gotk_resource_info`.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-08-07 19:18:32 +05:30
.github build(deps): bump the ci group with 2 updates 2023-07-17 00:37:57 +00:00
action action: support openssl and sha256sum 2023-07-11 11:10:08 +02:00
cmd/flux Take into account the server-side inventory for local diff 2023-07-11 10:19:12 +02:00
docs/release docs: link to releases spec from website 2023-07-04 15:13:06 +03:00
install Update install/README.md 2023-01-11 13:13:20 +01:00
internal Take into account the server-side inventory for local diff 2023-07-11 10:19:12 +02:00
manifests monitoring: Configure KSM & cluster dashboard 2023-08-07 19:18:32 +05:30
pkg Annotate errors from go-git-providers 2023-07-03 13:55:53 +02:00
rfcs RFC-0004: add section about proxy 2023-06-26 19:07:18 +05:30
tests Update dependencies 2023-07-11 14:14:27 +03:00
.gitignore fix makefile envtest setup and usage 2022-01-13 16:09:11 +05:30
.goreleaser.yml Use equivalent and shorter way to generate shell completions 2023-06-15 01:18:18 +09:00
CODE_OF_CONDUCT.md Add coc, dco and maintainers docs 2020-04-30 17:25:22 +03:00
CONTRIBUTING.md Set minimum supported version to Kubernetes 1.24.0 2023-06-28 17:36:04 +03:00
DCO Add coc, dco and maintainers docs 2020-04-30 17:25:22 +03:00
Dockerfile Bump kubectl to v1.27.3 2023-07-04 17:37:10 +03:00
go.mod Update dependencies 2023-07-11 14:14:27 +03:00
go.sum Update dependencies 2023-07-11 14:14:27 +03:00
LICENSE Initial commit 2020-04-24 12:38:22 +03:00
MAINTAINERS Move MAINTAINERS to f/community 2022-05-18 17:28:49 +02:00
Makefile Update Go to 1.20 2023-03-09 09:26:51 +01:00
netlify.toml explain where docs are 2021-04-27 15:16:30 +02:00
README.md Cleanup internal docs 2023-07-03 16:41:06 +03:00

Flux version 2

release CII Best Practices OpenSSF Scorecard FOSSA Status Artifact HUB

Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories and OCI artifacts), and automating updates to configuration when there is new code to deploy.

Flux version 2 ("v2") is built from the ground up to use Kubernetes' API extension system, and to integrate with Prometheus and other core 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, a set of composable APIs and specialized tools for building Continuous Delivery on top of Kubernetes.

Flux is a Cloud Native Computing Foundation (CNCF) project, used in production by various organisations and cloud providers.

Quickstart and documentation

To get started check out this guide on how to bootstrap Flux on Kubernetes and deploy a sample application in a GitOps manner.

For more comprehensive documentation, see the following guides:

If you need help, please refer to our Support page.

GitOps Toolkit

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.

overview

You can use the toolkit to extend Flux, or to build your own systems for continuous delivery -- see the developer guides.

Components

Community

Need help or want to contribute? Please see the links below. The Flux project is always looking for new contributors and there are a multitude of ways to get involved.

Events

Check out our events calendar, both with upcoming talks, events and meetings you can attend. Or view the resources section with past events videos you can watch.

We look forward to seeing you with us!