class Hetzner::Network
Attributes
cluster_name[R]
hetzner_client[R]
Public Class Methods
new(hetzner_client:, cluster_name:)
click to toggle source
# File lib/hetzner/infra/network.rb, line 3 def initialize(hetzner_client:, cluster_name:) @hetzner_client = hetzner_client @cluster_name = cluster_name end
Public Instance Methods
create()
click to toggle source
# File lib/hetzner/infra/network.rb, line 8 def create puts if network = find_network puts "Private network already exists, skipping." puts return network["id"] end puts "Creating private network..." response = hetzner_client.post("/networks", network_config).body puts "...private network created." puts JSON.parse(response)["network"]["id"] end
delete()
click to toggle source
# File lib/hetzner/infra/network.rb, line 27 def delete if network = find_network puts "Deleting network..." hetzner_client.delete("/networks", network["id"]) puts "...network deleted." else puts "Network no longer exists, skipping." end puts end
Private Instance Methods
find_network()
click to toggle source
# File lib/hetzner/infra/network.rb, line 57 def find_network hetzner_client.get("/networks")["networks"].detect{ |network| network["name"] == cluster_name } end
network_config()
click to toggle source
# File lib/hetzner/infra/network.rb, line 43 def network_config { name: cluster_name, ip_range: "10.0.0.0/16", subnets: [ { ip_range: "10.0.0.0/16", network_zone: "eu-central", type: "cloud" } ] } end