Instance / group / project level serverless domains with SSL
Description
We are working towards #30151 (closed) and #26202 (closed).
We decided to split these issues into a few smaller ones.
This issue is about being able to define a serverless domain on the instance / group / project level.
- As an instance administrator, a group maintainer and a project user, I want to define a instance-wide serverless domain that will be available for everyone to simplify their Knative cluster creation / configuration
- I want to be able to go through a wizard that will tell me how to configure this domain.
- I want to be able to upload my SSL cert / key or use Let's Encrypt for this
- I want to be able to add more than one domain.
These forms should be hidden behind a feature flag, until we resolve all the backstage works that needs to be done in GitLab Pages to support this.
MVCs
- just a single domain + custom certs. We would like to support this feature at the instance and project levels.
- wizard about configuration
- Let's Encrypt support
- more than 1 domain
First Iteration Proposal
Follow the same pattern as base domain:
- Add setting to admin area and allow user to set a domain. For example:
*.serverless.gitlab.io
- Auto populate the Knative field on the cluster detail view (instance, group, or project level). For example:
root-example-project.serverless.gitlab.io
- Allow the user to change the domain prior to installing Knative.
There is no need for an additional settings or checkbox to toggle between the default or custom domain.
Tasks
Frontend
-
UI for creating domains, similar to existing Pages domains, includes SSL certificate and key, but can be created at instance, group, and project levels
Backend
-
Leverage existing data model used by Pages for domains, and store domain with provided SSL certificate and key in database for Pages to use
Edited by Matt Kasa