Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-09-19 04:45:44 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-09-19 04:45:44 +0300
commit85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch)
tree9160f299afd8c80c038f08e1545be119f5e3f1e1 /lib/gitlab/kubernetes
parent15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff)
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'lib/gitlab/kubernetes')
-rw-r--r--lib/gitlab/kubernetes/cilium_network_policy.rb42
-rw-r--r--lib/gitlab/kubernetes/kube_client.rb2
-rw-r--r--lib/gitlab/kubernetes/network_policy.rb25
-rw-r--r--lib/gitlab/kubernetes/network_policy_common.rb15
4 files changed, 54 insertions, 30 deletions
diff --git a/lib/gitlab/kubernetes/cilium_network_policy.rb b/lib/gitlab/kubernetes/cilium_network_policy.rb
index 55afd2b586e..9043932bbe5 100644
--- a/lib/gitlab/kubernetes/cilium_network_policy.rb
+++ b/lib/gitlab/kubernetes/cilium_network_policy.rb
@@ -9,8 +9,12 @@ module Gitlab
API_VERSION = "cilium.io/v2"
KIND = 'CiliumNetworkPolicy'
- def initialize(name:, namespace:, selector:, ingress:, resource_version:, labels: nil, creation_timestamp: nil, egress: nil)
+ # We are modeling existing kubernetes resource and don't have
+ # control over amount of parameters.
+ # rubocop:disable Metrics/ParameterLists
+ def initialize(name:, namespace:, selector:, ingress:, resource_version: nil, description: nil, labels: nil, creation_timestamp: nil, egress: nil)
@name = name
+ @description = description
@namespace = namespace
@labels = labels
@creation_timestamp = creation_timestamp
@@ -19,15 +23,7 @@ module Gitlab
@ingress = ingress
@egress = egress
end
-
- def generate
- ::Kubeclient::Resource.new.tap do |resource|
- resource.kind = KIND
- resource.apiVersion = API_VERSION
- resource.metadata = metadata
- resource.spec = spec
- end
- end
+ # rubocop:enable Metrics/ParameterLists
def self.from_yaml(manifest)
return unless manifest
@@ -39,6 +35,7 @@ module Gitlab
spec = policy[:spec]
self.new(
name: metadata[:name],
+ description: policy[:description],
namespace: metadata[:namespace],
resource_version: metadata[:resourceVersion],
labels: metadata[:labels],
@@ -58,6 +55,7 @@ module Gitlab
spec = resource[:spec].to_h
self.new(
name: metadata[:name],
+ description: resource[:description],
namespace: metadata[:namespace],
resource_version: metadata[:resourceVersion],
labels: metadata[:labels]&.to_h,
@@ -68,21 +66,39 @@ module Gitlab
)
end
+ override :resource
+ def resource
+ resource = {
+ apiVersion: API_VERSION,
+ kind: KIND,
+ metadata: metadata,
+ spec: spec
+ }
+ resource[:description] = description if description
+ resource
+ end
+
private
- attr_reader :name, :namespace, :labels, :creation_timestamp, :resource_version, :ingress, :egress
+ attr_reader :name, :description, :namespace, :labels, :creation_timestamp, :resource_version, :ingress, :egress
def selector
@selector ||= {}
end
- override :spec
+ def metadata
+ meta = { name: name, namespace: namespace }
+ meta[:labels] = labels if labels
+ meta[:resourceVersion] = resource_version if resource_version
+ meta
+ end
+
def spec
{
endpointSelector: selector,
ingress: ingress,
egress: egress
- }
+ }.compact
end
end
end
diff --git a/lib/gitlab/kubernetes/kube_client.rb b/lib/gitlab/kubernetes/kube_client.rb
index 9e3cf58bb1e..fa68afd39f5 100644
--- a/lib/gitlab/kubernetes/kube_client.rb
+++ b/lib/gitlab/kubernetes/kube_client.rb
@@ -92,6 +92,7 @@ module Gitlab
# group client
delegate :create_network_policy,
:get_network_policies,
+ :get_network_policy,
:update_network_policy,
:delete_network_policy,
to: :networking_client
@@ -100,6 +101,7 @@ module Gitlab
# group client
delegate :create_cilium_network_policy,
:get_cilium_network_policies,
+ :get_cilium_network_policy,
:update_cilium_network_policy,
:delete_cilium_network_policy,
to: :cilium_networking_client
diff --git a/lib/gitlab/kubernetes/network_policy.rb b/lib/gitlab/kubernetes/network_policy.rb
index 28810dc4453..c8e9b987443 100644
--- a/lib/gitlab/kubernetes/network_policy.rb
+++ b/lib/gitlab/kubernetes/network_policy.rb
@@ -6,6 +6,8 @@ module Gitlab
include NetworkPolicyCommon
extend ::Gitlab::Utils::Override
+ KIND = 'NetworkPolicy'
+
def initialize(name:, namespace:, selector:, ingress:, labels: nil, creation_timestamp: nil, policy_types: ["Ingress"], egress: nil)
@name = name
@namespace = namespace
@@ -17,13 +19,6 @@ module Gitlab
@egress = egress
end
- def generate
- ::Kubeclient::Resource.new.tap do |resource|
- resource.metadata = metadata
- resource.spec = spec
- end
- end
-
def self.from_yaml(manifest)
return unless manifest
@@ -63,6 +58,15 @@ module Gitlab
)
end
+ override :resource
+ def resource
+ {
+ kind: KIND,
+ metadata: metadata,
+ spec: spec
+ }
+ end
+
private
attr_reader :name, :namespace, :labels, :creation_timestamp, :policy_types, :ingress, :egress
@@ -71,7 +75,12 @@ module Gitlab
@selector ||= {}
end
- override :spec
+ def metadata
+ meta = { name: name, namespace: namespace }
+ meta[:labels] = labels if labels
+ meta
+ end
+
def spec
{
podSelector: selector,
diff --git a/lib/gitlab/kubernetes/network_policy_common.rb b/lib/gitlab/kubernetes/network_policy_common.rb
index 3b6e46d21ef..99517454508 100644
--- a/lib/gitlab/kubernetes/network_policy_common.rb
+++ b/lib/gitlab/kubernetes/network_policy_common.rb
@@ -5,6 +5,10 @@ module Gitlab
module NetworkPolicyCommon
DISABLED_BY_LABEL = :'network-policy.gitlab.com/disabled_by'
+ def generate
+ ::Kubeclient::Resource.new(resource)
+ end
+
def as_json(opts = nil)
{
name: name,
@@ -46,19 +50,12 @@ module Gitlab
private
- def metadata
- meta = { name: name, namespace: namespace }
- meta[:labels] = labels if labels
- meta[:resourceVersion] = resource_version if defined?(resource_version)
- meta
- end
-
- def spec
+ def resource
raise NotImplementedError
end
def manifest
- YAML.dump({ metadata: metadata, spec: spec }.deep_stringify_keys)
+ YAML.dump(resource.deep_stringify_keys)
end
end
end