Merge pull request #5394 from Madhu-1/csi-prio

CSI: Set PriorityClassName for CSI pods
This commit is contained in:
Travis Nielsen authored and GitHub committed 2020-05-06 07:08:54 -06:00
commit f82a07d441
12 files changed
+75 -18

No files matched your search

+2
View File
@@ -119,6 +119,8 @@ The following tables lists the configurable parameters of the rook-operator char
| `discover.nodeAffinity` | The node labels for affinity of `discover-agent` (***) | <none> |
| `csi.enableRbdDriver` | Enable Ceph CSI RBD driver. | `true` |
| `csi.enableCephfsDriver` | Enable Ceph CSI CephFS driver. | `true` |
| `csi.pluginPriorityClassName` | PriorityClassName to be set on csi driver plugin pods. | <none> |
| `csi.provisionerPriorityClassName` | PriorityClassName to be set on csi driver provisioner pods. | <none> |
| `csi.logLevel` | Set logging level for csi containers. Supported values from 0 to 5. 0 for general useful logs, 5 for trace level verbosity. | `0` |
| `csi.enableGrpcMetrics` | Enable Ceph CSI GRPC Metrics. | `true` |
| `csi.provisionerTolerations` | Array of tolerations in YAML format which will be added to CSI provisioner deployment. | <none> |
@@ -108,6 +108,10 @@ spec:
value: {{ .Values.csi.enableCephfsDriver | quote }}
- name: CSI_ENABLE_SNAPSHOTTER
value: {{ .Values.csi.enableSnapshotter | quote }}
- name: CSI_PLUGIN_PRIORITY_CLASSNAME
value: {{ .Values.csi.pluginPriorityClassName | quote }}
- name: CSI_PROVISIONER_PRIORITY_CLASSNAME
value: {{ .Values.csi.provisionerPriorityClassName | quote }}
{{- if .Values.csi.cephFSPluginUpdateStrategy }}
- name: CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY
value: {{ .Values.csi.cephFSPluginUpdateStrategy | quote }}
+6
View File
@@ -58,6 +58,12 @@ csi:
enableCephfsDriver: true
enableGrpcMetrics: true
enableSnapshotter: true
# (Optional) set user created priorityclassName for csi plugin pods.
# pluginPriorityClassName: system-node-critical
# (Optional) set user created priorityclassName for csi provisioner pods.
# provisionerPriorityClassName: system-cluster-critical
# Set logging level for csi containers.
# Supported values from 0 to 5. 0 for general useful logs, 5 for trace level verbosity.
#logLevel: 0
@@ -15,6 +15,9 @@ spec:
contains: csi-cephfsplugin-metrics
spec:
serviceAccount: rook-csi-cephfs-provisioner-sa
{{ if .ProvisionerPriorityClassName }}
priorityClassName: {{ .ProvisionerPriorityClassName }}
{{ end }}
containers:
- name: csi-attacher
image: {{ .AttacherImage }}
@@ -16,6 +16,9 @@ spec:
contains: csi-cephfsplugin-metrics
spec:
serviceAccount: rook-csi-cephfs-provisioner-sa
{{ if .ProvisionerPriorityClassName }}
priorityClassName: {{ .ProvisionerPriorityClassName }}
{{ end }}
containers:
- name: csi-attacher
image: {{ .AttacherImage }}
@@ -17,6 +17,9 @@ spec:
spec:
serviceAccount: rook-csi-cephfs-plugin-sa
hostNetwork: true
{{ if .PluginPriorityClassName }}
priorityClassName: {{ .PluginPriorityClassName }}
{{ end }}
# to use e.g. Rook orchestrated cluster, and mons' FQDN is
# resolved through k8s service, set dns policy to cluster first
dnsPolicy: ClusterFirstWithHostNet
@@ -15,6 +15,9 @@ spec:
contains: csi-rbdplugin-metrics
spec:
serviceAccount: rook-csi-rbd-provisioner-sa
{{ if .ProvisionerPriorityClassName }}
priorityClassName: {{ .ProvisionerPriorityClassName }}
{{ end }}
containers:
- name: csi-provisioner
image: {{ .ProvisionerImage }}
@@ -16,6 +16,9 @@ spec:
contains: csi-rbdplugin-metrics
spec:
serviceAccount: rook-csi-rbd-provisioner-sa
{{ if .ProvisionerPriorityClassName }}
priorityClassName: {{ .ProvisionerPriorityClassName }}
{{ end }}
containers:
- name: csi-provisioner
image: {{ .ProvisionerImage }}
@@ -16,6 +16,9 @@ spec:
contains: csi-rbdplugin-metrics
spec:
serviceAccount: rook-csi-rbd-plugin-sa
{{ if .PluginPriorityClassName }}
priorityClassName: {{ .PluginPriorityClassName }}
{{ end }}
hostNetwork: true
hostPID: true
# to use e.g. Rook orchestrated cluster, and mons' FQDN is
@@ -129,6 +129,12 @@ data:
# ROOK_CSI_SNAPSHOTTER_IMAGE: "quay.io/k8scsi/csi-snapshotter:v1.2.2"
# ROOK_CSI_ATTACHER_IMAGE: "quay.io/k8scsi/csi-attacher:v2.1.0"
# (Optional) set user created priorityclassName for csi plugin pods.
# CSI_PLUGIN_PRIORITY_CLASSNAME="system-node-critical"
# (Optional) set user created priorityclassName for csi provisioner pods.
# CSI_PROVISIONER_PRIORITY_CLASSNAME="system-cluster-critical"
# CSI CephFS plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
# Default value is RollingUpdate.
# CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY: "OnDelete"
@@ -53,6 +53,12 @@ data:
# ROOK_CSI_SNAPSHOTTER_IMAGE: "quay.io/k8scsi/csi-snapshotter:v1.2.2"
# ROOK_CSI_ATTACHER_IMAGE: "quay.io/k8scsi/csi-attacher:v2.1.0"
# (Optional) set user created priorityclassName for csi plugin pods.
# CSI_PLUGIN_PRIORITY_CLASSNAME="system-node-critical"
# (Optional) set user created priorityclassName for csi provisioner pods.
# CSI_PROVISIONER_PRIORITY_CLASSNAME="system-cluster-critical"
# CSI CephFS plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
# Default value is RollingUpdate.
# CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY: "OnDelete"
+33 -18
View File
@@ -40,24 +40,26 @@ import (
)
type Param struct {
CSIPluginImage string
RegistrarImage string
ProvisionerImage string
AttacherImage string
SnapshotterImage string
ResizerImage string
DriverNamePrefix string
EnableSnapshotter string
EnableCSIGRPCMetrics string
KubeletDirPath string
ForceCephFSKernelClient string
CephFSPluginUpdateStrategy string
RBDPluginUpdateStrategy string
LogLevel uint8
CephFSGRPCMetricsPort uint16
CephFSLivenessMetricsPort uint16
RBDGRPCMetricsPort uint16
RBDLivenessMetricsPort uint16
CSIPluginImage string
RegistrarImage string
ProvisionerImage string
AttacherImage string
SnapshotterImage string
ResizerImage string
DriverNamePrefix string
EnableSnapshotter string
EnableCSIGRPCMetrics string
KubeletDirPath string
ForceCephFSKernelClient string
CephFSPluginUpdateStrategy string
RBDPluginUpdateStrategy string
PluginPriorityClassName string
ProvisionerPriorityClassName string
LogLevel uint8
CephFSGRPCMetricsPort uint16
CephFSLivenessMetricsPort uint16
RBDGRPCMetricsPort uint16
RBDLivenessMetricsPort uint16
}
type templateParam struct {
@@ -273,6 +275,19 @@ func StartCSIDrivers(namespace string, clientset kubernetes.Interface, ver *vers
tp.EnableSnapshotter = "true"
}
// default value `system-node-critical` is the highest available priority
tp.PluginPriorityClassName, err = k8sutil.GetOperatorSetting(clientset, controllerutil.OperatorSettingConfigMapName, "CSI_PLUGIN_PRIORITY_CLASSNAME", "")
if err != nil {
return errors.Wrap(err, "failed to load CSI_PLUGIN_PRIORITY_CLASSNAME setting")
}
// default value `system-cluster-critical` is applied for some
// critical pods in cluster but less priority than plugin pods
tp.ProvisionerPriorityClassName, err = k8sutil.GetOperatorSetting(clientset, controllerutil.OperatorSettingConfigMapName, "CSI_PROVISIONER_PRIORITY_CLASSNAME", "")
if err != nil {
return errors.Wrap(err, "failed to load CSI_PROVISIONER_PRIORITY_CLASSNAME setting")
}
updateStrategy, err := k8sutil.GetOperatorSetting(clientset, controllerutil.OperatorSettingConfigMapName, "CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY", rollingUpdate)
if err != nil {
return errors.Wrap(err, "failed to load CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY setting")