--- apiVersion: apps/v1 kind: DaemonSet metadata: name: local-volume-provisioner namespace: {{ local_volume_provisioner_namespace }} labels: k8s-app: local-volume-provisioner version: {{ local_volume_provisioner_image_tag }} spec: selector: matchLabels: k8s-app: local-volume-provisioner version: {{ local_volume_provisioner_image_tag }} template: metadata: labels: k8s-app: local-volume-provisioner version: {{ local_volume_provisioner_image_tag }} spec: {% if kube_version is version('v1.11.1', '>=') %} priorityClassName: {% if local_volume_provisioner_namespace == 'kube-system' %}system-node-critical{% else %}k8s-cluster-critical{% endif %}{{''}} {% endif %} serviceAccountName: local-volume-provisioner tolerations: - effect: NoSchedule operator: Exists containers: - name: provisioner image: {{ local_volume_provisioner_image_repo }}:{{ local_volume_provisioner_image_tag }} imagePullPolicy: {{ k8s_image_pull_policy }} securityContext: privileged: true env: - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: MY_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumeMounts: - name: local-volume-provisioner mountPath: /etc/provisioner/config readOnly: true {% for class in local_volume_provisioner_storage_classes %} - name: {{ class.name }} mountPath: {{ class.mount_dir }} mountPropagation: "HostToContainer" {% endfor %} volumes: - name: local-volume-provisioner configMap: name: local-volume-provisioner {% for class in local_volume_provisioner_storage_classes %} - name: {{ class.name }} hostPath: path: {{ class.host_dir }} {% endfor %}