Skip to content
Snippets Groups Projects

Incorporates Kubernetes Namespace into Cluster's flow

Merged Thong Kuah requested to merge 51716-create-kube-namespace into master
Compare and
37 files
+ 1173
276
Compare changes
  • Side-by-side
  • Inline
Files
37
@@ -7,6 +7,8 @@ class Kubernetes < ActiveRecord::Base
include ReactiveCaching
include EnumWithNil
RESERVED_NAMESPACES = %w(gitlab-managed-apps).freeze
self.table_name = 'cluster_platforms_kubernetes'
self.reactive_cache_key = ->(kubernetes) { [kubernetes.class.model_name.singular, kubernetes.id] }
@@ -32,6 +34,8 @@ class Kubernetes < ActiveRecord::Base
message: Gitlab::Regex.kubernetes_namespace_regex_message
}
validates :namespace, exclusion: { in: RESERVED_NAMESPACES }
# We expect to be `active?` only when enabled and cluster is created (the api_url is assigned)
validates :api_url, url: true, presence: true
validates :token, presence: true
@@ -45,6 +49,7 @@ class Kubernetes < ActiveRecord::Base
delegate :project, to: :cluster, allow_nil: true
delegate :enabled?, to: :cluster, allow_nil: true
delegate :managed?, to: :cluster, allow_nil: true
delegate :kubernetes_namespace, to: :cluster
alias_method :active?, :enabled?
@@ -116,6 +121,15 @@ def kubeconfig
end
def default_namespace
kubernetes_namespace&.namespace.presence || fallback_default_namespace
end
# DEPRECATED
#
# From 11.4 Clusters::KubernetesNamespace was introduced, this one allows to have
# multiple namespaces per project. This method will be removed after migration
# has been completed
def fallback_default_namespace
return unless project
slug = "#{project.path}-#{project.id}".downcase
Loading