porkadot 0.23.0 → 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 (48) 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/metallb.config.yaml.erb +1 -12
  31. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml.erb +507 -252
  32. data/lib/porkadot/assets/kubernetes/manifests/kube-apiserver.yaml.erb +4 -1
  33. data/lib/porkadot/assets/kubernetes/manifests/kube-controller-manager.yaml.erb +3 -0
  34. data/lib/porkadot/assets/kubernetes/manifests/kube-scheduler.yaml.erb +3 -1
  35. data/lib/porkadot/assets/kubernetes.rb +22 -1
  36. data/lib/porkadot/config.rb +1 -1
  37. data/lib/porkadot/configs/addons.rb +4 -0
  38. data/lib/porkadot/configs/etcd.rb +9 -0
  39. data/lib/porkadot/configs/kubelet.rb +25 -7
  40. data/lib/porkadot/default.yaml +17 -15
  41. data/lib/porkadot/install/bootstrap.rb +1 -1
  42. data/lib/porkadot/install/kubelet.rb +24 -40
  43. data/lib/porkadot/version.rb +1 -1
  44. data/lib/porkadot.rb +1 -0
  45. metadata +17 -7
  46. data/lib/porkadot/assets/kubelet/install.sh.erb +0 -35
  47. data/lib/porkadot/assets/kubelet/setup-containerd.sh.erb +0 -17
  48. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml +0 -480
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e2a062cd96fa6e9c56b2fd70f7d0dd4709265e1b5cf58057048cc19bf46868e
4
- data.tar.gz: 4a18c93e458b1a822fe35b73d7af0b12804d4d4c174cbb8a3efc0daf30bbbc1e
3
+ metadata.gz: 91ee01d34fb9504cf2c2da60cc375102d212a88adfa83d5335ba07efaf1dc126
4
+ data.tar.gz: 88cc5cf3c93e0bf12d41a558a1d92e2fb62a86ea7824282e55d2eb66c9fc029b
5
5
  SHA512:
6
- metadata.gz: fef441fe9dc698fa5e993ae9b7d5a4e6270590aa2f8fcdbb3bca4601266faed8d6b5c96f545d3347716915bdbe0f78ebc1898caef201c1be50cc006955dec44d
7
- data.tar.gz: a7bfadba85de2c3d631ebab8f74c4afaa75fcfdabeccbae6d20d4f23e2817185efc7d4174d4e901e19da8dbabcf4bdf522e12706dbc025113e6b0480d9b32826
6
+ metadata.gz: ad4c075b775c38030b2f96a32d09a2a28a3eb10eba0c4bb96109ee997a3c26d4c3e11ef3e37dbffc41f3c63d158668242a14493002ec2bcc9b7485886eb2b62b
7
+ data.tar.gz: ae0f9beb775bea1601fc7189a5aff026592c88567bf5dc9be32a82068849d48da451c06fd0c56c7250c371a4ff4110d92187c00a6257a9df199751e1e6c1328d
@@ -0,0 +1,5 @@
1
+ apiVersion: kustomize.config.k8s.io/v1beta1
2
+ kind: Kustomization
3
+
4
+ resources:
5
+ - https://github.com/metallb/metallb/config/crd/?ref=v0.13.9
@@ -0,0 +1,8 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: metallb-excludel2
5
+ namespace: metallb-system
6
+ data:
7
+ excludel2.yaml: |
8
+ announcedInterfacesToExclude: ["docker.*", "cbr.*", "dummy.*", "virbr.*", "lxcbr.*", "veth.*", "lo", "^cali.*", "^tunl.*", "flannel.*", "kube-ipvs.*", "cni.*", "^nodelocaldns.*"]
@@ -0,0 +1,10 @@
1
+ apiVersion: kustomize.config.k8s.io/v1beta1
2
+ kind: Kustomization
3
+
4
+ namespace: metallb-system
5
+
6
+ resources:
7
+ - https://github.com/metallb/metallb/config/rbac/?ref=v0.13.9
8
+ - https://github.com/metallb/metallb/config/controllers/?ref=v0.13.9
9
+ - https://github.com/metallb/metallb/config/webhook/?ref=v0.13.9
10
+ - exclude-l2-config.yaml
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ ROOT=$(dirname "${BASH_SOURCE}")/..
4
+ ROOT=$(cd ${ROOT} && pwd)
5
+
6
+ curl -L https://github.com/alex1989hu/kubelet-serving-cert-approver/raw/main/deploy/standalone-install.yaml > ${ROOT}/lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/src.yaml.erb
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+
3
+ ROOT=$(dirname "${BASH_SOURCE}")/..
4
+ ROOT=$(cd ${ROOT} && pwd)
5
+
6
+ kubectl kustomize ${ROOT}/hack/metallb/crds > ${ROOT}/lib/porkadot/assets/kubernetes/manifests/addons/metallb/crds.yaml
7
+ kubectl kustomize ${ROOT}/hack/metallb > ${ROOT}/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml.erb
@@ -46,7 +46,7 @@ spec:
46
46
  periodSeconds: 1
47
47
  timeoutSeconds: 15
48
48
  startupProbe:
49
- failureThreshold: 24
49
+ failureThreshold: 48
50
50
  httpGet:
51
51
  host: 127.0.0.1
52
52
  path: /livez
@@ -13,23 +13,27 @@ spec:
13
13
  image: <%= etcd.image_repository %>:<%= etcd.image_tag %>
14
14
  command:
15
15
  - /usr/local/bin/etcd
16
- - --name=<%= config.member_name %>
17
16
  - --advertise-client-urls=<%= config.advertise_client_urls.join(',') %>
17
+ - --cert-file=/etc/etcd/pki/etcd.crt
18
+ - --client-cert-auth=true
19
+ - --data-dir=/var/lib/etcd
20
+ - --election-timeout=10000
21
+ - --experimental-initial-corrupt-check=true
22
+ - --experimental-watch-progress-notify-interval=5s
23
+ - --heartbeat-interval=1000
18
24
  - --initial-advertise-peer-urls=<%= config.advertise_peer_urls.join(',') %>
19
25
  - --initial-cluster=<%= config.initial_cluster.map{|k,v| "#{k}=#{v}"}.join(',') %>
26
+ - --key-file=/etc/etcd/pki/etcd.key
20
27
  - --listen-client-urls=<%= config.listen_client_urls.join(',') %>
21
28
  - --listen-peer-urls=<%= config.listen_peer_urls.join(',') %>
22
- - --client-cert-auth=true
23
- - --cert-file=/etc/etcd/pki/etcd.crt
24
- - --key-file=/etc/etcd/pki/etcd.key
25
- - --trusted-ca-file=/etc/etcd/pki/ca.crt
26
- - --peer-client-cert-auth=true
29
+ - --listen-metrics-urls=<%= config.listen_metrics_urls.join(',') %>
30
+ - --name=<%= config.member_name %>
27
31
  - --peer-cert-file=/etc/etcd/pki/etcd.crt
32
+ - --peer-client-cert-auth=true
28
33
  - --peer-key-file=/etc/etcd/pki/etcd.key
29
34
  - --peer-trusted-ca-file=/etc/etcd/pki/ca.crt
30
- - --data-dir=/var/lib/etcd
31
- - --heartbeat-interval=1000
32
- - --election-timeout=10000
35
+ - --snapshot-count=10000
36
+ - --trusted-ca-file=/etc/etcd/pki/ca.crt
33
37
  env:
34
38
  <%= u.to_yaml(etcd.extra_env, 4) -%>
35
39
  volumeMounts:
@@ -44,6 +48,10 @@ spec:
44
48
  - mountPath: /etc/etcd/pki
45
49
  name: etcd-certs-host
46
50
  readOnly: true
51
+ priorityClassName: system-node-critical
52
+ securityContext:
53
+ seccompProfile:
54
+ type: RuntimeDefault
47
55
  volumes:
48
56
  - hostPath:
49
57
  path: /var/lib/etcd
@@ -0,0 +1,4 @@
1
+ export ETCDCTL_CACERT=/etc/etcd/pki/ca.crt
2
+ export ETCDCTL_CERT=/etc/etcd/pki/etcd.crt
3
+ export ETCDCTL_KEY=/etc/etcd/pki/etcd.key
4
+ export ETCDCTL_ENDPOINTS=https://127.0.0.1:2379
@@ -8,5 +8,6 @@ mkdir -p /etc/etcd/pki
8
8
  cp ${ROOT}/etcd.crt /etc/etcd/pki/
9
9
  cp ${ROOT}/etcd.key /etc/etcd/pki/
10
10
  cp ${ROOT}/ca.crt /etc/etcd/pki/
11
+ cp ${ROOT}/etcd.env /etc/etcd/
11
12
  mkdir -p /etc/kubernetes/manifests
12
13
  cp ${ROOT}/etcd-server.yaml /etc/kubernetes/manifests/
@@ -56,6 +56,7 @@ module Porkadot; module Assets
56
56
  render_ca_crt
57
57
  render_etcd_crt
58
58
  render_erb 'etcd-server.yaml', etcd: global_config.etcd
59
+ render_erb 'etcd.env', etcd: global_config.etcd
59
60
  render_erb 'install.sh', etcd: global_config.etcd
60
61
  end
61
62
 
@@ -1,39 +1 @@
1
- apiVersion: kubelet.config.k8s.io/v1beta1
2
- authentication:
3
- anonymous:
4
- enabled: false
5
- webhook:
6
- cacheTTL: 0s
7
- enabled: true
8
- x509:
9
- clientCAFile: /etc/kubernetes/pki/ca.crt
10
- authorization:
11
- mode: Webhook
12
- webhook:
13
- cacheAuthorizedTTL: 0s
14
- cacheUnauthorizedTTL: 0s
15
- cgroupDriver: systemd
16
- clusterDNS:
17
- - <%= global_config.k8s.networking.dns_ip %>
18
- clusterDomain: <%= global_config.k8s.networking.dns_domain %>
19
- cpuManagerReconcilePeriod: 0s
20
- evictionPressureTransitionPeriod: 0s
21
- fileCheckFrequency: 0s
22
- healthzBindAddress: 127.0.0.1
23
- healthzPort: 10248
24
- httpCheckFrequency: 0s
25
- imageMinimumGCAge: 0s
26
- kind: KubeletConfiguration
27
- nodeStatusReportFrequency: 0s
28
- nodeStatusUpdateFrequency: 0s
29
- rotateCertificates: true
30
- runtimeRequestTimeout: 0s
31
- staticPodPath: /etc/kubernetes/manifests
32
- streamingConnectionIdleTimeout: 0s
33
- syncFrequency: 0s
34
- volumeStatsAggPeriod: 0s
35
- serverTLSBootstrap: true
36
- featureGates:
37
- CSIMigration: false
38
-
39
- # vim:filetype=yaml
1
+ <%= config.kubelet_config.to_hash.to_yaml %>
@@ -0,0 +1 @@
1
+ InitiatorName=iqn.2020-04.cloud.unstable:<%= config.hostname %>
@@ -5,18 +5,14 @@ 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
8
  --container-runtime-endpoint=/run/containerd/containerd.sock \
10
9
  --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf \
11
10
  --kubeconfig=/etc/kubernetes/kubelet.conf \
12
11
  --config=/var/lib/kubelet/config.yaml \
13
- --network-plugin=cni \
14
- --pod-infra-container-image=k8s.gcr.io/pause:3.4.1 \
15
12
  --hostname-override=<%= config.hostname %> \
16
- --node-labels=<%= config.labels_string %> \
17
- --register-with-taints=<%= config.taints_string %> \
18
- --resolv-conf=/run/systemd/resolve/resolv.conf
13
+ --node-labels=<%= config.labels_string %>
19
14
  Restart=always
15
+
20
16
  StartLimitInterval=0
21
17
  RestartSec=10
22
18
 
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "<%= config.name %>",
3
+ "labels": <%= config.labels.to_json %>,
4
+ "annotations": <%= config.annotations.to_json %>
5
+ }
@@ -1,5 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
+ set -euo pipefail
4
+
3
5
  architecture="arm64"
4
6
  case $(uname -m) in
5
7
  x86_64) architecture="amd64" ;;
@@ -28,7 +30,7 @@ rm -f /opt/bin/kubelet
28
30
  ln -s /opt/bin/kubelet-${RELEASE} /opt/bin/kubelet
29
31
 
30
32
  ETCD_VER="<%= global_config.etcd.image_tag.gsub(/\-\w+$/, '') %>"
31
- ETCD_URL=https://storage.googleapis.com/etcd/${ETCD_VER}/etcd-${ETCD_VER}-linux-${architecture}.tar.gz
33
+ ETCD_URL=https://github.com/etcd-io/etcd/releases/download/v${ETCD_VER}/etcd-v${ETCD_VER}-linux-${architecture}.tar.gz
32
34
  ETCD_TMP=$(mktemp -d)
33
35
 
34
36
  curl -L ${ETCD_URL} -o ${ETCD_TMP}/etcd.tar.gz
@@ -41,9 +41,7 @@ net.ipv4.ip_forward = 1
41
41
  net.bridge.bridge-nf-call-iptables = 1
42
42
  EOF
43
43
 
44
- cat <<EOF > /etc/iscsi/initiatorname.iscsi
45
- InitiatorName=iqn.2020-04.cloud.unstable:<%= config.hostname %>
46
- EOF
44
+ cp ${ROOT}/initiatorname.iscsi /etc/iscsi/
47
45
 
48
46
  systemctl restart iscsid.service
49
47
 
@@ -4,11 +4,26 @@ set -eu
4
4
  export LC_ALL=C
5
5
  ROOT=$(dirname "${BASH_SOURCE}")
6
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
+
7
23
  # Install addons
8
- for addon in $(ls ${ROOT}/addons/); do
9
- install_sh="${ROOT}/addons/${addon}/install.sh"
10
- if [[ -f ${install_sh} ]]; then
11
- echo "Install: ${install_sh}"
12
- bash ${install_sh}
13
- fi
14
- done
24
+ bash ${ROOT}/setup-node.sh
25
+
26
+ rm -f ${KUBERNETES_PATH}/kubelet.conf
27
+ systemctl daemon-reload
28
+ systemctl enable kubelet
29
+ systemctl restart kubelet
@@ -0,0 +1,22 @@
1
+ #!/bin/bash
2
+ set -eu
3
+ export LC_ALL=C
4
+ ROOT=$(dirname "${BASH_SOURCE}")
5
+
6
+ mkdir -p /etc/containerd
7
+
8
+ if [[ -f ${ROOT}/containerd/config.toml ]]; then
9
+ cp -rp ${ROOT}/containerd/config.toml /etc/containerd/config.toml
10
+ else
11
+ containerd config default | tee /etc/containerd/config.toml
12
+
13
+ grep SystemdCgroup /etc/containerd/config.toml && :
14
+
15
+ if [[ $? == 0 ]]; then
16
+ sed -i -e "s/SystemdCgroup.*$/SystemdCgroup = true/" /etc/containerd/config.toml
17
+ else
18
+ sed -i -e "/containerd.runtimes.runc.options/a SystemdCgroup = true" /etc/containerd/config.toml
19
+ fi
20
+ fi
21
+
22
+ systemctl restart containerd
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+
3
+ set -eu
4
+ export LC_ALL=C
5
+ ROOT=$(dirname "${BASH_SOURCE}")
6
+
7
+ export PORKADOT_METADATA=${ROOT}/metadata.json
8
+
9
+ # Install addons
10
+ for addon in $(ls ${ROOT}/addons/); do
11
+ install_sh="${ROOT}/addons/${addon}/install.sh"
12
+ if [[ -f ${install_sh} ]]; then
13
+ echo "Install: ${install_sh}"
14
+ bash ${install_sh}
15
+ fi
16
+ done
@@ -57,7 +57,19 @@ module Porkadot; module Assets
57
57
  FileUtils.mkdir_p(config.addon_secrets_path)
58
58
  end
59
59
 
60
+ render_ca_crt
61
+ render_erb 'setup-node.sh'
62
+ render_erb 'setup-containerd.sh'
60
63
  render_erb 'install.sh'
64
+ render_erb 'install-deps.sh'
65
+ render_erb 'install-pkgs.sh'
66
+ end
67
+
68
+ def render_ca_crt
69
+ logger.info "----> ca.crt"
70
+ open(config.ca_crt_path, 'w') do |out|
71
+ out.write self.certs.ca_cert(false).to_pem
72
+ end
61
73
  end
62
74
  end
63
75
 
@@ -92,11 +104,8 @@ module Porkadot; module Assets
92
104
  render_bootstrap_certs
93
105
  render_erb 'config.yaml'
94
106
  render_erb 'kubelet.service'
95
- render_ca_crt
96
- render_erb 'install.sh'
97
- render_erb 'install-deps.sh'
98
- render_erb 'install-pkgs.sh'
99
- render_erb 'setup-containerd.sh'
107
+ render_erb 'initiatorname.iscsi'
108
+ render_erb 'metadata.json'
100
109
  end
101
110
 
102
111
  def render_bootstrap_certs
@@ -105,13 +114,6 @@ module Porkadot; module Assets
105
114
  self.bootstrap_cert(true)
106
115
  end
107
116
 
108
- def render_ca_crt
109
- logger.info "----> ca.crt"
110
- open(config.ca_crt_path, 'w') do |out|
111
- out.write self.certs.ca_cert(false).to_pem
112
- end
113
- end
114
-
115
117
  def bootstrap_key
116
118
  @bootstrap_key ||= certs.private_key(config.bootstrap_key_path)
117
119
  return @bootstrap_key
@@ -5,10 +5,12 @@ export LC_ALL=C
5
5
  ROOT=$(dirname "${BASH_SOURCE}")
6
6
  KUBECTL_OPTS=${KUBECTL_OPTS:-""}
7
7
 
8
- KUBECTL_OPTS="${KUBECTL_OPTS} --server-side --force-conflicts --prune"
8
+ KUBECTL_OPTS="${KUBECTL_OPTS} --prune"
9
9
  KUBECTL_OPTS="${KUBECTL_OPTS} -l kubernetes.unstable.cloud/installed-by=porkadot"
10
10
  <%- prune_allowlist.each do |a| -%>
11
11
  KUBECTL_OPTS="${KUBECTL_OPTS} --prune-whitelist=<%= a %>"
12
12
  <%- end -%>
13
13
 
14
+ /opt/bin/kubectl apply --force-conflicts --server-side -R -f ${ROOT}/manifests/crds
15
+ /opt/bin/kubectl wait --for condition=established --timeout=60s crd --all
14
16
  /opt/bin/kubectl apply ${KUBECTL_OPTS} -k ${ROOT}
@@ -126,7 +126,7 @@ spec:
126
126
  kubernetes.io/os: linux
127
127
  containers:
128
128
  - name: coredns
129
- image: k8s.gcr.io/coredns/coredns:v1.8.3
129
+ image: registry.k8s.io/coredns/coredns:v1.10.1
130
130
  imagePullPolicy: IfNotPresent
131
131
  resources:
132
132
  limits:
@@ -84,7 +84,7 @@ spec:
84
84
  fsGroup: 65534
85
85
  containers:
86
86
  - name: autoscaler
87
- image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.7.1
87
+ image: registry.k8s.io/cluster-proportional-autoscaler-amd64:1.7.1
88
88
  resources:
89
89
  requests:
90
90
  cpu: "20m"
@@ -1,62 +1,13 @@
1
1
  <% cni = config.flannel -%>
2
2
  <% k8s = global_config.k8s -%>
3
3
  ---
4
- apiVersion: policy/v1beta1
5
- kind: PodSecurityPolicy
6
- metadata:
7
- name: psp.flannel.unprivileged
8
- annotations:
9
- seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default
10
- seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default
11
- apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
12
- apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
13
- spec:
14
- privileged: false
15
- volumes:
16
- - configMap
17
- - secret
18
- - emptyDir
19
- - hostPath
20
- allowedHostPaths:
21
- - pathPrefix: "/etc/cni/net.d"
22
- - pathPrefix: "/etc/kube-flannel"
23
- - pathPrefix: "/run/flannel"
24
- readOnlyRootFilesystem: false
25
- # Users and groups
26
- runAsUser:
27
- rule: RunAsAny
28
- supplementalGroups:
29
- rule: RunAsAny
30
- fsGroup:
31
- rule: RunAsAny
32
- # Privilege Escalation
33
- allowPrivilegeEscalation: false
34
- defaultAllowPrivilegeEscalation: false
35
- # Capabilities
36
- allowedCapabilities: ['NET_ADMIN', 'NET_RAW']
37
- defaultAddCapabilities: []
38
- requiredDropCapabilities: []
39
- # Host namespaces
40
- hostPID: false
41
- hostIPC: false
42
- hostNetwork: true
43
- hostPorts:
44
- - min: 0
45
- max: 65535
46
- # SELinux
47
- seLinux:
48
- # SELinux is unused in CaaSP
49
- rule: 'RunAsAny'
50
- ---
51
4
  kind: ClusterRole
52
5
  apiVersion: rbac.authorization.k8s.io/v1
53
6
  metadata:
7
+ labels:
8
+ k8s-app: flannel
54
9
  name: flannel
55
10
  rules:
56
- - apiGroups: ['extensions']
57
- resources: ['podsecuritypolicies']
58
- verbs: ['use']
59
- resourceNames: ['psp.flannel.unprivileged']
60
11
  - apiGroups:
61
12
  - ""
62
13
  resources:
@@ -68,6 +19,7 @@ rules:
68
19
  resources:
69
20
  - nodes
70
21
  verbs:
22
+ - get
71
23
  - list
72
24
  - watch
73
25
  - apiGroups:
@@ -80,6 +32,8 @@ rules:
80
32
  kind: ClusterRoleBinding
81
33
  apiVersion: rbac.authorization.k8s.io/v1
82
34
  metadata:
35
+ labels:
36
+ k8s-app: flannel
83
37
  name: flannel
84
38
  roleRef:
85
39
  apiGroup: rbac.authorization.k8s.io
@@ -93,6 +47,8 @@ subjects:
93
47
  apiVersion: v1
94
48
  kind: ServiceAccount
95
49
  metadata:
50
+ labels:
51
+ k8s-app: flannel
96
52
  name: flannel
97
53
  namespace: kube-system
98
54
  ---
@@ -103,6 +59,7 @@ metadata:
103
59
  namespace: kube-system
104
60
  labels:
105
61
  tier: node
62
+ k8s-app: flannel
106
63
  app: flannel
107
64
  data:
108
65
  cni-conf.json: |
@@ -134,6 +91,7 @@ data:
134
91
  "EnableIPv6": true,
135
92
  "IPv6Network": "<%= k8s.networking.pod_v6subnet %>",
136
93
  <%- end -%>
94
+ "EnableNFTables": false,
137
95
  "Backend": {
138
96
  "Type": "<%= cni.backend %>"
139
97
  }
@@ -147,6 +105,7 @@ metadata:
147
105
  labels:
148
106
  tier: node
149
107
  app: flannel
108
+ k8s-app: flannel
150
109
  spec:
151
110
  selector:
152
111
  matchLabels:
@@ -221,6 +180,8 @@ spec:
221
180
  valueFrom:
222
181
  fieldRef:
223
182
  fieldPath: metadata.namespace
183
+ - name: EVENT_QUEUE_DEPTH
184
+ value: "5000"
224
185
  volumeMounts:
225
186
  - name: run
226
187
  mountPath: /run/flannel