From 766c6faa8fb5fcca697dcfba33ffa3b0572f08f2 Mon Sep 17 00:00:00 2001 From: panigs7 Date: Thu, 28 Sep 2023 05:56:28 -0400 Subject: [PATCH] upstream-community-operators dell-csm-operator(1.3.0) Signed-off-by: panigs7 --- ...erstoragemodules.storage.dell.com.crd.yaml | 1472 ++++++++++ ...operator.v1.3.0.clusterserviceversion.yaml | 2515 +++++++++++++++++ .../1.3.0/metadata/annotations.yaml | 18 + .../1.3.0/tests/scorecard/config.yaml | 70 + 4 files changed, 4075 insertions(+) create mode 100644 operators/dell-csm-operator/1.3.0/manifests/containerstoragemodules.storage.dell.com.crd.yaml create mode 100644 operators/dell-csm-operator/1.3.0/manifests/dell-csm-operator.v1.3.0.clusterserviceversion.yaml create mode 100644 operators/dell-csm-operator/1.3.0/metadata/annotations.yaml create mode 100644 operators/dell-csm-operator/1.3.0/tests/scorecard/config.yaml diff --git a/operators/dell-csm-operator/1.3.0/manifests/containerstoragemodules.storage.dell.com.crd.yaml b/operators/dell-csm-operator/1.3.0/manifests/containerstoragemodules.storage.dell.com.crd.yaml new file mode 100644 index 00000000000..58142d3d00c --- /dev/null +++ b/operators/dell-csm-operator/1.3.0/manifests/containerstoragemodules.storage.dell.com.crd.yaml @@ -0,0 +1,1472 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.1 + creationTimestamp: null + name: containerstoragemodules.storage.dell.com +spec: + group: storage.dell.com + names: + kind: ContainerStorageModule + listKind: ContainerStorageModuleList + plural: containerstoragemodules + shortNames: + - csm + singular: containerstoragemodule + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: CreationTime + type: date + - description: Type of CSIDriver + jsonPath: .spec.driver.csiDriverType + name: CSIDriverType + type: string + - description: Version of CSIDriver + jsonPath: .spec.driver.configVersion + name: ConfigVersion + type: string + - description: State of Installation + jsonPath: .status.state + name: State + type: string + name: v1 + schema: + openAPIV3Schema: + description: ContainerStorageModule is the Schema for the containerstoragemodules + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ContainerStorageModuleSpec defines the desired state of ContainerStorageModule + properties: + driver: + description: Driver is a CSI Drivers for Dell Technologies + properties: + authSecret: + description: AuthSecret is the name of the credentials secret + for the driver + type: string + common: + description: Common is the common specification for both controller + and node plugins + properties: + args: + description: Args is the set of arguments for the container + items: + type: string + type: array + commander: + description: Commander is the image tag for the Container + type: string + enabled: + description: Enabled is used to indicate wether or not to + deploy a module + type: boolean + envs: + description: Envs is the set of environment variables for + the container + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previously defined environment variables + in the container and any service environment variables. + If a variable cannot be resolved, the reference in + the input string will be unchanged. Double $$ are + reduced to a single $, which allows for escaping the + $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce + the string literal "$(VAR_NAME)". Escaped references + will never be expanded, regardless of whether the + variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or + its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in + the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of + the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + image: + description: Image is the image tag for the Container + type: string + imagePullPolicy: + description: ImagePullPolicy is the image pull policy for + the image + type: string + name: + description: Name is the name of Container + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true + for the pod to fit on a node. Selector which must match + a node's labels for the pod to be scheduled on that node. + type: object + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + proxyService: + description: ProxyService is the image tag for the Container + type: string + redis: + description: Redis is the image tag for the Container + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + storageService: + description: StorageService is the image tag for the Container + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tolerations: + description: Tolerations is the list of tolerations for the + driver pods + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, + allowed values are NoSchedule, PreferNoSchedule and + NoExecute. + type: string + key: + description: Key is the taint key that the toleration + applies to. Empty means match all taint keys. If the + key is empty, operator must be Exists; this combination + means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship + to the value. Valid operators are Exists and Equal. + Defaults to Equal. Exists is equivalent to wildcard + for value, so that a pod can tolerate all taints of + a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period + of time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the + taint forever (do not evict). Zero and negative values + will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration + matches to. If the operator is Exists, the value should + be empty, otherwise just a regular string. + type: string + type: object + type: array + type: object + configVersion: + description: ConfigVersion is the configuration version of the + driver + type: string + controller: + description: Controller is the specification for Controller plugin + only + properties: + args: + description: Args is the set of arguments for the container + items: + type: string + type: array + commander: + description: Commander is the image tag for the Container + type: string + enabled: + description: Enabled is used to indicate wether or not to + deploy a module + type: boolean + envs: + description: Envs is the set of environment variables for + the container + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previously defined environment variables + in the container and any service environment variables. + If a variable cannot be resolved, the reference in + the input string will be unchanged. Double $$ are + reduced to a single $, which allows for escaping the + $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce + the string literal "$(VAR_NAME)". Escaped references + will never be expanded, regardless of whether the + variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or + its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in + the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of + the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + image: + description: Image is the image tag for the Container + type: string + imagePullPolicy: + description: ImagePullPolicy is the image pull policy for + the image + type: string + name: + description: Name is the name of Container + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true + for the pod to fit on a node. Selector which must match + a node's labels for the pod to be scheduled on that node. + type: object + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + proxyService: + description: ProxyService is the image tag for the Container + type: string + redis: + description: Redis is the image tag for the Container + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + storageService: + description: StorageService is the image tag for the Container + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tolerations: + description: Tolerations is the list of tolerations for the + driver pods + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, + allowed values are NoSchedule, PreferNoSchedule and + NoExecute. + type: string + key: + description: Key is the taint key that the toleration + applies to. Empty means match all taint keys. If the + key is empty, operator must be Exists; this combination + means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship + to the value. Valid operators are Exists and Equal. + Defaults to Equal. Exists is equivalent to wildcard + for value, so that a pod can tolerate all taints of + a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period + of time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the + taint forever (do not evict). Zero and negative values + will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration + matches to. If the operator is Exists, the value should + be empty, otherwise just a regular string. + type: string + type: object + type: array + type: object + csiDriverSpec: + description: CSIDriverSpec is the specification for CSIDriver + properties: + fSGroupPolicy: + type: string + storageCapacity: + type: boolean + type: object + csiDriverType: + description: CSIDriverType is the CSI Driver type for Dell Technologies + - e.g, powermax, powerflex,... + type: string + dnsPolicy: + description: DNSPolicy is the dnsPolicy of the daemonset for Node + plugin + type: string + forceRemoveDriver: + description: ForceRemoveDriver is the boolean flag used to remove + driver deployment when CR is deleted + type: boolean + forceUpdate: + description: ForceUpdate is the boolean flag used to force an + update of the driver instance + type: boolean + initContainers: + description: InitContainers is the specification for Driver InitContainers + items: + description: ContainerTemplate template + properties: + args: + description: Args is the set of arguments for the container + items: + type: string + type: array + commander: + description: Commander is the image tag for the Container + type: string + enabled: + description: Enabled is used to indicate wether or not to + deploy a module + type: boolean + envs: + description: Envs is the set of environment variables for + the container + items: + description: EnvVar represents an environment variable + present in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are + expanded using the previously defined environment + variables in the container and any service environment + variables. If a variable cannot be resolved, the + reference in the input string will be unchanged. + Double $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" + will produce the string literal "$(VAR_NAME)". Escaped + references will never be expanded, regardless of + whether the variable exists or not. Defaults to + "".' + type: string + valueFrom: + description: Source for the environment variable's + value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap + or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in + the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for + volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of + the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the + pod's namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or + its key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + image: + description: Image is the image tag for the Container + type: string + imagePullPolicy: + description: ImagePullPolicy is the image pull policy for + the image + type: string + name: + description: Name is the name of Container + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true + for the pod to fit on a node. Selector which must match + a node's labels for the pod to be scheduled on that node. + type: object + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + proxyService: + description: ProxyService is the image tag for the Container + type: string + redis: + description: Redis is the image tag for the Container + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + storageService: + description: StorageService is the image tag for the Container + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tolerations: + description: Tolerations is the list of tolerations for + the driver pods + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple + using the matching operator . + properties: + effect: + description: Effect indicates the taint effect to + match. Empty means match all taint effects. When + specified, allowed values are NoSchedule, PreferNoSchedule + and NoExecute. + type: string + key: + description: Key is the taint key that the toleration + applies to. Empty means match all taint keys. If + the key is empty, operator must be Exists; this + combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship + to the value. Valid operators are Exists and Equal. + Defaults to Equal. Exists is equivalent to wildcard + for value, so that a pod can tolerate all taints + of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period + of time the toleration (which must be of effect + NoExecute, otherwise this field is ignored) tolerates + the taint. By default, it is not set, which means + tolerate the taint forever (do not evict). Zero + and negative values will be treated as 0 (evict + immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration + matches to. If the operator is Exists, the value + should be empty, otherwise just a regular string. + type: string + type: object + type: array + type: object + type: array + node: + description: Node is the specification for Node plugin only + properties: + args: + description: Args is the set of arguments for the container + items: + type: string + type: array + commander: + description: Commander is the image tag for the Container + type: string + enabled: + description: Enabled is used to indicate wether or not to + deploy a module + type: boolean + envs: + description: Envs is the set of environment variables for + the container + items: + description: EnvVar represents an environment variable present + in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded + using the previously defined environment variables + in the container and any service environment variables. + If a variable cannot be resolved, the reference in + the input string will be unchanged. Double $$ are + reduced to a single $, which allows for escaping the + $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce + the string literal "$(VAR_NAME)". Escaped references + will never be expanded, regardless of whether the + variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. + Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or + its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in + the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, + optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of + the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the pod's + namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + image: + description: Image is the image tag for the Container + type: string + imagePullPolicy: + description: ImagePullPolicy is the image pull policy for + the image + type: string + name: + description: Name is the name of Container + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true + for the pod to fit on a node. Selector which must match + a node's labels for the pod to be scheduled on that node. + type: object + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + proxyService: + description: ProxyService is the image tag for the Container + type: string + redis: + description: Redis is the image tag for the Container + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + storageService: + description: StorageService is the image tag for the Container + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tolerations: + description: Tolerations is the list of tolerations for the + driver pods + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching operator . + properties: + effect: + description: Effect indicates the taint effect to match. + Empty means match all taint effects. When specified, + allowed values are NoSchedule, PreferNoSchedule and + NoExecute. + type: string + key: + description: Key is the taint key that the toleration + applies to. Empty means match all taint keys. If the + key is empty, operator must be Exists; this combination + means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship + to the value. Valid operators are Exists and Equal. + Defaults to Equal. Exists is equivalent to wildcard + for value, so that a pod can tolerate all taints of + a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period + of time the toleration (which must be of effect NoExecute, + otherwise this field is ignored) tolerates the taint. + By default, it is not set, which means tolerate the + taint forever (do not evict). Zero and negative values + will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration + matches to. If the operator is Exists, the value should + be empty, otherwise just a regular string. + type: string + type: object + type: array + type: object + replicas: + description: Replicas is the count of controllers for Controller + plugin + format: int32 + type: integer + sideCars: + description: SideCars is the specification for CSI sidecar containers + items: + description: ContainerTemplate template + properties: + args: + description: Args is the set of arguments for the container + items: + type: string + type: array + commander: + description: Commander is the image tag for the Container + type: string + enabled: + description: Enabled is used to indicate wether or not to + deploy a module + type: boolean + envs: + description: Envs is the set of environment variables for + the container + items: + description: EnvVar represents an environment variable + present in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are + expanded using the previously defined environment + variables in the container and any service environment + variables. If a variable cannot be resolved, the + reference in the input string will be unchanged. + Double $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" + will produce the string literal "$(VAR_NAME)". Escaped + references will never be expanded, regardless of + whether the variable exists or not. Defaults to + "".' + type: string + valueFrom: + description: Source for the environment variable's + value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap + or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in + the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for + volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of + the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the + pod's namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or + its key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + image: + description: Image is the image tag for the Container + type: string + imagePullPolicy: + description: ImagePullPolicy is the image pull policy for + the image + type: string + name: + description: Name is the name of Container + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be true + for the pod to fit on a node. Selector which must match + a node's labels for the pod to be scheduled on that node. + type: object + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + proxyService: + description: ProxyService is the image tag for the Container + type: string + redis: + description: Redis is the image tag for the Container + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + storageService: + description: StorageService is the image tag for the Container + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tolerations: + description: Tolerations is the list of tolerations for + the driver pods + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple + using the matching operator . + properties: + effect: + description: Effect indicates the taint effect to + match. Empty means match all taint effects. When + specified, allowed values are NoSchedule, PreferNoSchedule + and NoExecute. + type: string + key: + description: Key is the taint key that the toleration + applies to. Empty means match all taint keys. If + the key is empty, operator must be Exists; this + combination means to match all values and all keys. + type: string + operator: + description: Operator represents a key's relationship + to the value. Valid operators are Exists and Equal. + Defaults to Equal. Exists is equivalent to wildcard + for value, so that a pod can tolerate all taints + of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period + of time the toleration (which must be of effect + NoExecute, otherwise this field is ignored) tolerates + the taint. By default, it is not set, which means + tolerate the taint forever (do not evict). Zero + and negative values will be treated as 0 (evict + immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration + matches to. If the operator is Exists, the value + should be empty, otherwise just a regular string. + type: string + type: object + type: array + type: object + type: array + snapshotClass: + description: SnapshotClass is the specification for Snapshot Classes + items: + description: SnapshotClass struct + properties: + name: + description: Name is the name of the Snapshot Class + type: string + parameters: + additionalProperties: + type: string + description: Parameters is a map of driver specific parameters + for snapshot class + type: object + type: object + type: array + tlsCertSecret: + description: TLSCertSecret is the name of the TLS Cert secret + type: string + type: object + modules: + description: Modules is list of Container Storage Module modules you + want to deploy + items: + description: Module defines the desired state of a ContainerStorageModule + properties: + components: + description: Components is the specification for CSM components + containers + items: + description: ContainerTemplate template + properties: + args: + description: Args is the set of arguments for the container + items: + type: string + type: array + commander: + description: Commander is the image tag for the Container + type: string + enabled: + description: Enabled is used to indicate wether or not + to deploy a module + type: boolean + envs: + description: Envs is the set of environment variables + for the container + items: + description: EnvVar represents an environment variable + present in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are + expanded using the previously defined environment + variables in the container and any service environment + variables. If a variable cannot be resolved, the + reference in the input string will be unchanged. + Double $$ are reduced to a single $, which allows + for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" + will produce the string literal "$(VAR_NAME)". + Escaped references will never be expanded, regardless + of whether the variable exists or not. Defaults + to "".' + type: string + valueFrom: + description: Source for the environment variable's + value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap + or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select + in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for + volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format + of the exposed resources, defaults to + "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the + pod's namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret + or its key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + image: + description: Image is the image tag for the Container + type: string + imagePullPolicy: + description: ImagePullPolicy is the image pull policy + for the image + type: string + name: + description: Name is the name of Container + type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is a selector which must be + true for the pod to fit on a node. Selector which must + match a node's labels for the pod to be scheduled on + that node. + type: object + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + proxyService: + description: ProxyService is the image tag for the Container + type: string + redis: + description: Redis is the image tag for the Container + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + storageService: + description: StorageService is the image tag for the Container + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tolerations: + description: Tolerations is the list of tolerations for + the driver pods + items: + description: The pod this Toleration is attached to + tolerates any taint that matches the triple + using the matching operator . + properties: + effect: + description: Effect indicates the taint effect to + match. Empty means match all taint effects. When + specified, allowed values are NoSchedule, PreferNoSchedule + and NoExecute. + type: string + key: + description: Key is the taint key that the toleration + applies to. Empty means match all taint keys. + If the key is empty, operator must be Exists; + this combination means to match all values and + all keys. + type: string + operator: + description: Operator represents a key's relationship + to the value. Valid operators are Exists and Equal. + Defaults to Equal. Exists is equivalent to wildcard + for value, so that a pod can tolerate all taints + of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period + of time the toleration (which must be of effect + NoExecute, otherwise this field is ignored) tolerates + the taint. By default, it is not set, which means + tolerate the taint forever (do not evict). Zero + and negative values will be treated as 0 (evict + immediately) by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration + matches to. If the operator is Exists, the value + should be empty, otherwise just a regular string. + type: string + type: object + type: array + type: object + type: array + configVersion: + description: ConfigVersion is the configuration version of the + module + type: string + enabled: + description: Enabled is used to indicate whether or not to deploy + a module + type: boolean + forceRemoveModule: + description: ForceRemoveModule is the boolean flag used to remove + authorization proxy server deployment when CR is deleted + type: boolean + name: + description: Name is name of ContainerStorageModule modules + type: string + type: object + type: array + type: object + status: + description: ContainerStorageModuleStatus defines the observed state of + ContainerStorageModule + properties: + controllerStatus: + description: ControllerStatus is the status of Controller pods + properties: + available: + type: string + desired: + type: string + failed: + type: string + type: object + nodeStatus: + description: NodeStatus is the status of Controller pods + properties: + available: + type: string + desired: + type: string + failed: + type: string + type: object + state: + description: State is the state of the driver installation + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] + \ No newline at end of file diff --git a/operators/dell-csm-operator/1.3.0/manifests/dell-csm-operator.v1.3.0.clusterserviceversion.yaml b/operators/dell-csm-operator/1.3.0/manifests/dell-csm-operator.v1.3.0.clusterserviceversion.yaml new file mode 100644 index 00000000000..a6174445f84 --- /dev/null +++ b/operators/dell-csm-operator/1.3.0/manifests/dell-csm-operator.v1.3.0.clusterserviceversion.yaml @@ -0,0 +1,2515 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "storage.dell.com/v1", + "kind": "ContainerStorageModule", + "metadata": { + "name": "isilon", + "namespace": "isilon" + }, + "spec": { + "driver": { + "authSecret": "isilon-creds", + "common": { + "envs": [ + { + "name": "X_CSI_VERBOSE", + "value": "1" + }, + { + "name": "X_CSI_ISI_PORT", + "value": "8080" + }, + { + "name": "X_CSI_ISI_PATH", + "value": "/ifs/data/csi" + }, + { + "name": "X_CSI_ISI_NO_PROBE_ON_START", + "value": "false" + }, + { + "name": "X_CSI_ISI_AUTOPROBE", + "value": "true" + }, + { + "name": "X_CSI_ISI_SKIP_CERTIFICATE_VALIDATION", + "value": "true" + }, + { + "name": "X_CSI_CUSTOM_TOPOLOGY_ENABLED", + "value": "false" + }, + { + "name": "KUBELET_CONFIG_DIR", + "value": "/var/lib/kubelet" + }, + { + "name": "CERT_SECRET_COUNT", + "value": "1" + }, + { + "name": "CSI_LOG_LEVEL", + "value": "debug" + } + ], + "image": "dellemc/csi-isilon:v2.8.0", + "imagePullPolicy": "IfNotPresent" + }, + "configVersion": "v2.8.0", + "controller": { + "envs": [ + { + "name": "X_CSI_ISI_QUOTA_ENABLED", + "value": "true" + }, + { + "name": "X_CSI_ISI_ACCESS_ZONE", + "value": "System" + }, + { + "name": "X_CSI_ISI_VOLUME_PATH_PERMISSIONS", + "value": "0777" + }, + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_ISI_IGNORE_UNRESOLVABLE_HOSTS", + "value": "false" + }, + { + "name": "X_CSI_MAX_PATH_LIMIT", + "value": "192" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "csiDriverSpec": { + "fSGroupPolicy": "ReadWriteOnceWithFSType", + "storageCapacity": true + }, + "csiDriverType": "isilon", + "dnsPolicy": "ClusterFirstWithHostNet", + "forceRemoveDriver": true, + "node": { + "envs": [ + { + "name": "X_CSI_MAX_VOLUMES_PER_NODE", + "value": "0" + }, + { + "name": "X_CSI_ALLOWED_NETWORKS", + "value": "" + }, + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_MAX_PATH_LIMIT", + "value": "192" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "replicas": 2, + "sideCars": [ + { + "args": [ + "--volume-name-prefix=csipscale" + ], + "name": "provisioner" + }, + { + "args": [ + "--monitor-interval=60s" + ], + "enabled": false, + "name": "external-health-monitor" + } + ] + }, + "modules": [ + { + "components": [ + { + "envs": [ + { + "name": "PROXY_HOST", + "value": "csm-authorization.com" + }, + { + "name": "SKIP_CERTIFICATE_VALIDATION", + "value": "true" + } + ], + "image": "dellemc/csm-authorization-sidecar:v1.8.0", + "name": "karavi-authorization-proxy" + } + ], + "configVersion": "v1.8.0", + "enabled": false, + "name": "authorization" + }, + { + "components": [ + { + "envs": [ + { + "name": "X_CSI_REPLICATION_PREFIX", + "value": "replication.storage.dell.com" + }, + { + "name": "X_CSI_REPLICATION_CONTEXT_PREFIX", + "value": "powerscale" + } + ], + "image": "dellemc/dell-csi-replicator:v1.6.0", + "name": "dell-csi-replicator" + }, + { + "envs": [ + { + "name": "TARGET_CLUSTERS_IDS", + "value": "target-cluster-1" + }, + { + "name": "REPLICATION_CTRL_LOG_LEVEL", + "value": "debug" + }, + { + "name": "REPLICATION_CTRL_REPLICAS", + "value": "1" + }, + { + "name": "RETRY_INTERVAL_MIN", + "value": "1s" + }, + { + "name": "RETRY_INTERVAL_MAX", + "value": "5m" + } + ], + "image": "dellemc/dell-replication-controller:v1.6.0", + "name": "dell-replication-controller-manager" + } + ], + "configVersion": "v1.6.0", + "enabled": false, + "name": "replication" + }, + { + "components": [ + { + "enabled": false, + "envs": [ + { + "name": "TOPOLOGY_LOG_LEVEL", + "value": "INFO" + } + ], + "image": "dellemc/csm-topology:v1.6.0", + "name": "topology" + }, + { + "enabled": false, + "envs": [ + { + "name": "NGINX_PROXY_IMAGE", + "value": "nginxinc/nginx-unprivileged:1.20" + } + ], + "image": "otel/opentelemetry-collector:0.42.0", + "name": "otel-collector" + }, + { + "enabled": false, + "name": "cert-manager" + }, + { + "enabled": false, + "envs": [ + { + "name": "POWERSCALE_MAX_CONCURRENT_QUERIES", + "value": "10" + }, + { + "name": "POWERSCALE_CAPACITY_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERSCALE_PERFORMANCE_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERSCALE_CLUSTER_CAPACITY_POLL_FREQUENCY", + "value": "30" + }, + { + "name": "POWERSCALE_CLUSTER_PERFORMANCE_POLL_FREQUENCY", + "value": "20" + }, + { + "name": "POWERSCALE_QUOTA_CAPACITY_POLL_FREQUENCY", + "value": "30" + }, + { + "name": "ISICLIENT_INSECURE", + "value": "true" + }, + { + "name": "ISICLIENT_AUTH_TYPE", + "value": "1" + }, + { + "name": "ISICLIENT_VERBOSE", + "value": "0" + }, + { + "name": "POWERSCALE_LOG_LEVEL", + "value": "INFO" + }, + { + "name": "POWERSCALE_LOG_FORMAT", + "value": "TEXT" + }, + { + "name": "COLLECTOR_ADDRESS", + "value": "otel-collector:55680" + } + ], + "image": "dellemc/csm-metrics-powerscale:v1.3.0", + "name": "metrics-powerscale" + } + ], + "configVersion": "v1.6.0", + "enabled": false, + "name": "observability" + }, + { + "components": [ + { + "args": [ + "--labelvalue=csi-isilon", + "--arrayConnectivityPollRate=60", + "--skipArrayConnectionValidation=false", + "--driverPodLabelValue=dell-storage", + "--ignoreVolumelessPods=false", + "--arrayConnectivityConnectionLossThreshold=3", + "--csisock=unix:/var/run/csi/csi.sock", + "--mode=controller", + "--driverPath=csi-isilon.dellemc.com", + "--driver-config-params=/csi-isilon-config-params/driver-config-params.yaml" + ], + "image": "dellemc/podmon:v1.6.0", + "imagePullPolicy": "IfNotPresent", + "name": "podmon-controller" + }, + { + "args": [ + "--labelvalue=csi-isilon", + "--arrayConnectivityPollRate=60", + "--leaderelection=false", + "--driverPodLabelValue=dell-storage", + "--ignoreVolumelessPods=false", + "--csisock=unix:/var/lib/kubelet/plugins/csi-isilon/csi_sock", + "--mode=node", + "--driverPath=csi-isilon.dellemc.com", + "--driver-config-params=/csi-isilon-config-params/driver-config-params.yaml" + ], + "envs": [ + { + "name": "X_CSI_PODMON_API_PORT", + "value": "8083" + } + ], + "image": "dellemc/podmon:v1.6.0", + "imagePullPolicy": "IfNotPresent", + "name": "podmon-node" + } + ], + "configVersion": "v1.7.0", + "enabled": false, + "name": "resiliency" + } + ] + } + }, + { + "apiVersion": "storage.dell.com/v1", + "kind": "ContainerStorageModule", + "metadata": { + "name": "powermax", + "namespace": "powermax" + }, + "spec": { + "driver": { + "authSecret": "powermax-creds", + "common": { + "envs": [ + { + "name": "X_CSI_MANAGED_ARRAYS", + "value": "000000000000,000000000001" + }, + { + "name": "X_CSI_POWERMAX_ENDPOINT", + "value": "https://0.0.0.0:8443/" + }, + { + "name": "X_CSI_K8S_CLUSTER_PREFIX", + "value": "XYZ" + }, + { + "name": "KUBELET_CONFIG_DIR", + "value": "/var/lib/kubelet" + }, + { + "name": "X_CSI_POWERMAX_PORTGROUPS", + "value": "" + }, + { + "name": "X_CSI_TRANSPORT_PROTOCOL", + "value": "" + }, + { + "name": "X_CSI_POWERMAX_PROXY_SERVICE_NAME", + "value": "csipowermax-reverseproxy" + }, + { + "name": "X_CSI_VSPHERE_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_VSPHERE_PORTGROUP", + "value": "" + }, + { + "name": "X_CSI_VSPHERE_HOSTNAME", + "value": "" + }, + { + "name": "X_CSI_VCENTER_HOST", + "value": "" + } + ], + "image": "dellemc/csi-powermax:v2.8.0", + "imagePullPolicy": "IfNotPresent" + }, + "configVersion": "v2.8.0", + "controller": { + "envs": [ + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "csiDriverSpec": { + "fSGroupPolicy": "ReadWriteOnceWithFSType", + "storageCapacity": true + }, + "csiDriverType": "powermax", + "dnsPolicy": "ClusterFirstWithHostNet", + "forceRemoveDriver": true, + "forceUpdate": false, + "node": { + "envs": [ + { + "name": "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP", + "value": "false" + }, + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_TOPOLOGY_CONTROL_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_MAX_VOLUMES_PER_NODE", + "value": "0" + } + ], + "nodeSelector": null, + "tolerations": [ + { + "effect": "NoExecute", + "key": "node.kubernetes.io/memory-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/network-unavailable", + "operator": "Exists" + } + ] + }, + "replicas": 2, + "sideCars": [ + { + "args": [ + "--monitor-interval=60s" + ], + "enabled": false, + "name": "external-health-monitor" + } + ] + }, + "modules": [ + { + "components": [ + { + "envs": [ + { + "name": "X_CSI_REVPROXY_TLS_SECRET", + "value": "csirevproxy-tls-secret" + }, + { + "name": "X_CSI_REVPROXY_PORT", + "value": "2222" + }, + { + "name": "X_CSI_CONFIG_MAP_NAME", + "value": "powermax-reverseproxy-config" + } + ], + "image": "dellemc/csipowermax-reverseproxy:v2.7.0", + "name": "csipowermax-reverseproxy" + } + ], + "configVersion": "v2.7.0", + "enabled": true, + "forceRemoveModule": true, + "name": "csireverseproxy" + }, + { + "components": [ + { + "envs": [ + { + "name": "PROXY_HOST", + "value": "csm-authorization.com" + }, + { + "name": "SKIP_CERTIFICATE_VALIDATION", + "value": "true" + } + ], + "image": "dellemc/csm-authorization-sidecar:v1.8.0", + "name": "karavi-authorization-proxy" + } + ], + "configVersion": "v1.8.0", + "enabled": false, + "name": "authorization" + }, + { + "components": [ + { + "envs": [ + { + "name": "X_CSI_REPLICATION_PREFIX", + "value": "replication.storage.dell.com" + }, + { + "name": "X_CSI_REPLICATION_CONTEXT_PREFIX", + "value": "powermax" + } + ], + "image": "dellemc/dell-csi-replicator:v1.6.0", + "name": "dell-csi-replicator" + }, + { + "envs": [ + { + "name": "TARGET_CLUSTERS_IDS", + "value": "target-cluster-1" + }, + { + "name": "REPLICATION_CTRL_LOG_LEVEL", + "value": "debug" + }, + { + "name": "REPLICATION_CTRL_REPLICAS", + "value": "1" + }, + { + "name": "RETRY_INTERVAL_MIN", + "value": "1s" + }, + { + "name": "RETRY_INTERVAL_MAX", + "value": "5m" + } + ], + "image": "dellemc/dell-replication-controller:v1.6.0", + "name": "dell-replication-controller-manager" + } + ], + "configVersion": "v1.6.0", + "enabled": false, + "name": "replication" + }, + { + "components": [ + { + "enabled": false, + "envs": [ + { + "name": "TOPOLOGY_LOG_LEVEL", + "value": "INFO" + } + ], + "image": "dellemc/csm-topology:v1.6.0", + "name": "topology" + }, + { + "enabled": false, + "envs": [ + { + "name": "NGINX_PROXY_IMAGE", + "value": "nginxinc/nginx-unprivileged:1.20" + } + ], + "image": "otel/opentelemetry-collector:0.42.0", + "name": "otel-collector" + }, + { + "enabled": false, + "name": "cert-manager" + }, + { + "enabled": false, + "envs": [ + { + "name": "POWERMAX_MAX_CONCURRENT_QUERIES", + "value": "10" + }, + { + "name": "POWERMAX_CAPACITY_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERMAX_PERFORMANCE_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERMAX_CAPACITY_POLL_FREQUENCY", + "value": "10" + }, + { + "name": "POWERMAX_PERFORMANCE_POLL_FREQUENCY", + "value": "10" + }, + { + "name": "POWERMAX_LOG_LEVEL", + "value": "INFO" + }, + { + "name": "POWERMAX_LOG_FORMAT", + "value": "TEXT" + }, + { + "name": "COLLECTOR_ADDRESS", + "value": "otel-collector:55680" + }, + { + "name": "X_CSI_CONFIG_MAP_NAME", + "value": "powermax-reverseproxy-config" + } + ], + "image": "dellemc/csm-metrics-powermax:v1.1.0", + "name": "metrics-powermax" + } + ], + "configVersion": "v1.6.0", + "enabled": false, + "name": "observability" + } + ] + } + }, + { + "apiVersion": "storage.dell.com/v1", + "kind": "ContainerStorageModule", + "metadata": { + "name": "powerstore", + "namespace": "powerstore" + }, + "spec": { + "driver": { + "authSecret": "powerstore-config", + "common": { + "envs": [ + { + "name": "X_CSI_POWERSTORE_NODE_NAME_PREFIX", + "value": "csi-node" + }, + { + "name": "X_CSI_FC_PORTS_FILTER_FILE_PATH", + "value": "/etc/fc-ports-filter" + }, + { + "name": "KUBELET_CONFIG_DIR", + "value": "/var/lib/kubelet" + }, + { + "name": "CSI_LOG_LEVEL", + "value": "debug" + } + ], + "image": "dellemc/csi-powerstore:v2.8.0", + "imagePullPolicy": "IfNotPresent" + }, + "configVersion": "v2.8.0", + "controller": { + "envs": [ + { + "name": "X_CSI_NFS_ACLS", + "value": "0777" + }, + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_POWERSTORE_EXTERNAL_ACCESS", + "value": null + } + ], + "nodeSelector": null, + "tolerations": null + }, + "csiDriverSpec": { + "fSGroupPolicy": "ReadWriteOnceWithFSType", + "storageCapacity": true + }, + "csiDriverType": "powerstore", + "dnsPolicy": "ClusterFirstWithHostNet", + "forceRemoveDriver": true, + "forceUpdate": false, + "node": { + "envs": [ + { + "name": "X_CSI_POWERSTORE_ENABLE_CHAP", + "value": "false" + }, + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_POWERSTORE_MAX_VOLUMES_PER_NODE", + "value": "0" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "replicas": 2, + "sideCars": [ + { + "args": [ + "--monitor-interval=60s" + ], + "enabled": false, + "name": "external-health-monitor" + } + ] + }, + "modules": [ + { + "components": [ + { + "args": [ + "--labelvalue=csi-powerstore", + "--arrayConnectivityPollRate=60", + "--skipArrayConnectionValidation=false", + "--driverPodLabelValue=dell-storage", + "--ignoreVolumelessPods=false", + "--arrayConnectivityConnectionLossThreshold=3", + "--csisock=unix:/var/run/csi/csi.sock", + "--mode=controller", + "--driver-config-params=/powerstore-config-params/driver-config-params.yaml", + "--driverPath=csi-powerstore.dellemc.com" + ], + "image": "dellemc/podmon:v1.7.0", + "imagePullPolicy": "IfNotPresent", + "name": "podmon-controller" + }, + { + "args": [ + "--labelvalue=csi-powerstore", + "--arrayConnectivityPollRate=60", + "--leaderelection=false", + "--driverPodLabelValue=dell-storage", + "--ignoreVolumelessPods=false", + "--csisock=unix:/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock", + "--mode=node", + "--driver-config-params=/powerstore-config-params/driver-config-params.yaml", + "--driverPath=csi-powerstore.dellemc.com" + ], + "envs": [ + { + "name": "X_CSI_PODMON_API_PORT", + "value": "8083" + } + ], + "image": "dellemc/podmon:v1.7.0", + "imagePullPolicy": "IfNotPresent", + "name": "podmon-node" + } + ], + "configVersion": "v1.7.0", + "enabled": false, + "name": "resiliency" + } + ] + } + }, + { + "apiVersion": "storage.dell.com/v1", + "kind": "ContainerStorageModule", + "metadata": { + "name": "unity", + "namespace": "unity" + }, + "spec": { + "driver": { + "common": { + "envs": [ + { + "name": "X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS", + "value": "false" + }, + { + "name": "X_CSI_EPHEMERAL_STAGING_PATH", + "value": "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/" + }, + { + "name": "X_CSI_ISCSI_CHROOT", + "value": "/noderoot" + }, + { + "name": "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", + "value": "15" + }, + { + "name": "KUBELET_CONFIG_DIR", + "value": "/var/lib/kubelet" + }, + { + "name": "CSI_LOG_LEVEL", + "value": "debug" + }, + { + "name": "TENANT_NAME", + "value": "" + }, + { + "name": "CERT_SECRET_COUNT", + "value": "1" + }, + { + "name": "X_CSI_UNITY_SKIP_CERTIFICATE_VALIDATION", + "value": "true" + } + ], + "image": "dellemc/csi-unity:v2.8.0", + "imagePullPolicy": "IfNotPresent" + }, + "configVersion": "v2.8.0", + "controller": { + "envs": [ + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "csiDriverSpec": { + "fSGroupPolicy": "ReadWriteOnceWithFSType", + "storageCapacity": true + }, + "csiDriverType": "unity", + "dnsPolicy": "ClusterFirstWithHostNet", + "forceRemoveDriver": true, + "forceUpdate": false, + "node": { + "envs": [ + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "replicas": 2, + "sideCars": [ + { + "args": [ + "--monitor-interval=60s" + ], + "enabled": false, + "name": "external-health-monitor" + } + ] + } + } + }, + { + "apiVersion": "storage.dell.com/v1", + "kind": "ContainerStorageModule", + "metadata": { + "name": "vxflexos", + "namespace": "vxflexos" + }, + "spec": { + "driver": { + "common": { + "envs": [ + { + "name": "X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT", + "value": "false" + }, + { + "name": "X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE", + "value": "false" + }, + { + "name": "X_CSI_DEBUG", + "value": "true" + }, + { + "name": "KUBELET_CONFIG_DIR", + "value": "/var/lib/kubelet" + }, + { + "name": "CERT_SECRET_COUNT", + "value": "0" + }, + { + "name": "X_CSI_QUOTA_ENABLED", + "value": "false" + } + ], + "image": "dellemc/csi-vxflexos:v2.8.0", + "imagePullPolicy": "IfNotPresent" + }, + "configVersion": "v2.8.0", + "controller": { + "envs": [ + { + "name": "X_CSI_HEALTH_MONITOR_ENABLED", + "value": "false" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "csiDriverSpec": { + "fSGroupPolicy": "File", + "storageCapacity": true + }, + "csiDriverType": "powerflex", + "dnsPolicy": "ClusterFirstWithHostNet", + "forceRemoveDriver": true, + "forceUpdate": false, + "initContainers": [ + { + "envs": [ + { + "name": "MDM", + "value": "10.xx.xx.xx,10.xx.xx.xx" + } + ], + "image": "dellemc/sdc:3.6.1", + "imagePullPolicy": "IfNotPresent", + "name": "sdc" + } + ], + "node": { + "envs": [ + { + "name": "X_CSI_APPROVE_SDC_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_RENAME_SDC_ENABLED", + "value": "false" + }, + { + "name": "X_CSI_RENAME_SDC_PREFIX", + "value": "" + }, + { + "name": "X_CSI_MAX_VOLUMES_PER_NODE", + "value": "0" + } + ], + "nodeSelector": null, + "tolerations": null + }, + "replicas": 1, + "sideCars": [ + { + "enabled": false, + "envs": [ + { + "name": "HOST_PID", + "value": "1" + }, + { + "name": "MDM", + "value": "10.xx.xx.xx,10.xx.xx.xx" + } + ], + "image": "dellemc/sdc:3.6.1", + "name": "sdc-monitor" + }, + { + "args": [ + "--monitor-interval=60s" + ], + "enabled": false, + "name": "csi-external-health-monitor-controller" + } + ] + }, + "modules": [ + { + "components": [ + { + "envs": [ + { + "name": "PROXY_HOST", + "value": "csm-authorization.com" + }, + { + "name": "SKIP_CERTIFICATE_VALIDATION", + "value": "true" + } + ], + "image": "dellemc/csm-authorization-sidecar:v1.8.0", + "name": "karavi-authorization-proxy" + } + ], + "configVersion": "v1.8.0", + "enabled": false, + "name": "authorization" + }, + { + "components": [ + { + "enabled": false, + "envs": [ + { + "name": "TOPOLOGY_LOG_LEVEL", + "value": "INFO" + } + ], + "image": "dellemc/csm-topology:v1.6.0", + "name": "topology" + }, + { + "enabled": false, + "envs": [ + { + "name": "NGINX_PROXY_IMAGE", + "value": "nginxinc/nginx-unprivileged:1.20" + } + ], + "image": "otel/opentelemetry-collector:0.42.0", + "name": "otel-collector" + }, + { + "enabled": false, + "name": "cert-manager" + }, + { + "enabled": false, + "envs": [ + { + "name": "POWERFLEX_MAX_CONCURRENT_QUERIES", + "value": "10" + }, + { + "name": "POWERFLEX_SDC_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERFLEX_VOLUME_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERFLEX_STORAGE_POOL_METRICS_ENABLED", + "value": "true" + }, + { + "name": "POWERFLEX_SDC_IO_POLL_FREQUENCY", + "value": "10" + }, + { + "name": "POWERFLEX_VOLUME_IO_POLL_FREQUENCY", + "value": "10" + }, + { + "name": "POWERFLEX_STORAGE_POOL_POLL_FREQUENCY", + "value": "10" + }, + { + "name": "POWERFLEX_LOG_LEVEL", + "value": "INFO" + }, + { + "name": "POWERFLEX_LOG_FORMAT", + "value": "TEXT" + }, + { + "name": "COLLECTOR_ADDRESS", + "value": "otel-collector:55680" + } + ], + "image": "dellemc/csm-metrics-powerflex:v1.6.0", + "name": "metrics-powerflex" + } + ], + "configVersion": "v1.6.0", + "enabled": false, + "name": "observability" + }, + { + "components": [ + { + "envs": [ + { + "name": "X_CSI_REPLICATION_PREFIX", + "value": "replication.storage.dell.com" + }, + { + "name": "X_CSI_REPLICATION_CONTEXT_PREFIX", + "value": "powerflex" + } + ], + "image": "dellemc/dell-csi-replicator:v1.6.0", + "name": "dell-csi-replicator" + }, + { + "envs": [ + { + "name": "TARGET_CLUSTERS_IDS", + "value": "target-cluster-1" + }, + { + "name": "REPLICATION_CTRL_LOG_LEVEL", + "value": "debug" + }, + { + "name": "REPLICATION_CTRL_REPLICAS", + "value": "1" + }, + { + "name": "RETRY_INTERVAL_MIN", + "value": "1s" + }, + { + "name": "RETRY_INTERVAL_MAX", + "value": "5m" + } + ], + "image": "dellemc/dell-replication-controller:v1.6.0", + "name": "dell-replication-controller-manager" + } + ], + "configVersion": "v1.6.0", + "enabled": false, + "name": "replication" + }, + { + "components": [ + { + "args": [ + "--labelvalue=csi-vxflexos", + "--skipArrayConnectionValidation=false", + "--driverPodLabelValue=dell-storage", + "--ignoreVolumelessPods=false", + "--arrayConnectivityPollRate=5", + "--arrayConnectivityConnectionLossThreshold=3", + "--csisock=unix:/var/run/csi/csi.sock", + "--mode=controller", + "--driver-config-params=/vxflexos-config-params/driver-config-params.yaml" + ], + "image": "dellemc/podmon:v1.7.0", + "imagePullPolicy": "IfNotPresent", + "name": "podmon-controller" + }, + { + "args": [ + "--labelvalue=csi-vxflexos", + "--leaderelection=false", + "--driverPodLabelValue=dell-storage", + "--ignoreVolumelessPods=false", + "--arrayConnectivityPollRate=5", + "--csisock=unix:/var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock", + "--mode=node", + "--driver-config-params=/vxflexos-config-params/driver-config-params.yaml" + ], + "envs": [ + { + "name": "X_CSI_PODMON_API_PORT", + "value": "8083" + } + ], + "image": "dellemc/podmon:v1.7.0", + "imagePullPolicy": "IfNotPresent", + "name": "podmon-node" + } + ], + "configVersion": "v1.7.0", + "enabled": false, + "name": "resiliency" + } + ] + } + } + ] + capabilities: Basic Install + categories: Storage + containerImage: docker.io/dellemc/dell-csm-operator:v1.3.0 + createdAt: "2022-03-29T11:59:59Z" + description: Easily install and manage Dell’s CSI Drivers and CSM + operators.operatorframework.io/builder: operator-sdk-v1.14.0+git + operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 + repository: https://github.com/dell/csm-operator + support: Dell Technologies + name: dell-csm-operator.v1.3.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: ContainerStorageModule is the Schema for the containerstoragemodules + API + displayName: Container Storage Module + kind: ContainerStorageModule + name: containerstoragemodules.storage.dell.com + specDescriptors: + - description: AuthSecret is the name of the credentials secret for the driver + displayName: Auth Secret + path: driver.authSecret + - description: Common is the common specification for both controller and node + plugins + displayName: Common specification + path: driver.common + - description: Args is the set of arguments for the container + displayName: Container Arguments + path: driver.common.args + - description: Commander is the image tag for the Container + displayName: Authorization Commander Container Image + path: driver.common.commander + - description: Enabled is used to indicate wether or not to deploy a module + displayName: Enabled + path: driver.common.enabled + - description: Envs is the set of environment variables for the container + displayName: Container Environment vars + path: driver.common.envs + - description: Image is the image tag for the Container + displayName: Container Image + path: driver.common.image + - description: ImagePullPolicy is the image pull policy for the image + displayName: Container Image Pull Policy + path: driver.common.imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Name is the name of Container + displayName: Container Name + path: driver.common.name + - description: NodeSelector is a selector which must be true for the pod to + fit on a node. Selector which must match a node's labels for the pod to + be scheduled on that node. + displayName: NodeSelector + path: driver.common.nodeSelector + - description: Opa is the image tag for the Container + displayName: Authorization Opa Container Image + path: driver.common.opa + - description: OpaKubeMgmt is the image tag for the Container + displayName: Authorization Opa Kube Management Container Image + path: driver.common.opaKubeMgmt + - description: ProxyService is the image tag for the Container + displayName: Authorization Proxy Service Container Image + path: driver.common.proxyService + - description: Redis is the image tag for the Container + displayName: Authorization Redis Container Image + path: driver.common.redis + - description: RoleService is the image tag for the Container + displayName: Authorization Role Service Container Image + path: driver.common.roleService + - description: StorageService is the image tag for the Container + displayName: Authorization Storage Service Container Image + path: driver.common.storageService + - description: TenantService is the image tag for the Container + displayName: Authorization Tenant Service Container Image + path: driver.common.tenantService + - description: Tolerations is the list of tolerations for the driver pods + displayName: Tolerations + path: driver.common.tolerations + - description: ConfigVersion is the configuration version of the driver + displayName: Config Version + path: driver.configVersion + - description: Controller is the specification for Controller plugin only + displayName: Controller Specification + path: driver.controller + - description: Args is the set of arguments for the container + displayName: Container Arguments + path: driver.controller.args + - description: Commander is the image tag for the Container + displayName: Authorization Commander Container Image + path: driver.controller.commander + - description: Enabled is used to indicate wether or not to deploy a module + displayName: Enabled + path: driver.controller.enabled + - description: Envs is the set of environment variables for the container + displayName: Container Environment vars + path: driver.controller.envs + - description: Image is the image tag for the Container + displayName: Container Image + path: driver.controller.image + - description: ImagePullPolicy is the image pull policy for the image + displayName: Container Image Pull Policy + path: driver.controller.imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Name is the name of Container + displayName: Container Name + path: driver.controller.name + - description: NodeSelector is a selector which must be true for the pod to + fit on a node. Selector which must match a node's labels for the pod to + be scheduled on that node. + displayName: NodeSelector + path: driver.controller.nodeSelector + - description: Opa is the image tag for the Container + displayName: Authorization Opa Container Image + path: driver.controller.opa + - description: OpaKubeMgmt is the image tag for the Container + displayName: Authorization Opa Kube Management Container Image + path: driver.controller.opaKubeMgmt + - description: ProxyService is the image tag for the Container + displayName: Authorization Proxy Service Container Image + path: driver.controller.proxyService + - description: Redis is the image tag for the Container + displayName: Authorization Redis Container Image + path: driver.controller.redis + - description: RoleService is the image tag for the Container + displayName: Authorization Role Service Container Image + path: driver.controller.roleService + - description: StorageService is the image tag for the Container + displayName: Authorization Storage Service Container Image + path: driver.controller.storageService + - description: TenantService is the image tag for the Container + displayName: Authorization Tenant Service Container Image + path: driver.controller.tenantService + - description: Tolerations is the list of tolerations for the driver pods + displayName: Tolerations + path: driver.controller.tolerations + - description: CSIDriverSpec is the specification for CSIDriver + displayName: CSI Driver Spec + path: driver.csiDriverSpec + - description: CSIDriverType is the CSI Driver type for Dell Technologies - + e.g, powermax, powerflex,... + displayName: CSI Driver Type + path: driver.csiDriverType + - description: DNSPolicy is the dnsPolicy of the daemonset for Node plugin + displayName: DNSPolicy + path: driver.dnsPolicy + - description: ForceRemoveDriver is the boolean flag used to remove driver deployment + when CR is deleted + displayName: Force Remove Driver + path: driver.forceRemoveDriver + - description: ForceUpdate is the boolean flag used to force an update of the + driver instance + displayName: Force update + path: driver.forceUpdate + - description: Args is the set of arguments for the container + displayName: Container Arguments + path: driver.initContainers[0].args + - description: Commander is the image tag for the Container + displayName: Authorization Commander Container Image + path: driver.initContainers[0].commander + - description: Enabled is used to indicate wether or not to deploy a module + displayName: Enabled + path: driver.initContainers[0].enabled + - description: Envs is the set of environment variables for the container + displayName: Container Environment vars + path: driver.initContainers[0].envs + - description: Image is the image tag for the Container + displayName: Container Image + path: driver.initContainers[0].image + - description: ImagePullPolicy is the image pull policy for the image + displayName: Container Image Pull Policy + path: driver.initContainers[0].imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Name is the name of Container + displayName: Container Name + path: driver.initContainers[0].name + - description: NodeSelector is a selector which must be true for the pod to + fit on a node. Selector which must match a node's labels for the pod to + be scheduled on that node. + displayName: NodeSelector + path: driver.initContainers[0].nodeSelector + - description: Opa is the image tag for the Container + displayName: Authorization Opa Container Image + path: driver.initContainers[0].opa + - description: OpaKubeMgmt is the image tag for the Container + displayName: Authorization Opa Kube Management Container Image + path: driver.initContainers[0].opaKubeMgmt + - description: ProxyService is the image tag for the Container + displayName: Authorization Proxy Service Container Image + path: driver.initContainers[0].proxyService + - description: Redis is the image tag for the Container + displayName: Authorization Redis Container Image + path: driver.initContainers[0].redis + - description: RoleService is the image tag for the Container + displayName: Authorization Role Service Container Image + path: driver.initContainers[0].roleService + - description: StorageService is the image tag for the Container + displayName: Authorization Storage Service Container Image + path: driver.initContainers[0].storageService + - description: TenantService is the image tag for the Container + displayName: Authorization Tenant Service Container Image + path: driver.initContainers[0].tenantService + - description: Tolerations is the list of tolerations for the driver pods + displayName: Tolerations + path: driver.initContainers[0].tolerations + - description: Node is the specification for Node plugin only + displayName: Node specification + path: driver.node + - description: Args is the set of arguments for the container + displayName: Container Arguments + path: driver.node.args + - description: Commander is the image tag for the Container + displayName: Authorization Commander Container Image + path: driver.node.commander + - description: Enabled is used to indicate wether or not to deploy a module + displayName: Enabled + path: driver.node.enabled + - description: Envs is the set of environment variables for the container + displayName: Container Environment vars + path: driver.node.envs + - description: Image is the image tag for the Container + displayName: Container Image + path: driver.node.image + - description: ImagePullPolicy is the image pull policy for the image + displayName: Container Image Pull Policy + path: driver.node.imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Name is the name of Container + displayName: Container Name + path: driver.node.name + - description: NodeSelector is a selector which must be true for the pod to + fit on a node. Selector which must match a node's labels for the pod to + be scheduled on that node. + displayName: NodeSelector + path: driver.node.nodeSelector + - description: Opa is the image tag for the Container + displayName: Authorization Opa Container Image + path: driver.node.opa + - description: OpaKubeMgmt is the image tag for the Container + displayName: Authorization Opa Kube Management Container Image + path: driver.node.opaKubeMgmt + - description: ProxyService is the image tag for the Container + displayName: Authorization Proxy Service Container Image + path: driver.node.proxyService + - description: Redis is the image tag for the Container + displayName: Authorization Redis Container Image + path: driver.node.redis + - description: RoleService is the image tag for the Container + displayName: Authorization Role Service Container Image + path: driver.node.roleService + - description: StorageService is the image tag for the Container + displayName: Authorization Storage Service Container Image + path: driver.node.storageService + - description: TenantService is the image tag for the Container + displayName: Authorization Tenant Service Container Image + path: driver.node.tenantService + - description: Tolerations is the list of tolerations for the driver pods + displayName: Tolerations + path: driver.node.tolerations + - description: Replicas is the count of controllers for Controller plugin + displayName: Controller count + path: driver.replicas + - description: SideCars is the specification for CSI sidecar containers + displayName: CSI SideCars specification + path: driver.sideCars + - description: Args is the set of arguments for the container + displayName: Container Arguments + path: driver.sideCars[0].args + - description: Commander is the image tag for the Container + displayName: Authorization Commander Container Image + path: driver.sideCars[0].commander + - description: Enabled is used to indicate wether or not to deploy a module + displayName: Enabled + path: driver.sideCars[0].enabled + - description: Envs is the set of environment variables for the container + displayName: Container Environment vars + path: driver.sideCars[0].envs + - description: Image is the image tag for the Container + displayName: Container Image + path: driver.sideCars[0].image + - description: ImagePullPolicy is the image pull policy for the image + displayName: Container Image Pull Policy + path: driver.sideCars[0].imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Name is the name of Container + displayName: Container Name + path: driver.sideCars[0].name + - description: NodeSelector is a selector which must be true for the pod to + fit on a node. Selector which must match a node's labels for the pod to + be scheduled on that node. + displayName: NodeSelector + path: driver.sideCars[0].nodeSelector + - description: Opa is the image tag for the Container + displayName: Authorization Opa Container Image + path: driver.sideCars[0].opa + - description: OpaKubeMgmt is the image tag for the Container + displayName: Authorization Opa Kube Management Container Image + path: driver.sideCars[0].opaKubeMgmt + - description: ProxyService is the image tag for the Container + displayName: Authorization Proxy Service Container Image + path: driver.sideCars[0].proxyService + - description: Redis is the image tag for the Container + displayName: Authorization Redis Container Image + path: driver.sideCars[0].redis + - description: RoleService is the image tag for the Container + displayName: Authorization Role Service Container Image + path: driver.sideCars[0].roleService + - description: StorageService is the image tag for the Container + displayName: Authorization Storage Service Container Image + path: driver.sideCars[0].storageService + - description: TenantService is the image tag for the Container + displayName: Authorization Tenant Service Container Image + path: driver.sideCars[0].tenantService + - description: Tolerations is the list of tolerations for the driver pods + displayName: Tolerations + path: driver.sideCars[0].tolerations + - description: SnapshotClass is the specification for Snapshot Classes + displayName: Snapshot Classes + path: driver.snapshotClass + - description: Name is the name of the Snapshot Class + displayName: Snapshot Class Name + path: driver.snapshotClass[0].name + - description: Parameters is a map of driver specific parameters for snapshot + class + displayName: Snapshot Class Parameters + path: driver.snapshotClass[0].parameters + - description: TLSCertSecret is the name of the TLS Cert secret + displayName: TLSCert Secret + path: driver.tlsCertSecret + - description: Components is the specification for CSM components containers + displayName: ContainerStorageModule components specification + path: modules[0].components + - description: Args is the set of arguments for the container + displayName: Container Arguments + path: modules[0].components[0].args + - description: Commander is the image tag for the Container + displayName: Authorization Commander Container Image + path: modules[0].components[0].commander + - description: Enabled is used to indicate wether or not to deploy a module + displayName: Enabled + path: modules[0].components[0].enabled + - description: Envs is the set of environment variables for the container + displayName: Container Environment vars + path: modules[0].components[0].envs + - description: Image is the image tag for the Container + displayName: Container Image + path: modules[0].components[0].image + - description: ImagePullPolicy is the image pull policy for the image + displayName: Container Image Pull Policy + path: modules[0].components[0].imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Name is the name of Container + displayName: Container Name + path: modules[0].components[0].name + - description: NodeSelector is a selector which must be true for the pod to + fit on a node. Selector which must match a node's labels for the pod to + be scheduled on that node. + displayName: NodeSelector + path: modules[0].components[0].nodeSelector + - description: Opa is the image tag for the Container + displayName: Authorization Opa Container Image + path: modules[0].components[0].opa + - description: OpaKubeMgmt is the image tag for the Container + displayName: Authorization Opa Kube Management Container Image + path: modules[0].components[0].opaKubeMgmt + - description: ProxyService is the image tag for the Container + displayName: Authorization Proxy Service Container Image + path: modules[0].components[0].proxyService + - description: Redis is the image tag for the Container + displayName: Authorization Redis Container Image + path: modules[0].components[0].redis + - description: RoleService is the image tag for the Container + displayName: Authorization Role Service Container Image + path: modules[0].components[0].roleService + - description: StorageService is the image tag for the Container + displayName: Authorization Storage Service Container Image + path: modules[0].components[0].storageService + - description: TenantService is the image tag for the Container + displayName: Authorization Tenant Service Container Image + path: modules[0].components[0].tenantService + - description: Tolerations is the list of tolerations for the driver pods + displayName: Tolerations + path: modules[0].components[0].tolerations + - description: ConfigVersion is the configuration version of the module + displayName: Config Version + path: modules[0].configVersion + - description: Enabled is used to indicate whether or not to deploy a module + displayName: Enabled + path: modules[0].enabled + - description: ForceRemoveModule is the boolean flag used to remove authorization + proxy server deployment when CR is deleted + displayName: Force Remove Module + path: modules[0].forceRemoveModule + - description: Name is name of ContainerStorageModule modules + displayName: Name + path: modules[0].name + statusDescriptors: + - description: ControllerStatus is the status of Controller pods + displayName: ControllerStatus + path: controllerStatus + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podStatuses + - description: NodeStatus is the status of Controller pods + displayName: NodeStatus + path: nodeStatus + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podStatuses + - description: State is the state of the driver installation + displayName: State + path: state + x-descriptors: + - urn:alm:descriptor:text + version: v1 + description: "Dell Container Storage Modules (CSM) Operator is a Kubernetes Operator + which can be \nused to install and manage Dell’s CSI drivers and CSM modules. + \nBy using Dell CSM Operator, enterprises can quickly and easily deploy the \nCSM + modules for CSI drivers making it easy for DevOps \nteams to build and optimize + their Kubernetes workloads using enterprise grade storage \nwhile consistently + aligning with the desired outcomes of the organization.\nThis operator is available + as both community and certified operator for Openshift \nand as a community operator + for upstream Kubernetes.\nOperator can be deployed via OperatorHub.io. using Operator + Lifecycle Manager (OLM)\n\n### About Dell CSM\n\nDell CSM brings powerful enterprise + storage features and functionality to Kubernetes for \neasier adoption of cloud + native workloads, improved productivity and scalable operations. \n\nCSM delivers + software modules for storage management that provide developers access to \nbuild + automation for enhanced IT needs and other critical enterprise storage features. + \n\nCurrently, the following modules are available as part of Dell CSM. \n*\tObservability + - Delivers a high-level view of the storage capacity \n and performance usage + via Grafana dashboards to the Kubernetes users\n*\tReplication - Enables array + replication capabilities for Kubernetes users\n*\tAuthorization - Provides both + storage and Kubernetes administrators the ability \n to apply RBAC for Dell CSI + Drivers\n*\tResiliency - Designed to make Kubernetes applications more resilient + to \n node failures\n\nThese modules are available for various storage platforms + in the Dell portfolio, \nsuch as Dell PowerStore, Dell PowerMax, Dell PowerFlex, + Dell PowerScale, and Dell Unity XT.\n\nFor more information, visit [Dell’s Container + Storage Module web page](https://www.dell.com/en-us/dt/solutions/kubernetes-containers/kubernetes-storage.htm)\n\nAdditional + Materials\n*\t[CSM Operator GitHub Page](https://dell.github.io/csm-docs/docs/deployment/csmoperator/)\n*\t[CSM + Introduction Video](https://www.youtube.com/watch?v=NtNSKdF9Iyo)\n*\t[CSM Solution + Brief](https://www.delltechnologies.com/asset/en-us/products/storage/briefs-summaries/csm-solution-brief.pdf)\n*\t[CSI + Solution Brief](https://www.delltechnologies.com/asset/en-us/products/storage/briefs-summaries/h17893-dellemc-storage-for-containers-kubernetes-csi-so.pdf)\n" + displayName: Dell Container Storage Modules + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAAFAAAAAoCAYAAABpYH0BAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAALiMAAC4jAXilP3YAAAtlSURBVGhD7ZoNcFXFFcfPfS8JSdBQG5GK38PUDwhFkgAiLQ5+UloGq5OoRcap1lSxKiMhAYOEoIGQhGqNoIJUseo4oGMFpVpHbasiFEIQAWurUrWAGQoin/m829+5d1/ee0leQhJtUof/zL7dc87uubvnnj37cZ8jPQG5lWMl4EyQ+poCuf/CvZb7fwFHcjfeasttI2BqxHV3iLibpXzEF5bbNdy+NkUSE8rpxS+h9GXuJMuR0qEve/L2MHVTmjjujyzlIyB1Upq+1FLtI69qkLhmtKV8OFIvZemPWapNOJK30dhyB2C2kJ6RQONiKRmxxzI7hmmVl4jj6EDP8BmRcBfL/IxbkLfdt7zKXzOECkv5MPIVg/+OpdrHtEp9zsOWsjCHpDTjOEu0iYDNOwgnjaZzxY3bLnkbciVredAK2sfUTb0Z+EJe3WtQrRhPNosT90i7xush6KQBQ3COR0WZnDXgFbmzqv23nl85WoLue7SbTIqOv0YamEpzJSlhmMw/v8pyRWZs7ifT3uY5PROtG9CYNfw+FU7maQa8mvJ/SK3AuVQSzKued7WGnA3JTJX7xXXehBrgMyNg5AMJyoVSnlEgRWl1lsv02nidNDRsFUnaLNOqxlhuj0IsD3yEQDwpnDKuJ7D/RJK+OlmMk438U79aBBwZLsGGZrEE5FaOlD5OFQ43hTrNn9dIKpPkr9KlJH29zwJT3zkJ4z1H/WdIqbQ9k7j4OryKmC+pm9CxKVw0pkHKhq6Q+oR03CY84CYEJjHIi7xi4ZuJlOezPXkLA5zt8aLxD9JoXlAeemt8FsitvFoCiVsw3NWW48PxpvyN7AbG+Yyegc7FwPvT9kqcO4Gp/qXlhOGYPJn6t2FyOKUSI+TBiV5gjHH5+a0kuUMxnoYKH9PXpbK4sLI7eJ7T13IjYN7h53zvBfYgdM6AirnDdmGtBywViSskELcGIwy0dBhGPqHNxYSEKVKUedhyWVw2jWdFZ2vkXGc5YRj2n0ZyJSl9NNuTf1ounrp+AOFkoqW6DZ03oMIJvmBLEXCCeF6cJXwYY0gPy6GEIRjhL5bLNGflnlb1hBh3Je2+Z7mRWIeudNoskCIHzwXGOISGyRIIbkJ2gcfrRnTNgObAv2ypbTjOi5K8/w5ZlHbQcvzj22GXWGdusJxI1JLulsyho/DWD3wWmFp5huRXvYbhFkId1Ub3m0bXDBiXkmxL7eFKYuJa79ikx7e8yiXEutUY9hQrj4DZyOI8jPg4T7IdXaWVRzTdcLMEnc0Ql/i8noGuGdBtOPop5DgZNKiUpPhtEKGzbyTqkc+WfeYCKR32vuVxXFt7KoZnDxpYDJXiM3sOumhA5zZbCsOYHfwS01qD04vUitfp8a1hhJRmFsniTAxpkbeR6R2vxhzrMyKgZ16RP/lE96HzBpxWmUP8usxSYTjOEqbfBHHlBgbZcpvTHMaZ5x/fhoePb1PWn8xCoS/hCRS2PCIa85okxA+msMpyug0dN2ChCRDD7sJQiywnAuYLcVx/a1Oe/qTEO4MZ7B89OhYc80OprT3dUv7xLT74PhN8vOVE4gD6bmVVvkKKB39ued2KGNdZZqo01oe3KPEBR+rjUtkSj4S6ifQDjx8JYxrFBMZJ+dDm04ptx/qb2N0soBwjhplD/Myi6oXk0SeQEIz5s7j1N8qCC7ZbTuvXWWrkxrohthwbgfhaKcvY2ep1lpHD4talWSo20NHJ+8Bm0JsUg2HV62Ihf8vpYmqXMuBLLecogXFdmSG9Vy6UoiJ/LxhC6wY8SnAULc0Y3vp94FHCmKquLSI+dqJpbJvGU8xP+4zYeDmlydQP7wfbBMe3AMe38oyKFsbrIeiCAc0+3sA8Yt5ApsLrltkOHIMRH5ZAI1PMhE8kLXEEj/aPbyUZH1lej4QaUO/42k9GPiN/l/xR8ixJMqdguLtlfqZuJzqGkuGfSNLKi9E1hRQ+E/tYJ0E3+vgWE84Rflrvb3vJ3wZhgYDeBLVep73kyL7u/yp317qzJRj3OJ1ho22KJDOjNHwCOYajg35Tya8601LHcAzHcAz/KzhFRUXPGmPiLd0CyJZSR7/IdQiFhYVscmUtbTf4nK8P6Nbdw2PovtHndB4zZszol5CQ8CW6wl8DO4DAli1bJg4cODBbE8bSLUpiiNY0e/bsts+yMeA4zgiyU33qa0cA/T+z5S4hMTGxIhAIsAPoHKK2MbyFMRhxCkabYFkeysrKeh88eLDPoEGDqrOzs1tsMYqLi/sil3nz5u22LEHH79H1PDr/gMecCMul3Oofh/CCvikpKQ3kLW5vaKs3zynbtm2rXrFihfdseHEYcDfPOEFphfLITiLt4znN95ZSUlLS58iRI0nIqiFjHl/Vu+Pj4/vV19cfou5+y/YQekZycvKB/Pz8A8pr04AYRhU94glF9A9FA5G/Sr25ykDhVWR5DMa7dkf2fbK5yFerASl/BO888n3U0S9t36Vz1xYUFFQjXwb9V/iXua6rch18Hyvffe+9957W2Ni4iPZqtC+QDyZfzTPn0jYI7RnQDuo+aL2I2Er908hrmJa3qh7k/ZE9Dk+NqmPQ7dJyUhbtx5Gep80C+ryGurfAv576qkdfjl5+TEb2CbIc+JPg6/2k9vW42traidEff5oB4z1Fowdp7N27kWvseYaH3oDbb2LgxSgcBe15FnL1tA3kOhg16CiycXSgQWnq3YnOORR/hawX+dVbt24dH+FZuXV1dWSFd2C8ldQp0JehsuXLlwfxwmfRoZe4oZeqoaKALJU2F1H2PIs6E3mOGmkMvCfQsxg9z6mMeuq9+u+vBKW1H4wjHv7l8LOgL6a9Fw/vueeekcFg8HlkGcjKkPVDj/cNmzqFTP+rYp6Fp0+fnkp29o4dO17JycmJ17Rr1y79xqtX69k89FoULkFh07SkrEeca0mhgPwkPM94Coz+Bm2arpro1LKQ8RTofBPeEHKNSYdp27R4aeigbRHFqIUD3i/i4uJm0a5pWjK4p+GfzMAzIc9Dj2c8hfZHPduSkdA1YCljNKHxVldX6wKoYzkXmZ7dZ82cOXMIehN4RhFpSUwD9urV63gapfbv3//ZyERHb4NfRdIpudOvHQYd1JVXDalofuvi0r7pQzsDiZKj0yUFMXQ/8hYXpjU1NZ/Tvp8lPUD3ZVAt/q8IX+sOotgUl0NAv8bBKFD3eNLtzceL6N+kOrxfF601vCyd4i9ixJd47jkxp/DevXt3paam7tuzZ8/PKyoq9DOjBxqeiFufwOCvgTzX54bBW9E48ZYlOwX0f4z+FheaBO80vPNjS4awnT6dw0v7u6W96U5oOIfBvo2e+cjj1POsWF/UAIxgKR/wVO9b1HvI5/hgGo/o3bv3bnYkP0b2EixN6ijj0fFATA+0RnsaI/5G3Vl5dCSRRsvo1Eg6t4zyJHVplSnmzJkzlGw2qUt/0501a9YH6N7Oy8hnYN5IdaXHeHqrXa50BMqo+5CuskpkZWWp8YopvsHgP6b9auQzoJv04IFTtBwJxrOEerczBl30PDDecbzMR3EinTkLWZTOsiKFxtCGKAPSQd1GNL1JOnI3HdiOK+uq+iIsDeyrsP6TdO5zOnIlD57Jg15Cvor2efB00dhPvQ+pH5rKHujEQfjv2fKH1I36dythQ7cN+u1XPeIaUh/0vor+lSwKumrfh2792KTXXO9qPeTKX8L0Xq59ZKv1Crr1E0GOyvfv368hpw86Xkf+AnoehK2LUGirs41+fMl4tuszcY5iO56X0XMdvJ+yjTtAnsUO4QHtC7JV0FeRWn6V/LaBAWeSor7hQN9F8rZiXUV0IPgWAo8dxcyoYCrejHd9ircN01DQ0NBwBdO5y1/2vvUGVOBt55Pp9kr3qXqz/jsMq6trFyHyX+sbEAjrhciCAAAAAElFTkSuQmCC + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - nonResourceURLs: + - /metrics + verbs: + - get + - apiGroups: + - "" + resourceNames: + - cert-manager-cainjector-leader-election + - cert-manager-cainjector-leader-election-core + - cert-manager-controller + resources: + - configmaps + verbs: + - get + - patch + - update + - apiGroups: + - "" + resourceNames: + - cert-manager-controller + resources: + - configmaps + verbs: + - get + - patch + - update + - apiGroups: + - "" + resourceNames: + - ingress-controller-leader + resources: + - configmaps + verbs: + - get + - update + - apiGroups: + - "" + resources: + - configmaps + - endpoints + - events + - ingresses + - persistentvolumeclaims + - pods + - roles + - secrets + - serviceaccounts + - services + - services/finalizers + verbs: + - '*' + - apiGroups: + - "" + resourceNames: + - dell-csm-operator-controller-manager + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - "" + resources: + - namespaces + verbs: + - create + - get + - list + - watch + - apiGroups: + - "" + resources: + - nodes + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - persistentvolumeclaims/status + verbs: + - get + - patch + - update + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resourceNames: + - cert-manager-webhook-ca + resources: + - secrets + verbs: + - get + - list + - update + - watch + - apiGroups: + - acme.cert-manager.io + resources: + - '*/*' + verbs: + - '*' + - apiGroups: + - acme.cert-manager.io + resources: + - challenges + verbs: + - create + - delete + - apiGroups: + - acme.cert-manager.io + resources: + - challenges + - challenges/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - acme.cert-manager.io + resources: + - challenges + - orders + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - acme.cert-manager.io + resources: + - challenges/finalizers + verbs: + - update + - apiGroups: + - acme.cert-manager.io + resources: + - clusterissuers + - issuers + verbs: + - get + - list + - watch + - apiGroups: + - acme.cert-manager.io + resources: + - orders + verbs: + - create + - delete + - get + - list + - watch + - apiGroups: + - acme.cert-manager.io + resources: + - orders + - orders/status + verbs: + - patch + - update + - apiGroups: + - acme.cert-manager.io + resources: + - orders/finalizers + verbs: + - update + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + - validatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions/status + verbs: + - get + - list + - patch + - watch + - apiGroups: + - apiregistration.k8s.io + resources: + - apiservices + verbs: + - get + - list + - update + - watch + - apiGroups: + - apiregistration.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - update + - watch + - apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - auditregistration.k8s.io + resources: + - auditsinks + verbs: + - get + - list + - update + - watch + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - apiGroups: + - batch + resources: + - jobs + verbs: + - create + - delete + - list + - update + - watch + - apiGroups: + - cert-manager.io + resources: + - '*/*' + verbs: + - '*' + - apiGroups: + - cert-manager.io + resources: + - certificaterequests + - certificates + - clusterissuers + - issuers + verbs: + - '*' + - apiGroups: + - cert-manager.io + resources: + - certificaterequests + - certificates + - issuers + verbs: + - create + - delete + - deletecollection + - patch + - update + - apiGroups: + - cert-manager.io + resources: + - certificaterequests/finalizers + - certificates/finalizers + verbs: + - update + - apiGroups: + - cert-manager.io + resources: + - certificaterequests/status + - certificates/status + verbs: + - patch + - update + - apiGroups: + - cert-manager.io + resources: + - clusterissuers + - clusterissuers/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - cert-manager.io + resourceNames: + - cert-manager-cainjector-leader-election + - cert-manager-cainjector-leader-election-core + resources: + - configmaps + verbs: + - get + - patch + - update + - apiGroups: + - cert-manager.io + resources: + - issuers + - issuers/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - cert-manager.io + resourceNames: + - clusterissuers.cert-manager.io/* + - issuers.cert-manager.io/* + resources: + - signers + verbs: + - approve + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + verbs: + - get + - list + - update + - watch + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests/status + verbs: + - patch + - update + - apiGroups: + - certificates.k8s.io + resourceNames: + - clusterissuers.cert-manager.io/* + - issuers.cert-manager.io/* + resources: + - signers + verbs: + - sign + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - coordination.k8s.io + resourceNames: + - cert-manager-cainjector-leader-election + - cert-manager-cainjector-leader-election-core + resources: + - leases + verbs: + - get + - patch + - update + - apiGroups: + - coordination.k8s.io + resourceNames: + - cert-manager-controller + resources: + - leases + verbs: + - get + - patch + - update + - apiGroups: + - coordination.k8s.io + resourceNames: + - ingress-controller-leader + resources: + - leases + verbs: + - get + - update + - apiGroups: + - csi.storage.k8s.io + resources: + - csinodeinfos + verbs: + - get + - list + - watch + - apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - get + - list + - watch + - apiGroups: + - gateway.networking.k8s.io + resources: + - gateways + - httproutes + verbs: + - get + - list + - watch + - apiGroups: + - gateway.networking.k8s.io + resources: + - gateways/finalizers + - httproutes/finalizers + verbs: + - update + - apiGroups: + - gateway.networking.k8s.io + resources: + - httproutes + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - create + - get + - apiGroups: + - networking.k8s.io + resources: + - ingressclasses + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - networking.k8s.io + resources: + - ingresses/finalizers + verbs: + - update + - apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - get + - list + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + - replicasets + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - apiGroups: + - replication.storage.dell.com + resources: + - dellcsireplicationgroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - replication.storage.dell.com + resources: + - dellcsireplicationgroups/status + verbs: + - get + - patch + - update + - apiGroups: + - route.openshift.io + resources: + - routes/custom-host + verbs: + - create + - apiGroups: + - security.openshift.io + resourceNames: + - privileged + resources: + - securitycontextconstraints + verbs: + - use + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotclasses + - volumesnapshotcontents + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotcontents/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - storage.dell.com + resources: + - containerstoragemodules + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - storage.dell.com + resources: + - containerstoragemodules/finalizers + verbs: + - update + - apiGroups: + - storage.dell.com + resources: + - containerstoragemodules/status + verbs: + - get + - patch + - update + - apiGroups: + - storage.k8s.io + resources: + - csidrivers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - storage.k8s.io + resources: + - csinodes + verbs: + - create + - get + - list + - update + - watch + - apiGroups: + - storage.k8s.io + resources: + - csistoragecapacities + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments/status + verbs: + - patch + - apiGroups: + - volumegroup.storage.dell.com + resources: + - dellcsivolumegroupsnapshots + - dellcsivolumegroupsnapshots/status + verbs: + - create + - delete + - list + - update + - watch + serviceAccountName: dell-csm-operator-manager-service-account + deployments: + - name: dell-csm-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + strategy: {} + template: + metadata: + labels: + control-plane: controller-manager + spec: + containers: + - args: + - --secure-listen-address=0.0.0.0:8443 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=10 + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + protocol: TCP + resources: {} + - args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + command: + - /manager + image: docker.io/dellemc/dell-csm-operator:v1.3.0 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 200m + memory: 256Mi + requests: + cpu: 100m + memory: 192Mi + securityContext: + allowPrivilegeEscalation: false + securityContext: + runAsNonRoot: true + serviceAccountName: dell-csm-operator-manager-service-account + terminationGracePeriodSeconds: 10 + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - Dell Container Storage Modules + - Dell CSI Driver + - Dell CSM Modules + - Powerflex + - Powerscale + - Powerstore + - Unity + - Authorization + - Observability + - Replication + links: + - name: Documentation + url: https://dell.github.io/csm-docs/docs/deployment/csmoperator/ + maintainers: + - email: container.storage.modules@dell.com + name: Dell Container Storage Modules + maturity: stable + minKubeVersion: 1.21.0 + provider: + name: Dell Technologies + url: https://github.com/dell/csm-operator + relatedImages: + - image: docker.io/dellemc/dell-csm-operator:v1.3.0 + name: dell-csm-operator + - image: docker.io/dellemc/csi-isilon:v2.8.0 + name: csi-isilon + - image: docker.io/dellemc/csi-powermax:v2.8.0 + name: csi-powermax + - image: docker.io/dellemc/csipowermax-reverseproxy:v2.7.0 + name: csipowermax-reverseproxy + - image: docker.io/dellemc/csi-powerstore:v2.8.0 + name: csi-powerstore + - image: docker.io/dellemc/csi-unity:v2.8.0 + name: csi-unity + - image: docker.io/dellemc/csi-vxflexos:v2.8.0 + name: csi-vxflexos + - image: docker.io/dellemc/sdc:3.6.1 + name: sdc + - image: docker.io/dellemc/csm-authorization-sidecar:v1.8.0 + name: karavi-authorization-proxy + - image: docker.io/dellemc/dell-csi-replicator:v1.6.0 + name: dell-csi-replicator + - image: docker.io/dellemc/dell-replication-controller:v1.6.0 + name: dell-replication-controller-manager + - image: docker.io/dellemc/csm-topology:v1.6.0 + name: topology + - image: docker.io/otel/opentelemetry-collector:0.42.0 + name: otel-collector + - image: docker.io/dellemc/csm-metrics-powerscale:v1.3.0 + name: metrics-powerscale + - image: docker.io/dellemc/csm-metrics-powermax:v1.1.0 + name: metrics-powermax + - image: docker.io/dellemc/csm-metrics-powerflex:v1.6.0 + name: metrics-powerflex + - image: docker.io/dellemc/podmon:v1.6.0 + name: podmon-node + - image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 + name: kube-rbac-proxy + replaces: dell-csm-operator.v1.2.0 + version: 1.3.0 \ No newline at end of file diff --git a/operators/dell-csm-operator/1.3.0/metadata/annotations.yaml b/operators/dell-csm-operator/1.3.0/metadata/annotations.yaml new file mode 100644 index 00000000000..7fad1612daf --- /dev/null +++ b/operators/dell-csm-operator/1.3.0/metadata/annotations.yaml @@ -0,0 +1,18 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: dell-csm-operator + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.14.0+git + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + + # Annotations to specify supported OCP versions. + com.redhat.openshift.versions: v4.12-v4.13 \ No newline at end of file diff --git a/operators/dell-csm-operator/1.3.0/tests/scorecard/config.yaml b/operators/dell-csm-operator/1.3.0/tests/scorecard/config.yaml new file mode 100644 index 00000000000..4e1de72dabb --- /dev/null +++ b/operators/dell-csm-operator/1.3.0/tests/scorecard/config.yaml @@ -0,0 +1,70 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.13.1 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.13.1 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.13.1 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.13.1 + labels: + suite: olm + test: olm-crds-have-resources-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.13.1 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.13.1 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {} \ No newline at end of file