kube-flannel.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  1. ---
  2. apiVersion: extensions/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. "cniVersion": "0.3.1",
  110. "plugins": [
  111. {
  112. "type": "flannel",
  113. "delegate": {
  114. "hairpinMode": true,
  115. "isDefaultGateway": true
  116. }
  117. },
  118. {
  119. "type": "portmap",
  120. "capabilities": {
  121. "portMappings": true
  122. }
  123. }
  124. ]
  125. }
  126. net-conf.json: |
  127. {
  128. "Network": "10.244.0.0/16",
  129. "Backend": {
  130. "Type": "vxlan"
  131. }
  132. }
  133. ---
  134. apiVersion: extensions/v1beta1
  135. kind: DaemonSet
  136. metadata:
  137. name: kube-flannel-ds-amd64
  138. namespace: kube-system
  139. labels:
  140. tier: node
  141. app: flannel
  142. spec:
  143. template:
  144. metadata:
  145. labels:
  146. tier: node
  147. app: flannel
  148. spec:
  149. hostNetwork: true
  150. nodeSelector:
  151. beta.kubernetes.io/arch: amd64
  152. tolerations:
  153. - operator: Exists
  154. effect: NoSchedule
  155. serviceAccountName: flannel
  156. initContainers:
  157. - name: install-cni
  158. image: quay.io/coreos/flannel:v0.11.0-amd64
  159. command:
  160. - cp
  161. args:
  162. - -f
  163. - /etc/kube-flannel/cni-conf.json
  164. - /etc/cni/net.d/10-flannel.conflist
  165. volumeMounts:
  166. - name: cni
  167. mountPath: /etc/cni/net.d
  168. - name: flannel-cfg
  169. mountPath: /etc/kube-flannel/
  170. containers:
  171. - name: kube-flannel
  172. image: quay.io/coreos/flannel:v0.11.0-amd64
  173. command:
  174. - /opt/bin/flanneld
  175. args:
  176. - --ip-masq
  177. - --kube-subnet-mgr
  178. resources:
  179. requests:
  180. cpu: "100m"
  181. memory: "50Mi"
  182. limits:
  183. cpu: "100m"
  184. memory: "50Mi"
  185. securityContext:
  186. privileged: false
  187. capabilities:
  188. add: ["NET_ADMIN"]
  189. env:
  190. - name: POD_NAME
  191. valueFrom:
  192. fieldRef:
  193. fieldPath: metadata.name
  194. - name: POD_NAMESPACE
  195. valueFrom:
  196. fieldRef:
  197. fieldPath: metadata.namespace
  198. volumeMounts:
  199. - name: run
  200. mountPath: /run/flannel
  201. - name: flannel-cfg
  202. mountPath: /etc/kube-flannel/
  203. volumes:
  204. - name: run
  205. hostPath:
  206. path: /run/flannel
  207. - name: cni
  208. hostPath:
  209. path: /etc/cni/net.d
  210. - name: flannel-cfg
  211. configMap:
  212. name: kube-flannel-cfg
  213. ---
  214. apiVersion: extensions/v1beta1
  215. kind: DaemonSet
  216. metadata:
  217. name: kube-flannel-ds-arm64
  218. namespace: kube-system
  219. labels:
  220. tier: node
  221. app: flannel
  222. spec:
  223. template:
  224. metadata:
  225. labels:
  226. tier: node
  227. app: flannel
  228. spec:
  229. hostNetwork: true
  230. nodeSelector:
  231. beta.kubernetes.io/arch: arm64
  232. tolerations:
  233. - operator: Exists
  234. effect: NoSchedule
  235. serviceAccountName: flannel
  236. initContainers:
  237. - name: install-cni
  238. image: quay.io/coreos/flannel:v0.11.0-arm64
  239. command:
  240. - cp
  241. args:
  242. - -f
  243. - /etc/kube-flannel/cni-conf.json
  244. - /etc/cni/net.d/10-flannel.conflist
  245. volumeMounts:
  246. - name: cni
  247. mountPath: /etc/cni/net.d
  248. - name: flannel-cfg
  249. mountPath: /etc/kube-flannel/
  250. containers:
  251. - name: kube-flannel
  252. image: quay.io/coreos/flannel:v0.11.0-arm64
  253. command:
  254. - /opt/bin/flanneld
  255. args:
  256. - --ip-masq
  257. - --kube-subnet-mgr
  258. resources:
  259. requests:
  260. cpu: "100m"
  261. memory: "50Mi"
  262. limits:
  263. cpu: "100m"
  264. memory: "50Mi"
  265. securityContext:
  266. privileged: false
  267. capabilities:
  268. add: ["NET_ADMIN"]
  269. env:
  270. - name: POD_NAME
  271. valueFrom:
  272. fieldRef:
  273. fieldPath: metadata.name
  274. - name: POD_NAMESPACE
  275. valueFrom:
  276. fieldRef:
  277. fieldPath: metadata.namespace
  278. volumeMounts:
  279. - name: run
  280. mountPath: /run/flannel
  281. - name: flannel-cfg
  282. mountPath: /etc/kube-flannel/
  283. volumes:
  284. - name: run
  285. hostPath:
  286. path: /run/flannel
  287. - name: cni
  288. hostPath:
  289. path: /etc/cni/net.d
  290. - name: flannel-cfg
  291. configMap:
  292. name: kube-flannel-cfg
  293. ---
  294. apiVersion: extensions/v1beta1
  295. kind: DaemonSet
  296. metadata:
  297. name: kube-flannel-ds-arm
  298. namespace: kube-system
  299. labels:
  300. tier: node
  301. app: flannel
  302. spec:
  303. template:
  304. metadata:
  305. labels:
  306. tier: node
  307. app: flannel
  308. spec:
  309. hostNetwork: true
  310. nodeSelector:
  311. beta.kubernetes.io/arch: arm
  312. tolerations:
  313. - operator: Exists
  314. effect: NoSchedule
  315. serviceAccountName: flannel
  316. initContainers:
  317. - name: install-cni
  318. image: quay.io/coreos/flannel:v0.11.0-arm
  319. command:
  320. - cp
  321. args:
  322. - -f
  323. - /etc/kube-flannel/cni-conf.json
  324. - /etc/cni/net.d/10-flannel.conflist
  325. volumeMounts:
  326. - name: cni
  327. mountPath: /etc/cni/net.d
  328. - name: flannel-cfg
  329. mountPath: /etc/kube-flannel/
  330. containers:
  331. - name: kube-flannel
  332. image: quay.io/coreos/flannel:v0.11.0-arm
  333. command:
  334. - /opt/bin/flanneld
  335. args:
  336. - --ip-masq
  337. - --kube-subnet-mgr
  338. resources:
  339. requests:
  340. cpu: "100m"
  341. memory: "50Mi"
  342. limits:
  343. cpu: "100m"
  344. memory: "50Mi"
  345. securityContext:
  346. privileged: false
  347. capabilities:
  348. add: ["NET_ADMIN"]
  349. env:
  350. - name: POD_NAME
  351. valueFrom:
  352. fieldRef:
  353. fieldPath: metadata.name
  354. - name: POD_NAMESPACE
  355. valueFrom:
  356. fieldRef:
  357. fieldPath: metadata.namespace
  358. volumeMounts:
  359. - name: run
  360. mountPath: /run/flannel
  361. - name: flannel-cfg
  362. mountPath: /etc/kube-flannel/
  363. volumes:
  364. - name: run
  365. hostPath:
  366. path: /run/flannel
  367. - name: cni
  368. hostPath:
  369. path: /etc/cni/net.d
  370. - name: flannel-cfg
  371. configMap:
  372. name: kube-flannel-cfg
  373. ---
  374. apiVersion: extensions/v1beta1
  375. kind: DaemonSet
  376. metadata:
  377. name: kube-flannel-ds-ppc64le
  378. namespace: kube-system
  379. labels:
  380. tier: node
  381. app: flannel
  382. spec:
  383. template:
  384. metadata:
  385. labels:
  386. tier: node
  387. app: flannel
  388. spec:
  389. hostNetwork: true
  390. nodeSelector:
  391. beta.kubernetes.io/arch: ppc64le
  392. tolerations:
  393. - operator: Exists
  394. effect: NoSchedule
  395. serviceAccountName: flannel
  396. initContainers:
  397. - name: install-cni
  398. image: quay.io/coreos/flannel:v0.11.0-ppc64le
  399. command:
  400. - cp
  401. args:
  402. - -f
  403. - /etc/kube-flannel/cni-conf.json
  404. - /etc/cni/net.d/10-flannel.conflist
  405. volumeMounts:
  406. - name: cni
  407. mountPath: /etc/cni/net.d
  408. - name: flannel-cfg
  409. mountPath: /etc/kube-flannel/
  410. containers:
  411. - name: kube-flannel
  412. image: quay.io/coreos/flannel:v0.11.0-ppc64le
  413. command:
  414. - /opt/bin/flanneld
  415. args:
  416. - --ip-masq
  417. - --kube-subnet-mgr
  418. resources:
  419. requests:
  420. cpu: "100m"
  421. memory: "50Mi"
  422. limits:
  423. cpu: "100m"
  424. memory: "50Mi"
  425. securityContext:
  426. privileged: false
  427. capabilities:
  428. add: ["NET_ADMIN"]
  429. env:
  430. - name: POD_NAME
  431. valueFrom:
  432. fieldRef:
  433. fieldPath: metadata.name
  434. - name: POD_NAMESPACE
  435. valueFrom:
  436. fieldRef:
  437. fieldPath: metadata.namespace
  438. volumeMounts:
  439. - name: run
  440. mountPath: /run/flannel
  441. - name: flannel-cfg
  442. mountPath: /etc/kube-flannel/
  443. volumes:
  444. - name: run
  445. hostPath:
  446. path: /run/flannel
  447. - name: cni
  448. hostPath:
  449. path: /etc/cni/net.d
  450. - name: flannel-cfg
  451. configMap:
  452. name: kube-flannel-cfg
  453. ---
  454. apiVersion: extensions/v1beta1
  455. kind: DaemonSet
  456. metadata:
  457. name: kube-flannel-ds-s390x
  458. namespace: kube-system
  459. labels:
  460. tier: node
  461. app: flannel
  462. spec:
  463. template:
  464. metadata:
  465. labels:
  466. tier: node
  467. app: flannel
  468. spec:
  469. hostNetwork: true
  470. nodeSelector:
  471. beta.kubernetes.io/arch: s390x
  472. tolerations:
  473. - operator: Exists
  474. effect: NoSchedule
  475. serviceAccountName: flannel
  476. initContainers:
  477. - name: install-cni
  478. image: quay.io/coreos/flannel:v0.11.0-s390x
  479. command:
  480. - cp
  481. args:
  482. - -f
  483. - /etc/kube-flannel/cni-conf.json
  484. - /etc/cni/net.d/10-flannel.conflist
  485. volumeMounts:
  486. - name: cni
  487. mountPath: /etc/cni/net.d
  488. - name: flannel-cfg
  489. mountPath: /etc/kube-flannel/
  490. containers:
  491. - name: kube-flannel
  492. image: quay.io/coreos/flannel:v0.11.0-s390x
  493. command:
  494. - /opt/bin/flanneld
  495. args:
  496. - --ip-masq
  497. - --kube-subnet-mgr
  498. resources:
  499. requests:
  500. cpu: "100m"
  501. memory: "50Mi"
  502. limits:
  503. cpu: "100m"
  504. memory: "50Mi"
  505. securityContext:
  506. privileged: false
  507. capabilities:
  508. add: ["NET_ADMIN"]
  509. env:
  510. - name: POD_NAME
  511. valueFrom:
  512. fieldRef:
  513. fieldPath: metadata.name
  514. - name: POD_NAMESPACE
  515. valueFrom:
  516. fieldRef:
  517. fieldPath: metadata.namespace
  518. volumeMounts:
  519. - name: run
  520. mountPath: /run/flannel
  521. - name: flannel-cfg
  522. mountPath: /etc/kube-flannel/
  523. volumes:
  524. - name: run
  525. hostPath:
  526. path: /run/flannel
  527. - name: cni
  528. hostPath:
  529. path: /etc/cni/net.d
  530. - name: flannel-cfg
  531. configMap:
  532. name: kube-flannel-cfg