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
- 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.
Proposal
-
Create a CI artifact report for CI/CD pipeline to upload. Done, see ParseClusterApplicationsArtifactService
- Enable this for all applications:
- #202002 (comment 389504099)
-
Prometheus -
Cilium -
ingress -
cert_manager -
crossplane -
runner -
jupyter -
knative -
vault -
elastic_stack -
fluentd
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.