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.

100 lines
3.1 KiB

  1. ---
  2. apiVersion: v1
  3. kind: ServiceAccount
  4. metadata:
  5. name: cloud-controller-manager
  6. namespace: kube-system
  7. ---
  8. apiVersion: apps/v1
  9. kind: DaemonSet
  10. metadata:
  11. name: openstack-cloud-controller-manager
  12. namespace: kube-system
  13. labels:
  14. k8s-app: openstack-cloud-controller-manager
  15. spec:
  16. selector:
  17. matchLabels:
  18. k8s-app: openstack-cloud-controller-manager
  19. updateStrategy:
  20. type: RollingUpdate
  21. template:
  22. metadata:
  23. labels:
  24. k8s-app: openstack-cloud-controller-manager
  25. spec:
  26. nodeSelector:
  27. {% if kube_version is version('v1.20.0', '<') %}
  28. node-role.kubernetes.io/master: ""
  29. {% else %}
  30. node-role.kubernetes.io/control-plane: ""
  31. {% endif %}
  32. securityContext:
  33. runAsUser: 999
  34. tolerations:
  35. - key: node.cloudprovider.kubernetes.io/uninitialized
  36. value: "true"
  37. effect: NoSchedule
  38. - key: node-role.kubernetes.io/master
  39. effect: NoSchedule
  40. - key: node-role.kubernetes.io/control-plane
  41. effect: NoSchedule
  42. serviceAccountName: cloud-controller-manager
  43. containers:
  44. - name: openstack-cloud-controller-manager
  45. image: {{ docker_image_repo }}/k8scloudprovider/openstack-cloud-controller-manager:{{ external_openstack_cloud_controller_image_tag }}
  46. args:
  47. - /bin/openstack-cloud-controller-manager
  48. - --v=1
  49. - --cloud-config=$(CLOUD_CONFIG)
  50. - --cloud-provider=openstack
  51. - --cluster-name={{ cluster_name }}
  52. - --use-service-account-credentials=true
  53. - --address=127.0.0.1
  54. {% for key, value in external_openstack_cloud_controller_extra_args.items() %}
  55. - "{{ '--' + key + '=' + value }}"
  56. {% endfor %}
  57. volumeMounts:
  58. - mountPath: /etc/kubernetes/pki
  59. name: k8s-certs
  60. readOnly: true
  61. - mountPath: /etc/ssl/certs
  62. name: ca-certs
  63. readOnly: true
  64. - mountPath: /etc/config/cloud.conf
  65. name: cloud-config-volume
  66. readOnly: true
  67. subPath: cloud.conf
  68. - mountPath: {{ kube_config_dir }}/external-openstack-cacert.pem
  69. name: cloud-config-volume
  70. readOnly: true
  71. subPath: ca.cert
  72. {% if kubelet_flexvolumes_plugins_dir is defined %}
  73. - mountPath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec
  74. name: flexvolume-dir
  75. {% endif %}
  76. resources:
  77. requests:
  78. cpu: 200m
  79. env:
  80. - name: CLOUD_CONFIG
  81. value: /etc/config/cloud.conf
  82. hostNetwork: true
  83. volumes:
  84. {% if kubelet_flexvolumes_plugins_dir is defined %}
  85. - hostPath:
  86. path: "{{ kubelet_flexvolumes_plugins_dir }}"
  87. type: DirectoryOrCreate
  88. name: flexvolume-dir
  89. {% endif %}
  90. - hostPath:
  91. path: /etc/kubernetes/pki
  92. type: DirectoryOrCreate
  93. name: k8s-certs
  94. - hostPath:
  95. path: /etc/ssl/certs
  96. type: DirectoryOrCreate
  97. name: ca-certs
  98. - name: cloud-config-volume
  99. secret:
  100. secretName: external-openstack-cloud-config