{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "http://example.com/example.json", "title": "HPE CSI Driver for Kubernetes Helm Chart JSON Schema", "type": "object", "default": { "disable": { "nimble": false, "primera": false, "alletra6000": false, "alletra9000": false }, "disableNodeConformance": false, "disableNodeConfiguration": false, "imagePullPolicy": "IfNotPresent", "iscsi": { "chapUser": "", "chapPassword": "" }, "logLevel": "info", "registry": "quay.io", "kubeletRootDir": "/var/lib/kubelet/", "disableNodeGetVolumeStats": false, "csp": { "nodeSelector": {}, "tolerations": [], "affinity": {}, "labels": {} }, "controller": { "nodeSelector": {}, "tolerations": [], "affinity": {}, "labels": {} }, "node": { "nodeSelector": {}, "tolerations": [], "affinity": {}, "labels": {} } }, "required": [ "disable", "disableNodeConformance", "disableNodeConfiguration", "imagePullPolicy", "iscsi", "logLevel", "registry", "kubeletRootDir", "disableNodeGetVolumeStats", "csp", "controller", "node" ], "properties": { "disable": { "$id": "#/properties/disable", "title": "CSP Deployment and Service backend exclusion", "description": "All backend Deployments and Services are installed by default.", "type": "object", "default": { "nimble": false, "primera": false, "alletra6000": false, "alletra9000": false }, "required": [ "nimble", "primera", "alletra6000", "alletra9000" ], "properties": { "nimble": { "$id": "#/properties/disable/properties/nimble", "title": "HPE Nimble Storage", "type": "boolean", "default": false }, "primera": { "$id": "#/properties/disable/properties/primera", "title": "HPE Primera", "type": "boolean", "default": false }, "alletra6000": { "$id": "#/properties/disable/properties/alletra6000", "title": "HPE Alletra 5000/6000", "type": "boolean", "default": false }, "alletra9000": { "$id": "#/properties/disable/properties/alletra9000", "title": "HPE Alletra 9000", "type": "boolean", "default": false } }, "additionalProperties": false }, "disableNodeConformance": { "$id": "#/properties/disableNodeConformance", "title": "Disable node conformance", "description": "Disabling node conformance forces the cluster administrator to install required packages and ensure the correct node services are started to use external block storage.", "type": "boolean", "default": false }, "disableNodeConfiguration": { "$id": "#/properties/disableNodeConfiguration", "title": "Disable node configuration", "description": "Disabling node configuration forces the cluster administrator to ensure all node services are configured and started to use external block storage.", "type": "boolean", "default": false }, "imagePullPolicy": { "$id": "#/properties/imagePullPolicy", "title": "CSI driver image pull policy", "type": "string", "default": "IfNotPresent", "enum": [ "Always", "IfNotPresent", "Never" ] }, "iscsi": { "$id": "#/properties/iscsi", "title": "iSCSI CHAP credentials", "type": "object", "default": { "chapUser": "", "chapPassword": "" }, "required": [ "chapUser", "chapPassword" ], "properties": { "chapUser": { "$id": "#/properties/iscsi/properties/chapUser", "title": "CHAP username", "type": "string", "default": "" }, "chapPassword": { "$id": "#/properties/iscsi/properties/chapPassword", "title": "CHAP password", "description": "Between 12 and 16 characters", "type": "string", "default": "", "pattern": "^$|^[a-zA-Z0-9+_)(*^%$#@!]{12,16}$" } }, "additionalProperties": false }, "logLevel": { "$id": "#/properties/logLevel", "title": "Set the log level of the HPE CSI Driver images", "type": "string", "default": "info", "enum": [ "info", "debug", "trace", "warn", "error" ] }, "registry": { "$id": "#/properties/registry", "title": "Pull images from a different registry than default", "description": "SIG Storage images needs to be mirrored from k8s.gcr.io to this registry if this parameter is changed.", "type": "string", "default": "quay.io" }, "kubeletRootDir": { "$id": "#/properties/kubeletRootDir", "title": "Kubelet root directory", "description": "Only change this if the kubelet root dir has been altered by the Kubernetes platform installer.", "type": "string", "default": "/var/lib/kubelet", "pattern": "^/" }, "disableNodeGetVolumeStats": { "$id": "#/properties/disableNodeGetVolumeStats", "title": "Disable the CSI nodeGetVolumeStats call", "description": "In very large environments, disabling this feature may alleviate pressure on the CSP.", "type": "boolean", "default": false }, "csp": { "nodeSelector": { "$id": "#/properties/csp/properties/nodeSelector", "title": "Node selector to control the selection of nodes (optional).", "description": "Selector which must match a node's labels for the pod to be scheduled on that node.", "type": "object", "default": {} }, "tolerations": { "$id": "#/properties/csp/properties/tolerations", "title": "Set tolerations for the csp pods(optional).", "description": "Tolerations is the list of tolerations for the csp pods.", "type": "array", "default": [] }, "affinity": { "$id": "#/properties/csp/properties/affinity", "title": "Node affinity for csp plugin (optional).", "description": "Describes node affinity scheduling rules for the pod.", "type": "object", "default": {} }, "labels": { "$id": "#/properties/csp/properties/labels", "title": "labels", "description": "labels.", "type": "object", "default": {} } }, "controller": { "nodeSelector": { "$id": "#/properties/controller/properties/nodeSelector", "title": "Node selector to control the selection of nodes (optional).", "description": "Selector which must match a node's labels for the pod to be scheduled on that node.", "type": "object", "default": {} }, "tolerations": { "$id": "#/properties/controller/properties/tolerations", "title": "Set tolerations for the driver pods(optional)", "description": "Tolerations is the list of tolerations for the driver pods.", "type": "array", "default": [] }, "affinity": { "$id": "#/properties/controller/properties/affinity", "title": "Node affinity for controller plugin (optional).", "description": "Describes node affinity scheduling rules for the pod.", "type": "object", "default": {} }, "labels": { "$id": "#/properties/controller/properties/labels", "title": "labels", "description": "labels.", "type": "object", "default": {} } }, "node": { "nodeSelector": { "$id": "#/properties/node/properties/nodeSelector", "title": "Node selector to control the selection of nodes (optional).", "description": "Selector which must match a node's labels for the pod to be scheduled on that node.", "type": "object", "default": {} }, "tolerations": { "$id": "#/properties/node/properties/tolerations", "title": "Set tolerations for the node pods(optional).", "description": "Tolerations is the list of tolerations for the node pods.", "type": "array", "default": [] }, "affinity": { "$id": "#/properties/node/properties/affinity", "title": "Node affinity for node plugin (optional).", "description": "Describes node affinity scheduling rules for the pod.", "type": "object", "default": {} }, "labels": { "$id": "#/properties/node/properties/labels", "title": "labels", "description": "labels.", "type": "object", "default": {} } }, "global": {} }, "additionalProperties": false }