146 lines
4.4 KiB
YAML
146 lines
4.4 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: katbox
|
|
---
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: CSIDriver
|
|
metadata:
|
|
name: katbox.csi.paypal.com
|
|
spec:
|
|
# Supports persistent and ephemeral inline volumes.
|
|
volumeLifecycleModes:
|
|
- Ephemeral
|
|
# To determine at runtime which mode a volume uses, pod info and its
|
|
# "csi.storage.k8s.io/ephemeral" entry are needed.
|
|
podInfoOnMount: true
|
|
attachRequired: false
|
|
fsGroupPolicy: File
|
|
---
|
|
kind: DaemonSet
|
|
apiVersion: apps/v1
|
|
metadata:
|
|
name: csi-katboxplugin
|
|
namespace: katbox
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: csi-katboxplugin
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: csi-katboxplugin
|
|
spec:
|
|
hostNetwork: true
|
|
tolerations:
|
|
- key: "node-role.kubernetes.io/master"
|
|
operator: "Exists"
|
|
effect: "NoSchedule"
|
|
- operator: "Exists"
|
|
containers:
|
|
- name: node-driver-registrar
|
|
image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1
|
|
args:
|
|
- --v=5
|
|
- --csi-address=/csi/csi.sock
|
|
- --kubelet-registration-path=/var/lib/kubelet/plugins/csi-katbox/csi.sock
|
|
securityContext:
|
|
# This is necessary only for systems with SELinux, where
|
|
# non-privileged sidecar containers cannot access unix domain socket
|
|
# created by privileged CSI driver container.
|
|
privileged: true
|
|
env:
|
|
- name: KUBE_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: spec.nodeName
|
|
volumeMounts:
|
|
- mountPath: /csi
|
|
name: socket-dir
|
|
- mountPath: /registration
|
|
name: registration-dir
|
|
- mountPath: /csi-data-dir
|
|
name: csi-data-dir
|
|
|
|
- name: katbox
|
|
image: k8s.gcr.io/sig-storage/livenessprobe:v2.2.0
|
|
args:
|
|
- "--drivername=katbox.csi.paypal.com"
|
|
- "--v=5"
|
|
- "--endpoint=$(CSI_ENDPOINT)"
|
|
- "--nodeid=$(KUBE_NODE_NAME)"
|
|
- "--afterlifespan=3h"
|
|
- "--headroom=.1"
|
|
env:
|
|
- name: CSI_ENDPOINT
|
|
value: unix:///csi/csi.sock
|
|
- name: KUBE_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: spec.nodeName
|
|
securityContext:
|
|
privileged: true
|
|
ports:
|
|
- containerPort: 9898
|
|
name: healthz
|
|
protocol: TCP
|
|
livenessProbe:
|
|
failureThreshold: 5
|
|
httpGet:
|
|
path: /healthz
|
|
port: healthz
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 3
|
|
periodSeconds: 10
|
|
volumeMounts:
|
|
- mountPath: /csi
|
|
name: socket-dir
|
|
- mountPath: /var/lib/kubelet/pods
|
|
mountPropagation: Bidirectional
|
|
name: mountpoint-dir
|
|
- mountPath: /var/lib/kubelet/plugins
|
|
mountPropagation: Bidirectional
|
|
name: plugins-dir
|
|
- mountPath: /csi-data-dir
|
|
name: csi-data-dir
|
|
- mountPath: /dev
|
|
name: dev-dir
|
|
- name: liveness-probe
|
|
volumeMounts:
|
|
- mountPath: /csi
|
|
name: socket-dir
|
|
image: k8s.gcr.io/sig-storage/livenessprobe:v2.2.0
|
|
args:
|
|
- --csi-address=/csi/csi.sock
|
|
- --health-port=9898
|
|
|
|
volumes:
|
|
- hostPath:
|
|
path: /var/lib/kubelet/plugins/csi-katbox
|
|
type: DirectoryOrCreate
|
|
name: socket-dir
|
|
- hostPath:
|
|
path: /var/lib/kubelet/pods
|
|
type: DirectoryOrCreate
|
|
name: mountpoint-dir
|
|
- hostPath:
|
|
path: /var/lib/kubelet/plugins_registry
|
|
type: Directory
|
|
name: registration-dir
|
|
- hostPath:
|
|
path: /var/lib/kubelet/plugins
|
|
type: Directory
|
|
name: plugins-dir
|
|
- hostPath:
|
|
# 'path' is where PV data is persisted on host.
|
|
# using /tmp is also possible while the PVs will not available after plugin container recreation or host reboot
|
|
path: /var/lib/csi-katbox-data/
|
|
type: DirectoryOrCreate
|
|
name: csi-data-dir
|
|
- hostPath:
|
|
path: /dev
|
|
type: Directory
|
|
name: dev-dir
|