Provide ability to reuse project-level knative domains with SSL support
Problem Statement
As a DevOps Engineer, I want to be able to reuse a secure Knative domain across clusters so that I can [FILL IN].
Since #35591 (closed), we have an instance level domain set for Knative that supports SSL. This issue would add the ability to create reusable domains with SSL support at the project level.
Definition of Done
Prereq: Instance level checklist complete: #195961 (closed)
-
UI: Under Settings > Operations, there is a new Project-level settings panel section -
UI: Within this new section, User can add a new domain -
UI: Within this new section, User can add a new SSL cert -
BE: Project level domains and SSL certs have own controller/actions/routes -
BE: Project level domains and SSL certs reuse DB tables from Instance level -
BE: GitLab Knative application logic selects all available domains (instance level + project level)
Solution
We'll create a new settings area under Project > Settings > Operations and provide the following fields:
All fields are required. We throw a validation if the field is not filled out.
Verifying a domain
Once the domain is added, we provide a CNAME record and verification key. We also show whether the domain is verified in a badge and allow the user to refresh the verification status.
Updating a certificate
We also show the certificate, and the user has the ability to update the certificate. If they do choose to update it, then the UI remains the same, but the certificate section show the Cert and Key fields instead (same as pages).
If the user updates the fields the certificate, the Save changes button becomes enabled. The user must add the new cert + key. If it remains blank and they try to save, we throw a validation. If a new cert is not added and they navigate away, then the old cert remains.
Selecting a domain at the cluster level
On the cluster page, we will provide an option to either select the existing domain or utilize a new one. This mimics the pattern we are using for protected branches.
Deleting domain
Deleting domain follows same pattern determined for instance level domains (#35591 (closed))
Reach
TODO: we need real users behind this issue.
Impact
TDB
Confidence
TODO: we need real users behind this issue.
Effort
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.



