porkadot 0.22.2 → 0.25.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/hack/metallb/crds/kustomization.yaml +5 -0
  3. data/hack/metallb/exclude-l2-config.yaml +8 -0
  4. data/hack/metallb/kustomization.yaml +10 -0
  5. data/hack/update-kubelet-cert-approver.sh +6 -0
  6. data/hack/update-metallb.sh +7 -0
  7. data/lib/porkadot/assets/bootstrap/manifests/kube-apiserver.bootstrap.yaml.erb +1 -1
  8. data/lib/porkadot/assets/etcd/etcd-server.yaml.erb +17 -9
  9. data/lib/porkadot/assets/etcd/etcd.env.erb +4 -0
  10. data/lib/porkadot/assets/etcd/install.sh.erb +1 -0
  11. data/lib/porkadot/assets/etcd.rb +1 -0
  12. data/lib/porkadot/assets/kubelet/config.yaml.erb +1 -39
  13. data/lib/porkadot/assets/kubelet/initiatorname.iscsi.erb +1 -0
  14. data/lib/porkadot/assets/kubelet/kubelet.service.erb +2 -6
  15. data/lib/porkadot/assets/kubelet/metadata.json.erb +5 -0
  16. data/lib/porkadot/assets/{kubelet → kubelet-default}/install-deps.sh.erb +3 -1
  17. data/lib/porkadot/assets/{kubelet → kubelet-default}/install-pkgs.sh.erb +1 -3
  18. data/lib/porkadot/assets/kubelet-default/install.sh.erb +22 -7
  19. data/lib/porkadot/assets/kubelet-default/setup-containerd.sh.erb +22 -0
  20. data/lib/porkadot/assets/kubelet-default/setup-node.sh.erb +16 -0
  21. data/lib/porkadot/assets/kubelet.rb +14 -12
  22. data/lib/porkadot/assets/kubernetes/install.sh.erb +3 -1
  23. data/lib/porkadot/assets/kubernetes/manifests/addons/coredns/coredns.yaml.erb +1 -1
  24. data/lib/porkadot/assets/kubernetes/manifests/addons/coredns/dns-horizontal-autoscaler.yaml.erb +1 -1
  25. data/lib/porkadot/assets/kubernetes/manifests/addons/flannel/flannel.yaml.erb +12 -51
  26. data/lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/kustomization.yaml.erb +3 -0
  27. data/lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/src.yaml.erb +210 -0
  28. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/000-metallb.yaml.erb +3 -1
  29. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/crds.yaml +1272 -0
  30. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/kustomization.yaml.erb +2 -0
  31. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.config.yaml.erb +1 -12
  32. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml.erb +520 -228
  33. data/lib/porkadot/assets/kubernetes/manifests/kube-apiserver.yaml.erb +4 -1
  34. data/lib/porkadot/assets/kubernetes/manifests/kube-controller-manager.yaml.erb +3 -0
  35. data/lib/porkadot/assets/kubernetes/manifests/kube-scheduler.yaml.erb +3 -1
  36. data/lib/porkadot/assets/kubernetes.rb +22 -3
  37. data/lib/porkadot/cmd/cli.rb +11 -0
  38. data/lib/porkadot/cmd/etcd.rb +68 -0
  39. data/lib/porkadot/config.rb +1 -1
  40. data/lib/porkadot/configs/addons.rb +4 -0
  41. data/lib/porkadot/configs/certs.rb +3 -0
  42. data/lib/porkadot/configs/etcd.rb +44 -2
  43. data/lib/porkadot/configs/kubelet.rb +25 -7
  44. data/lib/porkadot/const.rb +3 -0
  45. data/lib/porkadot/default.yaml +17 -15
  46. data/lib/porkadot/install/bootstrap.rb +1 -1
  47. data/lib/porkadot/install/kubelet.rb +123 -27
  48. data/lib/porkadot/version.rb +1 -1
  49. data/lib/porkadot.rb +2 -0
  50. data/porkadot.gemspec +1 -0
  51. metadata +33 -8
  52. data/lib/porkadot/assets/kubelet/install.sh.erb +0 -35
  53. data/lib/porkadot/assets/kubelet/setup-containerd.sh.erb +0 -17
  54. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.secrets.yaml.erb +0 -13
data/lib/porkadot.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'thor'
2
2
  require 'sshkit'
3
+ require 'json'
3
4
 
4
5
  require "porkadot/version"
5
6
 
@@ -37,4 +38,5 @@ require 'porkadot/cmd/render/certs'
37
38
  require 'porkadot/cmd/render'
38
39
  require 'porkadot/cmd/install/bootstrap'
39
40
  require 'porkadot/cmd/install'
41
+ require 'porkadot/cmd/etcd'
40
42
  require 'porkadot/cmd'
data/porkadot.gemspec CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "thor", "~> 1.0"
37
37
  spec.add_dependency "hashie", "~> 4.1"
38
38
  spec.add_dependency "sshkit", "~> 1.20"
39
+ spec.add_dependency "net-ssh", "= 7.0.1"
39
40
  spec.add_development_dependency "bundler", "~> 2.0"
40
41
  spec.add_development_dependency "rake", "~> 13.0"
41
42
  spec.add_development_dependency "minitest", "~> 5.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: porkadot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.2
4
+ version: 0.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OTSUKA, Yuanying
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-09 00:00:00.000000000 Z
11
+ date: 2024-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.20'
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-ssh
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 7.0.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 7.0.1
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +128,12 @@ files:
114
128
  - config/unstable.yaml
115
129
  - exe/porkadot
116
130
  - hack/gen-storage-version-migrator.sh
131
+ - hack/metallb/crds/kustomization.yaml
132
+ - hack/metallb/exclude-l2-config.yaml
133
+ - hack/metallb/kustomization.yaml
117
134
  - hack/storage-version-migrator/kustomization.yaml
135
+ - hack/update-kubelet-cert-approver.sh
136
+ - hack/update-metallb.sh
118
137
  - lib/porkadot.rb
119
138
  - lib/porkadot/assets.rb
120
139
  - lib/porkadot/assets/bootstrap.rb
@@ -132,16 +151,19 @@ files:
132
151
  - lib/porkadot/assets/certs/k8s.rb
133
152
  - lib/porkadot/assets/etcd.rb
134
153
  - lib/porkadot/assets/etcd/etcd-server.yaml.erb
154
+ - lib/porkadot/assets/etcd/etcd.env.erb
135
155
  - lib/porkadot/assets/etcd/install.sh.erb
156
+ - lib/porkadot/assets/kubelet-default/install-deps.sh.erb
157
+ - lib/porkadot/assets/kubelet-default/install-pkgs.sh.erb
136
158
  - lib/porkadot/assets/kubelet-default/install.sh.erb
159
+ - lib/porkadot/assets/kubelet-default/setup-containerd.sh.erb
160
+ - lib/porkadot/assets/kubelet-default/setup-node.sh.erb
137
161
  - lib/porkadot/assets/kubelet.rb
138
162
  - lib/porkadot/assets/kubelet/bootstrap-kubelet.conf.erb
139
163
  - lib/porkadot/assets/kubelet/config.yaml.erb
140
- - lib/porkadot/assets/kubelet/install-deps.sh.erb
141
- - lib/porkadot/assets/kubelet/install-pkgs.sh.erb
142
- - lib/porkadot/assets/kubelet/install.sh.erb
164
+ - lib/porkadot/assets/kubelet/initiatorname.iscsi.erb
143
165
  - lib/porkadot/assets/kubelet/kubelet.service.erb
144
- - lib/porkadot/assets/kubelet/setup-containerd.sh.erb
166
+ - lib/porkadot/assets/kubelet/metadata.json.erb
145
167
  - lib/porkadot/assets/kubernetes.rb
146
168
  - lib/porkadot/assets/kubernetes/install.secrets.sh.erb
147
169
  - lib/porkadot/assets/kubernetes/install.sh.erb
@@ -154,11 +176,13 @@ files:
154
176
  - lib/porkadot/assets/kubernetes/manifests/addons/flannel/kustomization.yaml.erb
155
177
  - lib/porkadot/assets/kubernetes/manifests/addons/kubelet-rubber-stamp/kubelet-rubber-stamp.yaml.erb
156
178
  - lib/porkadot/assets/kubernetes/manifests/addons/kubelet-rubber-stamp/kustomization.yaml.erb
179
+ - lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/kustomization.yaml.erb
180
+ - lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/src.yaml.erb
157
181
  - lib/porkadot/assets/kubernetes/manifests/addons/kustomization.yaml.erb
158
182
  - lib/porkadot/assets/kubernetes/manifests/addons/metallb/000-metallb.yaml.erb
183
+ - lib/porkadot/assets/kubernetes/manifests/addons/metallb/crds.yaml
159
184
  - lib/porkadot/assets/kubernetes/manifests/addons/metallb/kustomization.yaml.erb
160
185
  - lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.config.yaml.erb
161
- - lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.secrets.yaml.erb
162
186
  - lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml.erb
163
187
  - lib/porkadot/assets/kubernetes/manifests/addons/storage-version-migrator/kustomization.yaml.erb
164
188
  - lib/porkadot/assets/kubernetes/manifests/addons/storage-version-migrator/storage-version-migrator.yaml.erb
@@ -173,6 +197,7 @@ files:
173
197
  - lib/porkadot/assets/kubernetes/manifests/porkadot.yaml.erb
174
198
  - lib/porkadot/cmd.rb
175
199
  - lib/porkadot/cmd/cli.rb
200
+ - lib/porkadot/cmd/etcd.rb
176
201
  - lib/porkadot/cmd/install.rb
177
202
  - lib/porkadot/cmd/install/bootstrap.rb
178
203
  - lib/porkadot/cmd/render.rb
@@ -218,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
243
  - !ruby/object:Gem::Version
219
244
  version: '0'
220
245
  requirements: []
221
- rubygems_version: 3.1.2
246
+ rubygems_version: 3.3.7
222
247
  signing_key:
223
248
  specification_version: 4
224
249
  summary: Porkadot is a CLI tool to deploy Kubernetes cluster.
@@ -1,35 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -eu
4
- export LC_ALL=C
5
- ROOT=$(dirname "${BASH_SOURCE}")
6
-
7
- export KUBERNETES_PATH="/etc/kubernetes"
8
- export KUBERNETES_PKI_PATH="${KUBERNETES_PATH}/pki"
9
- export KUBERNETES_MANIFESTS_PATH="${KUBERNETES_PATH}/manifests"
10
- export KUBELET_PATH="/var/lib/kubelet"
11
-
12
- mkdir -p ${KUBERNETES_PATH}
13
- mkdir -p ${KUBERNETES_PKI_PATH}
14
- mkdir -p ${KUBERNETES_MANIFESTS_PATH}
15
- mkdir -p ${KUBELET_PATH}
16
-
17
- cp ${ROOT}/bootstrap-kubelet.conf ${KUBERNETES_PATH}/
18
- cp ${ROOT}/bootstrap.* ${KUBERNETES_PKI_PATH}/
19
- cp ${ROOT}/ca.crt ${KUBERNETES_PKI_PATH}/
20
- cp ${ROOT}/config.yaml ${KUBELET_PATH}/
21
- cp ${ROOT}/kubelet.service /etc/systemd/system/
22
-
23
- # Install addons
24
- for addon in $(ls ${ROOT}/addons/); do
25
- install_sh="${ROOT}/addons/${addon}/install.sh"
26
- if [[ -f ${install_sh} ]]; then
27
- echo "Install: ${install_sh}"
28
- bash ${install_sh}
29
- fi
30
- done
31
-
32
- rm -f ${KUBERNETES_PATH}/kubelet.conf
33
- systemctl daemon-reload
34
- systemctl enable kubelet
35
- systemctl restart kubelet
@@ -1,17 +0,0 @@
1
- #!/bin/bash
2
- set -eu
3
- export LC_ALL=C
4
- ROOT=$(dirname "${BASH_SOURCE}")
5
-
6
- mkdir -p /etc/containerd
7
- containerd config default | tee /etc/containerd/config.toml
8
-
9
- grep SystemdCgroup /etc/containerd/config.toml && :
10
-
11
- if [[ $? == 0 ]]; then
12
- sed -i -e "s/SystemdCgroup.*$/SystemdCgroup = true/" /etc/containerd/config.toml
13
- else
14
- sed -i -e "/containerd.runtimes.runc.options/a SystemdCgroup = true" /etc/containerd/config.toml
15
- fi
16
-
17
- systemctl restart containerd
@@ -1,13 +0,0 @@
1
- <% require 'securerandom' -%>
2
- <% k8s = global_config.k8s -%>
3
- ---
4
- apiVersion: v1
5
- stringData:
6
- secretkey: <%= SecureRandom.base64(128) %>
7
- kind: Secret
8
- metadata:
9
- name: memberlist
10
- namespace: metallb-system
11
- labels:
12
- app: metallb
13
- type: Opaque