Flux Status synchronizes events from Flux with the source commit.
Flux is a tool to implement a GitOps deployment flow in Kubernetes, but it lacks a UI to give feedback regarding the status of the deployment. It is possible to read the logs from Flux but it is not user friendly for new users. There are solutions such as fluxcloud that exports the deployment events to communication tools but they can easily overflow as the amount of flux instances increases.
Instead Flux Status aims to give deployment feedback at the source of the deployment, the git repository. Flux Status updates the commit status with the result of the synchronization loop. Currently there are two events that can be sent to the commit status. The result of Flux applying the manifests to the cluster and the state of the workloads after they have been updated.
The simplest way to run Flux Status is as a sidecar in the Flux Pod, as it simplifies the life cycle management as the container will be created with Flux.
Given that you are using the official Flux Helm chart use the following values. An additional token argument specific for your git provider is needed for the sidecar, for more information read about [Notifiers](## Notifiers).
git:
url: <git-url>
additionalArgs:
- --connect=ws://localhost:3000
extraContainers:
- name: "flux-status"
image: "quay.io/xenitab/flux-status:v0.1.0-rc2"
imagePullPolicy: "IfNotPresent"
args:
- --git-url=<git-url>
Flux Status uses different notifier depending on the git provider used, and they require different types configuration parameters depending on the notifier used. The main parameter needed is the token used to authenticate with the different APIs.
The Azure DevOps notifier requires a personal access token to authenticate with the Azure DevOps API. The toke should be passed with the --azdo-pat
flag.
The GitHub notifier requires a personal access token to authenticate with the API. The token should be passed with the --github-token
flag. Currently the user committing the status will be the user the token belongs to. There is no way of overriding this currently, but in the future it might be possible to use an OAuth app instead.
The GitLab notifier requires an access token to authenticate with the GitLab API. The token should be passed with the --gitlab-token
flag.
TBD
Flux Status also has a CLI which makes the process of getting the status of a commit set by Flux Status easier. You can download the CLI binary from the Release Page. The configuration is similar to the Flux Status daemon. All you need is the instance name, git URL, commit id, and token to get the status.
$ flux-status-cli --instance dev --git-url <git-url> --commit-id <commit-id> --azdo-pat <pat>
{"name":"flux-status/dev/workload","state":"succeeded"}
This project is licensed under the MIT License - see the LICENSE file for details.