diff options
Diffstat (limited to 'lib/gitlab/kubernetes/network_policy.rb')
-rw-r--r-- | lib/gitlab/kubernetes/network_policy.rb | 25 |
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, |