summaryrefslogtreecommitdiff
path: root/lib/gitlab/kubernetes/network_policy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/kubernetes/network_policy.rb')
-rw-r--r--lib/gitlab/kubernetes/network_policy.rb25
1 files changed, 17 insertions, 8 deletions
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,