PoC: GitLab Pages without DNS wildcard - Pages implementation
Summary
To eliminate the need for wildcard DNS, the namespace can be included in the URL path instead of the domain.
For example, https://name.pages.example.io/index.html
would become https://pages.example.io/name/index.html
.
We could utilize the existing gitlab_pages["namespace_in_path"]
parameter and implement it at the instance level.
- A detailed discussion can be found here: gitlab#17584 (closed)
- Past tech eval issue: gitlab#29841 (closed)
Conclusion:
Following a discussion on the configuration approach, we finalised the following:
When a user enables namespace in the path, Pages will only serve content via URLs that include the namespace in the path. URLs with the namespace in the host will not be served from Pages adhering to the requirement of without wildcard DNS certificates. Transitioning existing Pages to use namespace in the path will be a breaking change, as the URL structure will change. Consequently, bookmarks or hardcoded URLs will no longer function. Pages will only support one type of URL configuration at a time, either namespace in the host or namespace in the path, based on the user's setup at instance level.