summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMircea Danila Dumitrescu <mircea@statustoday.com>2017-10-02 20:32:36 +0000
committerMircea Danila Dumitrescu <mircea@statustoday.com>2017-10-04 12:43:59 +0100
commita1b3cd40647e8f7768b6db0bc64179e60f5d5937 (patch)
treea78afdc26f237ec35b77828217b12b13a64a4c12
parent4d5ea927d6e3a91c1b89f8978dbd5fb67e723452 (diff)
downloadgitlab-ce-a1b3cd40647e8f7768b6db0bc64179e60f5d5937.tar.gz
namespace should be lowercased in kubernetes. This is also true for the scenario where the namespace is generated from the project group-name.
-rw-r--r--app/models/project_services/kubernetes_service.rb12
-rw-r--r--changelogs/unreleased/mr-14642.yml6
2 files changed, 17 insertions, 1 deletions
diff --git a/app/models/project_services/kubernetes_service.rb b/app/models/project_services/kubernetes_service.rb
index 8ba07173c74..45a544e3674 100644
--- a/app/models/project_services/kubernetes_service.rb
+++ b/app/models/project_services/kubernetes_service.rb
@@ -153,7 +153,17 @@ class KubernetesService < DeploymentService
end
def default_namespace
- "#{project.path}-#{project.id}" if project.present?
+ return unless project
+
+ # 1. lowercase
+ # 2. replace non kubernetes characters with dash
+ # 3. trim dash from the beginning and end
+
+ slugified = "#{project.path}-#{project.id}"
+ slugified.downcase!
+ slugified.gsub!(/[^a-z0-9]/, '-')
+ slugified.gsub!(/^-+|-+$/, '')
+ slugified
end
def build_kubeclient!(api_path: 'api', api_version: 'v1')
diff --git a/changelogs/unreleased/mr-14642.yml b/changelogs/unreleased/mr-14642.yml
new file mode 100644
index 00000000000..048cc79e323
--- /dev/null
+++ b/changelogs/unreleased/mr-14642.yml
@@ -0,0 +1,6 @@
+---
+title: Auto Devops kubernetes default namespace is now correctly built out of gitlab
+ project group-name
+merge_request: 14642
+author: Mircea Danila Dumitrescu
+type: fixed