You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.1 KiB

  1. ---
  2. kind: ConfigMap
  3. apiVersion: v1
  4. metadata:
  5. name: kube-flannel-cfg
  6. namespace: "{{system_namespace}}"
  7. labels:
  8. tier: node
  9. app: flannel
  10. data:
  11. cni-conf.json: |
  12. {
  13. "name":"cbr0",
  14. "cniVersion":"0.3.1",
  15. "plugins":[
  16. {
  17. "type":"flannel",
  18. "delegate":{
  19. "forceAddress":true,
  20. "isDefaultGateway":true
  21. }
  22. },
  23. {
  24. "type":"portmap",
  25. "capabilities":{
  26. "portMappings":true
  27. }
  28. }
  29. ]
  30. }
  31. net-conf.json: |
  32. {
  33. "Network": "{{ kube_pods_subnet }}",
  34. "Backend": {
  35. "Type": "{{ flannel_backend_type }}"
  36. }
  37. }
  38. ---
  39. apiVersion: extensions/v1beta1
  40. kind: DaemonSet
  41. metadata:
  42. name: kube-flannel
  43. namespace: "{{system_namespace}}"
  44. labels:
  45. tier: node
  46. k8s-app: flannel
  47. spec:
  48. template:
  49. metadata:
  50. labels:
  51. tier: node
  52. k8s-app: flannel
  53. spec:
  54. {% if rbac_enabled %}
  55. serviceAccountName: flannel
  56. {% endif %}
  57. containers:
  58. - name: kube-flannel
  59. image: {{ flannel_image_repo }}:{{ flannel_image_tag }}
  60. imagePullPolicy: {{ k8s_image_pull_policy }}
  61. resources:
  62. limits:
  63. cpu: {{ flannel_cpu_limit }}
  64. memory: {{ flannel_memory_limit }}
  65. requests:
  66. cpu: {{ flannel_cpu_requests }}
  67. memory: {{ flannel_memory_requests }}
  68. command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr"{% if flannel_interface is defined %}, "--iface={{ flannel_interface }}"{% endif %} ]
  69. securityContext:
  70. privileged: true
  71. env:
  72. - name: POD_NAME
  73. valueFrom:
  74. fieldRef:
  75. fieldPath: metadata.name
  76. - name: POD_NAMESPACE
  77. valueFrom:
  78. fieldRef:
  79. fieldPath: metadata.namespace
  80. volumeMounts:
  81. - name: run
  82. mountPath: /run
  83. - name: cni
  84. mountPath: /etc/cni/net.d
  85. - name: flannel-cfg
  86. mountPath: /etc/kube-flannel/
  87. - name: install-cni
  88. image: {{ flannel_cni_image_repo }}:{{ flannel_cni_image_tag }}
  89. command: ["/install-cni.sh"]
  90. env:
  91. # The CNI network config to install on each node.
  92. - name: CNI_NETWORK_CONFIG
  93. valueFrom:
  94. configMapKeyRef:
  95. name: kube-flannel-cfg
  96. key: cni-conf.json
  97. - name: CNI_CONF_NAME
  98. value: "10-flannel.conflist"
  99. volumeMounts:
  100. - name: cni
  101. mountPath: /host/etc/cni/net.d
  102. - name: host-cni-bin
  103. mountPath: /host/opt/cni/bin/
  104. hostNetwork: true
  105. tolerations:
  106. - key: node-role.kubernetes.io/master
  107. operator: Exists
  108. effect: NoSchedule
  109. volumes:
  110. - name: run
  111. hostPath:
  112. path: /run
  113. - name: cni
  114. hostPath:
  115. path: /etc/cni/net.d
  116. - name: flannel-cfg
  117. configMap:
  118. name: kube-flannel-cfg
  119. - name: host-cni-bin
  120. hostPath:
  121. path: /opt/cni/bin
  122. updateStrategy:
  123. rollingUpdate:
  124. maxUnavailable: 1
  125. type: RollingUpdate