Sha256: 0b8beab7525e8090ba81871d44d63959235d80bf33c5d4c91f1f9a2b1ebe5047
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
module Hetzner class SSHKey def initialize(hetzner_client:, cluster_name:) @hetzner_client = hetzner_client @cluster_name = cluster_name end def create(ssh_key_path:) @ssh_key_path = ssh_key_path puts if ssh_key = find_ssh_key puts "SSH key already exists, skipping." puts return ssh_key["id"] end puts "Creating SSH key..." response = hetzner_client.post("/ssh_keys", ssh_key_config).body puts "...SSH key created." puts JSON.parse(response)["ssh_key"]["id"] end def delete if ssh_key = find_ssh_key puts "Deleting ssh_key..." hetzner_client.delete("/ssh_keys", ssh_key["id"]) puts "...ssh_key deleted." else puts "SSH key no longer exists, skipping." end puts end private attr_reader :hetzner_client, :cluster_name, :ssh_key_path def ssh_key_config { name: cluster_name, public_key: File.read(ssh_key_path) } end def find_ssh_key hetzner_client.get("/ssh_keys")["ssh_keys"].detect{ |ssh_key| ssh_key["name"] == cluster_name } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hetzner-k3s-0.2.0 | lib/hetzner/infra/ssh_key.rb |
hetzner-k3s-0.1.0 | lib/hetzner/infra/ssh_key.rb |