config/addons/essentials/local-static-storage-provisioner.yaml

146 lines
3.9 KiB
YAML
Raw Permalink Normal View History

2023-05-15 14:36:48 +00:00
{{ if .vars.local_storage_class }}
---
# Source: provisioner/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: local-static-provisioner
namespace: kube-system
labels:
app.kubernetes.io/name: provisioner
---
# Source: provisioner/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: local-static-provisioner-config
namespace: kube-system
labels:
app.kubernetes.io/name: provisioner
data:
storageClassMap: |
"{{ .vars.local_storage_class }}":
hostDir: /mnt/storage
mountDir: /mnt/storage
blockCleanerCommand:
- "/scripts/quick_reset.sh"
# - "/scripts/blkdiscard.sh"
# [ "/scripts/shred.sh", "2" ]
volumeMode: Filesystem
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: "{{ .vars.local_storage_class }}"
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
# Supported policies: Delete, Retain
reclaimPolicy: Delete
---
# Source: provisioner/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: local-static-provisioner-node-clusterrole
labels:
app.kubernetes.io/name: provisioner
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get"]
---
# Source: provisioner/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: local-static-provisioner-pv-binding
labels:
app.kubernetes.io/name: provisioner
subjects:
- kind: ServiceAccount
name: local-static-provisioner
namespace: kube-system
roleRef:
kind: ClusterRole
name: system:persistent-volume-provisioner
apiGroup: rbac.authorization.k8s.io
---
# Source: provisioner/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: local-static-provisioner-node-binding
labels:
app.kubernetes.io/name: provisioner
subjects:
- kind: ServiceAccount
name: local-static-provisioner
namespace: kube-system
roleRef:
kind: ClusterRole
name: local-static-provisioner-node-clusterrole
apiGroup: rbac.authorization.k8s.io
---
# Source: provisioner/templates/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: local-static-provisioner
namespace: kube-system
labels:
app.kubernetes.io/name: provisioner
spec:
selector:
matchLabels:
app.kubernetes.io/name: provisioner
app.kubernetes.io/instance: local-static-provisioner
template:
metadata:
labels:
app.kubernetes.io/name: provisioner
app.kubernetes.io/instance: local-static-provisioner
spec:
serviceAccountName: local-static-provisioner
# TODO remove after transition
nodeSelector:
local-pv: "true"
containers:
- name: provisioner
image: {{.vars.k8s_registry}}/sig-storage/local-volume-provisioner:v2.4.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: {{.vars.k8s_registry}}/sig-storage/local-volume-provisioner:v2.4.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/storage
mountPropagation: HostToContainer
volumes:
- name: provisioner-config
configMap:
name: local-static-provisioner-config
- name: provisioner-dev
hostPath:
path: /dev
- name: local-storage
hostPath:
path: /mnt/storage
{{ end }}