diff --git a/helm/README.md b/helm/README.md index bfd187b6e..4b8c07f49 100644 --- a/helm/README.md +++ b/helm/README.md @@ -172,6 +172,7 @@ Here are a list of examples for various environments: * [examples/baremetal-cleanbyjobs.yaml](examples/baremetal-cleanbyjobs.yaml) * [examples/baremetal-resyncperiod.yaml](examples/baremetal-resyncperiod.yaml) * [examples/baremetal-tolerations.yaml](examples/baremetal-tolerations.yaml) +* [examples/baremetal-provisioner.yaml](examples/baremetal-provisioner.yaml) * [examples/baremetal-with-resource-limits.yaml](examples/baremetal-with-resource-limits.yaml) * [examples/baremetal-without-rbac.yaml](examples/baremetal-without-rbac.yaml) * [examples/baremetal.yaml](examples/baremetal.yaml) diff --git a/helm/examples/baremetal-provisioner.yaml b/helm/examples/baremetal-provisioner.yaml new file mode 100644 index 000000000..6deb08878 --- /dev/null +++ b/helm/examples/baremetal-provisioner.yaml @@ -0,0 +1,8 @@ +classes: +- name: local-storage + hostDir: /mnt/disks + blockCleanerCommand: + - "/scripts/quick_reset.sh" + volumeMode: Block + storageClass: + provisioner: "local-provisioner" \ No newline at end of file diff --git a/helm/generated_examples/baremetal-provisioner.yaml b/helm/generated_examples/baremetal-provisioner.yaml new file mode 100644 index 000000000..0328f129e --- /dev/null +++ b/helm/generated_examples/baremetal-provisioner.yaml @@ -0,0 +1,158 @@ +--- +# Source: local-static-provisioner/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: local-static-provisioner + namespace: default + labels: + helm.sh/chart: local-static-provisioner-2.0.0 + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: local-static-provisioner +--- +# Source: local-static-provisioner/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: local-static-provisioner-config + namespace: default + labels: + helm.sh/chart: local-static-provisioner-2.0.0 + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: local-static-provisioner +data: + storageClassMap: | + local-storage: + hostDir: /mnt/disks + mountDir: /mnt/disks + blockCleanerCommand: + - "/scripts/quick_reset.sh" + volumeMode: Block +--- +# Source: local-static-provisioner/templates/storageclass.yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: local-storage + labels: + helm.sh/chart: local-static-provisioner-2.0.0 + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: local-static-provisioner +provisioner: local-provisioner +volumeBindingMode: WaitForFirstConsumer +reclaimPolicy: Delete +--- +# Source: local-static-provisioner/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: local-static-provisioner-node-clusterrole + labels: + helm.sh/chart: local-static-provisioner-2.0.0 + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: local-static-provisioner +rules: +- apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] +- apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] +- apiGroups: [""] + resources: ["events"] + verbs: ["watch"] +- apiGroups: ["", "events.k8s.io"] + resources: ["events"] + verbs: ["create", "update", "patch"] +- apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] +--- +# Source: local-static-provisioner/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: local-static-provisioner-node-binding + labels: + helm.sh/chart: local-static-provisioner-2.0.0 + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: local-static-provisioner +subjects: +- kind: ServiceAccount + name: local-static-provisioner + namespace: default +roleRef: + kind: ClusterRole + name: local-static-provisioner-node-clusterrole + apiGroup: rbac.authorization.k8s.io +--- +# Source: local-static-provisioner/templates/daemonset_linux.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: local-static-provisioner + namespace: default + labels: + helm.sh/chart: local-static-provisioner-2.0.0 + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: local-static-provisioner +spec: + selector: + matchLabels: + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/instance: local-static-provisioner + template: + metadata: + labels: + app.kubernetes.io/name: local-static-provisioner + app.kubernetes.io/instance: local-static-provisioner + annotations: + checksum/config: ab47134c2d9ee94cf8fc7f8a5a8dc9e51c2ab005a6ce67ff013328751015dec8 + spec: + serviceAccountName: local-static-provisioner + nodeSelector: + kubernetes.io/os: linux + containers: + - name: provisioner + image: registry.k8s.io/sig-storage/local-volume-provisioner:v2.6.0 + securityContext: + privileged: true + env: + - name: MY_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: MY_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: JOB_CONTAINER_IMAGE + value: registry.k8s.io/sig-storage/local-volume-provisioner:v2.6.0 + ports: + - name: metrics + containerPort: 8080 + volumeMounts: + - name: provisioner-config + mountPath: /etc/provisioner/config + readOnly: true + - name: provisioner-dev + mountPath: /dev + - name: local-storage + mountPath: /mnt/disks + mountPropagation: HostToContainer + volumes: + - name: provisioner-config + configMap: + name: local-static-provisioner-config + - name: provisioner-dev + hostPath: + path: /dev + - name: local-storage + hostPath: + path: /mnt/disks diff --git a/helm/provisioner/templates/storageclass.yaml b/helm/provisioner/templates/storageclass.yaml index bec690f0c..812f2969a 100644 --- a/helm/provisioner/templates/storageclass.yaml +++ b/helm/provisioner/templates/storageclass.yaml @@ -19,7 +19,7 @@ metadata: {{- if kindIs "map" $val.storageClass }} provisioner: {{ $val.storageClass.provisioner | default "kubernetes.io/no-provisioner" }} {{- else }} -provisioner: "kubernetes.io/no-provisioner" +provisioner: kubernetes.io/no-provisioner {{- end }} volumeBindingMode: WaitForFirstConsumer {{- if kindIs "map" $val.storageClass }}