---
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  annotations:
    alm-examples: '[{"kind":"NooBaa","apiVersion":"noobaa.io/v1alpha1","metadata":{"name":"noobaa","creationTimestamp":null},"spec":{"cleanupPolicy":{},"security":{"kms":{}},"loadBalancerSourceSubnets":{},"autoscaler":{},"bucketLogging":{},"bucketNotifications":{"enabled":false}},"status":{"lastKeyRotateTime":null}},{"kind":"BackingStore","apiVersion":"noobaa.io/v1alpha1","metadata":{"name":"default","creationTimestamp":null},"spec":{"type":""},"status":{"mode":{}}},{"kind":"NamespaceStore","apiVersion":"noobaa.io/v1alpha1","metadata":{"name":"default","creationTimestamp":null},"spec":{"type":""},"status":{"mode":{}}},{"kind":"BucketClass","apiVersion":"noobaa.io/v1alpha1","metadata":{"name":"default","creationTimestamp":null},"spec":{},"status":{}},{"kind":"NooBaaAccount","apiVersion":"noobaa.io/v1alpha1","metadata":{"name":"default","creationTimestamp":null},"spec":{"allow_bucket_creation":false},"status":{}}]'
    capabilities: Seamless Upgrades
    categories: Storage,Big Data
    certified: "false"
    containerImage: registry.redhat.io/odf4/mcg-rhel9-operator@sha256:4cbacb025193772321e52dee544845eb18ea443a5b116456d3ca92019ae9fb34
    createdAt: "2019-07-08T13:10:20.940Z"
    description: NooBaa is an object data service for hybrid and multi cloud environments.
    features.operators.openshift.io/cnf: "false"
    features.operators.openshift.io/cni: "false"
    features.operators.openshift.io/csi: "true"
    features.operators.openshift.io/disconnected: "true"
    features.operators.openshift.io/fips-compliant: "true"
    features.operators.openshift.io/proxy-aware: "true"
    features.operators.openshift.io/tls-profiles: "false"
    features.operators.openshift.io/token-auth-aws: "true"
    features.operators.openshift.io/token-auth-azure: "false"
    features.operators.openshift.io/token-auth-gcp: "false"
    olm.operatorGroup: openshift-storage-operatorgroup
    olm.operatorNamespace: openshift-storage
    olm.skipRange: '>=4.2.0 <4.19.6-rhodf'
    olm.targetNamespaces: openshift-storage
    operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"noobaa.io","kind":"BackingStore","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"noobaa.io","kind":"BucketClass","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"noobaa.io","kind":"NamespaceStore","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"noobaa.io","kind":"NooBaa","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"noobaa.io","kind":"NooBaaAccount","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"objectbucket.io","kind":"ObjectBucket","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"objectbucket.io","kind":"ObjectBucketClaim","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"Backup","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"Cluster","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"ClusterImageCatalog","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"Database","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"ImageCatalog","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"Pooler","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"Publication","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"ScheduledBackup","version":"v1"}},{"type":"olm.gvk","value":{"group":"postgresql.cnpg.noobaa.io","kind":"Subscription","version":"v1"}},{"type":"olm.package","value":{"packageName":"mcg-operator","version":"4.19.6-rhodf"}}]}'
    operators.openshift.io/infrastructure-features: ֿ'["disconnected"]'
    operators.openshift.io/valid-subscription: '["OpenShift Platform Plus","OpenShift
      Data Foundation Essentials","OpenShift Data Foundation Advanced"]'
    operators.operatorframework.io/operator-type: non-standalone
    repository: https://github.com/noobaa/noobaa-operator
    support: Red Hat
  creationTimestamp: "2025-10-27T12:45:10Z"
  finalizers:
  - operators.coreos.com/csv-cleanup
  generation: 1
  labels:
    olm.managed: "true"
  managedFields:
  - apiVersion: operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:alm-examples: {}
          f:capabilities: {}
          f:categories: {}
          f:certified: {}
          f:containerImage: {}
          f:createdAt: {}
          f:description: {}
          f:features.operators.openshift.io/cnf: {}
          f:features.operators.openshift.io/cni: {}
          f:features.operators.openshift.io/csi: {}
          f:features.operators.openshift.io/disconnected: {}
          f:features.operators.openshift.io/fips-compliant: {}
          f:features.operators.openshift.io/proxy-aware: {}
          f:features.operators.openshift.io/tls-profiles: {}
          f:features.operators.openshift.io/token-auth-aws: {}
          f:features.operators.openshift.io/token-auth-azure: {}
          f:features.operators.openshift.io/token-auth-gcp: {}
          f:olm.skipRange: {}
          f:operatorframework.io/properties: {}
          f:operators.openshift.io/infrastructure-features: {}
          f:operators.openshift.io/valid-subscription: {}
          f:operators.operatorframework.io/operator-type: {}
          f:repository: {}
          f:support: {}
        f:labels:
          .: {}
          f:olm.managed: {}
      f:spec:
        .: {}
        f:apiservicedefinitions: {}
        f:cleanup:
          .: {}
          f:enabled: {}
        f:customresourcedefinitions:
          .: {}
          f:owned: {}
        f:description: {}
        f:displayName: {}
        f:icon: {}
        f:install:
          .: {}
          f:spec:
            .: {}
            f:clusterPermissions: {}
            f:deployments: {}
            f:permissions: {}
          f:strategy: {}
        f:installModes: {}
        f:keywords: {}
        f:labels:
          .: {}
          f:app: {}
          f:full_version: {}
        f:links: {}
        f:maintainers: {}
        f:maturity: {}
        f:minKubeVersion: {}
        f:provider:
          .: {}
          f:name: {}
        f:relatedImages: {}
        f:replaces: {}
        f:version: {}
        f:webhookdefinitions: {}
    manager: catalog
    operation: Update
    time: "2025-10-27T12:45:10Z"
  - apiVersion: operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          f:olm.operatorGroup: {}
          f:olm.operatorNamespace: {}
          f:olm.targetNamespaces: {}
        f:finalizers:
          .: {}
          v:"operators.coreos.com/csv-cleanup": {}
    manager: olm
    operation: Update
    time: "2025-10-27T12:45:10Z"
  - apiVersion: operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:ownerReferences:
          .: {}
          k:{"uid":"c2165870-5d5c-4fb7-86bf-8703c34328a8"}: {}
    manager: manager
    operation: Update
    time: "2025-10-27T12:45:13Z"
  - apiVersion: operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        .: {}
        f:certsLastUpdated: {}
        f:certsRotateAt: {}
        f:cleanup: {}
        f:conditions: {}
        f:lastTransitionTime: {}
        f:lastUpdateTime: {}
        f:message: {}
        f:phase: {}
        f:reason: {}
        f:requirementStatus: {}
    manager: olm
    operation: Update
    subresource: status
    time: "2025-10-27T12:45:35Z"
  name: mcg-operator.v4.19.6-rhodf
  namespace: openshift-storage
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Subscription
    name: ocs-subscription
    uid: c2165870-5d5c-4fb7-86bf-8703c34328a8
  resourceVersion: "60201"
  uid: fa287957-1f5d-4b7c-a200-f343cccca6d3
spec:
  apiservicedefinitions: {}
  cleanup:
    enabled: false
  customresourcedefinitions:
    owned:
    - description: A NooBaa system - Create this to start
      displayName: NooBaa
      kind: NooBaa
      name: noobaas.noobaa.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      specDescriptors:
      - description: DBImage (optional) overrides the default image for the db container.
        displayName: DB Image
        path: image
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Image (optional) overrides the default image for the server container.
        displayName: Image
        path: dbImage
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: CoreResources (optional) overrides the default resource requirements
          for the server container.
        displayName: Core Resources
        path: coreResources
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:resourceRequirements
      - description: DBResources (optional) overrides the default resource requirements
          for the db container.
        displayName: DB Resources
        path: dbResources
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:resourceRequirements
      - description: 'DBVolumeResources (optional) overrides the default PVC resource
          requirements for the database volume. For the time being this field is immutable
          and can only be set on system creation. This is because volume size updates
          are only supported for increasing the size, and only if the storage class
          specifies `allowVolumeExpansion: true`, +immutable.'
        displayName: Image
        path: dbVolumeResources
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:resourceRequirements
      - description: DBStorageClass (optional) overrides the default cluster StorageClass
          for the database volume. For the time being this field is immutable and
          can only be set on system creation. This affects where the system stores
          its database which contains system config, buckets, objects meta-data and
          mapping file parts to storage locations. +immutable.
        displayName: DB StorageClass
        path: dbStorageClass
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: PVPoolDefaultStorageClass (optional) overrides the default cluster
          StorageClass for the pv-pool volumes. This affects where the system stores
          data chunks (encrypted). Updates to this field will only affect new pv-pools,
          but updates to existing pools are not supported by the operator.
        displayName: PV Pool DefaultStorageClass
        path: pvPoolDefaultStorageClass
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: ImagePullSecret (optional) sets a pull secret for the system
          image.
        displayName: Image Pull Secret
        path: imagePullSecret
        x-descriptors:
        - urn:alm:descriptor:io.kubernetes:Secret
      version: v1alpha1
    - description: Storage target spec such as aws-s3, s3-compatible, ibm-cos, PV's
        and more. Used in BucketClass to construct data placement policies.
      displayName: Backing Store
      kind: BackingStore
      name: backingstores.noobaa.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      specDescriptors:
      - description: Region is the AWS region.
        displayName: Region
        path: awsS3.region
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Secret refers to a secret that provides the credentials. The
          secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
        displayName: Secret
        path: awsS3.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: SSLDisabled allows to disable SSL and use plain http.
        displayName: SSL Disabled
        path: awsS3.sslDisabled
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:com.tectonic.ui:booleanSwitch
      - description: TargetBucket is the name of the target S3 bucket.
        displayName: Target Bucket
        path: awsS3.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: |2-
           Secret refers to a secret that provides the credentials. The secret should define AccountName and AccountKey as provided
          by Azure Blob.
        displayName: Secret
        path: azureBlob.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:azureBlob
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: TargetBlobContainer is the name of the target Azure Blob container.
        displayName: Target Blob Container
        path: azureBlob.targetBlobContainer
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:azureBlob
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: |-
          Secret refers to a secret that provides the credentials. The secret should define GoogleServiceAccountPrivateKeyJson containing
          the entire json string as provided by Google.
        displayName: Secret
        path: googleCloudStorage.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:googleCloudStorage
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: TargetBucket is the name of the target S3 bucket.
        displayName: Target Bucket
        path: googleCloudStorage.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:googleCloudStorage
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: NumVolumes is the number of volumes to allocate.
        displayName: Num Volumes
        path: pvPool.numVolumes
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:pvPool
        - urn:alm:descriptor:com.tectonic.ui:number
      - description: VolumeResources represents the minimum resources each volume
          should have.
        displayName: Resources
        path: pvPool.resources
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:pvPool
        - urn:alm:descriptor:com.tectonic.ui:resourceRequirements
      - description: StorageClass is the name of the storage class to use for the
          PV's.
        displayName: Storage Class
        path: pvPool.storageClass
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:pvPool
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: 'Endpoint is the S3 compatible endpoint: http(s)://host:port.'
        displayName: End Point
        path: s3Compatible.endpoint
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Secret refers to a secret that provides the credentials. The
          secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
        displayName: Secret
        path: s3Compatible.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: SignatureVersion specifies the client signature version to use
          when signing requests.
        displayName: Signature Version
        path: s3Compatible.signatureVersion
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:com.tectonic.ui:number
      - description: TargetBucket is the name of the target S3 bucket.
        displayName: Target Bucket
        path: s3Compatible.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: 'Endpoint is the IBM COS endpoint: http(s)://host:port.'
        displayName: End Point
        path: IBMCos.endpoint
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Secret refers to a secret that provides the credentials. The
          secret should define IBM_COS_ACCESS_KEY_ID and IBM_COS_SECRET_ACCESS_KEY.
        displayName: Secret
        path: IBMCos.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: SignatureVersion specifies the client signature version to use
          when signing requests.
        displayName: Signature Version
        path: IBMCos.signatureVersion
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:com.tectonic.ui:number
      - description: TargetBucket is the name of the target IBM COS bucket.
        displayName: Target Bucket
        path: IBMCos.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:com.tectonic.ui:text
      version: v1alpha1
    - description: Storage target spec such as aws-s3, s3-compatible, ibm-cos and
        more. Used in BucketClass to construct namespace policies.
      displayName: Namespace Store
      kind: NamespaceStore
      name: namespacestores.noobaa.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      specDescriptors:
      - description: Region is the AWS region.
        displayName: Region
        path: awsS3.region
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Secret refers to a secret that provides the credentials. The
          secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
        displayName: Secret
        path: awsS3.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: SSLDisabled allows to disable SSL and use plain http.
        displayName: SSL Disabled
        path: awsS3.sslDisabled
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:com.tectonic.ui:booleanSwitch
      - description: TargetBucket is the name of the target S3 bucket.
        displayName: Target Bucket
        path: awsS3.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:awsS3
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: |2-
           Secret refers to a secret that provides the credentials. The secret should define AccountName and AccountKey as provided
          by Azure Blob.
        displayName: Secret
        path: azureBlob.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:azureBlob
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: TargetBlobContainer is the name of the target Azure Blob container.
        displayName: Target Blob Container
        path: azureBlob.targetBlobContainer
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:azureBlob
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: 'Endpoint is the S3 compatible endpoint: http(s)://host:port.'
        displayName: End Point
        path: s3Compatible.endpoint
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Secret refers to a secret that provides the credentials. The
          secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
        displayName: Secret
        path: s3Compatible.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: SignatureVersion specifies the client signature version to use
          when signing requests.
        displayName: Signature Version
        path: s3Compatible.signatureVersion
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:com.tectonic.ui:number
      - description: TargetBucket is the name of the target S3 bucket.
        displayName: Target Bucket
        path: s3Compatible.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:s3Compatible
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: 'Endpoint is the IBM COS endpoint: http(s)://host:port.'
        displayName: End Point
        path: IBMCos.endpoint
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Secret refers to a secret that provides the credentials. The
          secret should define IBM_COS_ACCESS_KEY_ID and IBM_COS_SECRET_ACCESS_KEY.
        displayName: Secret
        path: IBMCos.secret.name
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:io.kubernetes:Secret
      - description: SignatureVersion specifies the client signature version to use
          when signing requests.
        displayName: Signature Version
        path: IBMCos.signatureVersion
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:com.tectonic.ui:number
      - description: TargetBucket is the name of the target IBM COS bucket.
        displayName: Target Bucket
        path: IBMCos.targetBucket
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ibmCos
        - urn:alm:descriptor:com.tectonic.ui:text
      version: v1alpha1
    - description: Storage policy spec  tiering, mirroring, spreading, namespace policy.
        Combines BackingStores Or NamespaceStores. Referenced by ObjectBucketClaims.
      displayName: Bucket Class
      kind: BucketClass
      name: bucketclasses.noobaa.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      specDescriptors:
      - description: BackingStores is an unordered list of backing store names. The
          meaning of the list depends on the placement.
        displayName: Backing Stores
        path: placementPolicy.tiers[0].backingStores[0]
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:placementPolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Placement specifies the type of placement for the tier If empty
          it should have a single backing store.
        displayName: Placement
        path: placementPolicy.tiers[0].placement
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:placementPolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Namespace Policy type specifies the type of the namespace policy
          configuration.
        displayName: Namespace Policy
        path: namespacePolicy.type
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:namespacePolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Resource specifies the namespace store configured by the bucket
          class to be read and write targets.
        displayName: Resource
        path: namespacePolicy.single.resource
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:namespacePolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Read Resources specifies the namespace stores configured by the
          bucket class to be read targets.
        displayName: Read Resources
        path: namespacePolicy.Multi.readResources
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:namespacePolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Write Resource specifies the namespace store configured by the
          bucket class to be write target.
        displayName: Write Resource
        path: namespacePolicy.Multi.writeResource
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:namespacePolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      - description: Hub Resource specifies the target namespace store configured
          by the bucket class to be read and write targets.
        displayName: Hub Resource
        path: namespacePolicy.Cache.hubResource
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:fieldGroup:namespacePolicy
        - urn:alm:descriptor:com.tectonic.ui:text
      version: v1alpha1
    - kind: NooBaaAccount
      name: noobaaaccounts.noobaa.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      version: v1alpha1
    - description: Claim a bucket just like claiming a PV. Automate you app bucket
        provisioning by creating OBC with your app deployment. A secret and configmap
        (name=claim) will be created with access details for the app pods.
      displayName: Object Bucket Claim
      kind: ObjectBucketClaim
      name: objectbucketclaims.objectbucket.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      version: v1alpha1
    - description: Used under-the-hood. Created per ObjectBucketClaim and keeps provisioning
        information.
      displayName: Object Bucket
      kind: ObjectBucket
      name: objectbuckets.objectbucket.io
      resources:
      - kind: Service
        name: services
        version: v1
      - kind: Secret
        name: secrets
        version: v1
      - kind: ConfigMap
        name: configmaps
        version: v1
      - kind: StatefulSet
        name: statefulsets.apps
        version: v1
      version: v1alpha1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: Backup
      kind: Backup
      name: backups.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: ClusterImageCatalog
      kind: ClusterImageCatalog
      name: clusterimagecatalogs.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: Cluster
      kind: Cluster
      name: clusters.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: Database
      kind: Database
      name: databases.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: ImageCatalog
      kind: ImageCatalog
      name: imagecatalogs.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: Pooler
      kind: Pooler
      name: poolers.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: Publication
      kind: Publication
      name: publications.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: ScheduledBackup
      kind: ScheduledBackup
      name: scheduledbackups.postgresql.cnpg.noobaa.io
      version: v1
    - description: This CRD is intended for internal use by Noobaa Operator.
      displayName: Subscription
      kind: Subscription
      name: subscriptions.postgresql.cnpg.noobaa.io
      version: v1
  description: "The noobaa operator creates and reconciles a NooBaa system in a Kubernetes/Openshift
    cluster.\n\nNooBaa provides an S3 object-store service abstraction and data placement
    policies to create hybrid and multi cloud data solutions.\n\nFor more information
    on using NooBaa refer to [Github](https://github.com/noobaa/noobaa-core) / [Website](https://www.noobaa.io)
    / [Articles](https://noobaa.desk.com). \n\n## How does it work?\n\n- The operator
    deploys the noobaa core pod and two services - Mgmt (UI/API) and S3 (object-store).\n-
    Both services require credentials which you will get from a secret that the operator
    creates - use describe noobaa to locate it.\n- The service addresses will also
    appear in the describe output - pick the one that is suitable for your client:\n
    \   - minikube - use the NodePort address.\n    - remote cluster - probably need
    one of the External addresses.\n    - connect an application on the same cluster
    - use Internal DNS (though any address should work)\n    \n- Feel free to email
    us or open github issues on any question.\n\n## Getting Started\n\n### Notes:\n-
    The following instructions are for **minikube** but it works on any Kubernetes/Openshift
    clusters.\n- This will setup noobaa in the **my-noobaa-operator** namespace.\n-
    You will need **jq**, **curl**, **kubectl** or **oc**, **aws-cli**.\n\n### 1.
    Install OLM (if you don't have it already):\n```\ncurl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/0.12.0/install.sh
    | bash -s 0.12.0\n```\n\n### 2. Install noobaa-operator:\n```\nkubectl create
    -f https://operatorhub.io/install/noobaa-operator.yaml\n```\nWait for it to be
    ready:\n```\nkubectl wait pod -n my-noobaa-operator -l noobaa-operator --for=condition=ready\n```\n\n###
    3. Create noobaa system:\n```\ncurl -sL https://operatorhub.io/api/operator?packageName=noobaa-operator
    | \n    jq '.operator.customResourceDefinitions[0].yamlExample | .metadata.namespace=\"my-noobaa-operator\"'
    |\n    kubectl create -f -\n```\nWait for it to be ready:\n```\nkubectl wait pod
    -n my-noobaa-operator -l noobaa-core --for=condition=ready\nkubectl get noobaa
    -n my-noobaa-operator -w\n# NAME     PHASE   MGMT-ENDPOINTS                  S3-ENDPOINTS
    \                   IMAGE                    AGE\n# noobaa   **Ready**   [https://192.168.64.12:31121]
    \  [https://192.168.64.12:32557]   noobaa/noobaa-core:4.0   19m\n```\n\n### 4.
    Get system information to your shell:\n```\nNOOBAA_SECRET=$(kubectl get noobaa
    noobaa -n my-noobaa-operator -o json | jq -r '.status.accounts.admin.secretRef.name'
    )\nNOOBAA_MGMT=$(kubectl get noobaa noobaa -n my-noobaa-operator -o json | jq
    -r '.status.services.serviceMgmt.nodePorts[0]' )\nNOOBAA_S3=$(kubectl get noobaa
    noobaa -n my-noobaa-operator -o json | jq -r '.status.services.serviceS3.nodePorts[0]'
    )\nNOOBAA_ACCESS_KEY=$(kubectl get secret $NOOBAA_SECRET -n my-noobaa-operator
    -o json | jq -r '.data.AWS_ACCESS_KEY_ID|@base64d')\nNOOBAA_SECRET_KEY=$(kubectl
    get secret $NOOBAA_SECRET -n my-noobaa-operator -o json | jq -r '.data.AWS_SECRET_ACCESS_KEY|@base64d')\n```\n\n###
    5. Connect to Mgmt UI:\n```\n# show email/password from the secret:\nkubectl get
    secret $NOOBAA_SECRET -n my-noobaa-operator -o json | jq '.data|map_values(@base64d)'\n\n#
    open mgmt UI login:\nopen $NOOBAA_MGMT\n```\n\n### 6. Connect to S3 with aws-cli:\n```\nalias
    s3='AWS_ACCESS_KEY_ID=$NOOBAA_ACCESS_KEY AWS_SECRET_ACCESS_KEY=$NOOBAA_SECRET_KEY
    aws --endpoint $NOOBAA_S3 --no-verify-ssl s3'\ns3 ls\ns3 sync /var/log/ s3://first.bucket\ns3
    ls s3://first.bucket\n```\n"
  displayName: NooBaa Operator
  icon:
  - base64data: [encoded data, 24048 characters]
    mediatype: image/png
  install:
    spec:
      clusterPermissions:
      - rules:
        - apiGroups:
          - noobaa.io
          resources:
          - '*'
          - noobaas
          - backingstores
          - bucketclasses
          - noobaas/finalizers
          - backingstores/finalizers
          - bucketclasses/finalizers
          verbs:
          - '*'
        - apiGroups:
          - objectbucket.io
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - ""
          resources:
          - configmaps
          - secrets
          - persistentvolumes
          verbs:
          - '*'
        - apiGroups:
          - ""
          resources:
          - namespaces
          - services
          - pods
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - storage.k8s.io
          resources:
          - storageclasses
          verbs:
          - get
          - list
          - watch
          - create
          - update
          - delete
        - apiGroups:
          - ""
          resources:
          - nodes
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - authentication.k8s.io
          resources:
          - tokenreviews
          verbs:
          - create
        - apiGroups:
          - authorization.k8s.io
          resources:
          - subjectaccessreviews
          verbs:
          - create
        - apiGroups:
          - admissionregistration.k8s.io
          resources:
          - validatingwebhookconfigurations
          verbs:
          - get
          - update
          - list
        - apiGroups:
          - security.openshift.io
          resources:
          - securitycontextconstraints
          verbs:
          - '*'
        - apiGroups:
          - keda.sh
          resources:
          - clustertriggerauthentications
          - scaledobjects
          - triggerauthentications
          - scaledjobs
          verbs:
          - get
          - list
          - watch
          - create
          - update
          - delete
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - prometheuses
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - clusterrolebindings
          verbs:
          - create
          - get
          - list
          - watch
          - delete
        - apiGroups:
          - apiregistration.k8s.io
          resources:
          - apiservices
          verbs:
          - create
          - get
          - list
          - watch
          - delete
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - rolebindings
          verbs:
          - create
          - get
          - list
          - watch
          - delete
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - clusterroles
          verbs:
          - create
          - get
          - list
          - watch
          - delete
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - prometheuses
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - coordination.k8s.io
          resources:
          - leases
          verbs:
          - get
          - watch
          - list
          - delete
          - update
          - create
        - apiGroups:
          - objectstorage.k8s.io
          resources:
          - buckets
          - bucketaccesses
          - bucketclaims
          - bucketaccessclasses
          - buckets/status
          - bucketaccesses/status
          - bucketclaims/status
          - bucketaccessclasses/status
          verbs:
          - get
          - watch
          - list
          - delete
          - update
          - create
        - apiGroups:
          - config.openshift.io
          resources:
          - infrastructures
          verbs:
          - get
          - list
          - watch
        serviceAccountName: noobaa
      - rules:
        - apiGroups:
          - noobaa.io
          resources:
          - noobaas
          - bucketclasses
          verbs:
          - get
          - watch
          - list
        serviceAccountName: noobaa-odf-ui
      - rules:
        - apiGroups:
          - ""
          resources:
          - nodes
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - clusterimagecatalogs
          verbs:
          - get
          - list
          - watch
        serviceAccountName: cnpg-manager
      deployments:
      - name: noobaa-operator
        spec:
          replicas: 0
          selector:
            matchLabels:
              noobaa-operator: deployment
          strategy: {}
          template:
            metadata:
              creationTimestamp: null
              labels:
                app: noobaa
                noobaa-operator: deployment
            spec:
              containers:
              - env:
                - name: OPERATOR_NAME
                  value: noobaa-operator
                - name: POD_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: NOOBAA_CORE_IMAGE
                  value: registry.redhat.io/odf4/mcg-core-rhel9@sha256:4e958acfb22419e9019f58cc971194087fd32a32f4c2f33e0ccac26b78e7194f
                - name: NOOBAA_DB_IMAGE
                  value: registry.redhat.io/rhel9/postgresql-16@sha256:42f385ac3c9b8913426da7c57e70bc6617cd237aaf697c667f6385a8c0b0118b
                - name: NOOBAA_PSQL_12_IMAGE
                  value: registry.redhat.io/rhel8/postgresql-12@sha256:ea5d18bf8b57dcfccaea4375cd7515b9920cbb1c056ddf97769a24bbd5b011a7
                - name: ENABLE_NOOBAA_ADMISSION
                  value: "true"
                image: registry.redhat.io/odf4/mcg-rhel9-operator@sha256:4cbacb025193772321e52dee544845eb18ea443a5b116456d3ca92019ae9fb34
                name: noobaa-operator
                resources:
                  limits:
                    cpu: 250m
                    memory: 512Mi
                volumeMounts:
                - mountPath: /var/run/secrets/openshift/serviceaccount
                  name: bound-sa-token
                  readOnly: true
                - mountPath: /etc/ocp-injected-ca-bundle
                  name: ocp-injected-ca-bundle
              securityContext:
                seccompProfile:
                  type: RuntimeDefault
              serviceAccountName: noobaa
              tolerations:
              - effect: NoSchedule
                key: node.ocs.openshift.io/storage
                operator: Equal
                value: "true"
              volumes:
              - name: bound-sa-token
                projected:
                  sources:
                  - serviceAccountToken:
                      audience: openshift
                      path: token
              - configMap:
                  items:
                  - key: ca-bundle.crt
                    path: ca-bundle.crt
                  name: ocp-injected-ca-bundle
                  optional: true
                name: ocp-injected-ca-bundle
      - label:
          app.kubernetes.io/name: cloudnative-pg
        name: cnpg-controller-manager
        spec:
          replicas: 0
          selector:
            matchLabels:
              app.kubernetes.io/name: cloudnative-pg
          strategy: {}
          template:
            metadata:
              creationTimestamp: null
              labels:
                app: noobaa
                app.kubernetes.io/name: cloudnative-pg
            spec:
              containers:
              - args:
                - controller
                - --leader-elect
                - --max-concurrent-reconciles=10
                - --config-map-name=cnpg-controller-manager-config
                - --secret-name=cnpg-controller-manager-config
                - --webhook-port=9443
                command:
                - /manager
                env:
                - name: OPERATOR_IMAGE_NAME
                  value: registry.redhat.io/odf4/odf-cloudnative-pg-rhel9-operator@sha256:6e3be03e8ef3ddefcf3cc1b13ca0cea9458c2ffbf3490e831dc9bdef80f985e2
                - name: OPERATOR_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: MONITORING_QUERIES_CONFIGMAP
                  value: cnpg-default-monitoring
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: WEBHOOK_CERT_DIR
                  value: /apiserver.local.config/certificates
                image: registry.redhat.io/odf4/odf-cloudnative-pg-rhel9-operator@sha256:6e3be03e8ef3ddefcf3cc1b13ca0cea9458c2ffbf3490e831dc9bdef80f985e2
                livenessProbe:
                  httpGet:
                    path: /readyz
                    port: 9443
                    scheme: HTTPS
                name: manager
                ports:
                - containerPort: 8080
                  name: metrics
                  protocol: TCP
                - containerPort: 9443
                  name: webhook-server
                  protocol: TCP
                readinessProbe:
                  httpGet:
                    path: /readyz
                    port: 9443
                    scheme: HTTPS
                resources:
                  limits:
                    cpu: 100m
                    memory: 200Mi
                  requests:
                    cpu: 100m
                    memory: 100Mi
                securityContext:
                  allowPrivilegeEscalation: false
                  capabilities:
                    drop:
                    - ALL
                  readOnlyRootFilesystem: true
                  seccompProfile:
                    type: RuntimeDefault
                volumeMounts:
                - mountPath: /controller
                  name: scratch-data
                - mountPath: /run/secrets/cnpg.io/webhook
                  name: webhook-certificates
              securityContext:
                runAsNonRoot: true
              serviceAccountName: cnpg-manager
              terminationGracePeriodSeconds: 10
              tolerations:
              - effect: NoSchedule
                key: node.ocs.openshift.io/storage
                operator: Equal
                value: "true"
              volumes:
              - emptyDir: {}
                name: scratch-data
              - name: webhook-certificates
                secret:
                  defaultMode: 420
                  optional: true
                  secretName: cnpg-webhook-cert
      permissions:
      - rules:
        - apiGroups:
          - security.openshift.io
          resourceNames:
          - noobaa
          resources:
          - securitycontextconstraints
          verbs:
          - use
        - apiGroups:
          - noobaa.io
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - ""
          resources:
          - pods
          - services
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          - secrets
          - serviceaccounts
          verbs:
          - '*'
        - apiGroups:
          - ""
          resourceNames:
          - noobaa-db-pg-0
          resources:
          - pods/exec
          verbs:
          - create
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - '*'
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - servicemonitors
          - prometheusrules
          verbs:
          - get
          - create
          - update
          - list
          - watch
        - apiGroups:
          - ""
          resources:
          - services/finalizers
          verbs:
          - update
        - apiGroups:
          - apps
          resourceNames:
          - noobaa-operator
          resources:
          - deployments/finalizers
          verbs:
          - update
        - apiGroups:
          - cloudcredential.openshift.io
          resources:
          - credentialsrequests
          verbs:
          - get
          - create
          - update
          - list
          - watch
        - apiGroups:
          - ceph.rook.io
          resources:
          - cephobjectstores
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - ceph.rook.io
          resources:
          - cephobjectstoreusers
          verbs:
          - get
          - create
          - update
          - list
          - watch
        - apiGroups:
          - ceph.rook.io
          resources:
          - cephclusters
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - route.openshift.io
          resources:
          - routes
          verbs:
          - get
          - create
          - update
          - list
          - watch
        - apiGroups:
          - autoscaling
          resources:
          - horizontalpodautoscalers
          verbs:
          - get
          - create
          - update
          - patch
          - list
          - watch
          - delete
        - apiGroups:
          - batch
          resources:
          - jobs
          verbs:
          - get
          - create
          - update
          - patch
          - list
          - watch
          - delete
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - postgresql.cnpg.io
          resources:
          - '*'
          verbs:
          - '*'
        serviceAccountName: noobaa
      - rules:
        - apiGroups:
          - noobaa.io
          resources:
          - '*'
          - noobaas
          - backingstores
          - bucketclasses
          - noobaas/finalizers
          - backingstores/finalizers
          - bucketclasses/finalizers
          verbs:
          - '*'
        - apiGroups:
          - ""
          resources:
          - pods
          - services
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          - secrets
          - serviceaccounts
          verbs:
          - '*'
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - '*'
        - apiGroups:
          - security.openshift.io
          resourceNames:
          - noobaa-endpoint
          resources:
          - securitycontextconstraints
          verbs:
          - use
        serviceAccountName: noobaa-endpoint
      - rules:
        - apiGroups:
          - noobaa.io
          resources:
          - '*'
          - noobaas
          - backingstores
          - bucketclasses
          - noobaas/finalizers
          - backingstores/finalizers
          - bucketclasses/finalizers
          verbs:
          - '*'
        - apiGroups:
          - ""
          resources:
          - pods
          - services
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          - secrets
          - serviceaccounts
          verbs:
          - '*'
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - '*'
        - apiGroups:
          - security.openshift.io
          resourceNames:
          - noobaa-core
          resources:
          - securitycontextconstraints
          verbs:
          - use
        serviceAccountName: noobaa-core
      - rules:
        - apiGroups:
          - ""
          resources:
          - configmaps
          - secrets
          - services
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - configmaps/status
          - secrets/status
          verbs:
          - get
          - patch
          - update
        - apiGroups:
          - ""
          resources:
          - events
          verbs:
          - create
          - patch
        - apiGroups:
          - ""
          resources:
          - nodes
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - ""
          resources:
          - persistentvolumeclaims
          - pods
          - pods/exec
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - watch
        - apiGroups:
          - ""
          resources:
          - pods/status
          verbs:
          - get
        - apiGroups:
          - ""
          resources:
          - serviceaccounts
          verbs:
          - create
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - admissionregistration.k8s.io
          resources:
          - mutatingwebhookconfigurations
          - validatingwebhookconfigurations
          verbs:
          - get
          - patch
        - apiGroups:
          - apps
          resources:
          - deployments
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - batch
          resources:
          - jobs
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - watch
        - apiGroups:
          - coordination.k8s.io
          resources:
          - leases
          verbs:
          - create
          - get
          - update
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - podmonitors
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - watch
        - apiGroups:
          - policy
          resources:
          - poddisruptionbudgets
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - backups
          - clusters
          - databases
          - poolers
          - publications
          - scheduledbackups
          - subscriptions
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - backups/status
          - databases/status
          - publications/status
          - scheduledbackups/status
          - subscriptions/status
          verbs:
          - get
          - patch
          - update
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - clusterimagecatalogs
          - imagecatalogs
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - clusters/finalizers
          - poolers/finalizers
          verbs:
          - update
        - apiGroups:
          - postgresql.cnpg.noobaa.io
          resources:
          - clusters/status
          - poolers/status
          verbs:
          - get
          - patch
          - update
          - watch
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - rolebindings
          - roles
          verbs:
          - create
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - snapshot.storage.k8s.io
          resources:
          - volumesnapshots
          verbs:
          - create
          - get
          - list
          - patch
          - watch
        serviceAccountName: cnpg-manager
    strategy: deployment
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: false
    type: SingleNamespace
  - supported: false
    type: MultiNamespace
  - supported: true
    type: AllNamespaces
  keywords:
  - noobaa
  - kubernetes
  - openshift
  - cloud
  - hybrid
  - multi
  - data
  - storage
  - s3
  - tiering
  - mirroring
  labels:
    app: noobaa
    full_version: 4.19.6-2
  links:
  - name: Github
    url: https://github.com/noobaa/noobaa-core
  - name: Website
    url: https://www.noobaa.io
  - name: Articles
    url: https://noobaa.desk.com
  maintainers:
  - email: gmargali@redhat.com
    name: Guy Margalit
  - email: etamir@redhat.com
    name: Eran Tamir
  - email: nbecker@redhat.com
    name: Nimrod Becker
  maturity: alpha
  minKubeVersion: 1.16.0
  provider:
    name: NooBaa
  relatedImages:
  - image: registry.redhat.io/odf4/odf-cosi-sidecar-rhel9@sha256:dfe801c69808c85c4963f7d907b9023c4d2dab835c2bd95adc8f35db8ebeb3c8
    name: odf-cosi-sidecar
  - image: registry.redhat.io/odf4/mcg-core-rhel9@sha256:4e958acfb22419e9019f58cc971194087fd32a32f4c2f33e0ccac26b78e7194f
    name: noobaa-core
  - image: registry.redhat.io/rhel9/postgresql-16@sha256:42f385ac3c9b8913426da7c57e70bc6617cd237aaf697c667f6385a8c0b0118b
    name: noobaa-db
  - image: registry.redhat.io/odf4/mcg-rhel9-operator@sha256:4cbacb025193772321e52dee544845eb18ea443a5b116456d3ca92019ae9fb34
    name: noobaa-operator
  - image: registry.redhat.io/odf4/odf-cloudnative-pg-rhel9-operator@sha256:6e3be03e8ef3ddefcf3cc1b13ca0cea9458c2ffbf3490e831dc9bdef80f985e2
    name: cnpg-operator
  replaces: mcg-operator.v4.19.5-rhodf
  version: 4.19.6-rhodf
  webhookdefinitions:
  - admissionReviewVersions:
    - v1
    - v1beta1
    containerPort: 443
    deploymentName: noobaa-operator
    failurePolicy: Ignore
    generateName: admissionwebhook.noobaa.io
    matchPolicy: Equivalent
    rules:
    - apiGroups:
      - noobaa.io
      apiVersions:
      - v1alpha1
      operations:
      - CREATE
      - UPDATE
      - DELETE
      resources:
      - backingstores
      - namespacestores
      scope: Namespaced
    - apiGroups:
      - noobaa.io
      apiVersions:
      - v1alpha1
      operations:
      - CREATE
      resources:
      - bucketclasses
      scope: Namespaced
    - apiGroups:
      - noobaa.io
      apiVersions:
      - v1alpha1
      operations:
      - CREATE
      - UPDATE
      resources:
      - noobaaaccounts
      scope: Namespaced
    - apiGroups:
      - noobaa.io
      apiVersions:
      - v1alpha1
      operations:
      - DELETE
      - CREATE
      - UPDATE
      resources:
      - noobaas
      scope: Namespaced
    sideEffects: None
    targetPort: 8080
    type: ValidatingAdmissionWebhook
    webhookPath: /validate
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: vbackup.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - backups
    sideEffects: None
    targetPort: 9443
    type: ValidatingAdmissionWebhook
    webhookPath: /validate-postgresql-cnpg-noobaa-io-v1-backup
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: vcluster.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - clusters
    sideEffects: None
    targetPort: 9443
    type: ValidatingAdmissionWebhook
    webhookPath: /validate-postgresql-cnpg-noobaa-io-v1-cluster
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: vpooler.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - poolers
    sideEffects: None
    targetPort: 9443
    type: ValidatingAdmissionWebhook
    webhookPath: /validate-postgresql-cnpg-noobaa-io-v1-pooler
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: vscheduledbackup.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - scheduledbackups
    sideEffects: None
    targetPort: 9443
    type: ValidatingAdmissionWebhook
    webhookPath: /validate-postgresql-cnpg-noobaa-io-v1-scheduledbackup
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: mbackup.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - backups
    sideEffects: None
    targetPort: 9443
    type: MutatingAdmissionWebhook
    webhookPath: /mutate-postgresql-cnpg-noobaa-io-v1-backup
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: mcluster.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - clusters
    sideEffects: None
    targetPort: 9443
    type: MutatingAdmissionWebhook
    webhookPath: /mutate-postgresql-cnpg-noobaa-io-v1-cluster
  - admissionReviewVersions:
    - v1
    containerPort: 443
    deploymentName: cnpg-controller-manager
    failurePolicy: Fail
    generateName: mscheduledbackup.cnpg.io
    rules:
    - apiGroups:
      - postgresql.cnpg.noobaa.io
      apiVersions:
      - v1
      operations:
      - CREATE
      - UPDATE
      resources:
      - scheduledbackups
    sideEffects: None
    targetPort: 9443
    type: MutatingAdmissionWebhook
    webhookPath: /mutate-postgresql-cnpg-noobaa-io-v1-scheduledbackup
status:
  certsLastUpdated: "2025-10-27T12:45:28Z"
  certsRotateAt: "2027-10-26T12:45:27Z"
  cleanup: {}
  conditions:
  - lastTransitionTime: "2025-10-27T12:45:13Z"
    lastUpdateTime: "2025-10-27T12:45:13Z"
    message: requirements not yet checked
    phase: Pending
    reason: RequirementsUnknown
  - lastTransitionTime: "2025-10-27T12:45:13Z"
    lastUpdateTime: "2025-10-27T12:45:15Z"
    message: one or more requirements couldn't be found
    phase: Pending
    reason: RequirementsNotMet
  - lastTransitionTime: "2025-10-27T12:45:26Z"
    lastUpdateTime: "2025-10-27T12:45:26Z"
    message: all requirements found, attempting install
    phase: InstallReady
    reason: AllRequirementsMet
  - lastTransitionTime: "2025-10-27T12:45:27Z"
    lastUpdateTime: "2025-10-27T12:45:27Z"
    message: waiting for install components to report healthy
    phase: Installing
    reason: InstallSucceeded
  - lastTransitionTime: "2025-10-27T12:45:34Z"
    lastUpdateTime: "2025-10-27T12:45:34Z"
    message: install strategy completed with no errors
    phase: Succeeded
    reason: InstallSucceeded
  lastTransitionTime: "2025-10-27T12:45:34Z"
  lastUpdateTime: "2025-10-27T12:45:34Z"
  message: install strategy completed with no errors
  phase: Succeeded
  reason: InstallSucceeded
  requirementStatus:
  - group: operators.coreos.com
    kind: ClusterServiceVersion
    message: CSV minKubeVersion (1.16.0) less than server version (v1.32.9)
    name: mcg-operator.v4.19.6-rhodf
    status: Present
    version: v1alpha1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: backingstores.noobaa.io
    status: Present
    uuid: 36e0170c-1643-47ed-856a-af8955328af3
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: backups.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 93a0f3a7-0150-411b-9251-e9c9808ca8aa
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: bucketclasses.noobaa.io
    status: Present
    uuid: ceeefe11-597a-464a-86e1-c5939af183b8
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: clusterimagecatalogs.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 02b59421-0208-475a-955d-ace5bb1bfd8e
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: clusters.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 03e6cf6f-e084-4428-9391-6cc8e3990f5f
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: databases.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 1d42fc9c-2365-4f06-96b3-96bf5abb415a
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: imagecatalogs.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 155d4881-0708-4392-95f8-6261c637768f
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: namespacestores.noobaa.io
    status: Present
    uuid: 2f9a2d17-e831-4527-99bb-7fc475f45ec8
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: noobaaaccounts.noobaa.io
    status: Present
    uuid: 1ead3324-ef24-4e02-8f4f-3ca10df1240f
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: noobaas.noobaa.io
    status: Present
    uuid: f2a565cf-d4f5-447a-a515-35d14503773f
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: objectbucketclaims.objectbucket.io
    status: Present
    uuid: bd13f997-082c-46d9-8f22-f3a7a18d11af
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: objectbuckets.objectbucket.io
    status: Present
    uuid: aab189f7-f19d-44ca-b2a5-461334b6ec92
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: poolers.postgresql.cnpg.noobaa.io
    status: Present
    uuid: e86d9497-c4f1-419c-9891-0ca20281ba9c
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: publications.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 748130c4-dceb-497b-9ddb-67b93d00c1ee
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: scheduledbackups.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 062ff29b-c2aa-44a1-8d90-df39419df5c8
    version: v1
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: subscriptions.postgresql.cnpg.noobaa.io
    status: Present
    uuid: 4ee015b6-afa8-4e2b-99f5-6b8eebc75f7a
    version: v1
  - dependents:
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["nodes"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["postgresql.cnpg.noobaa.io"],"resources":["clusterimagecatalogs"]}
      status: Satisfied
      version: v1
    group: ""
    kind: ServiceAccount
    message: ""
    name: cnpg-manager
    status: Present
    version: v1
  - dependents:
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["*"],"apiGroups":["noobaa.io"],"resources":["*","noobaas","backingstores","bucketclasses","noobaas/finalizers","backingstores/finalizers","bucketclasses/finalizers"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["*"],"apiGroups":["objectbucket.io"],"resources":["*"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets","persistentvolumes"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces","services","pods"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch","create","update","delete"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["nodes"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","update","list"],"apiGroups":["admissionregistration.k8s.io"],"resources":["validatingwebhookconfigurations"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["*"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch","create","update","delete"],"apiGroups":["keda.sh"],"resources":["clustertriggerauthentications","scaledobjects","triggerauthentications","scaledjobs"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create","get","list","watch","delete"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create","get","list","watch","delete"],"apiGroups":["apiregistration.k8s.io"],"resources":["apiservices"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create","get","list","watch","delete"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["rolebindings"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create","get","list","watch","delete"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterroles"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","watch","list","delete","update","create"],"apiGroups":["coordination.k8s.io"],"resources":["leases"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","watch","list","delete","update","create"],"apiGroups":["objectstorage.k8s.io"],"resources":["buckets","bucketaccesses","bucketclaims","bucketaccessclasses","buckets/status","bucketaccesses/status","bucketclaims/status","bucketaccessclasses/status"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["infrastructures"]}
      status: Satisfied
      version: v1
    group: ""
    kind: ServiceAccount
    message: ""
    name: noobaa
    status: Present
    version: v1
  - dependents:
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["get","watch","list"],"apiGroups":["noobaa.io"],"resources":["noobaas","bucketclasses"]}
      status: Satisfied
      version: v1
    group: ""
    kind: ServiceAccount
    message: ""
    name: noobaa-odf-ui
    status: Present
    version: v1
