diff --git a/config/crd/bases/storage.dell.com_containerstoragemodules.yaml b/config/crd/bases/storage.dell.com_containerstoragemodules.yaml index 3592443b..c3f95aab 100644 --- a/config/crd/bases/storage.dell.com_containerstoragemodules.yaml +++ b/config/crd/bases/storage.dell.com_containerstoragemodules.yaml @@ -12,65 +12,881 @@ spec: listKind: ContainerStorageModuleList plural: containerstoragemodules shortNames: - - csm + - 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 + - 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 + authorizationController: + description: AuthorizationController is the image tag for + the container + type: string + authorizationControllerReplicas: + description: AuthorizationControllerReplicas is the number + of replicas for the authorization controller deployment + type: integer + certificate: + description: Certificate is a certificate used for a certificate/private-key + pair + type: string + certificateAuthority: + description: CertificateAuthority is a certificate authority + used to validate a certificate + type: string + commander: + description: Commander is the image tag for the Container + type: string + controllerReconcileInterval: + description: The interval which the reconcile of each controller + is run + type: string + credentials: + description: ComponentCred is to store the velero credential + contents + items: + description: Credential struct + properties: + createWithInstall: + description: CreateWithInstall is used to indicate wether + or not to create a secret for objectstore + type: boolean + name: + description: Name is the name of secret which contains + credentials to access objectstore + type: string + secretContents: + description: SecretContents contains credentials to + access objectstore + properties: + aws_access_key_id: + description: AccessKeyID is a name of key ID to + access objectstore + type: string + aws_secret_access_key: + description: AccessKey contains the key to access + objectstore + type: string + type: object + type: object + type: array + deployNodeAgent: + description: DeployNodeAgent is to enable/disable node-agent + services + type: boolean + 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: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or + its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + hostname: + description: Hostname is the authorization proxy server hostname + type: string + 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 + leaderElection: + description: LeaderElection is boolean flag to enable leader + election + type: boolean + licenseName: + description: LicenseName is the name of the license for app-mobility + 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 + objectStoreSecretName: + description: ObjectStoreSecretName is the name of the secret + for the object store for app-mobility + type: string + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + openTelemetryCollectorAddress: + description: OpenTelemetryCollectorAddress is the address + of the OTLP receiving endpoint using gRPC + type: string + privateKey: + description: PrivateKey is a private key used for a certificate/private-key + pair + type: string + proxyServerIngress: + description: ProxyServerIngress is the authorization proxy + server ingress configuration + items: + description: ProxyServerIngress is the authorization ingress + configuration struct + properties: + annotations: + additionalProperties: + type: string + description: Annotations is an unstructured key value + map that stores additional annotations for the ingress + type: object + hosts: + description: Hosts is the hosts rules for the ingress + items: + type: string + type: array + ingressClassName: + description: IngressClassName is the ingressClassName + type: string + type: object + type: array + proxyService: + description: ProxyService is the image tag for the Container + type: string + proxyServiceReplicas: + description: ProxyServiceReplicas is the number of replicas + for the proxy service deployment + type: integer + redis: + description: Redis is the image tag for the Container + type: string + redisCommander: + description: RedisCommander is the name of the redis deployment + type: string + redisName: + description: RedisName is the name of the redis statefulset + type: string + redisReplicas: + description: RedisReplicas is the number of replicas for the + redis deployment + type: integer + replicaCount: + description: ReplicaCount is the replica count for app mobility + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + roleServiceReplicas: + description: RoleServiceReplicas is the number of replicas + for the role service deployment + type: integer + sentinel: + description: Sentinel is the name of the sentinel statefulSet + type: string + skipCertificateValidation: + description: skipCertificateValidation is the flag to skip + certificate validation + type: boolean + storageService: + description: StorageService is the image tag for the Container + type: string + storageServiceReplicas: + description: StorageServiceReplicas is the number of replicas + for storage service deployment + type: integer + storageclass: + description: RedisStorageClass is the authorization proxy + server redis storage class for persistence + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tenantServiceReplicas: + description: TenantServiceReplicas is the number of replicas + for the tenant service deployment + type: integer + 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 + useVolumeSnapshot: + description: UseSnapshot is to check whether volume snapshot + is enabled under velero component + type: boolean + vaultConfigurations: + description: Vaults are the vault configurations + items: + description: Vault is the configuration for a vault instance + struct + properties: + address: + description: Address is the address for this vault + type: string + certificateAuthority: + description: CertificateAuthority is the base64-encoded + certificate authority for validaitng the vault certificate + type: string + clientCertificate: + description: ClientCertificate is the base64-encoded + certificate for connecting to vault + type: string + clientKey: + description: ClientKey validates is the base64-encoded + certificate key for connecting to vault + type: string + identifier: + description: Identifier is the identifier for this vault + type: string + role: + description: Role is the role for this vault + type: string + skipCertificateValidation: + description: SkipCertificateValidation validates the + vault server certificate or not + type: boolean + type: object + type: array + veleroNamespace: + description: VeleroNamespace is the namespace that Velero + is installed in + type: string + 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 + authorizationController: + description: AuthorizationController is the image tag for + the container + type: string + authorizationControllerReplicas: + description: AuthorizationControllerReplicas is the number + of replicas for the authorization controller deployment + type: integer + certificate: + description: Certificate is a certificate used for a certificate/private-key + pair + type: string + certificateAuthority: + description: CertificateAuthority is a certificate authority + used to validate a certificate + type: string + commander: + description: Commander is the image tag for the Container + type: string + controllerReconcileInterval: + description: The interval which the reconcile of each controller + is run + type: string + credentials: + description: ComponentCred is to store the velero credential + contents + items: + description: Credential struct + properties: + createWithInstall: + description: CreateWithInstall is used to indicate wether + or not to create a secret for objectstore + type: boolean + name: + description: Name is the name of secret which contains + credentials to access objectstore + type: string + secretContents: + description: SecretContents contains credentials to + access objectstore + properties: + aws_access_key_id: + description: AccessKeyID is a name of key ID to + access objectstore + type: string + aws_secret_access_key: + description: AccessKey contains the key to access + objectstore + type: string + type: object + type: object + type: array + deployNodeAgent: + description: DeployNodeAgent is to enable/disable node-agent + services + type: boolean + 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: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or + its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + hostname: + description: Hostname is the authorization proxy server hostname + type: string + 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 + leaderElection: + description: LeaderElection is boolean flag to enable leader + election + type: boolean + licenseName: + description: LicenseName is the name of the license for app-mobility + 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 + objectStoreSecretName: + description: ObjectStoreSecretName is the name of the secret + for the object store for app-mobility + type: string + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + openTelemetryCollectorAddress: + description: OpenTelemetryCollectorAddress is the address + of the OTLP receiving endpoint using gRPC + type: string + privateKey: + description: PrivateKey is a private key used for a certificate/private-key + pair + type: string + proxyServerIngress: + description: ProxyServerIngress is the authorization proxy + server ingress configuration + items: + description: ProxyServerIngress is the authorization ingress + configuration struct + properties: + annotations: + additionalProperties: + type: string + description: Annotations is an unstructured key value + map that stores additional annotations for the ingress + type: object + hosts: + description: Hosts is the hosts rules for the ingress + items: + type: string + type: array + ingressClassName: + description: IngressClassName is the ingressClassName + type: string + type: object + type: array + proxyService: + description: ProxyService is the image tag for the Container + type: string + proxyServiceReplicas: + description: ProxyServiceReplicas is the number of replicas + for the proxy service deployment + type: integer + redis: + description: Redis is the image tag for the Container + type: string + redisCommander: + description: RedisCommander is the name of the redis deployment + type: string + redisName: + description: RedisName is the name of the redis statefulset + type: string + redisReplicas: + description: RedisReplicas is the number of replicas for the + redis deployment + type: integer + replicaCount: + description: ReplicaCount is the replica count for app mobility + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + roleServiceReplicas: + description: RoleServiceReplicas is the number of replicas + for the role service deployment + type: integer + sentinel: + description: Sentinel is the name of the sentinel statefulSet + type: string + skipCertificateValidation: + description: skipCertificateValidation is the flag to skip + certificate validation + type: boolean + storageService: + description: StorageService is the image tag for the Container + type: string + storageServiceReplicas: + description: StorageServiceReplicas is the number of replicas + for storage service deployment + type: integer + storageclass: + description: RedisStorageClass is the authorization proxy + server redis storage class for persistence + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tenantServiceReplicas: + description: TenantServiceReplicas is the number of replicas + for the tenant service deployment + type: integer + 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 + useVolumeSnapshot: + description: UseSnapshot is to check whether volume snapshot + is enabled under velero component + type: boolean + vaultConfigurations: + description: Vaults are the vault configurations + items: + description: Vault is the configuration for a vault instance + struct + properties: + address: + description: Address is the address for this vault + type: string + certificateAuthority: + description: CertificateAuthority is the base64-encoded + certificate authority for validaitng the vault certificate + type: string + clientCertificate: + description: ClientCertificate is the base64-encoded + certificate for connecting to vault + type: string + clientKey: + description: ClientKey validates is the base64-encoded + certificate key for connecting to vault + type: string + identifier: + description: Identifier is the identifier for this vault + type: string + role: + description: Role is the role for this vault + type: string + skipCertificateValidation: + description: SkipCertificateValidation validates the + vault server certificate or not + type: boolean + type: object + type: array + veleroNamespace: + description: VeleroNamespace is the namespace that Velero + is installed in + type: string + 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 @@ -78,90 +894,74 @@ spec: type: string type: array authorizationController: - description: - AuthorizationController is the image tag for + description: AuthorizationController is the image tag for the container type: string authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number + description: AuthorizationControllerReplicas is the number of replicas for the authorization controller deployment type: integer certificate: - description: - Certificate is a certificate used for a certificate/private-key + description: Certificate is a certificate used for a certificate/private-key pair type: string certificateAuthority: - description: - CertificateAuthority is a certificate authority + description: CertificateAuthority is a certificate authority used to validate a certificate type: string commander: description: Commander is the image tag for the Container type: string controllerReconcileInterval: - description: - The interval which the reconcile of each controller + description: The interval which the reconcile of each controller is run type: string credentials: - description: - ComponentCred is to store the velero credential + description: ComponentCred is to store the velero credential contents items: description: Credential struct properties: createWithInstall: - description: - CreateWithInstall is used to indicate wether - or not to create a secret for objectstore + description: CreateWithInstall is used to indicate + wether or not to create a secret for objectstore type: boolean name: - description: - Name is the name of secret which contains + description: Name is the name of secret which contains credentials to access objectstore type: string secretContents: - description: - SecretContents contains credentials to + description: SecretContents contains credentials to access objectstore properties: aws_access_key_id: - description: - AccessKeyID is a name of key ID to + description: AccessKeyID is a name of key ID to access objectstore type: string aws_secret_access_key: - description: - AccessKey contains the key to access + description: AccessKey contains the key to access objectstore type: string type: object type: object type: array deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent + description: DeployNodeAgent is to enable/disable node-agent services type: boolean enabled: - description: - Enabled is used to indicate wether or not to + 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 + description: Envs is the set of environment variables for the container items: - description: - EnvVar represents an environment variable present - in a Container. + description: EnvVar represents an environment variable + present in a Container. properties: name: - description: - Name of the environment variable. Must + description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: @@ -177,9 +977,8 @@ spec: Defaults to "". type: string valueFrom: - description: - Source for the environment variable's value. - Cannot be used if value is not empty. + 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. @@ -194,17 +993,14 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the ConfigMap or - its key must be defined + description: Specify whether the ConfigMap + or its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -213,17 +1009,15 @@ spec: spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. properties: apiVersion: - description: - Version of the schema the FieldPath + 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 + description: Path of the field to select in the specified API version. type: string required: - - fieldPath + - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -232,34 +1026,30 @@ spec: (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" + description: 'Container name: required for + volumes, optional for env vars' type: string divisor: anyOf: - - type: integer - - type: string - description: - Specifies the output format of + - 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" + description: 'Required: resource to select' type: string required: - - resource + - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: - Selects a key of a secret in the pod's - namespace + description: Selects a key of a secret in the + pod's namespace properties: key: - description: - The key of the secret to select + description: The key of the secret to select from. Must be a valid secret key. type: string name: @@ -269,42 +1059,39 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the Secret or its - key must be defined + description: Specify whether the Secret or + its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic type: object required: - - name + - name type: object type: array hostname: - description: Hostname is the authorization proxy server hostname + description: Hostname is the authorization proxy server + hostname type: string image: description: Image is the image tag for the Container type: string imagePullPolicy: - description: - ImagePullPolicy is the image pull policy for + description: ImagePullPolicy is the image pull policy for the image type: string leaderElection: - description: - LeaderElection is boolean flag to enable leader + description: LeaderElection is boolean flag to enable leader election type: boolean licenseName: - description: LicenseName is the name of the license for app-mobility + description: LicenseName is the name of the license for + app-mobility type: string name: description: Name is the name of Container @@ -317,8 +1104,7 @@ spec: Selector which must match a node's labels for the pod to be scheduled on that node. type: object objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the secret + description: ObjectStoreSecretName is the name of the secret for the object store for app-mobility type: string opa: @@ -328,29 +1114,24 @@ spec: description: OpaKubeMgmt is the image tag for the Container type: string openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address + description: OpenTelemetryCollectorAddress is the address of the OTLP receiving endpoint using gRPC type: string privateKey: - description: - PrivateKey is a private key used for a certificate/private-key + description: PrivateKey is a private key used for a certificate/private-key pair type: string proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy + description: ProxyServerIngress is the authorization proxy server ingress configuration items: - description: - ProxyServerIngress is the authorization ingress + description: ProxyServerIngress is the authorization ingress configuration struct properties: annotations: additionalProperties: type: string - description: - Annotations is an unstructured key value + description: Annotations is an unstructured key value map that stores additional annotations for the ingress type: object hosts: @@ -367,8 +1148,7 @@ spec: description: ProxyService is the image tag for the Container type: string proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas + description: ProxyServiceReplicas is the number of replicas for the proxy service deployment type: integer redis: @@ -381,9 +1161,8 @@ spec: description: RedisName is the name of the redis statefulset type: string redisReplicas: - description: - RedisReplicas is the number of replicas for the - redis deployment + description: RedisReplicas is the number of replicas for + the redis deployment type: integer replicaCount: description: ReplicaCount is the replica count for app mobility @@ -392,43 +1171,37 @@ spec: description: RoleService is the image tag for the Container type: string roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas + description: RoleServiceReplicas is the number of replicas for the role service deployment type: integer sentinel: description: Sentinel is the name of the sentinel statefulSet type: string skipCertificateValidation: - description: - skipCertificateValidation is the flag to skip + description: skipCertificateValidation is the flag to skip certificate validation type: boolean storageService: description: StorageService is the image tag for the Container type: string storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas + description: StorageServiceReplicas is the number of replicas for storage service deployment type: integer storageclass: - description: - RedisStorageClass is the authorization proxy + description: RedisStorageClass is the authorization proxy server redis storage class for persistence type: string tenantService: description: TenantService is the image tag for the Container type: string tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas + description: TenantServiceReplicas is the number of replicas for the tenant service deployment type: integer tolerations: - description: - Tolerations is the list of tolerations for the - driver pods + 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 @@ -467,63 +1240,453 @@ spec: type: object type: array useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot + description: UseSnapshot is to check whether volume snapshot is enabled under velero component type: boolean vaultConfigurations: description: Vaults are the vault configurations items: - description: - Vault is the configuration for a vault instance + description: Vault is the configuration for a vault instance struct properties: address: description: Address is the address for this vault type: string certificateAuthority: - description: - CertificateAuthority is the base64-encoded + description: CertificateAuthority is the base64-encoded certificate authority for validaitng the vault certificate type: string clientCertificate: - description: - ClientCertificate is the base64-encoded + description: ClientCertificate is the base64-encoded certificate for connecting to vault type: string clientKey: - description: - ClientKey validates is the base64-encoded + description: ClientKey validates is the base64-encoded certificate key for connecting to vault type: string identifier: - description: Identifier is the identifier for this vault + description: Identifier is the identifier for this + vault type: string role: description: Role is the role for this vault type: string skipCertificateValidation: - description: - SkipCertificateValidation validates the + description: SkipCertificateValidation validates the vault server certificate or not type: boolean type: object type: array veleroNamespace: - description: - VeleroNamespace is the namespace that Velero + description: VeleroNamespace is the namespace that Velero is installed in type: string type: object - configVersion: - description: - ConfigVersion is the configuration version of the - driver - type: string - controller: - description: - Controller is the specification for Controller plugin - only + 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 + authorizationController: + description: AuthorizationController is the image tag for + the container + type: string + authorizationControllerReplicas: + description: AuthorizationControllerReplicas is the number + of replicas for the authorization controller deployment + type: integer + certificate: + description: Certificate is a certificate used for a certificate/private-key + pair + type: string + certificateAuthority: + description: CertificateAuthority is a certificate authority + used to validate a certificate + type: string + commander: + description: Commander is the image tag for the Container + type: string + controllerReconcileInterval: + description: The interval which the reconcile of each controller + is run + type: string + credentials: + description: ComponentCred is to store the velero credential + contents + items: + description: Credential struct + properties: + createWithInstall: + description: CreateWithInstall is used to indicate wether + or not to create a secret for objectstore + type: boolean + name: + description: Name is the name of secret which contains + credentials to access objectstore + type: string + secretContents: + description: SecretContents contains credentials to + access objectstore + properties: + aws_access_key_id: + description: AccessKeyID is a name of key ID to + access objectstore + type: string + aws_secret_access_key: + description: AccessKey contains the key to access + objectstore + type: string + type: object + type: object + type: array + deployNodeAgent: + description: DeployNodeAgent is to enable/disable node-agent + services + type: boolean + 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: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or + its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + hostname: + description: Hostname is the authorization proxy server hostname + type: string + 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 + leaderElection: + description: LeaderElection is boolean flag to enable leader + election + type: boolean + licenseName: + description: LicenseName is the name of the license for app-mobility + 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 + objectStoreSecretName: + description: ObjectStoreSecretName is the name of the secret + for the object store for app-mobility + type: string + opa: + description: Opa is the image tag for the Container + type: string + opaKubeMgmt: + description: OpaKubeMgmt is the image tag for the Container + type: string + openTelemetryCollectorAddress: + description: OpenTelemetryCollectorAddress is the address + of the OTLP receiving endpoint using gRPC + type: string + privateKey: + description: PrivateKey is a private key used for a certificate/private-key + pair + type: string + proxyServerIngress: + description: ProxyServerIngress is the authorization proxy + server ingress configuration + items: + description: ProxyServerIngress is the authorization ingress + configuration struct + properties: + annotations: + additionalProperties: + type: string + description: Annotations is an unstructured key value + map that stores additional annotations for the ingress + type: object + hosts: + description: Hosts is the hosts rules for the ingress + items: + type: string + type: array + ingressClassName: + description: IngressClassName is the ingressClassName + type: string + type: object + type: array + proxyService: + description: ProxyService is the image tag for the Container + type: string + proxyServiceReplicas: + description: ProxyServiceReplicas is the number of replicas + for the proxy service deployment + type: integer + redis: + description: Redis is the image tag for the Container + type: string + redisCommander: + description: RedisCommander is the name of the redis deployment + type: string + redisName: + description: RedisName is the name of the redis statefulset + type: string + redisReplicas: + description: RedisReplicas is the number of replicas for the + redis deployment + type: integer + replicaCount: + description: ReplicaCount is the replica count for app mobility + type: string + roleService: + description: RoleService is the image tag for the Container + type: string + roleServiceReplicas: + description: RoleServiceReplicas is the number of replicas + for the role service deployment + type: integer + sentinel: + description: Sentinel is the name of the sentinel statefulSet + type: string + skipCertificateValidation: + description: skipCertificateValidation is the flag to skip + certificate validation + type: boolean + storageService: + description: StorageService is the image tag for the Container + type: string + storageServiceReplicas: + description: StorageServiceReplicas is the number of replicas + for storage service deployment + type: integer + storageclass: + description: RedisStorageClass is the authorization proxy + server redis storage class for persistence + type: string + tenantService: + description: TenantService is the image tag for the Container + type: string + tenantServiceReplicas: + description: TenantServiceReplicas is the number of replicas + for the tenant service deployment + type: integer + 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 + useVolumeSnapshot: + description: UseSnapshot is to check whether volume snapshot + is enabled under velero component + type: boolean + vaultConfigurations: + description: Vaults are the vault configurations + items: + description: Vault is the configuration for a vault instance + struct + properties: + address: + description: Address is the address for this vault + type: string + certificateAuthority: + description: CertificateAuthority is the base64-encoded + certificate authority for validaitng the vault certificate + type: string + clientCertificate: + description: ClientCertificate is the base64-encoded + certificate for connecting to vault + type: string + clientKey: + description: ClientKey validates is the base64-encoded + certificate key for connecting to vault + type: string + identifier: + description: Identifier is the identifier for this vault + type: string + role: + description: Role is the role for this vault + type: string + skipCertificateValidation: + description: SkipCertificateValidation validates the + vault server certificate or not + type: boolean + type: object + type: array + veleroNamespace: + description: VeleroNamespace is the namespace that Velero + is installed in + type: string + type: object + replicas: + default: 2 + 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 @@ -531,90 +1694,74 @@ spec: type: string type: array authorizationController: - description: - AuthorizationController is the image tag for + description: AuthorizationController is the image tag for the container type: string authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number + description: AuthorizationControllerReplicas is the number of replicas for the authorization controller deployment type: integer certificate: - description: - Certificate is a certificate used for a certificate/private-key + description: Certificate is a certificate used for a certificate/private-key pair type: string certificateAuthority: - description: - CertificateAuthority is a certificate authority + description: CertificateAuthority is a certificate authority used to validate a certificate type: string commander: description: Commander is the image tag for the Container type: string controllerReconcileInterval: - description: - The interval which the reconcile of each controller + description: The interval which the reconcile of each controller is run type: string credentials: - description: - ComponentCred is to store the velero credential + description: ComponentCred is to store the velero credential contents items: description: Credential struct properties: createWithInstall: - description: - CreateWithInstall is used to indicate wether - or not to create a secret for objectstore + description: CreateWithInstall is used to indicate + wether or not to create a secret for objectstore type: boolean name: - description: - Name is the name of secret which contains + description: Name is the name of secret which contains credentials to access objectstore type: string secretContents: - description: - SecretContents contains credentials to + description: SecretContents contains credentials to access objectstore properties: aws_access_key_id: - description: - AccessKeyID is a name of key ID to + description: AccessKeyID is a name of key ID to access objectstore type: string aws_secret_access_key: - description: - AccessKey contains the key to access + description: AccessKey contains the key to access objectstore type: string type: object type: object type: array deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent + description: DeployNodeAgent is to enable/disable node-agent services type: boolean enabled: - description: - Enabled is used to indicate wether or not to + 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 + description: Envs is the set of environment variables for the container items: - description: - EnvVar represents an environment variable present - in a Container. + description: EnvVar represents an environment variable + present in a Container. properties: name: - description: - Name of the environment variable. Must + description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: @@ -630,9 +1777,8 @@ spec: Defaults to "". type: string valueFrom: - description: - Source for the environment variable's value. - Cannot be used if value is not empty. + 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. @@ -647,17 +1793,14 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the ConfigMap or - its key must be defined + description: Specify whether the ConfigMap + or its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -666,17 +1809,15 @@ spec: spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. properties: apiVersion: - description: - Version of the schema the FieldPath + 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 + description: Path of the field to select in the specified API version. type: string required: - - fieldPath + - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -685,34 +1826,30 @@ spec: (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" + description: 'Container name: required for + volumes, optional for env vars' type: string divisor: anyOf: - - type: integer - - type: string - description: - Specifies the output format of + - 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" + description: 'Required: resource to select' type: string required: - - resource + - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: - Selects a key of a secret in the pod's - namespace + description: Selects a key of a secret in the + pod's namespace properties: key: - description: - The key of the secret to select + description: The key of the secret to select from. Must be a valid secret key. type: string name: @@ -722,42 +1859,39 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the Secret or its - key must be defined + description: Specify whether the Secret or + its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic type: object required: - - name + - name type: object type: array hostname: - description: Hostname is the authorization proxy server hostname + description: Hostname is the authorization proxy server + hostname type: string image: description: Image is the image tag for the Container type: string imagePullPolicy: - description: - ImagePullPolicy is the image pull policy for + description: ImagePullPolicy is the image pull policy for the image type: string leaderElection: - description: - LeaderElection is boolean flag to enable leader + description: LeaderElection is boolean flag to enable leader election type: boolean licenseName: - description: LicenseName is the name of the license for app-mobility + description: LicenseName is the name of the license for + app-mobility type: string name: description: Name is the name of Container @@ -770,8 +1904,7 @@ spec: Selector which must match a node's labels for the pod to be scheduled on that node. type: object objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the secret + description: ObjectStoreSecretName is the name of the secret for the object store for app-mobility type: string opa: @@ -781,29 +1914,24 @@ spec: description: OpaKubeMgmt is the image tag for the Container type: string openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address + description: OpenTelemetryCollectorAddress is the address of the OTLP receiving endpoint using gRPC type: string privateKey: - description: - PrivateKey is a private key used for a certificate/private-key + description: PrivateKey is a private key used for a certificate/private-key pair type: string proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy + description: ProxyServerIngress is the authorization proxy server ingress configuration items: - description: - ProxyServerIngress is the authorization ingress + description: ProxyServerIngress is the authorization ingress configuration struct properties: annotations: additionalProperties: type: string - description: - Annotations is an unstructured key value + description: Annotations is an unstructured key value map that stores additional annotations for the ingress type: object hosts: @@ -820,8 +1948,7 @@ spec: description: ProxyService is the image tag for the Container type: string proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas + description: ProxyServiceReplicas is the number of replicas for the proxy service deployment type: integer redis: @@ -834,9 +1961,8 @@ spec: description: RedisName is the name of the redis statefulset type: string redisReplicas: - description: - RedisReplicas is the number of replicas for the - redis deployment + description: RedisReplicas is the number of replicas for + the redis deployment type: integer replicaCount: description: ReplicaCount is the replica count for app mobility @@ -845,43 +1971,37 @@ spec: description: RoleService is the image tag for the Container type: string roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas + description: RoleServiceReplicas is the number of replicas for the role service deployment type: integer sentinel: description: Sentinel is the name of the sentinel statefulSet type: string skipCertificateValidation: - description: - skipCertificateValidation is the flag to skip + description: skipCertificateValidation is the flag to skip certificate validation type: boolean storageService: description: StorageService is the image tag for the Container type: string storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas + description: StorageServiceReplicas is the number of replicas for storage service deployment type: integer storageclass: - description: - RedisStorageClass is the authorization proxy + description: RedisStorageClass is the authorization proxy server redis storage class for persistence type: string tenantService: description: TenantService is the image tag for the Container type: string tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas + description: TenantServiceReplicas is the number of replicas for the tenant service deployment type: integer tolerations: - description: - Tolerations is the list of tolerations for the - driver pods + 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 @@ -920,84 +2040,78 @@ spec: type: object type: array useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot + description: UseSnapshot is to check whether volume snapshot is enabled under velero component type: boolean vaultConfigurations: description: Vaults are the vault configurations items: - description: - Vault is the configuration for a vault instance + description: Vault is the configuration for a vault instance struct properties: address: description: Address is the address for this vault type: string certificateAuthority: - description: - CertificateAuthority is the base64-encoded + description: CertificateAuthority is the base64-encoded certificate authority for validaitng the vault certificate type: string clientCertificate: - description: - ClientCertificate is the base64-encoded + description: ClientCertificate is the base64-encoded certificate for connecting to vault type: string clientKey: - description: - ClientKey validates is the base64-encoded + description: ClientKey validates is the base64-encoded certificate key for connecting to vault type: string identifier: - description: Identifier is the identifier for this vault + description: Identifier is the identifier for this + vault type: string role: description: Role is the role for this vault type: string skipCertificateValidation: - description: - SkipCertificateValidation validates the + description: SkipCertificateValidation validates the vault server certificate or not type: boolean type: object type: array veleroNamespace: - description: - VeleroNamespace is the namespace that Velero + description: VeleroNamespace is the namespace that Velero is installed in type: string type: object - csiDriverSpec: - description: CSIDriverSpec is the specification for CSIDriver + type: array + snapshotClass: + description: SnapshotClass is the specification for Snapshot Classes + items: + description: SnapshotClass struct properties: - fSGroupPolicy: + name: + description: Name is the name of the Snapshot Class type: string - storageCapacity: - type: boolean + parameters: + additionalProperties: + type: string + description: Parameters is a map of driver specific parameters + for snapshot class + type: object 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 + 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: @@ -1007,90 +2121,74 @@ spec: type: string type: array authorizationController: - description: - AuthorizationController is the image tag for - the container + description: AuthorizationController is the image tag + for the container type: string authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number + description: AuthorizationControllerReplicas is the number of replicas for the authorization controller deployment type: integer certificate: - description: - Certificate is a certificate used for a certificate/private-key + description: Certificate is a certificate used for a certificate/private-key pair type: string certificateAuthority: - description: - CertificateAuthority is a certificate authority + description: CertificateAuthority is a certificate authority used to validate a certificate type: string commander: description: Commander is the image tag for the Container type: string controllerReconcileInterval: - description: - The interval which the reconcile of each controller - is run + description: The interval which the reconcile of each + controller is run type: string credentials: - description: - ComponentCred is to store the velero credential + description: ComponentCred is to store the velero credential contents items: description: Credential struct properties: createWithInstall: - description: - CreateWithInstall is used to indicate + description: CreateWithInstall is used to indicate wether or not to create a secret for objectstore type: boolean name: - description: - Name is the name of secret which contains + description: Name is the name of secret which contains credentials to access objectstore type: string secretContents: - description: - SecretContents contains credentials to - access objectstore + description: SecretContents contains credentials + to access objectstore properties: aws_access_key_id: - description: - AccessKeyID is a name of key ID to - access objectstore + description: AccessKeyID is a name of key ID + to access objectstore type: string aws_secret_access_key: - description: - AccessKey contains the key to access + description: AccessKey contains the key to access objectstore type: string type: object type: object type: array deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent + description: DeployNodeAgent is to enable/disable node-agent services type: boolean enabled: - description: - Enabled is used to indicate wether or not to - deploy a module + 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 + description: Envs is the set of environment variables + for the container items: - description: - EnvVar represents an environment variable + description: EnvVar represents an environment variable present in a Container. properties: name: - description: - Name of the environment variable. Must + description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: @@ -1106,8 +2204,7 @@ spec: Defaults to "". type: string valueFrom: - description: - Source for the environment variable's + description: Source for the environment variable's value. Cannot be used if value is not empty. properties: configMapKeyRef: @@ -1123,17 +2220,14 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the ConfigMap + description: Specify whether the ConfigMap or its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -1142,17 +2236,15 @@ spec: spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. properties: apiVersion: - description: - Version of the schema the FieldPath + 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. + description: Path of the field to select + in the specified API version. type: string required: - - fieldPath + - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -1161,34 +2253,31 @@ spec: (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" + 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" + - 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" + description: 'Required: resource to select' type: string required: - - resource + - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: - Selects a key of a secret in the + description: Selects a key of a secret in the pod's namespace properties: key: - description: - The key of the secret to select + description: The key of the secret to select from. Must be a valid secret key. type: string name: @@ -1198,45 +2287,38 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the Secret or - its key must be defined + description: Specify whether the Secret + or its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic type: object required: - - name + - name type: object type: array hostname: - description: - Hostname is the authorization proxy server + description: Hostname is the authorization proxy server hostname type: string image: description: Image is the image tag for the Container type: string imagePullPolicy: - description: - ImagePullPolicy is the image pull policy for - the image + description: ImagePullPolicy is the image pull policy + for the image type: string leaderElection: - description: - LeaderElection is boolean flag to enable leader - election + description: LeaderElection is boolean flag to enable + leader election type: boolean licenseName: - description: - LicenseName is the name of the license for + description: LicenseName is the name of the license for app-mobility type: string name: @@ -1250,9 +2332,8 @@ spec: Selector which must match a node's labels for the pod to be scheduled on that node. type: object objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the secret - for the object store for app-mobility + description: ObjectStoreSecretName is the name of the + secret for the object store for app-mobility type: string opa: description: Opa is the image tag for the Container @@ -1261,30 +2342,26 @@ spec: description: OpaKubeMgmt is the image tag for the Container type: string openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address + description: OpenTelemetryCollectorAddress is the address of the OTLP receiving endpoint using gRPC type: string privateKey: - description: - PrivateKey is a private key used for a certificate/private-key + description: PrivateKey is a private key used for a certificate/private-key pair type: string proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy + description: ProxyServerIngress is the authorization proxy server ingress configuration items: - description: - ProxyServerIngress is the authorization ingress - configuration struct + description: ProxyServerIngress is the authorization + ingress configuration struct properties: annotations: additionalProperties: type: string - description: - Annotations is an unstructured key value - map that stores additional annotations for the ingress + description: Annotations is an unstructured key + value map that stores additional annotations for + the ingress type: object hosts: description: Hosts is the hosts rules for the ingress @@ -1300,8 +2377,7 @@ spec: description: ProxyService is the image tag for the Container type: string proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas + description: ProxyServiceReplicas is the number of replicas for the proxy service deployment type: integer redis: @@ -1314,53 +2390,47 @@ spec: description: RedisName is the name of the redis statefulset type: string redisReplicas: - description: - RedisReplicas is the number of replicas for + description: RedisReplicas is the number of replicas for the redis deployment type: integer replicaCount: - description: ReplicaCount is the replica count for app mobility + description: ReplicaCount is the replica count for app + mobility type: string roleService: description: RoleService is the image tag for the Container type: string roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas + description: RoleServiceReplicas is the number of replicas for the role service deployment type: integer sentinel: description: Sentinel is the name of the sentinel statefulSet type: string skipCertificateValidation: - description: - skipCertificateValidation is the flag to skip - certificate validation + description: skipCertificateValidation is the flag to + skip certificate validation type: boolean storageService: description: StorageService is the image tag for the Container type: string storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas + description: StorageServiceReplicas is the number of replicas for storage service deployment type: integer storageclass: - description: - RedisStorageClass is the authorization proxy + description: RedisStorageClass is the authorization proxy server redis storage class for persistence type: string tenantService: description: TenantService is the image tag for the Container type: string tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas + description: TenantServiceReplicas is the number of replicas for the tenant service deployment type: integer tolerations: - description: - Tolerations is the list of tolerations for + description: Tolerations is the list of tolerations for the driver pods items: description: |- @@ -1400,511 +2470,64 @@ spec: type: object type: array useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot + description: UseSnapshot is to check whether volume snapshot is enabled under velero component type: boolean vaultConfigurations: description: Vaults are the vault configurations items: - description: - Vault is the configuration for a vault instance - struct + description: Vault is the configuration for a vault + instance struct properties: address: description: Address is the address for this vault type: string certificateAuthority: - description: - CertificateAuthority is the base64-encoded - certificate authority for validaitng the vault certificate + description: CertificateAuthority is the base64-encoded + certificate authority for validaitng the vault + certificate type: string clientCertificate: - description: - ClientCertificate is the base64-encoded + description: ClientCertificate is the base64-encoded certificate for connecting to vault type: string clientKey: - description: - ClientKey validates is the base64-encoded + description: ClientKey validates is the base64-encoded certificate key for connecting to vault type: string identifier: - description: - Identifier is the identifier for this + description: Identifier is the identifier for this vault type: string role: description: Role is the role for this vault - type: string - skipCertificateValidation: - description: - SkipCertificateValidation validates the - vault server certificate or not - type: boolean - type: object - type: array - veleroNamespace: - description: - VeleroNamespace is the namespace that Velero - is installed in - type: string - 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 - authorizationController: - description: - AuthorizationController is the image tag for - the container - type: string - authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number - of replicas for the authorization controller deployment - type: integer - certificate: - description: - Certificate is a certificate used for a certificate/private-key - pair - type: string - certificateAuthority: - description: - CertificateAuthority is a certificate authority - used to validate a certificate - type: string - commander: - description: Commander is the image tag for the Container - type: string - controllerReconcileInterval: - description: - The interval which the reconcile of each controller - is run - type: string - credentials: - description: - ComponentCred is to store the velero credential - contents - items: - description: Credential struct - properties: - createWithInstall: - description: - CreateWithInstall is used to indicate wether - or not to create a secret for objectstore - type: boolean - name: - description: - Name is the name of secret which contains - credentials to access objectstore - type: string - secretContents: - description: - SecretContents contains credentials to - access objectstore - properties: - aws_access_key_id: - description: - AccessKeyID is a name of key ID to - access objectstore - type: string - aws_secret_access_key: - description: - AccessKey contains the key to access - objectstore - type: string - type: object - type: object - type: array - deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent - services - type: boolean - 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: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: - Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - x-kubernetes-map-type: atomic - 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 - x-kubernetes-map-type: atomic - 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: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: - Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - hostname: - description: Hostname is the authorization proxy server hostname - type: string - 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 - leaderElection: - description: - LeaderElection is boolean flag to enable leader - election - type: boolean - licenseName: - description: LicenseName is the name of the license for app-mobility - 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 - objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the secret - for the object store for app-mobility - type: string - opa: - description: Opa is the image tag for the Container - type: string - opaKubeMgmt: - description: OpaKubeMgmt is the image tag for the Container - type: string - openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address - of the OTLP receiving endpoint using gRPC - type: string - privateKey: - description: - PrivateKey is a private key used for a certificate/private-key - pair - type: string - proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy - server ingress configuration - items: - description: - ProxyServerIngress is the authorization ingress - configuration struct - properties: - annotations: - additionalProperties: - type: string - description: - Annotations is an unstructured key value - map that stores additional annotations for the ingress - type: object - hosts: - description: Hosts is the hosts rules for the ingress - items: - type: string - type: array - ingressClassName: - description: IngressClassName is the ingressClassName - type: string - type: object - type: array - proxyService: - description: ProxyService is the image tag for the Container - type: string - proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas - for the proxy service deployment - type: integer - redis: - description: Redis is the image tag for the Container - type: string - redisCommander: - description: RedisCommander is the name of the redis deployment - type: string - redisName: - description: RedisName is the name of the redis statefulset - type: string - redisReplicas: - description: - RedisReplicas is the number of replicas for the - redis deployment - type: integer - replicaCount: - description: ReplicaCount is the replica count for app mobility - type: string - roleService: - description: RoleService is the image tag for the Container - type: string - roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas - for the role service deployment - type: integer - sentinel: - description: Sentinel is the name of the sentinel statefulSet - type: string - skipCertificateValidation: - description: - skipCertificateValidation is the flag to skip - certificate validation - type: boolean - storageService: - description: StorageService is the image tag for the Container - type: string - storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas - for storage service deployment - type: integer - storageclass: - description: - RedisStorageClass is the authorization proxy - server redis storage class for persistence - type: string - tenantService: - description: TenantService is the image tag for the Container - type: string - tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas - for the tenant service deployment - type: integer - 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 - useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot - is enabled under velero component - type: boolean - vaultConfigurations: - description: Vaults are the vault configurations - items: - description: - Vault is the configuration for a vault instance - struct - properties: - address: - description: Address is the address for this vault - type: string - certificateAuthority: - description: - CertificateAuthority is the base64-encoded - certificate authority for validaitng the vault certificate - type: string - clientCertificate: - description: - ClientCertificate is the base64-encoded - certificate for connecting to vault - type: string - clientKey: - description: - ClientKey validates is the base64-encoded - certificate key for connecting to vault - type: string - identifier: - description: Identifier is the identifier for this vault - type: string - role: - description: Role is the role for this vault - type: string - skipCertificateValidation: - description: - SkipCertificateValidation validates the - vault server certificate or not - type: boolean - type: object - type: array - veleroNamespace: - description: - VeleroNamespace is the namespace that Velero - is installed in - type: string - 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 + type: string + skipCertificateValidation: + description: SkipCertificateValidation validates + the vault server certificate or not + type: boolean + type: object + type: array + veleroNamespace: + description: VeleroNamespace is the namespace that Velero + is installed in + type: string + 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 + initContainer: + description: InitContainer is the specification for Module InitContainer items: description: ContainerTemplate template properties: @@ -1914,90 +2537,74 @@ spec: type: string type: array authorizationController: - description: - AuthorizationController is the image tag for - the container + description: AuthorizationController is the image tag + for the container type: string authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number + description: AuthorizationControllerReplicas is the number of replicas for the authorization controller deployment type: integer certificate: - description: - Certificate is a certificate used for a certificate/private-key + description: Certificate is a certificate used for a certificate/private-key pair type: string certificateAuthority: - description: - CertificateAuthority is a certificate authority + description: CertificateAuthority is a certificate authority used to validate a certificate type: string commander: description: Commander is the image tag for the Container type: string controllerReconcileInterval: - description: - The interval which the reconcile of each controller - is run + description: The interval which the reconcile of each + controller is run type: string credentials: - description: - ComponentCred is to store the velero credential + description: ComponentCred is to store the velero credential contents items: description: Credential struct properties: createWithInstall: - description: - CreateWithInstall is used to indicate + description: CreateWithInstall is used to indicate wether or not to create a secret for objectstore type: boolean name: - description: - Name is the name of secret which contains + description: Name is the name of secret which contains credentials to access objectstore type: string secretContents: - description: - SecretContents contains credentials to - access objectstore + description: SecretContents contains credentials + to access objectstore properties: aws_access_key_id: - description: - AccessKeyID is a name of key ID to - access objectstore + description: AccessKeyID is a name of key ID + to access objectstore type: string aws_secret_access_key: - description: - AccessKey contains the key to access + description: AccessKey contains the key to access objectstore type: string type: object type: object type: array deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent + description: DeployNodeAgent is to enable/disable node-agent services type: boolean enabled: - description: - Enabled is used to indicate wether or not to - deploy a module + 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 + description: Envs is the set of environment variables + for the container items: - description: - EnvVar represents an environment variable + description: EnvVar represents an environment variable present in a Container. properties: name: - description: - Name of the environment variable. Must + description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: @@ -2013,8 +2620,7 @@ spec: Defaults to "". type: string valueFrom: - description: - Source for the environment variable's + description: Source for the environment variable's value. Cannot be used if value is not empty. properties: configMapKeyRef: @@ -2030,17 +2636,14 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the ConfigMap + description: Specify whether the ConfigMap or its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic fieldRef: @@ -2049,17 +2652,15 @@ spec: spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. properties: apiVersion: - description: - Version of the schema the FieldPath + 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. + description: Path of the field to select + in the specified API version. type: string required: - - fieldPath + - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: @@ -2068,34 +2669,31 @@ spec: (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" + 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" + - 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" + description: 'Required: resource to select' type: string required: - - resource + - resource type: object x-kubernetes-map-type: atomic secretKeyRef: - description: - Selects a key of a secret in the + description: Selects a key of a secret in the pod's namespace properties: key: - description: - The key of the secret to select + description: The key of the secret to select from. Must be a valid secret key. type: string name: @@ -2105,45 +2703,38 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string optional: - description: - Specify whether the Secret or - its key must be defined + description: Specify whether the Secret + or its key must be defined type: boolean required: - - key + - key type: object x-kubernetes-map-type: atomic type: object required: - - name + - name type: object type: array hostname: - description: - Hostname is the authorization proxy server + description: Hostname is the authorization proxy server hostname type: string image: description: Image is the image tag for the Container type: string imagePullPolicy: - description: - ImagePullPolicy is the image pull policy for - the image + description: ImagePullPolicy is the image pull policy + for the image type: string leaderElection: - description: - LeaderElection is boolean flag to enable leader - election + description: LeaderElection is boolean flag to enable + leader election type: boolean licenseName: - description: - LicenseName is the name of the license for + description: LicenseName is the name of the license for app-mobility type: string name: @@ -2157,9 +2748,8 @@ spec: Selector which must match a node's labels for the pod to be scheduled on that node. type: object objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the secret - for the object store for app-mobility + description: ObjectStoreSecretName is the name of the + secret for the object store for app-mobility type: string opa: description: Opa is the image tag for the Container @@ -2168,30 +2758,26 @@ spec: description: OpaKubeMgmt is the image tag for the Container type: string openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address + description: OpenTelemetryCollectorAddress is the address of the OTLP receiving endpoint using gRPC type: string privateKey: - description: - PrivateKey is a private key used for a certificate/private-key + description: PrivateKey is a private key used for a certificate/private-key pair type: string proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy + description: ProxyServerIngress is the authorization proxy server ingress configuration items: - description: - ProxyServerIngress is the authorization ingress - configuration struct + description: ProxyServerIngress is the authorization + ingress configuration struct properties: annotations: additionalProperties: type: string - description: - Annotations is an unstructured key value - map that stores additional annotations for the ingress + description: Annotations is an unstructured key + value map that stores additional annotations for + the ingress type: object hosts: description: Hosts is the hosts rules for the ingress @@ -2207,8 +2793,7 @@ spec: description: ProxyService is the image tag for the Container type: string proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas + description: ProxyServiceReplicas is the number of replicas for the proxy service deployment type: integer redis: @@ -2221,53 +2806,47 @@ spec: description: RedisName is the name of the redis statefulset type: string redisReplicas: - description: - RedisReplicas is the number of replicas for + description: RedisReplicas is the number of replicas for the redis deployment type: integer replicaCount: - description: ReplicaCount is the replica count for app mobility + description: ReplicaCount is the replica count for app + mobility type: string roleService: description: RoleService is the image tag for the Container type: string roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas + description: RoleServiceReplicas is the number of replicas for the role service deployment type: integer sentinel: description: Sentinel is the name of the sentinel statefulSet type: string skipCertificateValidation: - description: - skipCertificateValidation is the flag to skip - certificate validation + description: skipCertificateValidation is the flag to + skip certificate validation type: boolean storageService: description: StorageService is the image tag for the Container type: string storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas + description: StorageServiceReplicas is the number of replicas for storage service deployment type: integer storageclass: - description: - RedisStorageClass is the authorization proxy + description: RedisStorageClass is the authorization proxy server redis storage class for persistence type: string tenantService: description: TenantService is the image tag for the Container type: string tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas + description: TenantServiceReplicas is the number of replicas for the tenant service deployment type: integer tolerations: - description: - Tolerations is the list of tolerations for + description: Tolerations is the list of tolerations for the driver pods items: description: |- @@ -2307,1059 +2886,86 @@ spec: type: object type: array useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot + description: UseSnapshot is to check whether volume snapshot is enabled under velero component type: boolean vaultConfigurations: description: Vaults are the vault configurations items: - description: - Vault is the configuration for a vault instance - struct + description: Vault is the configuration for a vault + instance struct properties: address: description: Address is the address for this vault type: string certificateAuthority: - description: - CertificateAuthority is the base64-encoded - certificate authority for validaitng the vault certificate + description: CertificateAuthority is the base64-encoded + certificate authority for validaitng the vault + certificate type: string clientCertificate: - description: - ClientCertificate is the base64-encoded + description: ClientCertificate is the base64-encoded certificate for connecting to vault type: string clientKey: - description: - ClientKey validates is the base64-encoded + description: ClientKey validates is the base64-encoded certificate key for connecting to vault type: string identifier: - description: - Identifier is the identifier for this + description: Identifier is the identifier for this vault type: string role: description: Role is the role for this vault type: string skipCertificateValidation: - description: - SkipCertificateValidation validates the - vault server certificate or not + description: SkipCertificateValidation validates + the vault server certificate or not type: boolean type: object type: array veleroNamespace: - description: - VeleroNamespace is the namespace that Velero + description: VeleroNamespace is the namespace that Velero is installed in type: string 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 - authorizationController: - description: - AuthorizationController is the image tag - for the container - type: string - authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number - of replicas for the authorization controller deployment - type: integer - certificate: - description: - Certificate is a certificate used for a certificate/private-key - pair - type: string - certificateAuthority: - description: - CertificateAuthority is a certificate authority - used to validate a certificate - type: string - commander: - description: Commander is the image tag for the Container - type: string - controllerReconcileInterval: - description: - The interval which the reconcile of each - controller is run - type: string - credentials: - description: - ComponentCred is to store the velero credential - contents - items: - description: Credential struct - properties: - createWithInstall: - description: - CreateWithInstall is used to indicate - wether or not to create a secret for objectstore - type: boolean - name: - description: - Name is the name of secret which contains - credentials to access objectstore - type: string - secretContents: - description: - SecretContents contains credentials - to access objectstore - properties: - aws_access_key_id: - description: - AccessKeyID is a name of key ID - to access objectstore - type: string - aws_secret_access_key: - description: - AccessKey contains the key to access - objectstore - type: string - type: object - type: object - type: array - deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent - services - type: boolean - 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: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: - Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - x-kubernetes-map-type: atomic - 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 - x-kubernetes-map-type: atomic - 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: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: - Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - hostname: - description: - Hostname is the authorization proxy server - hostname - type: string - 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 - leaderElection: - description: - LeaderElection is boolean flag to enable - leader election - type: boolean - licenseName: - description: - LicenseName is the name of the license for - app-mobility - 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 - objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the - secret for the object store for app-mobility - type: string - opa: - description: Opa is the image tag for the Container - type: string - opaKubeMgmt: - description: OpaKubeMgmt is the image tag for the Container - type: string - openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address - of the OTLP receiving endpoint using gRPC - type: string - privateKey: - description: - PrivateKey is a private key used for a certificate/private-key - pair - type: string - proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy - server ingress configuration - items: - description: - ProxyServerIngress is the authorization - ingress configuration struct - properties: - annotations: - additionalProperties: - type: string - description: - Annotations is an unstructured key - value map that stores additional annotations for - the ingress - type: object - hosts: - description: Hosts is the hosts rules for the ingress - items: - type: string - type: array - ingressClassName: - description: IngressClassName is the ingressClassName - type: string - type: object - type: array - proxyService: - description: ProxyService is the image tag for the Container - type: string - proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas - for the proxy service deployment - type: integer - redis: - description: Redis is the image tag for the Container - type: string - redisCommander: - description: RedisCommander is the name of the redis deployment - type: string - redisName: - description: RedisName is the name of the redis statefulset - type: string - redisReplicas: - description: - RedisReplicas is the number of replicas for - the redis deployment - type: integer - replicaCount: - description: - ReplicaCount is the replica count for app - mobility - type: string - roleService: - description: RoleService is the image tag for the Container - type: string - roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas - for the role service deployment - type: integer - sentinel: - description: Sentinel is the name of the sentinel statefulSet - type: string - skipCertificateValidation: - description: - skipCertificateValidation is the flag to - skip certificate validation - type: boolean - storageService: - description: StorageService is the image tag for the Container - type: string - storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas - for storage service deployment - type: integer - storageclass: - description: - RedisStorageClass is the authorization proxy - server redis storage class for persistence - type: string - tenantService: - description: TenantService is the image tag for the Container - type: string - tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas - for the tenant service deployment - type: integer - 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 - useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot - is enabled under velero component - type: boolean - vaultConfigurations: - description: Vaults are the vault configurations - items: - description: - Vault is the configuration for a vault - instance struct - properties: - address: - description: Address is the address for this vault - type: string - certificateAuthority: - description: - CertificateAuthority is the base64-encoded - certificate authority for validaitng the vault - certificate - type: string - clientCertificate: - description: - ClientCertificate is the base64-encoded - certificate for connecting to vault - type: string - clientKey: - description: - ClientKey validates is the base64-encoded - certificate key for connecting to vault - type: string - identifier: - description: - Identifier is the identifier for this - vault - type: string - role: - description: Role is the role for this vault - type: string - skipCertificateValidation: - description: - SkipCertificateValidation validates - the vault server certificate or not - type: boolean - type: object - type: array - veleroNamespace: - description: - VeleroNamespace is the namespace that Velero - is installed in - type: string - 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 - initContainer: - description: InitContainer is the specification for Module InitContainer - items: - description: ContainerTemplate template - properties: - args: - description: Args is the set of arguments for the container - items: - type: string - type: array - authorizationController: - description: - AuthorizationController is the image tag - for the container - type: string - authorizationControllerReplicas: - description: - AuthorizationControllerReplicas is the number - of replicas for the authorization controller deployment - type: integer - certificate: - description: - Certificate is a certificate used for a certificate/private-key - pair - type: string - certificateAuthority: - description: - CertificateAuthority is a certificate authority - used to validate a certificate - type: string - commander: - description: Commander is the image tag for the Container - type: string - controllerReconcileInterval: - description: - The interval which the reconcile of each - controller is run - type: string - credentials: - description: - ComponentCred is to store the velero credential - contents - items: - description: Credential struct - properties: - createWithInstall: - description: - CreateWithInstall is used to indicate - wether or not to create a secret for objectstore - type: boolean - name: - description: - Name is the name of secret which contains - credentials to access objectstore - type: string - secretContents: - description: - SecretContents contains credentials - to access objectstore - properties: - aws_access_key_id: - description: - AccessKeyID is a name of key ID - to access objectstore - type: string - aws_secret_access_key: - description: - AccessKey contains the key to access - objectstore - type: string - type: object - type: object - type: array - deployNodeAgent: - description: - DeployNodeAgent is to enable/disable node-agent - services - type: boolean - 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: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: - Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - 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 - x-kubernetes-map-type: atomic - 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 - x-kubernetes-map-type: atomic - 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: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. - type: string - optional: - description: - Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - hostname: - description: - Hostname is the authorization proxy server - hostname - type: string - 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 - leaderElection: - description: - LeaderElection is boolean flag to enable - leader election - type: boolean - licenseName: - description: - LicenseName is the name of the license for - app-mobility - 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 - objectStoreSecretName: - description: - ObjectStoreSecretName is the name of the - secret for the object store for app-mobility - type: string - opa: - description: Opa is the image tag for the Container - type: string - opaKubeMgmt: - description: OpaKubeMgmt is the image tag for the Container - type: string - openTelemetryCollectorAddress: - description: - OpenTelemetryCollectorAddress is the address - of the OTLP receiving endpoint using gRPC - type: string - privateKey: - description: - PrivateKey is a private key used for a certificate/private-key - pair - type: string - proxyServerIngress: - description: - ProxyServerIngress is the authorization proxy - server ingress configuration - items: - description: - ProxyServerIngress is the authorization - ingress configuration struct - properties: - annotations: - additionalProperties: - type: string - description: - Annotations is an unstructured key - value map that stores additional annotations for - the ingress - type: object - hosts: - description: Hosts is the hosts rules for the ingress - items: - type: string - type: array - ingressClassName: - description: IngressClassName is the ingressClassName - type: string - type: object - type: array - proxyService: - description: ProxyService is the image tag for the Container - type: string - proxyServiceReplicas: - description: - ProxyServiceReplicas is the number of replicas - for the proxy service deployment - type: integer - redis: - description: Redis is the image tag for the Container - type: string - redisCommander: - description: RedisCommander is the name of the redis deployment - type: string - redisName: - description: RedisName is the name of the redis statefulset - type: string - redisReplicas: - description: - RedisReplicas is the number of replicas for - the redis deployment - type: integer - replicaCount: - description: - ReplicaCount is the replica count for app - mobility - type: string - roleService: - description: RoleService is the image tag for the Container - type: string - roleServiceReplicas: - description: - RoleServiceReplicas is the number of replicas - for the role service deployment - type: integer - sentinel: - description: Sentinel is the name of the sentinel statefulSet - type: string - skipCertificateValidation: - description: - skipCertificateValidation is the flag to - skip certificate validation - type: boolean - storageService: - description: StorageService is the image tag for the Container - type: string - storageServiceReplicas: - description: - StorageServiceReplicas is the number of replicas - for storage service deployment - type: integer - storageclass: - description: - RedisStorageClass is the authorization proxy - server redis storage class for persistence - type: string - tenantService: - description: TenantService is the image tag for the Container - type: string - tenantServiceReplicas: - description: - TenantServiceReplicas is the number of replicas - for the tenant service deployment - type: integer - 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 - useVolumeSnapshot: - description: - UseSnapshot is to check whether volume snapshot - is enabled under velero component - type: boolean - vaultConfigurations: - description: Vaults are the vault configurations - items: - description: - Vault is the configuration for a vault - instance struct - properties: - address: - description: Address is the address for this vault - type: string - certificateAuthority: - description: - CertificateAuthority is the base64-encoded - certificate authority for validaitng the vault - certificate - type: string - clientCertificate: - description: - ClientCertificate is the base64-encoded - certificate for connecting to vault - type: string - clientKey: - description: - ClientKey validates is the base64-encoded - certificate key for connecting to vault - type: string - identifier: - description: - Identifier is the identifier for this - vault - type: string - role: - description: Role is the role for this vault - type: string - skipCertificateValidation: - description: - SkipCertificateValidation validates - the vault server certificate or not - type: boolean - type: object - type: array - veleroNamespace: - description: - VeleroNamespace is the namespace that Velero - is installed in - type: string - type: object - type: array - 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: + name: + description: Name is name of ContainerStorageModule modules 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: {} + 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: {} diff --git a/pkg/drivers/commonconfig.go b/pkg/drivers/commonconfig.go index f1c58c88..78aa57af 100644 --- a/pkg/drivers/commonconfig.go +++ b/pkg/drivers/commonconfig.go @@ -302,10 +302,13 @@ func GetNode(ctx context.Context, cr csmv1.ContainerStorageModule, operatorConfi nodeYaml.DaemonSetApplyConfig.Spec.Template.Spec.Containers = newcontainers - updatedCr, err := SetSDCinitContainers(ctx, cr, ct) - if err != nil { - log.Errorw("Failed to set SDC init container", "Error", err.Error()) - return nil, err + var updatedCr csmv1.ContainerStorageModule + if cr.Spec.Driver.CSIDriverType == "powerflex" { + updatedCr, err = SetSDCinitContainers(ctx, cr, ct) + if err != nil { + log.Errorw("Failed to set SDC init container", "Error", err.Error()) + return nil, err + } } initcontainers := make([]acorev1.ContainerApplyConfiguration, 0) diff --git a/pkg/drivers/powerflex.go b/pkg/drivers/powerflex.go index d5b464e1..1e150e16 100644 --- a/pkg/drivers/powerflex.go +++ b/pkg/drivers/powerflex.go @@ -97,20 +97,27 @@ func SetSDCinitContainers(ctx context.Context, cr csmv1.ContainerStorageModule, var newInitContainers []csmv1.ContainerTemplate for _, initcontainer := range cr.Spec.Driver.InitContainers { if initcontainer.Name == "sdc" && sdcEnabled { - // Update MDM env variable for "sdc" container + // Ensure MDM env variable is set + mdmUpdated := false for i, env := range initcontainer.Envs { if env.Name == "MDM" { initcontainer.Envs[i].Value = mdmVar + mdmUpdated = true break } } + // If MDM not found, update it from secret + if !mdmUpdated { + initcontainer.Envs = append(initcontainer.Envs, corev1.EnvVar{ + Name: "MDM", + Value: mdmVar, + }) + } } - if initcontainer.Name != "sdc" || sdcEnabled { - newInitContainers = append(newInitContainers, initcontainer) - } + newInitContainers = append(newInitContainers, initcontainer) } - // If no init containers left and SDC is enabled, add a new one + // If there is no init containers and SDC is enabled, add a sdc init container if len(newInitContainers) == 0 && sdcEnabled { newInitContainers = append(newInitContainers, csmv1.ContainerTemplate{ Name: "sdc", @@ -122,17 +129,26 @@ func SetSDCinitContainers(ctx context.Context, cr csmv1.ContainerStorageModule, // Update sidecar containers for i := range cr.Spec.Driver.SideCars { if cr.Spec.Driver.SideCars[i].Name == "sdc-monitor" { - // Update MDM env variable for "sdc-monitor" sidecar container + // Ensure MDM env variable is set + mdmUpdated := false for j, env := range cr.Spec.Driver.SideCars[i].Envs { if env.Name == "MDM" { cr.Spec.Driver.SideCars[i].Envs[j].Value = mdmVar + mdmUpdated = true break } } + // If MDM not found, update it from secret + if !mdmUpdated { + cr.Spec.Driver.SideCars[i].Envs = append(cr.Spec.Driver.SideCars[i].Envs, corev1.EnvVar{ + Name: "MDM", + Value: mdmVar, + }) + } } } - // If no sidecars, add a new "sdc-monitor" sidecar with MDM + // If no sidecars are present, add a new "sdc-monitor" sidecar with MDM if len(cr.Spec.Driver.SideCars) == 0 { cr.Spec.Driver.SideCars = []csmv1.ContainerTemplate{ {