Managed Apps v2 need to report status after CI completion
Problem to solve
Once Cluster Application CI job finishes, we need to report back to GitLab to communicate the status of each application.
- Provide the UI with current application status (not installed, installed, failed, upgraded, etc), as envisioned in #196062 (comment 281754624)
- Allow GitLab to decide to use Elastic log instead of Kubernetes API pod log as we already have for V1. See #35670 (comment 282493060)
- All the current UI Prometheus functionality depends on it.
- For JupyterHub, users currently need to currently manually setup their OAuth and add a lot of config environment variables so the chart associate the users properly.
Create a CI artifact report for CI/CD pipeline to upload. Done, see
- Enable this for all applications:
- #202002 (comment 389504099)
Maybe a trusted post-install CI job with an API token can communicate results back to GitLab? Or a job Artifact
Add support via GitLab API to manage GitLab Managed Apps. Then once the CI completes we update it through API requests.
Treat configuration changes as deployments (we will probably be using
environment to separate clusters anyway)
Maybe we could even extend deploy boards to show chart statuses instead of pod statuses for cluster management projects (e.g.
ingress updated successfully but
prometheus had problems)?
Furthermore, we could could also run this discovery on a schedule to detect any discrepancy between the expected and actual state of the cluster.
Permissions and Security
Availability & Testing
What does success look like, and how can we measure that?
After CI job ran, each application gets updated in the database with whatever happened during the job run.