summaryrefslogtreecommitdiff
path: root/app/models/project_services/kubernetes_service.rb
diff options
context:
space:
mode:
authorMayra Cabrera <mcabrera@gitlab.com>2018-01-04 09:33:51 +0000
committerKamil TrzciƄski <ayufan@ayufan.eu>2018-01-04 09:33:51 +0000
commite028d795c484dcd1030b4f6bba8f53d4e677f0b3 (patch)
tree4471dd62763aa97e21d12a2ef75fcec612ca6785 /app/models/project_services/kubernetes_service.rb
parent0e7e9e32b30bd3c310a769eaef91843b609697df (diff)
downloadgitlab-ce-e028d795c484dcd1030b4f6bba8f53d4e677f0b3.tar.gz
41054-Disallow creation of new Kubernetes integrations
Diffstat (limited to 'app/models/project_services/kubernetes_service.rb')
-rw-r--r--app/models/project_services/kubernetes_service.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/models/project_services/kubernetes_service.rb b/app/models/project_services/kubernetes_service.rb
index b82567ce2b3..c72b01b64af 100644
--- a/app/models/project_services/kubernetes_service.rb
+++ b/app/models/project_services/kubernetes_service.rb
@@ -31,6 +31,7 @@ class KubernetesService < DeploymentService
before_validation :enforce_namespace_to_lower_case
+ validate :deprecation_validation, unless: :template?
validates :namespace,
allow_blank: true,
length: 1..63,
@@ -145,6 +146,17 @@ class KubernetesService < DeploymentService
@kubeclient ||= build_kubeclient!
end
+ def deprecated?
+ !active
+ end
+
+ def deprecation_message
+ content = <<-MESSAGE.strip_heredoc
+ Kubernetes service integration has been deprecated. #{deprecated_message_content} your clusters using the new <a href=\'#{Gitlab::Routing.url_helpers.project_clusters_path(project)}'/>Clusters</a> page
+ MESSAGE
+ content.html_safe
+ end
+
TEMPLATE_PLACEHOLDER = 'Kubernetes namespace'.freeze
private
@@ -226,4 +238,20 @@ class KubernetesService < DeploymentService
def enforce_namespace_to_lower_case
self.namespace = self.namespace&.downcase
end
+
+ def deprecation_validation
+ return if active_changed?(from: true, to: false)
+
+ if deprecated?
+ errors[:base] << deprecation_message
+ end
+ end
+
+ def deprecated_message_content
+ if active?
+ "Your cluster information on this page is still editable, but you are advised to disable and reconfigure"
+ else
+ "Fields on this page are now uneditable, you can configure"
+ end
+ end
end