porkadot 0.18.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/hack/gen-storage-version-migrator.sh +7 -0
  3. data/hack/storage-version-migrator/kustomization.yaml +77 -0
  4. data/lib/porkadot/assets/bootstrap/manifests/kube-apiserver.bootstrap.yaml.erb +4 -30
  5. data/lib/porkadot/assets/bootstrap/manifests/kube-controller-manager.bootstrap.yaml.erb +13 -16
  6. data/lib/porkadot/assets/bootstrap/manifests/kube-proxy.bootstrap.yaml.erb +3 -2
  7. data/lib/porkadot/assets/bootstrap/manifests/kube-scheduler.bootstrap.yaml.erb +3 -5
  8. data/lib/porkadot/assets/kubelet.rb +1 -0
  9. data/lib/porkadot/assets/kubelet/config.yaml.erb +1 -0
  10. data/lib/porkadot/assets/kubelet/install-pkgs.sh.erb +11 -1
  11. data/lib/porkadot/assets/kubelet/kubelet.service.erb +3 -1
  12. data/lib/porkadot/assets/kubelet/setup-containerd.sh.erb +10 -0
  13. data/lib/porkadot/assets/kubernetes.rb +2 -1
  14. data/lib/porkadot/assets/kubernetes/kubeconfig.yaml.erb +19 -0
  15. data/lib/porkadot/assets/kubernetes/manifests/coredns.yaml.erb +8 -1
  16. data/lib/porkadot/assets/kubernetes/manifests/flannel.yaml.erb +52 -431
  17. data/lib/porkadot/assets/kubernetes/manifests/kube-apiserver.secrets.yaml.erb +1 -0
  18. data/lib/porkadot/assets/kubernetes/manifests/kubelet-rubber-stamp.yaml.erb +1 -1
  19. data/lib/porkadot/assets/kubernetes/manifests/metallb.secrets.yaml.erb +13 -0
  20. data/lib/porkadot/assets/kubernetes/manifests/metallb.yaml.erb +116 -26
  21. data/lib/porkadot/assets/kubernetes/manifests/storage-version-migrator.yaml.erb +258 -228
  22. data/lib/porkadot/cmd/cli.rb +16 -0
  23. data/lib/porkadot/cmd/render/certs.rb +1 -1
  24. data/lib/porkadot/configs/kubernetes.rb +31 -1
  25. data/lib/porkadot/default.yaml +3 -3
  26. data/lib/porkadot/install/kubelet.rb +24 -0
  27. data/lib/porkadot/install/kubernetes.rb +2 -1
  28. data/lib/porkadot/version.rb +1 -1
  29. metadata +7 -3
  30. 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: d57037f96d15fcabbd441ec706449775c89984f0b6019b1f15f863ccc970360a
4
- data.tar.gz: 8c03689d67687fde6012cda7f0cea22e0f1c8b7b96a64942649d43e76560aaa2
3
+ metadata.gz: dab74c5a6f0fd112b9ec994a67fe85c2bbe02c478ab68c95dcf8c998d9ddb64f
4
+ data.tar.gz: 272069efcb1b5bea219c54b4a4b0ec432bc215352fa786adcfc7923fdf73ae75
5
5
  SHA512:
6
- metadata.gz: 9a941712075f648d17b5e6a75de10ce83974945ffb7feafcd630d4695d7ba7fab501d63e4a965319957ddf6676aa893e5035b01a2b93711ce1759153e35fc0d8
7
- data.tar.gz: cb9b0ff915cea06c91a8da7fcdd894bee593bda0ec2efe3593a4b9dd5030b42269e5ba1f29230a77b076629651e387995cd2b1022906a66848cd74b84585c713
6
+ metadata.gz: eea11e276a5d6d95b231f3dce02b36eeb040533902c03202273b66ac1ad1d6dbe52349a0a5bfc6a69e0a5cf920dee49e871dcc2b8174c5e2ea3c8460fff4ec67
7
+ data.tar.gz: fa3c81ddc0dc1330ad4ea579b27557bd7316b3ccec0f1cd08c11a1cd107ecb4a2b472d71502811e88addd185a72f7b5b1fd0355ded8929a6a1de0299054d1778
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+
3
+ set -eu
4
+ export LC_ALL=C
5
+ ROOT=$(dirname "${BASH_SOURCE}")
6
+
7
+ kustomize build ${ROOT}/storage-version-migrator | sed -e "s/NAMESPACE/kube-system/g" > ${ROOT}/../lib/porkadot/assets/kubernetes/manifests/storage-version-migrator.yaml.erb
@@ -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
- - --advertise-address=$(POD_IP)
24
- - --allow-privileged
25
- - --authorization-mode=Node,RBAC
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/secrets
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
- - --allocate-node-cidrs=true
19
- - --cluster-cidr=<%= k8s.networking.pod_subnet %>
20
- - --cluster-signing-cert-file=/etc/kubernetes/bootstrap/secrets/kubernetes/ca.crt
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
- - --config=/etc/kubernetes/bootstrap/kube-proxy-bootstrap.yaml
22
- - --hostname-override=$(NODE_NAME)
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
- - --kubeconfig=/etc/kubernetes/bootstrap/kubeconfig-bootstrap.yaml
19
- - --authentication-kubeconfig=/etc/kubernetes/bootstrap/kubeconfig-bootstrap.yaml
20
- - --authorization-kubeconfig=/etc/kubernetes/bootstrap/kubeconfig-bootstrap.yaml
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
@@ -64,6 +64,7 @@ module Porkadot; module Assets
64
64
  render_erb 'install.sh'
65
65
  render_erb 'install-deps.sh'
66
66
  render_erb 'install-pkgs.sh'
67
+ render_erb 'setup-containerd.sh'
67
68
  end
68
69
 
69
70
  def render_bootstrap_certs
@@ -12,6 +12,7 @@ authorization:
12
12
  webhook:
13
13
  cacheAuthorizedTTL: 0s
14
14
  cacheUnauthorizedTTL: 0s
15
+ cgroupDriver: systemd
15
16
  clusterDNS:
16
17
  - <%= global_config.k8s.networking.dns_ip %>
17
18
  clusterDomain: <%= global_config.k8s.networking.dns_domain %>
@@ -4,6 +4,7 @@ export LC_ALL=C
4
4
  ROOT=$(dirname "${BASH_SOURCE}")
5
5
 
6
6
  if type apt-get > /dev/null 2>&1 ;then
7
+ export DEBIAN_FRONTEND=noninteractive
7
8
  apt-get update
8
9
  apt-get install -y \
9
10
  ca-certificates \
@@ -26,9 +27,18 @@ if type apt-get > /dev/null 2>&1 ;then
26
27
  open-iscsi
27
28
  fi
28
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
+
29
38
  cat <<EOF > /etc/sysctl.d/k8s.conf
30
39
  net.bridge.bridge-nf-call-ip6tables = 1
31
- net.bridge.bridge-nf-call-iptables = 1
40
+ net.ipv4.ip_forward = 1
41
+ net.bridge.bridge-nf-call-iptables = 1
32
42
  EOF
33
43
 
34
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
@@ -28,6 +28,7 @@ module Porkadot; module Assets
28
28
  render_erb 'manifests/porkadot.yaml'
29
29
  render_erb 'manifests/kubelet.yaml'
30
30
  render_erb "manifests/#{lb.type}.yaml"
31
+ render_secrets_erb "manifests/#{lb.type}.secrets.yaml"
31
32
  render_erb "manifests/#{cni.type}.yaml"
32
33
  render_erb "manifests/coredns.yaml"
33
34
  render_erb "manifests/dns-horizontal-autoscaler.yaml"
@@ -37,9 +38,9 @@ module Porkadot; module Assets
37
38
  render_erb "manifests/kube-scheduler.yaml"
38
39
  render_erb "manifests/kube-controller-manager.yaml"
39
40
  render_secrets_erb "manifests/kube-controller-manager.secrets.yaml"
40
- render_erb "manifests/pod-checkpointer.yaml"
41
41
  render_erb "manifests/kubelet-rubber-stamp.yaml"
42
42
  render_erb "manifests/storage-version-migrator.yaml"
43
+ render_secrets_erb "kubeconfig.yaml"
43
44
  render_erb 'install.sh'
44
45
  end
45
46
 
@@ -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:1.6.7
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
- - configMap
15
- - secret
16
- - emptyDir
17
- - hostPath
14
+ - configMap
15
+ - secret
16
+ - emptyDir
17
+ - hostPath
18
18
  allowedHostPaths:
19
- - pathPrefix: "/etc/cni/net.d"
20
- - pathPrefix: "/etc/kube-flannel"
21
- - pathPrefix: "/run/flannel"
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/v1beta1
50
+ apiVersion: rbac.authorization.k8s.io/v1
51
51
  metadata:
52
52
  name: flannel
53
53
  rules:
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
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/v1beta1
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-amd64
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
- - matchExpressions:
157
- - key: kubernetes.io/os
158
- operator: In
159
- values:
160
- - linux
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.12.0-amd64
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.12.0-amd64
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
- - name: run
219
- hostPath:
220
- path: /run/flannel
221
- - name: cni
222
- hostPath:
223
- path: /etc/cni/net.d
224
- - name: flannel-cfg
225
- configMap:
226
- name: kube-flannel-cfg
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