8000 GitHub - gimlet-io/capacitor: A general purpose UI for FluxCD.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

gimlet-io/capacitor

Repository files navigation

Screenshot 2025-07-05 at 8 52 51

A General Purpose UI for FluxCD.

Capacitor Next is a client-side Kubernetes client that uses your kubeconfig to access your clusters.

  • Like k9s, but in the browser.
  • Like the ArgoCD UI, just lighter.

With

  • Kubernetes resource discovery
  • Keyboard navigation
  • Built-in and custom views
  • Helm history
  • Helm values and manifest diffing
  • Flux resource tree
  • Flux Kustomization diffing between cluster and git state

Resource tree

Screenshot 2025-07-05 at 8 40 17

Flux Kustomization diffing between cluster and git state

Screenshot 2025-07-05 at 8 46 38

Quickstart

Download

curl -L "https://github.com/gimlet-io/capacitor/releases/download/capacitor-next/next-$(uname)-$(uname -m)" -o next
chmod +x next

Then run

$ ./next --port 3333

2025/07/05 08:29:30 Creating Kubernetes client...
2025/07/05 08:29:30 Using kubeconfig context: k3d-test
2025/07/05 08:29:30 Cluster: k3d-test, Namespace: kube-system, User: admin@k3d-test
2025/07/05 08:29:30 Using embedded certificate authority data from kubeconfig
2025/07/05 08:29:30 Default namespace from context: kube-system
...

Why

FluxCD is an amazing backend for all things gitops.

It is a shame that ArgoCD gained so much traction mostly because developers appreciate the UI. Rolling out a read-only ArgoCD UI made Argo the de-facto kubernetes dashboard, where people look at logs and various kubernetes resources.

Capacitor's goal is to level the field: providing a UI option for Flux users that matches or exceeds the level of ArgoCD.

Capacitor Next - currently under development

Capacitor Next is a rewrite and rethink of the original Capacitor release.

The development is happening on the main branch and releases are pushed frequently under this Github release.

< E355 td>respects RBAC
Capacitor Next Capacitor
client-side server-side
multi-cluster single cluster
Supports all k8s resources and versions
Kustomization Resource Tree
Helm values and manifest diffing
Kustomization diffing between cluster and git

Star History

Star History Chart

Please push ✨

Capacitor - the original release

💡 Tip: Capacitor was the first attempt to write a ui for Capacitor. It was running in the cluster and users accessed it on a URL. Not under development anymore. Scroll to the top and use Capacitor Next.

Capacitor - Services

Installation - Deprecated

💡 Tip: Capacitor requires Flux v2.0.0.

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

(Optional) Verify OCIRepository with Cosign

This feature requires Flux v2.2.0.

---
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"
+  verify:
+    provider: cosign
+    matchOIDCIdentity:
+      - issuer: "https://token.actions.githubusercontent.com"
+        subject: "^https://github.com/gimlet-io/capacitor.*$" 
---
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

Kubernetes manifests - Deprecated

kubectl apply -f https://raw.githubusercontent.com/gimlet-io/capacitor/refs/tags/capacitor-v0.4.8/deploy/k8s/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/gimlet-io/capacitor/refs/tags/capacitor-v0.4.8/deploy/k8s/manifest.yaml

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

For adding an Ingress, a Kubernetes NetworkPolicy is required. An example would be:

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: capacitor-ingress
  namespace: flux-system
spec:
  policyTypes:
    - Ingress
  ingress:
    - from:
      - namespaceSelector: {}
  podSelector:
    matchLabels:
      app.kubernetes.io/instance: capacitor
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: capacitor-ingress
  namespace: flux-system
spec:
  rules:
    - host: gitops.example.com
      http:
        paths:
          - pathType: Prefix
            path: /
            backend:
              service:
                name: capacitor
                port:
                  number: 9000

Helm - Deprecated

kubectl apply -f https://raw.githubusercontent.com/gimlet-io/capacitor/main/deploy/k8s/rbac.yaml

helm repo add onechart https://chart.onechart.dev

helm upgrade -i capacitor -n flux-system onechart/onechart -f https://raw.githubusercontent.com/gimlet-io/capacitor/main/deploy/helm/onechart-helm-values.yaml

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

Built in public - Deprecated

The vision: https://www.youtube.com/watch?v=LaDRRDvsRAs

Capacitor is built currently by Gimlet.io founder Laszlo Fogas on live streams:

Philosophy - Deprecated

Capacitor wants to be more than a tool that displays Flux's CRDs in tables. Capacitor wants to provide contextualized information for developers to best operate their applications.

Screenshots - Deprecated

Kustomizations: Kustomizations

Error Handling: Capacitor - Error handling

HelmReleases: Capacitor - Helm Releases

Service Logs: Capacitor - Service logs

About

A general purpose UI for FluxCD.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors 14

0