hetzner-k3s 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 600b092e02f2bca4fd0be7e830a13913d2bbf82d2e3b98226ab52a2b5df4e859
4
- data.tar.gz: f595dda56d1ca9aeaa611a77d82c168a63d300a83c5f3e8edc44b3da5790d46a
3
+ metadata.gz: a6c87ae355b79344110f8b822668072438b9b496b602177b3d6528e56a75aea8
4
+ data.tar.gz: 9be4a8945d32c22f4810389b9330707177749d8c18d6416d73a6bbbdef4ff3a9
5
5
  SHA512:
6
- metadata.gz: 6024a0b99ecc6d97d56e50f39e9e89f9cd2d92db7261604162ec37628df6bd4b942f50be64c4f05d9a745e55a3e18e567a759f20626671e81746c4160a280a9a
7
- data.tar.gz: 17f2095befd0035555adc902dc52baed71f77bd82ef26ecb9bff3df5e7b5ec14068cdd16923fd6a2297e22badaab922b3fbc745939285e41fed8699922e26017
6
+ metadata.gz: 7c852a9f0b9b4e3dd80f5c33007f39d4191a9588874cac0d03904c15f185686757e45793525a0bf2b87787fe4d8de3969318797300e40aad4811cb74c883628f
7
+ data.tar.gz: 321d20a09b451ef355095268cf0da68ebefd88a43c3b7261293923b346b5ee5641ee55214cda1a8b53aaf44fa8fedb178303b1e9dd9d7de5856332c135546628
data/README.md CHANGED
@@ -53,7 +53,7 @@ worker_node_pools:
53
53
  instance_type: cpx21
54
54
  instance_count: 4
55
55
  - name: big
56
- instance_type: cp321
56
+ instance_type: cpx31
57
57
  instance_count: 2
58
58
  ```
59
59
 
@@ -80,7 +80,6 @@ module Hetzner
80
80
  validate_k3s_version
81
81
  validate_masters
82
82
  validate_worker_node_pools
83
- validate_all_nodes_must_be_of_same_series
84
83
  when :delete
85
84
  validate_kubeconfig_path_must_exist
86
85
  when :upgrade
@@ -221,11 +220,6 @@ module Hetzner
221
220
  end
222
221
  end
223
222
 
224
- def validate_all_nodes_must_be_of_same_series
225
- series = used_server_types.map{ |used_server_type| used_server_type[0..1]}
226
- errors << "Master and worker node pools must all be of the same server series for networking to function properly (available series: cx, cp, ccx)" unless series.uniq.size == 1
227
- end
228
-
229
223
  def validate_new_k3s_version_must_be_more_recent
230
224
  return if options[:force] == "true"
231
225
  return unless kubernetes_client
@@ -29,7 +29,6 @@ class Cluster
29
29
  @masters_config = configuration.dig("masters")
30
30
  @worker_node_pools = configuration.dig("worker_node_pools")
31
31
  @location = configuration.dig("location")
32
- @flannel_interface = find_flannel_interface(configuration.dig("masters")["instance_type"])
33
32
  @servers = []
34
33
 
35
34
  create_resources
@@ -66,7 +65,7 @@ class Cluster
66
65
 
67
66
  attr_reader :hetzner_client, :cluster_name, :kubeconfig_path, :k3s_version,
68
67
  :masters_config, :worker_node_pools,
69
- :location, :flannel_interface, :ssh_key_path, :kubernetes_client,
68
+ :location, :ssh_key_path, :kubernetes_client,
70
69
  :hetzner_token, :tls_sans, :new_k3s_version, :configuration,
71
70
  :config_file
72
71
 
@@ -216,6 +215,7 @@ class Cluster
216
215
 
217
216
  def master_script(master)
218
217
  server = master == first_master ? " --cluster-init " : " --server https://#{first_master_private_ip}:6443 "
218
+ flannel_interface = find_flannel_interface(master)
219
219
 
220
220
  <<~EOF
221
221
  curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="#{k3s_version}" K3S_TOKEN="#{k3s_token}" INSTALL_K3S_EXEC="server \
@@ -242,7 +242,9 @@ class Cluster
242
242
  EOF
243
243
  end
244
244
 
245
- def worker_script
245
+ def worker_script(worker)
246
+ flannel_interface = find_flannel_interface(worker)
247
+
246
248
  <<~EOF
247
249
  curl -sfL https://get.k3s.io | K3S_TOKEN="#{k3s_token}" INSTALL_K3S_VERSION="#{k3s_version}" K3S_URL=https://#{first_master_private_ip}:6443 INSTALL_K3S_EXEC="agent \
248
250
  --node-name="$(hostname -f)" \
@@ -285,7 +287,7 @@ class Cluster
285
287
  puts
286
288
  puts "Deploying k3s to worker (#{worker["name"]})..."
287
289
 
288
- ssh worker, worker_script, print_output: true
290
+ ssh worker, worker_script(worker), print_output: true
289
291
 
290
292
  puts
291
293
  puts "...k3s has been deployed to worker (#{worker["name"]})."
@@ -471,14 +473,11 @@ class Cluster
471
473
  @kubernetes_client = K8s::Client.config(K8s::Config.new(config_hash))
472
474
  end
473
475
 
474
- def find_flannel_interface(server_type)
475
- case server_type[0..1]
476
- when "cp"
477
- "enp7s0"
478
- when "cc"
479
- "enp7s0"
480
- when "cx"
476
+ def find_flannel_interface(server)
477
+ if ssh(server, "lscpu | grep Vendor") =~ /Intel/
481
478
  "ens10"
479
+ else
480
+ "enp7s0"
482
481
  end
483
482
  end
484
483
 
@@ -1,5 +1,5 @@
1
1
  module Hetzner
2
2
  module K3s
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hetzner-k3s
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vito Botta
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-07 00:00:00.000000000 Z
11
+ date: 2021-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor