hetzner-k3s 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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