gimlet-io / capacitor

A general purpose UI for FluxCD.
Apache License 2.0
641 stars 21 forks source link

feat: add dependency graphs #62

Open MagnusRef opened 8 months ago

MagnusRef commented 8 months ago

Adding the possibility to track dependencies of a kustomization as a dependency graph would be nice. Something like a tree of the different kustomizations with each of their statuses.

Sorry with this is a duplicate or this is out of scope of this project.

laszlocph commented 8 months ago

Something like the flux tree command?

That would be a great addition, yes.

Not sure yet where would this popup and how to trigger on the gui.

➜ flux tree kustomization builtin-infra
Kustomization/flux-system/builtin-infra
├── CustomResourceDefinition/alerts.notification.toolkit.fluxcd.io
├── CustomResourceDefinition/buckets.source.toolkit.fluxcd.io
├── CustomResourceDefinition/gitrepositories.source.toolkit.fluxcd.io
├── CustomResourceDefinition/helmcharts.source.toolkit.fluxcd.io
├── CustomResourceDefinition/helmreleases.helm.toolkit.fluxcd.io
├── CustomResourceDefinition/helmrepositories.source.toolkit.fluxcd.io
├── CustomResourceDefinition/kustomizations.kustomize.toolkit.fluxcd.io
├── CustomResourceDefinition/ocirepositories.source.toolkit.fluxcd.io
├── CustomResourceDefinition/providers.notification.toolkit.fluxcd.io
├── CustomResourceDefinition/receivers.notification.toolkit.fluxcd.io
├── Namespace/flux-system
├── Namespace/infrastructure
├── ResourceQuota/flux-system/critical-pods-flux-system
├── ServiceAccount/flux-system/helm-controller
├── ServiceAccount/flux-system/kustomize-controller
├── ServiceAccount/flux-system/notification-controller
├── ServiceAccount/flux-system/source-controller
├── ServiceAccount/infrastructure/gimlet-agent
├── ClusterRole/crd-controller-flux-system
├── ClusterRole/flux-edit-flux-system
├── ClusterRole/flux-view-flux-system
├── ClusterRole/gimlet-agent
├── ClusterRoleBinding/cluster-reconciler-flux-system
├── ClusterRoleBinding/crd-controller-flux-system
├── ClusterRoleBinding/gimlet-agent
├── Secret/flux-system/deploy-key-laszlocph-gitops-optimal-snow-infra
├── Service/flux-system/notification-controller
├── Service/flux-system/source-controller
├── Service/flux-system/webhook-receiver
├── Service/infrastructure/registry
├── Deployment/flux-system/helm-controller
├── Deployment/flux-system/kustomize-controller
├── Deployment/flux-system/notification-controller
├── Deployment/flux-system/source-controller
├── Deployment/infrastructure/registry
├── HelmRelease/infrastructure/gimlet-agent
│   ├── ConfigMap/infrastructure/gimlet-agent
│   ├── Service/infrastructure/gimlet-agent
│   └── Deployment/infrastructure/gimlet-agent
├── HelmRelease/infrastructure/image-builder
│   ├── Service/infrastructure/image-builder
│   └── Deployment/infrastructure/image-builder
├── HelmRelease/infrastructure/sealed-secrets
│   ├── ServiceAccount/infrastructure/sealed-secrets-controller
│   ├── ClusterRole/secrets-unsealer
│   ├── ClusterRoleBinding/sealed-secrets-controller
│   ├── Role/infrastructure/sealed-secrets-controller-key-admin
│   ├── Role/infrastructure/sealed-secrets-controller-service-proxier
│   ├── RoleBinding/infrastructure/sealed-secrets-controller-key-admin
│   ├── RoleBinding/infrastructure/sealed-secrets-controller-service-proxier
│   ├── Service/infrastructure/sealed-secrets-controller
│   └── Deployment/infrastructure/sealed-secrets-controller
├── Kustomization/flux-system/builtin-infra-dependencies
│   └── Namespace/infrastructure
├── NetworkPolicy/flux-system/allow-egress
├── NetworkPolicy/flux-system/allow-scraping
├── NetworkPolicy/flux-system/allow-webhooks
├── GitRepository/flux-system/builtin-infra
├── HelmRepository/infrastructure/onechart
└── HelmRepository/infrastructure/sealed-secrets
MagnusRef commented 8 months ago

@laszlocph Yes that would indeed be a great addition, however what I meant to write was adding dependency graphs the spec.dependsOn in kustomization objects.

Some inspiration: https://fluxcd.io/img/uis/wego-deps.png

Would be cool to see both proposed features on the roadmap at some point.

ksemele commented 8 months ago

I think many Weave features need to be reimplemented here...

yashwanth-l commented 2 months ago

With the project getting traction and adoption, this feature, from weave-gitops, adds a huge benefit. Any roadmap you could provide for this planned feature?

@MagnusRef's proposal for spec.dependsOn along with basic would be useful in the UI