kube-flannel.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. ---
  2. apiVersion: policy/v1beta1
  3. kind: PodSecurityPolicy
  4. metadata:
  5. name: psp.flannel.unprivileged
  6. annotations:
  7. seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default
  8. seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default
  9. apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
  10. apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
  11. spec:
  12. privileged: false
  13. volumes:
  14. - configMap
  15. - secret
  16. - emptyDir
  17. - hostPath
  18. allowedHostPaths:
  19. - pathPrefix: "/etc/cni/net.d"
  20. - pathPrefix: "/etc/kube-flannel"
  21. - pathPrefix: "/run/flannel"
  22. readOnlyRootFilesystem: false
  23. # Users and groups
  24. runAsUser:
  25. rule: RunAsAny
  26. supplementalGroups:
  27. rule: RunAsAny
  28. fsGroup:
  29. rule: RunAsAny
  30. # Privilege Escalation
  31. allowPrivilegeEscalation: false
  32. defaultAllowPrivilegeEscalation: false
  33. # Capabilities
  34. allowedCapabilities: ['NET_ADMIN']
  35. defaultAddCapabilities: []
  36. requiredDropCapabilities: []
  37. # Host namespaces
  38. hostPID: false
  39. hostIPC: false
  40. hostNetwork: true
  41. hostPorts:
  42. - min: 0
  43. max: 65535
  44. # SELinux
  45. seLinux:
  46. # SELinux is unsed in CaaSP
  47. rule: 'RunAsAny'
  48. ---
  49. kind: ClusterRole
  50. apiVersion: rbac.authorization.k8s.io/v1beta1
  51. metadata:
  52. name: flannel
  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
  77. ---
  78. kind: ClusterRoleBinding
  79. apiVersion: rbac.authorization.k8s.io/v1beta1
  80. metadata:
  81. name: flannel
  82. roleRef:
  83. apiGroup: rbac.authorization.k8s.io
  84. kind: ClusterRole
  85. name: flannel
  86. subjects:
  87. - kind: ServiceAccount
  88. name: flannel
  89. namespace: kube-system
  90. ---
  91. apiVersion: v1
  92. kind: ServiceAccount
  93. metadata:
  94. name: flannel
  95. namespace: kube-system
  96. ---
  97. kind: ConfigMap
  98. apiVersion: v1
  99. metadata:
  100. name: kube-flannel-cfg
  101. namespace: kube-system
  102. labels:
  103. tier: node
  104. app: flannel
  105. data:
  106. cni-conf.json: |
  107. {
  108. "name": "cbr0",
  109. "plugins": [
  110. {
  111. "type": "flannel",
  112. "delegate": {
  113. "hairpinMode": true,
  114. "isDefaultGateway": true
  115. }
  116. },
  117. {
  118. "type": "portmap",
  119. "capabilities": {
  120. "portMappings": true
  121. }
  122. }
  123. ]
  124. }
  125. net-conf.json: |
  126. {
  127. "Network": "10.244.0.0/16",
  128. "Backend": {
  129. "Type": "vxlan"
  130. }
  131. }
  132. ---
  133. apiVersion: apps/v1
  134. kind: DaemonSet
  135. metadata:
  136. name: kube-flannel-ds-amd64
  137. namespace: kube-system
  138. labels:
  139. tier: node
  140. app: flannel
  141. spec:
  142. selector:
  143. matchLabels:
  144. app: flannel
  145. template:
  146. metadata:
  147. labels:
  148. tier: node
  149. app: flannel
  150. spec:
  151. hostNetwork: true
  152. nodeSelector:
  153. beta.kubernetes.io/arch: amd64
  154. tolerations:
  155. - operator: Exists
  156. effect: NoSchedule
  157. serviceAccountName: flannel
  158. initContainers:
  159. - name: install-cni
  160. image: quay.io/coreos/flannel:v0.11.0-amd64
  161. command:
  162. - cp
  163. args:
  164. - -f
  165. - /etc/kube-flannel/cni-conf.json
  166. - /etc/cni/net.d/10-flannel.conflist
  167. volumeMounts:
  168. - name: cni
  169. mountPath: /etc/cni/net.d
  170. - name: flannel-cfg
  171. mountPath: /etc/kube-flannel/
  172. containers:
  173. - name: kube-flannel
  174. image: quay.io/coreos/flannel:v0.11.0-amd64
  175. command:
  176. - /opt/bin/flanneld
  177. args:
  178. - --ip-masq
  179. - --kube-subnet-mgr
  180. resources:
  181. requests:
  182. cpu: "100m"
  183. memory: "50Mi"
  184. limits:
  185. cpu: "100m"
  186. memory: "50Mi"
  187. securityContext:
  188. privileged: false
  189. capabilities:
  190. add: ["NET_ADMIN"]
  191. env:
  192. - name: POD_NAME
  193. valueFrom:
  194. fieldRef:
  195. fieldPath: metadata.name
  196. - name: POD_NAMESPACE
  197. valueFrom:
  198. fieldRef:
  199. fieldPath: metadata.namespace
  200. volumeMounts:
  201. - name: run
  202. mountPath: /run/flannel
  203. - name: flannel-cfg
  204. mountPath: /etc/kube-flannel/
  205. volumes:
  206. - name: run
  207. hostPath:
  208. path: /run/flannel
  209. - name: cni
  210. hostPath:
  211. path: /etc/cni/net.d
  212. - name: flannel-cfg
  213. configMap:
  214. name: kube-flannel-cfg
  215. ---
  216. apiVersion: apps/v1
  217. kind: DaemonSet
  218. metadata:
  219. name: kube-flannel-ds-arm64
  220. namespace: kube-system
  221. labels:
  222. tier: node
  223. app: flannel
  224. spec:
  225. selector:
  226. matchLabels:
  227. app: flannel
  228. template:
  229. metadata:
  230. labels:
  231. tier: node
  232. app: flannel
  233. spec:
  234. hostNetwork: true
  235. nodeSelector:
  236. beta.kubernetes.io/arch: arm64
  237. tolerations:
  238. - operator: Exists
  239. effect: NoSchedule
  240. serviceAccountName: flannel
  241. initContainers:
  242. - name: install-cni
  243. image: quay.io/coreos/flannel:v0.11.0-arm64
  244. command:
  245. - cp
  246. args:
  247. - -f
  248. - /etc/kube-flannel/cni-conf.json
  249. - /etc/cni/net.d/10-flannel.conflist
  250. volumeMounts:
  251. - name: cni
  252. mountPath: /etc/cni/net.d
  253. - name: flannel-cfg
  254. mountPath: /etc/kube-flannel/
  255. containers:
  256. - name: kube-flannel
  257. image: quay.io/coreos/flannel:v0.11.0-arm64
  258. command:
  259. - /opt/bin/flanneld
  260. args:
  261. - --ip-masq
  262. - --kube-subnet-mgr
  263. resources:
  264. requests:
  265. cpu: "100m"
  266. memory: "50Mi"
  267. limits:
  268. cpu: "100m"
  269. memory: "50Mi"
  270. securityContext:
  271. privileged: false
  272. capabilities:
  273. add: ["NET_ADMIN"]
  274. env:
  275. - name: POD_NAME
  276. valueFrom:
  277. fieldRef:
  278. fieldPath: metadata.name
  279. - name: POD_NAMESPACE
  280. valueFrom:
  281. fieldRef:
  282. fieldPath: metadata.namespace
  283. volumeMounts:
  284. - name: run
  285. mountPath: /run/flannel
  286. - name: flannel-cfg
  287. mountPath: /etc/kube-flannel/
  288. volumes:
  289. - name: run
  290. hostPath:
  291. path: /run/flannel
  292. - name: cni
  293. hostPath:
  294. path: /etc/cni/net.d
  295. - name: flannel-cfg
  296. configMap:
  297. name: kube-flannel-cfg
  298. ---
  299. apiVersion: apps/v1
  300. kind: DaemonSet
  301. metadata:
  302. name: kube-flannel-ds-arm
  303. namespace: kube-system
  304. labels:
  305. tier: node
  306. app: flannel
  307. spec:
  308. selector:
  309. matchLabels:
  310. app: flannel
  311. template:
  312. metadata:
  313. labels:
  314. tier: node
  315. app: flannel
  316. spec:
  317. hostNetwork: true
  318. nodeSelector:
  319. beta.kubernetes.io/arch: arm
  320. tolerations:
  321. - operator: Exists
  322. effect: NoSchedule
  323. serviceAccountName: flannel
  324. initContainers:
  325. - name: install-cni
  326. image: quay.io/coreos/flannel:v0.11.0-arm
  327. command:
  328. - cp
  329. args:
  330. - -f
  331. - /etc/kube-flannel/cni-conf.json
  332. - /etc/cni/net.d/10-flannel.conflist
  333. volumeMounts:
  334. - name: cni
  335. mountPath: /etc/cni/net.d
  336. - name: flannel-cfg
  337. mountPath: /etc/kube-flannel/
  338. containers:
  339. - name: kube-flannel
  340. image: quay.io/coreos/flannel:v0.11.0-arm
  341. command:
  342. - /opt/bin/flanneld
  343. args:
  344. - --ip-masq
  345. - --kube-subnet-mgr
  346. resources:
  347. requests:
  348. cpu: "100m"
  349. memory: "50Mi"
  350. limits:
  351. cpu: "100m"
  352. memory: "50Mi"
  353. securityContext:
  354. privileged: false
  355. capabilities:
  356. add: ["NET_ADMIN"]
  357. env:
  358. - name: POD_NAME
  359. valueFrom:
  360. fieldRef:
  361. fieldPath: metadata.name
  362. - name: POD_NAMESPACE
  363. valueFrom:
  364. fieldRef:
  365. fieldPath: metadata.namespace
  366. volumeMounts:
  367. - name: run
  368. mountPath: /run/flannel
  369. - name: flannel-cfg
  370. mountPath: /etc/kube-flannel/
  371. volumes:
  372. - name: run
  373. hostPath:
  374. path: /run/flannel
  375. - name: cni
  376. hostPath:
  377. path: /etc/cni/net.d
  378. - name: flannel-cfg
  379. configMap:
  380. name: kube-flannel-cfg
  381. ---
  382. apiVersion: apps/v1
  383. kind: DaemonSet
  384. metadata:
  385. name: kube-flannel-ds-ppc64le
  386. namespace: kube-system
  387. labels:
  388. tier: node
  389. app: flannel
  390. spec:
  391. selector:
  392. matchLabels:
  393. app: flannel
  394. template:
  395. metadata:
  396. labels:
  397. tier: node
  398. app: flannel
  399. spec:
  400. hostNetwork: true
  401. nodeSelector:
  402. beta.kubernetes.io/arch: ppc64le
  403. tolerations:
  404. - operator: Exists
  405. effect: NoSchedule
  406. serviceAccountName: flannel
  407. initContainers:
  408. - name: install-cni
  409. image: quay.io/coreos/flannel:v0.11.0-ppc64le
  410. command:
  411. - cp
  412. args:
  413. - -f
  414. - /etc/kube-flannel/cni-conf.json
  415. - /etc/cni/net.d/10-flannel.conflist
  416. volumeMounts:
  417. - name: cni
  418. mountPath: /etc/cni/net.d
  419. - name: flannel-cfg
  420. mountPath: /etc/kube-flannel/
  421. containers:
  422. - name: kube-flannel
  423. image: quay.io/coreos/flannel:v0.11.0-ppc64le
  424. command:
  425. - /opt/bin/flanneld
  426. args:
  427. - --ip-masq
  428. - --kube-subnet-mgr
  429. resources:
  430. requests:
  431. cpu: "100m"
  432. memory: "50Mi"
  433. limits:
  434. cpu: "100m"
  435. memory: "50Mi"
  436. securityContext:
  437. privileged: false
  438. capabilities:
  439. add: ["NET_ADMIN"]
  440. env:
  441. - name: POD_NAME
  442. valueFrom:
  443. fieldRef:
  444. fieldPath: metadata.name
  445. - name: POD_NAMESPACE
  446. valueFrom:
  447. fieldRef:
  448. fieldPath: metadata.namespace
  449. volumeMounts:
  450. - name: run
  451. mountPath: /run/flannel
  452. - name: flannel-cfg
  453. mountPath: /etc/kube-flannel/
  454. volumes:
  455. - name: run
  456. hostPath:
  457. path: /run/flannel
  458. - name: cni
  459. hostPath:
  460. path: /etc/cni/net.d
  461. - name: flannel-cfg
  462. configMap:
  463. name: kube-flannel-cfg
  464. ---
  465. apiVersion: apps/v1
  466. kind: DaemonSet
  467. metadata:
  468. name: kube-flannel-ds-s390x
  469. namespace: kube-system
  470. labels:
  471. tier: node
  472. app: flannel
  473. spec:
  474. selector:
  475. matchLabels:
  476. app: flannel
  477. template:
  478. metadata:
  479. labels:
  480. tier: node
  481. app: flannel
  482. spec:
  483. hostNetwork: true
  484. nodeSelector:
  485. beta.kubernetes.io/arch: s390x
  486. tolerations:
  487. - operator: Exists
  488. effect: NoSchedule
  489. serviceAccountName: flannel
  490. initContainers:
  491. - name: install-cni
  492. image: quay.io/coreos/flannel:v0.11.0-s390x
  493. command:
  494. - cp
  495. args:
  496. - -f
  497. - /etc/kube-flannel/cni-conf.json
  498. - /etc/cni/net.d/10-flannel.conflist
  499. volumeMounts:
  500. - name: cni
  501. mountPath: /etc/cni/net.d
  502. - name: flannel-cfg
  503. mountPath: /etc/kube-flannel/
  504. containers:
  505. - name: kube-flannel
  506. image: quay.io/coreos/flannel:v0.11.0-s390x
  507. command:
  508. - /opt/bin/flanneld
  509. args:
  510. - --ip-masq
  511. - --kube-subnet-mgr
  512. resources:
  513. requests:
  514. cpu: "100m"
  515. memory: "50Mi"
  516. limits:
  517. cpu: "100m"
  518. memory: "50Mi"
  519. securityContext:
  520. privileged: false
  521. capabilities:
  522. add: ["NET_ADMIN"]
  523. env:
  524. - name: POD_NAME
  525. valueFrom:
  526. fieldRef:
  527. fieldPath: metadata.name
  528. - name: POD_NAMESPACE
  529. valueFrom:
  530. fieldRef:
  531. fieldPath: metadata.namespace
  532. volumeMounts:
  533. - name: run
  534. mountPath: /run/flannel
  535. - name: flannel-cfg
  536. mountPath: /etc/kube-flannel/
  537. volumes:
  538. - name: run
  539. hostPath:
  540. path: /run/flannel
  541. - name: cni
  542. hostPath:
  543. path: /etc/cni/net.d
  544. - name: flannel-cfg
  545. configMap:
  546. name: kube-flannel-cfg