Introducing Capacitor, a general purpose UI for Flux

Capacitor is a GUI that acts as a dashboard for Flux where you can get quick overview about your Flux resources and application deployments to debug issues quickly.

Flux has been one of the most popular gitops tools available for years. Yet, it only existed as a CLI tool until now. Capacitor is a GUI that acts as a dashboard for Flux where you can get quick overview about your Flux resources and application deployments to debug issues quickly.

Capacitor, a general purpose UI for Flux

A word from Laszlo, the maintainer of Capacitor

“Hello Flux blog,

Long time Flux user here, although I haven’t been very active in the community so far. The maintainers have been doing an amazing job with Flux. We’re standing on the shoulders of giants 🙌.

There is an odd fact though: there was no de facto Flux GUI until now. How come? I thought we could make one, hence we made Capacitor.

Why? Because it is not easy to observe Kustomization and HelmRelease states in the cluster. Even with tools that show Custom Resources, it is not obvious to make the connection between application deployments and Flux resources.

The goal with Capacitor is to create the right context for developers to debug their deployments. Whether the error is related to Flux or not.

We hope you’re going to find the tool useful.”

Use cases

Commandless Flux observation

The GUI substitutes for interacting with Flux resources and runtime via flux CLI commands.

Flux resources in the footer

Connecting application deployments with Flux resources

Application deployments show which Flux Kustomization or HelmRelease deployed them.

With a click of a button you can jump to the Flux resource and check the reconsiliation state.

Clicking references

Application deployment debugging

Application deployments have controls to perform routine tasks, like checking logs, describing deployments, pods, configmaps.

With these controls Capacitor can become your daily driver for your Kubernetes dashboarding needs.

Application deployment controls

Application logs

What’s supported?

Flux resources:

  • Kustomization
  • HelmRelease
  • GitRepository
  • OCIRepositories
  • Buckets

Kubernetes resources:

  • Deployment
  • Pod
  • Service
  • Ingress
  • Configmap
  • Secret

Who made Capacitor?

Capacitor is an open-source project backed by Gimlet, a team that creates a Flux-based IDP.

Gimlet is our opinionated project, Capacitor is our un-opinionated take.

How to get started?

Capacitor doesn’t come with Flux natively, you’ll need to set it up separately.

Deploy the latest Capacitor release in the flux-system namespace by adding the following manifests to your Flux repository:

---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: OCIRepository
metadata:
  name: capacitor
  namespace: flux-system
spec:
  interval: 12h
  url: oci://ghcr.io/gimlet-io/capacitor-manifests
  ref:
    semver: ">=0.1.0"
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: capacitor
  namespace: flux-system
spec:
  targetNamespace: flux-system
  interval: 1h
  retryInterval: 2m
  timeout: 5m
  wait: true
  prune: true
  path: "./"
  sourceRef:
    kind: OCIRepository
    name: capacitor

Note that Flux will check for Capacitor releases every 12 hours and will automatically deploy the new version if it is available.

Access Capacitor UI with port-forwarding:

kubectl -n flux-system port-forward svc/capacitor 9000:9000

Where is the project hosted?

It is hosted on Github: gimlet-io/capacitor