summaryrefslogtreecommitdiff
path: root/app/models/project_services/kubernetes_service.rb
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 /app/models/project_services/kubernetes_service.rb
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.
Diffstat (limited to 'app/models/project_services/kubernetes_service.rb')
-rw-r--r--app/models/project_services/kubernetes_service.rb12
1 files changed, 11 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')