Class: NetworkPolicies
- Inherits:
-
Object
- Object
- NetworkPolicies
- Defined in:
- lib/xlsx_to_k8s_network_policy.rb
Overview
A collection of ‘NetworkPolicy`s
Defined Under Namespace
Classes: Zone
Instance Attribute Summary collapse
-
#policies ⇒ Object
readonly
Returns the value of attribute policies.
-
#zones ⇒ Object
readonly
Returns the value of attribute zones.
Instance Method Summary collapse
- #add_zone(name, cidrs) ⇒ Object
- #allow(from_zone_name, to_zone_name) ⇒ Object
-
#initialize ⇒ NetworkPolicies
constructor
A new instance of NetworkPolicies.
- #to_doc_hashes ⇒ Object
- #zone_names ⇒ Object
Constructor Details
#initialize ⇒ NetworkPolicies
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
#policies ⇒ Object (readonly)
Returns the value of attribute policies.
210 211 212 |
# File 'lib/xlsx_to_k8s_network_policy.rb', line 210 def policies @policies end |
#zones ⇒ Object (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_hashes ⇒ Object
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_names ⇒ Object
217 218 219 |
# File 'lib/xlsx_to_k8s_network_policy.rb', line 217 def zone_names @zones.values.map(&:name) end |