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.

Intended users

Further details

Use cases

  1. Provide the UI with current application status (not installed, installed, failed, upgraded, etc), as envisioned in #196062 (comment 281754624)
  2. Allow GitLab to decide to use Elastic log instead of Kubernetes API pod log as we already have for V1. See #35670 (comment 282493060)
  3. All the current UI Prometheus functionality depends on it.
  4. 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.

Proposal

  • Create a CI artifact report for CI/CD pipeline to upload. Done, see ParseClusterApplicationsArtifactService
  • Enable this for all applications:
Previous proposals

Option 1

Maybe a trusted post-install CI job with an API token can communicate results back to GitLab? Or a job Artifact

Option 2

Add support via GitLab API to manage GitLab Managed Apps. Then once the CI completes we update it through API requests.

Option 3

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

Documentation

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.

Links / references

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.

Edited by 🤖 GitLab Bot 🤖