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.

68 lines
2.4 KiB

  1. ---
  2. apiVersion: apps/v1
  3. kind: DaemonSet
  4. metadata:
  5. name: local-volume-provisioner
  6. namespace: {{ local_volume_provisioner_namespace }}
  7. labels:
  8. k8s-app: local-volume-provisioner
  9. version: {{ local_volume_provisioner_image_tag }}
  10. spec:
  11. selector:
  12. matchLabels:
  13. k8s-app: local-volume-provisioner
  14. version: {{ local_volume_provisioner_image_tag }}
  15. template:
  16. metadata:
  17. labels:
  18. k8s-app: local-volume-provisioner
  19. version: {{ local_volume_provisioner_image_tag }}
  20. spec:
  21. priorityClassName: {% if local_volume_provisioner_namespace == 'kube-system' %}system-node-critical{% else %}k8s-cluster-critical{% endif %}{{ '' }}
  22. serviceAccountName: local-volume-provisioner
  23. nodeSelector:
  24. kubernetes.io/os: linux
  25. {% if local_volume_provisioner_tolerations %}
  26. tolerations:
  27. {{ local_volume_provisioner_tolerations | to_nice_yaml(indent=2) | indent(width=8) }}
  28. {% endif %}
  29. containers:
  30. - name: provisioner
  31. image: {{ local_volume_provisioner_image_repo }}:{{ local_volume_provisioner_image_tag }}
  32. imagePullPolicy: {{ k8s_image_pull_policy }}
  33. args:
  34. - "-v={{ local_volume_provisioner_log_level }}"
  35. securityContext:
  36. privileged: true
  37. env:
  38. - name: MY_NODE_NAME
  39. valueFrom:
  40. fieldRef:
  41. fieldPath: spec.nodeName
  42. - name: MY_NAMESPACE
  43. valueFrom:
  44. fieldRef:
  45. fieldPath: metadata.namespace
  46. volumeMounts:
  47. - name: local-volume-provisioner
  48. mountPath: /etc/provisioner/config
  49. readOnly: true
  50. - mountPath: /dev
  51. name: provisioner-dev
  52. {% for class_name, class_config in local_volume_provisioner_storage_classes.items() %}
  53. - name: local-volume-provisioner-hostpath-{{ class_name }}
  54. mountPath: {{ class_config.mount_dir }}
  55. mountPropagation: "HostToContainer"
  56. {% endfor %}
  57. volumes:
  58. - name: local-volume-provisioner
  59. configMap:
  60. name: local-volume-provisioner
  61. - name: provisioner-dev
  62. hostPath:
  63. path: /dev
  64. {% for class_name, class_config in local_volume_provisioner_storage_classes.items() %}
  65. - name: local-volume-provisioner-hostpath-{{ class_name }}
  66. hostPath:
  67. path: {{ class_config.host_dir }}
  68. {% endfor %}