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.

93 lines
3.5 KiB

  1. ---
  2. apiVersion: apps/v1
  3. kind: DaemonSet
  4. metadata:
  5. name: hcloud-cloud-controller-manager
  6. namespace: kube-system
  7. labels:
  8. k8s-app: hcloud-cloud-controller-manger
  9. spec:
  10. selector:
  11. matchLabels:
  12. app: hcloud-cloud-controller-manager
  13. template:
  14. metadata:
  15. labels:
  16. app: hcloud-cloud-controller-manager
  17. annotations:
  18. scheduler.alpha.kubernetes.io/critical-pod: ''
  19. spec:
  20. serviceAccountName: {{ external_hcloud_cloud.service_account_name }}
  21. dnsPolicy: Default
  22. tolerations:
  23. - key: "node.cloudprovider.kubernetes.io/uninitialized"
  24. value: "true"
  25. effect: "NoSchedule"
  26. - key: "CriticalAddonsOnly"
  27. operator: "Exists"
  28. - key: "node-role.kubernetes.io/control-plane"
  29. effect: NoSchedule
  30. operator: Exists
  31. - key: "node.kubernetes.io/not-ready"
  32. effect: "NoSchedule"
  33. hostNetwork: true
  34. containers:
  35. - image: {{ docker_image_repo }}/hetznercloud/hcloud-cloud-controller-manager:{{ external_hcloud_cloud.controller_image_tag }}
  36. name: hcloud-cloud-controller-manager
  37. command:
  38. - "/bin/hcloud-cloud-controller-manager"
  39. - "--cloud-provider=hcloud"
  40. - "--leader-elect=false"
  41. - "--allow-untagged-cloud"
  42. - "--allocate-node-cidrs=true"
  43. - "--cluster-cidr={{ kube_pods_subnet }}"
  44. {% if external_hcloud_cloud.controller_extra_args is defined %}
  45. args:
  46. {% for key, value in external_hcloud_cloud.controller_extra_args.items() %}
  47. - "{{ '--' + key + '=' + value }}"
  48. {% endfor %}
  49. {% endif %}
  50. resources:
  51. requests:
  52. cpu: 100m
  53. memory: 50Mi
  54. env:
  55. - name: NODE_NAME
  56. valueFrom:
  57. fieldRef:
  58. fieldPath: spec.nodeName
  59. - name: HCLOUD_TOKEN
  60. valueFrom:
  61. secretKeyRef:
  62. name: {{ external_hcloud_cloud.token_secret_name }}
  63. key: token
  64. - name: HCLOUD_NETWORK
  65. valueFrom:
  66. secretKeyRef:
  67. name: {{ external_hcloud_cloud.token_secret_name }}
  68. key: network
  69. {% if external_hcloud_cloud.network_routes_enabled is defined %}
  70. - name: HCLOUD_NETWORK_ROUTES_ENABLED
  71. value: "{{ external_hcloud_cloud.network_routes_enabled }}"
  72. {% endif %}
  73. {% if external_hcloud_cloud.load_balancers_location is defined %}
  74. - name: HCLOUD_LOAD_BALANCERS_LOCATION
  75. value: "{{ external_hcloud_cloud.load_balancers_location }}"
  76. {% endif %}
  77. {% if external_hcloud_cloud.load_balancers_network_zone is defined %}
  78. - name: HCLOUD_LOAD_BALANCERS_NETWORK_ZONE
  79. value: "{{ external_hcloud_cloud.load_balancers_network_zone }}"
  80. {% endif %}
  81. {% if external_hcloud_cloud.load_balancers_disable_private_ingress is defined %}
  82. - name: HCLOUD_LOAD_BALANCERS_DISABLE_PRIVATE_INGRESS
  83. value: "{{ external_hcloud_cloud.load_balancers_disable_private_ingress }}"
  84. {% endif %}
  85. {% if external_hcloud_cloud.load_balancers_use_private_ip is defined %}
  86. - name: HCLOUD_LOAD_BALANCERS_USE_PRIVATE_IP
  87. value: "{{ external_hcloud_cloud.load_balancers_use_private_ip }}"
  88. {% endif %}
  89. {% if external_hcloud_cloud.load_balancers_enabled is defined %}
  90. - name: HCLOUD_LOAD_BALANCERS_ENABLED
  91. value: "{{ external_hcloud_cloud.load_balancers_enabled }}"
  92. {% endif %}