summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2017-08-22 16:38:07 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2017-08-22 16:38:07 +0000
commit080a359e0cad3f2a08fc0050aef4ef038bd645dc (patch)
tree265c8dab023775c0b6874f3198bc780e921c892f
parentd3005c98fabe47fe0feecc299cc05cf7642457a3 (diff)
parent38cb32933b1ba1a6179adf2e37860bac018848ab (diff)
downloadgitlab-ce-080a359e0cad3f2a08fc0050aef4ef038bd645dc.tar.gz
Merge branch 'fix/sm/34762-bad-validation-message' into 'master'
Enforce namespace of Kubernetes to lowercase Closes #34762 See merge request !13732
-rw-r--r--app/models/project_services/kubernetes_service.rb6
-rw-r--r--lib/gitlab/regex.rb3
-rw-r--r--spec/models/project_services/kubernetes_service_spec.rb3
3 files changed, 10 insertions, 2 deletions
diff --git a/app/models/project_services/kubernetes_service.rb b/app/models/project_services/kubernetes_service.rb
index dee99bbb859..8ba07173c74 100644
--- a/app/models/project_services/kubernetes_service.rb
+++ b/app/models/project_services/kubernetes_service.rb
@@ -24,6 +24,8 @@ class KubernetesService < DeploymentService
validates :token
end
+ before_validation :enforce_namespace_to_lower_case
+
validates :namespace,
allow_blank: true,
length: 1..63,
@@ -207,4 +209,8 @@ class KubernetesService < DeploymentService
max_session_time: current_application_settings.terminal_max_session_time
}
end
+
+ def enforce_namespace_to_lower_case
+ self.namespace = self.namespace&.downcase
+ end
end
diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb
index 1adc5ec952a..58f6245579a 100644
--- a/lib/gitlab/regex.rb
+++ b/lib/gitlab/regex.rb
@@ -53,7 +53,8 @@ module Gitlab
end
def kubernetes_namespace_regex_message
- "can contain only letters, digits or '-', and cannot start or end with '-'"
+ "can contain only lowercase letters, digits, and '-'. " \
+ "Must start with a letter, and cannot end with '-'"
end
def environment_slug_regex
diff --git a/spec/models/project_services/kubernetes_service_spec.rb b/spec/models/project_services/kubernetes_service_spec.rb
index 55b96a0c12e..b1743cd608e 100644
--- a/spec/models/project_services/kubernetes_service_spec.rb
+++ b/spec/models/project_services/kubernetes_service_spec.rb
@@ -38,7 +38,8 @@ describe KubernetesService, :use_clean_rails_memory_store_caching do
'a' * 63 => true,
'a' * 64 => false,
'a.b' => false,
- 'a*b' => false
+ 'a*b' => false,
+ 'FOO' => true
}.each do |namespace, validity|
it "validates #{namespace} as #{validity ? 'valid' : 'invalid'}" do
subject.namespace = namespace