porkadot 0.18.1 → 0.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/hack/gen-storage-version-migrator.sh +7 -0
- data/hack/storage-version-migrator/kustomization.yaml +77 -0
- data/lib/porkadot/assets/bootstrap/manifests/kube-apiserver.bootstrap.yaml.erb +4 -30
- data/lib/porkadot/assets/bootstrap/manifests/kube-controller-manager.bootstrap.yaml.erb +13 -16
- data/lib/porkadot/assets/bootstrap/manifests/kube-proxy.bootstrap.yaml.erb +3 -2
- data/lib/porkadot/assets/bootstrap/manifests/kube-scheduler.bootstrap.yaml.erb +3 -5
- data/lib/porkadot/assets/kubelet.rb +1 -0
- data/lib/porkadot/assets/kubelet/config.yaml.erb +1 -0
- data/lib/porkadot/assets/kubelet/install-pkgs.sh.erb +10 -1
- data/lib/porkadot/assets/kubelet/kubelet.service.erb +3 -1
- data/lib/porkadot/assets/kubelet/setup-containerd.sh.erb +10 -0
- data/lib/porkadot/assets/kubernetes.rb +3 -1
- data/lib/porkadot/assets/kubernetes/kubeconfig.yaml.erb +19 -0
- data/lib/porkadot/assets/kubernetes/manifests/000-metallb.yaml.erb +7 -0
- data/lib/porkadot/assets/kubernetes/manifests/coredns.yaml.erb +8 -1
- data/lib/porkadot/assets/kubernetes/manifests/flannel.yaml.erb +52 -431
- data/lib/porkadot/assets/kubernetes/manifests/kube-apiserver.secrets.yaml.erb +1 -0
- data/lib/porkadot/assets/kubernetes/manifests/kubelet-rubber-stamp.yaml.erb +1 -1
- data/lib/porkadot/assets/kubernetes/manifests/metallb.config.yaml.erb +13 -0
- data/lib/porkadot/assets/kubernetes/manifests/metallb.yaml.erb +71 -41
- data/lib/porkadot/assets/kubernetes/manifests/storage-version-migrator.yaml.erb +258 -228
- data/lib/porkadot/cmd/cli.rb +16 -0
- data/lib/porkadot/cmd/render/certs.rb +1 -1
- data/lib/porkadot/configs/kubernetes.rb +31 -1
- data/lib/porkadot/default.yaml +3 -3
- data/lib/porkadot/install/kubelet.rb +24 -0
- data/lib/porkadot/install/kubernetes.rb +2 -1
- data/lib/porkadot/version.rb +1 -1
- metadata +8 -3
- data/lib/porkadot/assets/kubernetes/manifests/pod-checkpointer.yaml.erb +0 -130
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 839afa115dc53563a391b710c14ab686f6c45a5420a6d1f6c6eee21ebdb1e6cf
|
4
|
+
data.tar.gz: 8f8fbc1099bebe03b5f994050e083c385baad03536d15c14ef6ed1f412ce278c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20194aa567e21c0e7af5caa6deb7645c617d58240c5685b0a90e477ea9331ea522618c206718b97a4218ab9d939fa6bd7b557df698703fb8c45c240dbb025e95
|
7
|
+
data.tar.gz: 3fdd45b9a6132bf0167c4e30c939aa42db77331a6007a850baa1adb67335731e639ccc9483435aecc7c3411d49094698846592a712205b5377adda17965ea930
|
@@ -0,0 +1,77 @@
|
|
1
|
+
namespace: kube-system
|
2
|
+
|
3
|
+
resources:
|
4
|
+
- https://github.com/kubernetes-sigs/kube-storage-version-migrator/manifests/?ref=acdee30ced218b79e39c6a701985e8cd8bd33824
|
5
|
+
|
6
|
+
images:
|
7
|
+
- name: REGISTRY/storage-version-migration-initializer:VERSION
|
8
|
+
newName: asia.gcr.io/k8s-artifacts-prod/storage-migrator/storage-version-migration-initializer
|
9
|
+
newTag: v0.0.3
|
10
|
+
- name: REGISTRY/storage-version-migration-migrator:VERSION
|
11
|
+
newName: asia.gcr.io/k8s-artifacts-prod/storage-migrator/storage-version-migration-migrator
|
12
|
+
newTag: v0.0.3
|
13
|
+
- name: REGISTRY/storage-version-migration-trigger:VERSION
|
14
|
+
newName: asia.gcr.io/k8s-artifacts-prod/storage-migrator/storage-version-migration-trigger
|
15
|
+
newTag: v0.0.3
|
16
|
+
patchesJson6902:
|
17
|
+
- target:
|
18
|
+
group: apps
|
19
|
+
version: v1
|
20
|
+
kind: Deployment
|
21
|
+
name: migrator
|
22
|
+
namespace: kube-system
|
23
|
+
patch: |-
|
24
|
+
- op: remove
|
25
|
+
path: /spec/template/spec/containers/0/livenessProbe
|
26
|
+
- op: add
|
27
|
+
path: /spec/template/spec/containers/0/command/-
|
28
|
+
value: --kubeconfig=/etc/migrator/kubeconfig
|
29
|
+
- target:
|
30
|
+
group: apps
|
31
|
+
version: v1
|
32
|
+
kind: Deployment
|
33
|
+
name: trigger
|
34
|
+
namespace: kube-system
|
35
|
+
patch: |-
|
36
|
+
- op: remove
|
37
|
+
path: /spec/template/spec/containers/0/livenessProbe
|
38
|
+
- op: add
|
39
|
+
path: /spec/template/spec/containers/0/args
|
40
|
+
value: ["--kubeconfig=/etc/migrator/kubeconfig"]
|
41
|
+
patchesStrategicMerge:
|
42
|
+
- |-
|
43
|
+
apiVersion: apps/v1
|
44
|
+
kind: Deployment
|
45
|
+
metadata:
|
46
|
+
name: migrator
|
47
|
+
namespace: NAMESPACE
|
48
|
+
spec:
|
49
|
+
template:
|
50
|
+
spec:
|
51
|
+
containers:
|
52
|
+
- name: migrator
|
53
|
+
volumeMounts:
|
54
|
+
- mountPath: /etc/migrator
|
55
|
+
name: kubeconfig
|
56
|
+
volumes:
|
57
|
+
- name: kubeconfig
|
58
|
+
configMap:
|
59
|
+
name: kubeconfig-in-cluster-latest
|
60
|
+
- |-
|
61
|
+
apiVersion: apps/v1
|
62
|
+
kind: Deployment
|
63
|
+
metadata:
|
64
|
+
name: trigger
|
65
|
+
namespace: NAMESPACE
|
66
|
+
spec:
|
67
|
+
template:
|
68
|
+
spec:
|
69
|
+
containers:
|
70
|
+
- name: trigger
|
71
|
+
volumeMounts:
|
72
|
+
- mountPath: /etc/migrator
|
73
|
+
name: kubeconfig
|
74
|
+
volumes:
|
75
|
+
- name: kubeconfig
|
76
|
+
configMap:
|
77
|
+
name: kubeconfig-in-cluster-latest
|
@@ -20,35 +20,9 @@ spec:
|
|
20
20
|
image: <%= k8s.image_repository %>/kube-apiserver:<%= k8s.kubernetes_version %>
|
21
21
|
command:
|
22
22
|
- kube-apiserver
|
23
|
-
|
24
|
-
-
|
25
|
-
|
26
|
-
- --bind-address=0.0.0.0
|
27
|
-
- --client-ca-file=/etc/kubernetes/secrets/kubernetes/ca.crt
|
28
|
-
- --enable-admission-plugins=NodeRestriction
|
29
|
-
- --enable-bootstrap-token-auth=true
|
30
|
-
- --etcd-cafile=/etc/kubernetes/secrets/etcd/ca.crt
|
31
|
-
- --etcd-certfile=/etc/kubernetes/secrets/etcd/etcd-client.crt
|
32
|
-
- --etcd-keyfile=/etc/kubernetes/secrets/etcd/etcd-client.key
|
33
|
-
- --etcd-servers=<%= global_config.etcd.advertise_client_urls.join(',') %>
|
34
|
-
- --kubelet-certificate-authority=/etc/kubernetes/secrets/kubernetes/ca.crt
|
35
|
-
- --kubelet-client-certificate=/etc/kubernetes/secrets/kubernetes/kubelet-client.crt
|
36
|
-
- --kubelet-client-key=/etc/kubernetes/secrets/kubernetes/kubelet-client.key
|
37
|
-
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
|
38
|
-
- --proxy-client-cert-file=/etc/kubernetes/secrets/kubernetes/front-proxy-client.crt
|
39
|
-
- --proxy-client-key-file=/etc/kubernetes/secrets/kubernetes/front-proxy-client.key
|
40
|
-
- --requestheader-allowed-names=front-proxy-client
|
41
|
-
- --requestheader-client-ca-file=/etc/kubernetes/secrets/kubernetes/front-proxy-ca.crt
|
42
|
-
- --requestheader-extra-headers-prefix=X-Remote-Extra-
|
43
|
-
- --requestheader-group-headers=X-Remote-Group
|
44
|
-
- --requestheader-username-headers=X-Remote-User
|
45
|
-
- --secure-port=<%= k8s.apiserver.bind_port %>
|
46
|
-
- --service-account-key-file=/etc/kubernetes/secrets/kubernetes/sa.pub
|
47
|
-
- --service-cluster-ip-range=<%= k8s.networking.service_subnet %>
|
48
|
-
- --storage-backend=etcd3
|
49
|
-
- --tls-cert-file=/etc/kubernetes/secrets/kubernetes/apiserver.crt
|
50
|
-
- --tls-private-key-file=/etc/kubernetes/secrets/kubernetes/apiserver.key
|
51
|
-
- --v=2
|
23
|
+
<%- k8s.apiserver.args(bootstrap: true).each do |k, v| -%>
|
24
|
+
- <%= k %><% if v ;%>=<%= v %><%; end %>
|
25
|
+
<%- end -%>
|
52
26
|
env:
|
53
27
|
- name: POD_IP
|
54
28
|
valueFrom:
|
@@ -64,7 +38,7 @@ spec:
|
|
64
38
|
- mountPath: /usr/share/ca-certificates
|
65
39
|
name: usr-share-ca-certificates
|
66
40
|
readOnly: true
|
67
|
-
- mountPath: /etc/kubernetes/
|
41
|
+
- mountPath: /etc/kubernetes/pki
|
68
42
|
name: secrets
|
69
43
|
readOnly: true
|
70
44
|
- mountPath: /var/lock
|
@@ -15,23 +15,17 @@ spec:
|
|
15
15
|
image: <%= k8s.image_repository %>/kube-controller-manager:<%= k8s.kubernetes_version %>
|
16
16
|
command:
|
17
17
|
- kube-controller-manager
|
18
|
-
|
19
|
-
-
|
20
|
-
|
21
|
-
- --cluster-signing-key-file=/etc/kubernetes/bootstrap/secrets/kubernetes/ca.key
|
22
|
-
- --controllers=*,bootstrapsigner,tokencleaner
|
23
|
-
- --kubeconfig=/etc/kubernetes/bootstrap/kubeconfig-bootstrap.yaml
|
24
|
-
- --leader-elect=true
|
25
|
-
- --node-cidr-mask-size=24
|
26
|
-
- --root-ca-file=/etc/kubernetes/bootstrap/secrets/kubernetes/ca.crt
|
27
|
-
- --service-account-private-key-file=/etc/kubernetes/bootstrap/secrets/kubernetes/sa.key
|
28
|
-
- --use-service-account-credentials=true
|
29
|
-
- --v=2
|
18
|
+
<%- k8s.controller_manager.args(bootstrap: true).each do |k, v| -%>
|
19
|
+
- <%= k %><% if v ;%>=<%= v %><%; end %>
|
20
|
+
<%- end -%>
|
30
21
|
volumeMounts:
|
31
22
|
- name: var-run-kubernetes
|
32
23
|
mountPath: /var/run/kubernetes
|
33
|
-
- name: kubernetes
|
34
|
-
mountPath: /etc/kubernetes
|
24
|
+
- name: kubernetes-secrets
|
25
|
+
mountPath: /etc/kubernetes/pki
|
26
|
+
readOnly: true
|
27
|
+
- name: kubernetes-bootstrap
|
28
|
+
mountPath: /etc/kubernetes/bootstrap
|
35
29
|
readOnly: true
|
36
30
|
- mountPath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec
|
37
31
|
name: flexvolume-dir
|
@@ -48,9 +42,12 @@ spec:
|
|
48
42
|
volumes:
|
49
43
|
- name: var-run-kubernetes
|
50
44
|
emptyDir: {}
|
51
|
-
- name: kubernetes
|
45
|
+
- name: kubernetes-secrets
|
46
|
+
hostPath:
|
47
|
+
path: /etc/kubernetes/bootstrap/secrets
|
48
|
+
- name: kubernetes-bootstrap
|
52
49
|
hostPath:
|
53
|
-
path: /etc/kubernetes
|
50
|
+
path: /etc/kubernetes/bootstrap
|
54
51
|
- hostPath:
|
55
52
|
path: /etc/ssl/certs
|
56
53
|
type: DirectoryOrCreate
|
@@ -18,8 +18,9 @@ spec:
|
|
18
18
|
imagePullPolicy: IfNotPresent
|
19
19
|
command:
|
20
20
|
- kube-proxy
|
21
|
-
|
22
|
-
-
|
21
|
+
<%- k8s.proxy.args(bootstrap: true).each do |k, v| -%>
|
22
|
+
- <%= k %><% if v ;%>=<%= v %><%; end %>
|
23
|
+
<%- end -%>
|
23
24
|
env:
|
24
25
|
- name: NODE_NAME
|
25
26
|
valueFrom:
|
@@ -15,11 +15,9 @@ spec:
|
|
15
15
|
image: <%= k8s.image_repository %>/kube-scheduler:<%= k8s.kubernetes_version %>
|
16
16
|
command:
|
17
17
|
- kube-scheduler
|
18
|
-
|
19
|
-
-
|
20
|
-
|
21
|
-
- --leader-elect=true
|
22
|
-
- --v=2
|
18
|
+
<%- k8s.scheduler.args(bootstrap: true).each do |k, v| -%>
|
19
|
+
- <%= k %><% if v ;%>=<%= v %><%; end %>
|
20
|
+
<%- end -%>
|
23
21
|
volumeMounts:
|
24
22
|
- name: kubernetes
|
25
23
|
mountPath: /etc/kubernetes
|
@@ -27,9 +27,18 @@ if type apt-get > /dev/null 2>&1 ;then
|
|
27
27
|
open-iscsi
|
28
28
|
fi
|
29
29
|
|
30
|
+
cat > /etc/modules-load.d/porkadot.conf <<EOF
|
31
|
+
overlay
|
32
|
+
br_netfilter
|
33
|
+
EOF
|
34
|
+
|
35
|
+
modprobe overlay
|
36
|
+
modprobe br_netfilter
|
37
|
+
|
30
38
|
cat <<EOF > /etc/sysctl.d/k8s.conf
|
31
39
|
net.bridge.bridge-nf-call-ip6tables = 1
|
32
|
-
net.
|
40
|
+
net.ipv4.ip_forward = 1
|
41
|
+
net.bridge.bridge-nf-call-iptables = 1
|
33
42
|
EOF
|
34
43
|
|
35
44
|
cat <<EOF > /etc/iscsi/initiatorname.iscsi
|
@@ -5,11 +5,13 @@ Documentation=http://kubernetes.io/docs/
|
|
5
5
|
[Service]
|
6
6
|
EnvironmentFile=-/etc/default/kubelet
|
7
7
|
ExecStart=/opt/bin/kubelet \
|
8
|
+
--container-runtime=remote \
|
9
|
+
--container-runtime-endpoint=/run/containerd/containerd.sock \
|
8
10
|
--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf \
|
9
11
|
--kubeconfig=/etc/kubernetes/kubelet.conf \
|
10
12
|
--config=/var/lib/kubelet/config.yaml \
|
11
13
|
--network-plugin=cni \
|
12
|
-
--pod-infra-container-image=k8s.gcr.io/pause:3.1 \
|
14
|
+
--pod-infra-container-image=k8s.gcr.io/pause:3.4.1 \
|
13
15
|
--hostname-override=<%= config.hostname %> \
|
14
16
|
--node-labels=<%= config.labels_string %> \
|
15
17
|
--register-with-taints=<%= config.taints_string %> \
|
@@ -0,0 +1,10 @@
|
|
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
|
+
sed -i -e "/containerd.runtimes.runc.options/a SystemdCgroup = true" /etc/containerd/config.toml
|
9
|
+
|
10
|
+
systemctl restart containerd
|
@@ -27,7 +27,9 @@ module Porkadot; module Assets
|
|
27
27
|
cni = global_config.cni
|
28
28
|
render_erb 'manifests/porkadot.yaml'
|
29
29
|
render_erb 'manifests/kubelet.yaml'
|
30
|
+
render_erb "manifests/000-#{lb.type}.yaml"
|
30
31
|
render_erb "manifests/#{lb.type}.yaml"
|
32
|
+
render_erb "manifests/#{lb.type}.config.yaml"
|
31
33
|
render_secrets_erb "manifests/#{lb.type}.secrets.yaml"
|
32
34
|
render_erb "manifests/#{cni.type}.yaml"
|
33
35
|
render_erb "manifests/coredns.yaml"
|
@@ -38,9 +40,9 @@ module Porkadot; module Assets
|
|
38
40
|
render_erb "manifests/kube-scheduler.yaml"
|
39
41
|
render_erb "manifests/kube-controller-manager.yaml"
|
40
42
|
render_secrets_erb "manifests/kube-controller-manager.secrets.yaml"
|
41
|
-
render_erb "manifests/pod-checkpointer.yaml"
|
42
43
|
render_erb "manifests/kubelet-rubber-stamp.yaml"
|
43
44
|
render_erb "manifests/storage-version-migrator.yaml"
|
45
|
+
render_secrets_erb "kubeconfig.yaml"
|
44
46
|
render_erb 'install.sh'
|
45
47
|
end
|
46
48
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
apiVersion: v1
|
2
|
+
kind: Config
|
3
|
+
clusters:
|
4
|
+
- name: kubernetes
|
5
|
+
cluster:
|
6
|
+
certificate-authority-data: <%= certs.kubernetes.to_base64(:ca_cert) %>
|
7
|
+
server: https://127.0.0.1:<%= global_config.k8s.apiserver.bind_port %>
|
8
|
+
users:
|
9
|
+
- name: admin
|
10
|
+
user:
|
11
|
+
client-certificate-data: <%= certs.kubernetes.to_base64(:client_cert) %>
|
12
|
+
client-key-data: <%= certs.kubernetes.to_base64(:client_key) %>
|
13
|
+
contexts:
|
14
|
+
- context:
|
15
|
+
cluster: kubernetes
|
16
|
+
user: admin
|
17
|
+
name: admin-context
|
18
|
+
current-context: admin-context
|
19
|
+
|
@@ -34,6 +34,13 @@ rules:
|
|
34
34
|
- nodes
|
35
35
|
verbs:
|
36
36
|
- get
|
37
|
+
- apiGroups:
|
38
|
+
- discovery.k8s.io
|
39
|
+
resources:
|
40
|
+
- endpointslices
|
41
|
+
verbs:
|
42
|
+
- list
|
43
|
+
- watch
|
37
44
|
---
|
38
45
|
apiVersion: rbac.authorization.k8s.io/v1
|
39
46
|
kind: ClusterRoleBinding
|
@@ -119,7 +126,7 @@ spec:
|
|
119
126
|
kubernetes.io/os: linux
|
120
127
|
containers:
|
121
128
|
- name: coredns
|
122
|
-
image: k8s.gcr.io/coredns:
|
129
|
+
image: k8s.gcr.io/coredns/coredns:v1.8.3
|
123
130
|
imagePullPolicy: IfNotPresent
|
124
131
|
resources:
|
125
132
|
limits:
|
@@ -11,14 +11,14 @@ metadata:
|
|
11
11
|
spec:
|
12
12
|
privileged: false
|
13
13
|
volumes:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
- configMap
|
15
|
+
- secret
|
16
|
+
- emptyDir
|
17
|
+
- hostPath
|
18
18
|
allowedHostPaths:
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
- pathPrefix: "/etc/cni/net.d"
|
20
|
+
- pathPrefix: "/etc/kube-flannel"
|
21
|
+
- pathPrefix: "/run/flannel"
|
22
22
|
readOnlyRootFilesystem: false
|
23
23
|
# Users and groups
|
24
24
|
runAsUser:
|
@@ -31,7 +31,7 @@ spec:
|
|
31
31
|
allowPrivilegeEscalation: false
|
32
32
|
defaultAllowPrivilegeEscalation: false
|
33
33
|
# Capabilities
|
34
|
-
allowedCapabilities: ['NET_ADMIN']
|
34
|
+
allowedCapabilities: ['NET_ADMIN', 'NET_RAW']
|
35
35
|
defaultAddCapabilities: []
|
36
36
|
requiredDropCapabilities: []
|
37
37
|
# Host namespaces
|
@@ -47,36 +47,36 @@ spec:
|
|
47
47
|
rule: 'RunAsAny'
|
48
48
|
---
|
49
49
|
kind: ClusterRole
|
50
|
-
apiVersion: rbac.authorization.k8s.io/
|
50
|
+
apiVersion: rbac.authorization.k8s.io/v1
|
51
51
|
metadata:
|
52
52
|
name: flannel
|
53
53
|
rules:
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
54
|
+
- apiGroups: ['extensions']
|
55
|
+
resources: ['podsecuritypolicies']
|
56
|
+
verbs: ['use']
|
57
|
+
resourceNames: ['psp.flannel.unprivileged']
|
58
|
+
- apiGroups:
|
59
|
+
- ""
|
60
|
+
resources:
|
61
|
+
- pods
|
62
|
+
verbs:
|
63
|
+
- get
|
64
|
+
- apiGroups:
|
65
|
+
- ""
|
66
|
+
resources:
|
67
|
+
- nodes
|
68
|
+
verbs:
|
69
|
+
- list
|
70
|
+
- watch
|
71
|
+
- apiGroups:
|
72
|
+
- ""
|
73
|
+
resources:
|
74
|
+
- nodes/status
|
75
|
+
verbs:
|
76
|
+
- patch
|
77
77
|
---
|
78
78
|
kind: ClusterRoleBinding
|
79
|
-
apiVersion: rbac.authorization.k8s.io/
|
79
|
+
apiVersion: rbac.authorization.k8s.io/v1
|
80
80
|
metadata:
|
81
81
|
name: flannel
|
82
82
|
roleRef:
|
@@ -134,7 +134,7 @@ data:
|
|
134
134
|
apiVersion: apps/v1
|
135
135
|
kind: DaemonSet
|
136
136
|
metadata:
|
137
|
-
name: kube-flannel-ds
|
137
|
+
name: kube-flannel-ds
|
138
138
|
namespace: kube-system
|
139
139
|
labels:
|
140
140
|
tier: node
|
@@ -153,23 +153,20 @@ spec:
|
|
153
153
|
nodeAffinity:
|
154
154
|
requiredDuringSchedulingIgnoredDuringExecution:
|
155
155
|
nodeSelectorTerms:
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
- key: kubernetes.io/arch
|
162
|
-
operator: In
|
163
|
-
values:
|
164
|
-
- amd64
|
156
|
+
- matchExpressions:
|
157
|
+
- key: kubernetes.io/os
|
158
|
+
operator: In
|
159
|
+
values:
|
160
|
+
- linux
|
165
161
|
hostNetwork: true
|
162
|
+
priorityClassName: system-node-critical
|
166
163
|
tolerations:
|
167
164
|
- operator: Exists
|
168
165
|
effect: NoSchedule
|
169
166
|
serviceAccountName: flannel
|
170
167
|
initContainers:
|
171
168
|
- name: install-cni
|
172
|
-
image: quay.io/coreos/flannel:v0.
|
169
|
+
image: quay.io/coreos/flannel:v0.14.0
|
173
170
|
command:
|
174
171
|
- cp
|
175
172
|
args:
|
@@ -183,7 +180,7 @@ spec:
|
|
183
180
|
mountPath: /etc/kube-flannel/
|
184
181
|
containers:
|
185
182
|
- name: kube-flannel
|
186
|
-
image: quay.io/coreos/flannel:v0.
|
183
|
+
image: quay.io/coreos/flannel:v0.14.0
|
187
184
|
command:
|
188
185
|
- /opt/bin/flanneld
|
189
186
|
args:
|
@@ -199,7 +196,7 @@ spec:
|
|
199
196
|
securityContext:
|
200
197
|
privileged: false
|
201
198
|
capabilities:
|
202
|
-
add: ["NET_ADMIN"]
|
199
|
+
add: ["NET_ADMIN", "NET_RAW"]
|
203
200
|
env:
|
204
201
|
- name: POD_NAME
|
205
202
|
valueFrom:
|
@@ -215,388 +212,12 @@ spec:
|
|
215
212
|
- name: flannel-cfg
|
216
213
|
mountPath: /etc/kube-flannel/
|
217
214
|
volumes:
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
---
|
228
|
-
apiVersion: apps/v1
|
229
|
-
kind: DaemonSet
|
230
|
-
metadata:
|
231
|
-
name: kube-flannel-ds-arm64
|
232
|
-
namespace: kube-system
|
233
|
-
labels:
|
234
|
-
tier: node
|
235
|
-
app: flannel
|
236
|
-
spec:
|
237
|
-
selector:
|
238
|
-
matchLabels:
|
239
|
-
app: flannel
|
240
|
-
template:
|
241
|
-
metadata:
|
242
|
-
labels:
|
243
|
-
tier: node
|
244
|
-
app: flannel
|
245
|
-
spec:
|
246
|
-
affinity:
|
247
|
-
nodeAffinity:
|
248
|
-
requiredDuringSchedulingIgnoredDuringExecution:
|
249
|
-
nodeSelectorTerms:
|
250
|
-
- matchExpressions:
|
251
|
-
- key: kubernetes.io/os
|
252
|
-
operator: In
|
253
|
-
values:
|
254
|
-
- linux
|
255
|
-
- key: kubernetes.io/arch
|
256
|
-
operator: In
|
257
|
-
values:
|
258
|
-
- arm64
|
259
|
-
hostNetwork: true
|
260
|
-
tolerations:
|
261
|
-
- operator: Exists
|
262
|
-
effect: NoSchedule
|
263
|
-
serviceAccountName: flannel
|
264
|
-
initContainers:
|
265
|
-
- name: install-cni
|
266
|
-
image: quay.io/coreos/flannel:v0.12.0-arm64
|
267
|
-
command:
|
268
|
-
- cp
|
269
|
-
args:
|
270
|
-
- -f
|
271
|
-
- /etc/kube-flannel/cni-conf.json
|
272
|
-
- /etc/cni/net.d/10-flannel.conflist
|
273
|
-
volumeMounts:
|
274
|
-
- name: cni
|
275
|
-
mountPath: /etc/cni/net.d
|
276
|
-
- name: flannel-cfg
|
277
|
-
mountPath: /etc/kube-flannel/
|
278
|
-
containers:
|
279
|
-
- name: kube-flannel
|
280
|
-
image: quay.io/coreos/flannel:v0.12.0-arm64
|
281
|
-
command:
|
282
|
-
- /opt/bin/flanneld
|
283
|
-
args:
|
284
|
-
- --ip-masq
|
285
|
-
- --kube-subnet-mgr
|
286
|
-
resources:
|
287
|
-
requests:
|
288
|
-
cpu: "100m"
|
289
|
-
memory: "50Mi"
|
290
|
-
limits:
|
291
|
-
cpu: "100m"
|
292
|
-
memory: "50Mi"
|
293
|
-
securityContext:
|
294
|
-
privileged: false
|
295
|
-
capabilities:
|
296
|
-
add: ["NET_ADMIN"]
|
297
|
-
env:
|
298
|
-
- name: POD_NAME
|
299
|
-
valueFrom:
|
300
|
-
fieldRef:
|
301
|
-
fieldPath: metadata.name
|
302
|
-
- name: POD_NAMESPACE
|
303
|
-
valueFrom:
|
304
|
-
fieldRef:
|
305
|
-
fieldPath: metadata.namespace
|
306
|
-
volumeMounts:
|
307
|
-
- name: run
|
308
|
-
mountPath: /run/flannel
|
309
|
-
- name: flannel-cfg
|
310
|
-
mountPath: /etc/kube-flannel/
|
311
|
-
volumes:
|
312
|
-
- name: run
|
313
|
-
hostPath:
|
314
|
-
path: /run/flannel
|
315
|
-
- name: cni
|
316
|
-
hostPath:
|
317
|
-
path: /etc/cni/net.d
|
318
|
-
- name: flannel-cfg
|
319
|
-
configMap:
|
320
|
-
name: kube-flannel-cfg
|
321
|
-
---
|
322
|
-
apiVersion: apps/v1
|
323
|
-
kind: DaemonSet
|
324
|
-
metadata:
|
325
|
-
name: kube-flannel-ds-arm
|
326
|
-
namespace: kube-system
|
327
|
-
labels:
|
328
|
-
tier: node
|
329
|
-
app: flannel
|
330
|
-
spec:
|
331
|
-
selector:
|
332
|
-
matchLabels:
|
333
|
-
app: flannel
|
334
|
-
template:
|
335
|
-
metadata:
|
336
|
-
labels:
|
337
|
-
tier: node
|
338
|
-
app: flannel
|
339
|
-
spec:
|
340
|
-
affinity:
|
341
|
-
nodeAffinity:
|
342
|
-
requiredDuringSchedulingIgnoredDuringExecution:
|
343
|
-
nodeSelectorTerms:
|
344
|
-
- matchExpressions:
|
345
|
-
- key: kubernetes.io/os
|
346
|
-
operator: In
|
347
|
-
values:
|
348
|
-
- linux
|
349
|
-
- key: kubernetes.io/arch
|
350
|
-
operator: In
|
351
|
-
values:
|
352
|
-
- arm
|
353
|
-
hostNetwork: true
|
354
|
-
tolerations:
|
355
|
-
- operator: Exists
|
356
|
-
effect: NoSchedule
|
357
|
-
serviceAccountName: flannel
|
358
|
-
initContainers:
|
359
|
-
- name: install-cni
|
360
|
-
image: quay.io/coreos/flannel:v0.12.0-arm
|
361
|
-
command:
|
362
|
-
- cp
|
363
|
-
args:
|
364
|
-
- -f
|
365
|
-
- /etc/kube-flannel/cni-conf.json
|
366
|
-
- /etc/cni/net.d/10-flannel.conflist
|
367
|
-
volumeMounts:
|
368
|
-
- name: cni
|
369
|
-
mountPath: /etc/cni/net.d
|
370
|
-
- name: flannel-cfg
|
371
|
-
mountPath: /etc/kube-flannel/
|
372
|
-
containers:
|
373
|
-
- name: kube-flannel
|
374
|
-
image: quay.io/coreos/flannel:v0.12.0-arm
|
375
|
-
command:
|
376
|
-
- /opt/bin/flanneld
|
377
|
-
args:
|
378
|
-
- --ip-masq
|
379
|
-
- --kube-subnet-mgr
|
380
|
-
resources:
|
381
|
-
requests:
|
382
|
-
cpu: "100m"
|
383
|
-
memory: "50Mi"
|
384
|
-
limits:
|
385
|
-
cpu: "100m"
|
386
|
-
memory: "50Mi"
|
387
|
-
securityContext:
|
388
|
-
privileged: false
|
389
|
-
capabilities:
|
390
|
-
add: ["NET_ADMIN"]
|
391
|
-
env:
|
392
|
-
- name: POD_NAME
|
393
|
-
valueFrom:
|
394
|
-
fieldRef:
|
395
|
-
fieldPath: metadata.name
|
396
|
-
- name: POD_NAMESPACE
|
397
|
-
valueFrom:
|
398
|
-
fieldRef:
|
399
|
-
fieldPath: metadata.namespace
|
400
|
-
volumeMounts:
|
401
|
-
- name: run
|
402
|
-
mountPath: /run/flannel
|
403
|
-
- name: flannel-cfg
|
404
|
-
mountPath: /etc/kube-flannel/
|
405
|
-
volumes:
|
406
|
-
- name: run
|
407
|
-
hostPath:
|
408
|
-
path: /run/flannel
|
409
|
-
- name: cni
|
410
|
-
hostPath:
|
411
|
-
path: /etc/cni/net.d
|
412
|
-
- name: flannel-cfg
|
413
|
-
configMap:
|
414
|
-
name: kube-flannel-cfg
|
415
|
-
---
|
416
|
-
apiVersion: apps/v1
|
417
|
-
kind: DaemonSet
|
418
|
-
metadata:
|
419
|
-
name: kube-flannel-ds-ppc64le
|
420
|
-
namespace: kube-system
|
421
|
-
labels:
|
422
|
-
tier: node
|
423
|
-
app: flannel
|
424
|
-
spec:
|
425
|
-
selector:
|
426
|
-
matchLabels:
|
427
|
-
app: flannel
|
428
|
-
template:
|
429
|
-
metadata:
|
430
|
-
labels:
|
431
|
-
tier: node
|
432
|
-
app: flannel
|
433
|
-
spec:
|
434
|
-
affinity:
|
435
|
-
nodeAffinity:
|
436
|
-
requiredDuringSchedulingIgnoredDuringExecution:
|
437
|
-
nodeSelectorTerms:
|
438
|
-
- matchExpressions:
|
439
|
-
- key: kubernetes.io/os
|
440
|
-
operator: In
|
441
|
-
values:
|
442
|
-
- linux
|
443
|
-
- key: kubernetes.io/arch
|
444
|
-
operator: In
|
445
|
-
values:
|
446
|
-
- ppc64le
|
447
|
-
hostNetwork: true
|
448
|
-
tolerations:
|
449
|
-
- operator: Exists
|
450
|
-
effect: NoSchedule
|
451
|
-
serviceAccountName: flannel
|
452
|
-
initContainers:
|
453
|
-
- name: install-cni
|
454
|
-
image: quay.io/coreos/flannel:v0.12.0-ppc64le
|
455
|
-
command:
|
456
|
-
- cp
|
457
|
-
args:
|
458
|
-
- -f
|
459
|
-
- /etc/kube-flannel/cni-conf.json
|
460
|
-
- /etc/cni/net.d/10-flannel.conflist
|
461
|
-
volumeMounts:
|
462
|
-
- name: cni
|
463
|
-
mountPath: /etc/cni/net.d
|
464
|
-
- name: flannel-cfg
|
465
|
-
mountPath: /etc/kube-flannel/
|
466
|
-
containers:
|
467
|
-
- name: kube-flannel
|
468
|
-
image: quay.io/coreos/flannel:v0.12.0-ppc64le
|
469
|
-
command:
|
470
|
-
- /opt/bin/flanneld
|
471
|
-
args:
|
472
|
-
- --ip-masq
|
473
|
-
- --kube-subnet-mgr
|
474
|
-
resources:
|
475
|
-
requests:
|
476
|
-
cpu: "100m"
|
477
|
-
memory: "50Mi"
|
478
|
-
limits:
|
479
|
-
cpu: "100m"
|
480
|
-
memory: "50Mi"
|
481
|
-
securityContext:
|
482
|
-
privileged: false
|
483
|
-
capabilities:
|
484
|
-
add: ["NET_ADMIN"]
|
485
|
-
env:
|
486
|
-
- name: POD_NAME
|
487
|
-
valueFrom:
|
488
|
-
fieldRef:
|
489
|
-
fieldPath: metadata.name
|
490
|
-
- name: POD_NAMESPACE
|
491
|
-
valueFrom:
|
492
|
-
fieldRef:
|
493
|
-
fieldPath: metadata.namespace
|
494
|
-
volumeMounts:
|
495
|
-
- name: run
|
496
|
-
mountPath: /run/flannel
|
497
|
-
- name: flannel-cfg
|
498
|
-
mountPath: /etc/kube-flannel/
|
499
|
-
volumes:
|
500
|
-
- name: run
|
501
|
-
hostPath:
|
502
|
-
path: /run/flannel
|
503
|
-
- name: cni
|
504
|
-
hostPath:
|
505
|
-
path: /etc/cni/net.d
|
506
|
-
- name: flannel-cfg
|
507
|
-
configMap:
|
508
|
-
name: kube-flannel-cfg
|
509
|
-
---
|
510
|
-
apiVersion: apps/v1
|
511
|
-
kind: DaemonSet
|
512
|
-
metadata:
|
513
|
-
name: kube-flannel-ds-s390x
|
514
|
-
namespace: kube-system
|
515
|
-
labels:
|
516
|
-
tier: node
|
517
|
-
app: flannel
|
518
|
-
spec:
|
519
|
-
selector:
|
520
|
-
matchLabels:
|
521
|
-
app: flannel
|
522
|
-
template:
|
523
|
-
metadata:
|
524
|
-
labels:
|
525
|
-
tier: node
|
526
|
-
app: flannel
|
527
|
-
spec:
|
528
|
-
affinity:
|
529
|
-
nodeAffinity:
|
530
|
-
requiredDuringSchedulingIgnoredDuringExecution:
|
531
|
-
nodeSelectorTerms:
|
532
|
-
- matchExpressions:
|
533
|
-
- key: kubernetes.io/os
|
534
|
-
operator: In
|
535
|
-
values:
|
536
|
-
- linux
|
537
|
-
- key: kubernetes.io/arch
|
538
|
-
operator: In
|
539
|
-
values:
|
540
|
-
- s390x
|
541
|
-
hostNetwork: true
|
542
|
-
tolerations:
|
543
|
-
- operator: Exists
|
544
|
-
effect: NoSchedule
|
545
|
-
serviceAccountName: flannel
|
546
|
-
initContainers:
|
547
|
-
- name: install-cni
|
548
|
-
image: quay.io/coreos/flannel:v0.12.0-s390x
|
549
|
-
command:
|
550
|
-
- cp
|
551
|
-
args:
|
552
|
-
- -f
|
553
|
-
- /etc/kube-flannel/cni-conf.json
|
554
|
-
- /etc/cni/net.d/10-flannel.conflist
|
555
|
-
volumeMounts:
|
556
|
-
- name: cni
|
557
|
-
mountPath: /etc/cni/net.d
|
558
|
-
- name: flannel-cfg
|
559
|
-
mountPath: /etc/kube-flannel/
|
560
|
-
containers:
|
561
|
-
- name: kube-flannel
|
562
|
-
image: quay.io/coreos/flannel:v0.12.0-s390x
|
563
|
-
command:
|
564
|
-
- /opt/bin/flanneld
|
565
|
-
args:
|
566
|
-
- --ip-masq
|
567
|
-
- --kube-subnet-mgr
|
568
|
-
resources:
|
569
|
-
requests:
|
570
|
-
cpu: "100m"
|
571
|
-
memory: "50Mi"
|
572
|
-
limits:
|
573
|
-
cpu: "100m"
|
574
|
-
memory: "50Mi"
|
575
|
-
securityContext:
|
576
|
-
privileged: false
|
577
|
-
capabilities:
|
578
|
-
add: ["NET_ADMIN"]
|
579
|
-
env:
|
580
|
-
- name: POD_NAME
|
581
|
-
valueFrom:
|
582
|
-
fieldRef:
|
583
|
-
fieldPath: metadata.name
|
584
|
-
- name: POD_NAMESPACE
|
585
|
-
valueFrom:
|
586
|
-
fieldRef:
|
587
|
-
fieldPath: metadata.namespace
|
588
|
-
volumeMounts:
|
589
|
-
- name: run
|
590
|
-
mountPath: /run/flannel
|
591
|
-
- name: flannel-cfg
|
592
|
-
mountPath: /etc/kube-flannel/
|
593
|
-
volumes:
|
594
|
-
- name: run
|
595
|
-
hostPath:
|
596
|
-
path: /run/flannel
|
597
|
-
- name: cni
|
598
|
-
hostPath:
|
599
|
-
path: /etc/cni/net.d
|
600
|
-
- name: flannel-cfg
|
601
|
-
configMap:
|
602
|
-
name: kube-flannel-cfg
|
215
|
+
- name: run
|
216
|
+
hostPath:
|
217
|
+
path: /run/flannel
|
218
|
+
- name: cni
|
219
|
+
hostPath:
|
220
|
+
path: /etc/cni/net.d
|
221
|
+
- name: flannel-cfg
|
222
|
+
configMap:
|
223
|
+
name: kube-flannel-cfg
|