gimlet-io / capacitor Goto Github PK
View Code? Open in Web Editor NEWA general purpose UI for FluxCD.
License: Apache License 2.0
A general purpose UI for FluxCD.
License: Apache License 2.0
not everyone is on Flux 2.2, aka v2beta2
Ability to force a reconciliation of a kustomization/source or helm release.
flux reconsile
Cannot force reconcile due to RBAC issues
[capacitor-7d4f94bbb-s5zfv/capacitor] time="2024-02-07T12:04:36Z" level=info msg="annotating OCIRepository capacitor in flux-system namespace"
[capacitor-7d4f94bbb-s5zfv/capacitor] time="2024-02-07T12:04:36Z" level=error msg="ocirepositories.source.toolkit.fluxcd.io \"capacitor\" is forbidden: User \"system:serviceaccount:flux-system:capacitor\" cannot patch resource \"ocirepositories\" in API group \"source.toolkit.fluxcd.io\" in the namespace \"flux-system\""
v2beta1 HelmRelease is deprecated, upgrade to v2beta2
Capacitor loads in 16 seconds in a cluster with 20 HelmRelease, 49 Kustomization and 150 deployed services.
Capacitor loads in 110 seconds in a cluster with ~50 HelmRelease, ~300 Kustomization and ~500 deployed services.
Ideas:
There are places where we show GitRepositories, Kustomizations and HelmReleases in widgets.
The goal is that if the user clicks this widget, the GitRepo / Kustomization / HelmRelease is shown in the footer.
HelmReleases
https://github.com/gimlet-io/capacitor/blob/main/pkg/flux/types.go#L10Helm Releases
as the second option, right after Kustomizations
https://github.com/gimlet-io/capacitor/blob/main/web/src/Footer.js#L39
/api/services
endpoint should return services that are created by Helm
helm status $RELEASE_NAME --show-resources
command. The source code of the command shows how it is done: https://github.com/helm/helm/blob/main/pkg/action/status.go#L58.People use Kubernetes annotations to store meta data on deployed services.
Gimlet favors https://github.com/laszlocph/osca annotations, but Capacitor should have a configuration option to support any set of annotations.
There are two types of metadata according to Capacitor:
Annotations to determine the deployed version
An annotation that shows what source code version is deployed v1alpha1.opensca.dev/version.sha
v1alpha1.opensca.dev/vcs.owner
and v1alpha1.opensca.dev/vcs.name
v1alpha1.opensca.dev/version.link
Annotations that hold external links
Annotations like in https://github.com/laszlocph/osca#external-references
This is an arbitrary map of on-screen labels and annotations names in the Capacitor configuration, so Capacitor can render it.
To quickly view error ones.
We display relative dates, like a deploy happened "1 minute ago".
But this is only refreshed on page load.
We need to keep them up to date. Maybe with a timer that has a tick to keep these up to date.
Probably there is a react solution to this other then rerender the whole page.
A debugging perspective for the flux events, with quick filters on namespace, flux resource (type)
Most times you don’t care to see all the Flux resources nor pods, just latest events to have confirmation that latest commit was synced and nothing broke.
Based on event type Info or Warning we can highlight when stuff breaks.
Like flux events
. https://github.com/fluxcd/flux2/blob/main/cmd/flux/events.go
Let's add installation steps that are using a HelmRelease resource and pushed to an OCI repository.
This way installation is adding a Kustomization resource that points to the OCI repository.
Some clusters don't have helm-controller installed. Capacitor fails to start.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.