Class: NetworkPolicies

Inherits:
Object
  • Object
show all
Defined in:
lib/xlsx_to_k8s_network_policy.rb

Overview

A collection of ‘NetworkPolicy`s

Defined Under Namespace

Classes: Zone

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeNetworkPolicies

Returns a new instance of NetworkPolicies.



212
213
214
215
# File 'lib/xlsx_to_k8s_network_policy.rb', line 212

def initialize
  @zones = {}
  @policies = {}
end

Instance Attribute Details

#policiesObject (readonly)

Returns the value of attribute policies.



210
211
212
# File 'lib/xlsx_to_k8s_network_policy.rb', line 210

def policies
  @policies
end

#zonesObject (readonly)

Returns the value of attribute zones.



209
210
211
# File 'lib/xlsx_to_k8s_network_policy.rb', line 209

def zones
  @zones
end

Instance Method Details

#add_zone(name, cidrs) ⇒ Object



221
222
223
224
225
# File 'lib/xlsx_to_k8s_network_policy.rb', line 221

def add_zone(name, cidrs)
  zone = Zone.new(name, cidrs)
  @zones[name] = zone
  @policies[zone] = zone.to_network_policy
end

#allow(from_zone_name, to_zone_name) ⇒ Object



227
228
229
230
231
232
233
234
# File 'lib/xlsx_to_k8s_network_policy.rb', line 227

def allow(from_zone_name, to_zone_name)
  from_zone = @zones[from_zone_name]
  raise "No zone named #{from_zone_name}!" unless from_zone
  to_zone = @zones[to_zone_name]
  raise "No zone named #{to_zone_name}!" unless to_zone
  from_zone.add_ingress_rules_to(policies[to_zone])
  to_zone.add_egress_rules_to(policies[from_zone])
end

#to_doc_hashesObject



236
237
238
239
# File 'lib/xlsx_to_k8s_network_policy.rb', line 236

def to_doc_hashes
  docs = [NetworkPolicy.deny_all] + @policies.values
  docs.map(&:as_hash)
end

#zone_namesObject



217
218
219
# File 'lib/xlsx_to_k8s_network_policy.rb', line 217

def zone_names
  @zones.values.map(&:name)
end