Resolve "Provide zero-configuration domain name for Auto DevOps using nip.io"
requested to merge 45560-provide-zero-configuration-domain-name-for-auto-devops-using-nip-io into master
What does this MR do?
Default AUTO_DEVOPS_DOMAIN
variable to <ingress-ip>.nip.io
.
- Added
DeploymentPlatform#find_cluster
so that EE can extend this method - Refactors
DeploymentPlatform
to usefind_cluster
- Moves
AUTO_DEVOPS_DOMAIN
toproject#auto_devops_domain_variable
, which is then used inCI::Build#persisted_environment_variables
This follows the following rules of precedence :
- cluster(s) IP based domain
- Auto DevOps domain or instance domain
- CI scoped variables (Settings > CI/CD > Variables,
AUTO_DEVOPS_DOMAIN
, with any environment scope)
NOTE : The move to deployment_variables basically means that AUTO_DEVOPS_DOMAIN
variable will now only be available for the jobs that sets a environment
in the gitlab-ci.yaml file.
Are there points in the code the reviewer needs to double check?
Security - how can we trust and verify the value of the external_ip
given to GitLab by any ingress status
Any subtle interactions with multiple clusters, if we provide zero-config for this case
Why was this MR needed?
Screenshots (if relevant)
No Kubernetes cluster setup:
With Kubernetes cluster setup:
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated - [-] API support added
-
Tests added for this feature/bug - Conforms to the code review guidelines
-
Has been reviewed by a UX Designer - [-] Has been reviewed by a Frontend maintainer
-
Has been reviewed by a Backend maintainer - [-] Has been reviewed by a Database specialist
-
-
Conforms to the merge request performance guidelines -
Conforms to the style guides - Conforms to the database guides
-
If you have multiple commits, please combine them into a few logically organized commits by squashing them -
Internationalization required/considered -
End-to-end tests pass ( package-and-qa
manual pipeline job)
To Do Backend
-
Get the ingress IP from the the only cluster - For multiple clusters
-
Get the ingress IP from the Ingress
for the*
cluster for the project; - [-] Provide ingress IP for other clusters so that we can assemble
AUTO_DEVOPS_DOMAIN
scoped to the environments
-
-
Create a domain string by using the IP + 'nip.io'. Use that default domain string for AUTO_DEVOPS_DOMAIN
if theProjectAutoDevops
does not have a domain or instance domain set by the user. -
Update the help text (see also https://gitlab.com/gitlab-org/gitlab-ce/issues/45561) - [-] Warn if we cannot use the ingress ? (e.g. ingress address is not IP)
What are the relevant issue numbers?
Closes #45560 (moved)
Edited by 🤖 GitLab Bot 🤖