Suspend / Resume flux resource from the cluster UI
### Release notes As a Flux user, have you ever had to stop automatic reconciliation or drift remediation quickly? Or you might wanted to trigger a `HelmRelease` to fix manually removed resource? These action are best achieved using the suspend/resume functionality of FluxCD. Until now, you best option was to use the CLI, and that required a context switch and often several command to ensure that you suspend the right resource. GitLab now offers Flux suspend and resume functionality through its environments UI. ![Screen_Recording_2024-09-19_at_11.46.49](/uploads/46a79d745e3bf01266c9c2bebdc19f78/Screen_Recording_2024-09-19_at_11.46.49.mov) ### Problem to solve As an application operator, I want to suspend/resume a reconciliation of Flux resources from the GitLab UI. ### Proposal Add a new action to the Flux details view to toggle `spec.suspend` value of the Flux resource. ### Intended users * [Allison (Application Ops)](https://about.gitlab.com/handbook/product/personas/#allison-application-ops) ### Feature Usage Metrics - MAU of button clicks ### Design proposal | Resource is suspended | Resource is not suspended | |-----------------------|---------------------------| | ![Screenshot_2024-08-12_at_22.43.29](/uploads/21452c0c6fa213d0bf0dbb4620794cb4/Screenshot_2024-08-12_at_22.43.29.png) | ![Screenshot_2024-08-12_at_22.43.03](/uploads/22376978246331d635110458cfab6686/Screenshot_2024-08-12_at_22.43.03.png) | ### Impletetion guide 1. Add a "play/stop" button into the details drawer, near the status field. 2. Create a client Graphql mutation using PATCH request to the `/-/k8s-proxy/apis/kustomize.toolkit.fluxcd.io/v1/namespaces/<namespace>/kustomizations/<name>` or `/-/k8s-proxy/apis/helm.toolkit.fluxcd.io/v2beta1/namespaces/<namespace>/helmreleases/<name>`. 3. Include body: ```javascript { "op": "replace", "path": "/spec/suspend", "value": false || true } ``` 4. Set `"Content-Type": "application/json-patch+json"` header. ### Does this feature require an audit event? No _This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc._ <!--triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION--> <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> *This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.* <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
issue