kind: CustomResourceDefinition
apiVersion: apiextensions.k8s.io/v1
metadata:
  name: noobaas.noobaa.io
  uid: b64f202f-ad13-4eed-92b3-a42cb5f169e8
  resourceVersion: '1185041'
  generation: 1
  creationTimestamp: '2022-02-08T04:22:17Z'
  labels:
    operators.coreos.com/mcg-operator.openshift-storage: ''
    operators.coreos.com/odf-operator.openshift-storage: ''
  annotations:
    operatorframework.io/installed-alongside-ad34e6e94b3c7929: openshift-storage/mcg-operator.v4.9.2
  managedFields:
    - manager: catalog
      operation: Update
      apiVersion: apiextensions.k8s.io/v1
      time: '2022-02-08T04:22:17Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            .: {}
            'f:operatorframework.io/installed-alongside-ad34e6e94b3c7929': {}
        'f:spec':
          'f:conversion':
            .: {}
            'f:strategy': {}
          'f:group': {}
          'f:names':
            'f:kind': {}
            'f:listKind': {}
            'f:plural': {}
            'f:shortNames': {}
            'f:singular': {}
          'f:scope': {}
          'f:versions': {}
    - manager: kube-apiserver
      operation: Update
      apiVersion: apiextensions.k8s.io/v1
      time: '2022-02-08T04:22:17Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:status':
          'f:acceptedNames':
            'f:kind': {}
            'f:listKind': {}
            'f:plural': {}
            'f:shortNames': {}
            'f:singular': {}
          'f:conditions':
            'k:{"type":"Established"}':
              .: {}
              'f:lastTransitionTime': {}
              'f:message': {}
              'f:reason': {}
              'f:status': {}
              'f:type': {}
            'k:{"type":"NamesAccepted"}':
              .: {}
              'f:lastTransitionTime': {}
              'f:message': {}
              'f:reason': {}
              'f:status': {}
              'f:type': {}
      subresource: status
    - manager: olm
      operation: Update
      apiVersion: apiextensions.k8s.io/v1
      time: '2022-02-09T07:17:01Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:labels':
            .: {}
            'f:operators.coreos.com/mcg-operator.openshift-storage': {}
            'f:operators.coreos.com/odf-operator.openshift-storage': {}
spec:
  group: noobaa.io
  names:
    plural: noobaas
    singular: noobaa
    shortNames:
      - nb
    kind: NooBaa
    listKind: NooBaaList
  scope: Namespaced
  versions:
    - name: v1alpha1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          description: NooBaa is the Schema for the NooBaas API
          type: object
          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: Specification of the desired behavior of the noobaa system.
              type: object
              properties:
                security:
                  description: Security represents security settings
                  type: object
                  properties:
                    kms:
                      description: >-
                        KeyManagementServiceSpec represent various details of
                        the KMS server
                      type: object
                      properties:
                        connectionDetails:
                          type: object
                          additionalProperties:
                            type: string
                        tokenSecretName:
                          type: string
                annotations:
                  description: >-
                    The annotations-related configuration to add/set on each Pod
                    related object.
                  type: object
                  additionalProperties:
                    description: Annotations are annotation for a given daemon
                    type: object
                    additionalProperties:
                      type: string
                  nullable: true
                  x-kubernetes-preserve-unknown-fields: true
                coreResources:
                  description: >-
                    CoreResources (optional) overrides the default resource
                    requirements for the server container
                  type: object
                  properties:
                    limits:
                      description: >-
                        Limits describes the maximum amount of compute resources
                        allowed. More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      type: object
                      additionalProperties:
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        anyOf:
                          - type: integer
                          - type: string
                        x-kubernetes-int-or-string: true
                    requests:
                      description: >-
                        Requests describes the minimum amount of compute
                        resources required. If Requests is omitted for a
                        container, it defaults to Limits if that is explicitly
                        specified, otherwise to an implementation-defined value.
                        More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      type: object
                      additionalProperties:
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        anyOf:
                          - type: integer
                          - type: string
                        x-kubernetes-int-or-string: true
                dbResources:
                  description: >-
                    DBResources (optional) overrides the default resource
                    requirements for the db container
                  type: object
                  properties:
                    limits:
                      description: >-
                        Limits describes the maximum amount of compute resources
                        allowed. More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      type: object
                      additionalProperties:
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        anyOf:
                          - type: integer
                          - type: string
                        x-kubernetes-int-or-string: true
                    requests:
                      description: >-
                        Requests describes the minimum amount of compute
                        resources required. If Requests is omitted for a
                        container, it defaults to Limits if that is explicitly
                        specified, otherwise to an implementation-defined value.
                        More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      type: object
                      additionalProperties:
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        anyOf:
                          - type: integer
                          - type: string
                        x-kubernetes-int-or-string: true
                affinity:
                  description: Affinity (optional) passed through to noobaa's pods
                  type: object
                  properties:
                    nodeAffinity:
                      description: Describes node affinity scheduling rules for the pod.
                      type: object
                      properties:
                        preferredDuringSchedulingIgnoredDuringExecution:
                          description: >-
                            The scheduler will prefer to schedule pods to nodes
                            that satisfy the affinity expressions specified by
                            this field, but it may choose a node that violates
                            one or more of the expressions. The node that is
                            most preferred is the one with the greatest sum of
                            weights, i.e. for each node that meets all of the
                            scheduling requirements (resource request,
                            requiredDuringScheduling affinity expressions,
                            etc.), compute a sum by iterating through the
                            elements of this field and adding "weight" to the
                            sum if the node matches the corresponding
                            matchExpressions; the node(s) with the highest sum
                            are the most preferred.
                          type: array
                          items:
                            description: >-
                              An empty preferred scheduling term matches all
                              objects with implicit weight 0 (i.e. it's a
                              no-op). A null preferred scheduling term matches
                              no objects (i.e. is also a no-op).
                            type: object
                            required:
                              - preference
                              - weight
                            properties:
                              preference:
                                description: >-
                                  A node selector term, associated with the
                                  corresponding weight.
                                type: object
                                properties:
                                  matchExpressions:
                                    description: >-
                                      A list of node selector requirements by
                                      node's labels.
                                    type: array
                                    items:
                                      description: >-
                                        A node selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            The label key that the selector applies
                                            to.
                                          type: string
                                        operator:
                                          description: >-
                                            Represents a key's relationship to a set
                                            of values. Valid operators are In,
                                            NotIn, Exists, DoesNotExist. Gt, and Lt.
                                          type: string
                                        values:
                                          description: >-
                                            An array of string values. If the
                                            operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be
                                            interpreted as an integer. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                                  matchFields:
                                    description: >-
                                      A list of node selector requirements by
                                      node's fields.
                                    type: array
                                    items:
                                      description: >-
                                        A node selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            The label key that the selector applies
                                            to.
                                          type: string
                                        operator:
                                          description: >-
                                            Represents a key's relationship to a set
                                            of values. Valid operators are In,
                                            NotIn, Exists, DoesNotExist. Gt, and Lt.
                                          type: string
                                        values:
                                          description: >-
                                            An array of string values. If the
                                            operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be
                                            interpreted as an integer. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                              weight:
                                description: >-
                                  Weight associated with matching the
                                  corresponding nodeSelectorTerm, in the range
                                  1-100.
                                type: integer
                                format: int32
                        requiredDuringSchedulingIgnoredDuringExecution:
                          description: >-
                            If the affinity requirements specified by this field
                            are not met at scheduling time, the pod will not be
                            scheduled onto the node. If the affinity
                            requirements specified by this field cease to be met
                            at some point during pod execution (e.g. due to an
                            update), the system may or may not try to eventually
                            evict the pod from its node.
                          type: object
                          required:
                            - nodeSelectorTerms
                          properties:
                            nodeSelectorTerms:
                              description: >-
                                Required. A list of node selector terms. The
                                terms are ORed.
                              type: array
                              items:
                                description: >-
                                  A null or empty node selector term matches no
                                  objects. The requirements of them are ANDed.
                                  The TopologySelectorTerm type implements a
                                  subset of the NodeSelectorTerm.
                                type: object
                                properties:
                                  matchExpressions:
                                    description: >-
                                      A list of node selector requirements by
                                      node's labels.
                                    type: array
                                    items:
                                      description: >-
                                        A node selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            The label key that the selector applies
                                            to.
                                          type: string
                                        operator:
                                          description: >-
                                            Represents a key's relationship to a set
                                            of values. Valid operators are In,
                                            NotIn, Exists, DoesNotExist. Gt, and Lt.
                                          type: string
                                        values:
                                          description: >-
                                            An array of string values. If the
                                            operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be
                                            interpreted as an integer. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                                  matchFields:
                                    description: >-
                                      A list of node selector requirements by
                                      node's fields.
                                    type: array
                                    items:
                                      description: >-
                                        A node selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            The label key that the selector applies
                                            to.
                                          type: string
                                        operator:
                                          description: >-
                                            Represents a key's relationship to a set
                                            of values. Valid operators are In,
                                            NotIn, Exists, DoesNotExist. Gt, and Lt.
                                          type: string
                                        values:
                                          description: >-
                                            An array of string values. If the
                                            operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be
                                            interpreted as an integer. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                    podAffinity:
                      description: >-
                        Describes pod affinity scheduling rules (e.g. co-locate
                        this pod in the same node, zone, etc. as some other
                        pod(s)).
                      type: object
                      properties:
                        preferredDuringSchedulingIgnoredDuringExecution:
                          description: >-
                            The scheduler will prefer to schedule pods to nodes
                            that satisfy the affinity expressions specified by
                            this field, but it may choose a node that violates
                            one or more of the expressions. The node that is
                            most preferred is the one with the greatest sum of
                            weights, i.e. for each node that meets all of the
                            scheduling requirements (resource request,
                            requiredDuringScheduling affinity expressions,
                            etc.), compute a sum by iterating through the
                            elements of this field and adding "weight" to the
                            sum if the node has pods which matches the
                            corresponding podAffinityTerm; the node(s) with the
                            highest sum are the most preferred.
                          type: array
                          items:
                            description: >-
                              The weights of all of the matched
                              WeightedPodAffinityTerm fields are added per-node
                              to find the most preferred node(s)
                            type: object
                            required:
                              - podAffinityTerm
                              - weight
                            properties:
                              podAffinityTerm:
                                description: >-
                                  Required. A pod affinity term, associated with
                                  the corresponding weight.
                                type: object
                                required:
                                  - topologyKey
                                properties:
                                  labelSelector:
                                    description: >-
                                      A label query over a set of resources, in
                                      this case pods.
                                    type: object
                                    properties:
                                      matchExpressions:
                                        description: >-
                                          matchExpressions is a list of label
                                          selector requirements. The requirements
                                          are ANDed.
                                        type: array
                                        items:
                                          description: >-
                                            A label selector requirement is a
                                            selector that contains values, a key,
                                            and an operator that relates the key and
                                            values.
                                          type: object
                                          required:
                                            - key
                                            - operator
                                          properties:
                                            key:
                                              description: >-
                                                key is the label key that the selector
                                                applies to.
                                              type: string
                                            operator:
                                              description: >-
                                                operator represents a key's relationship
                                                to a set of values. Valid operators are
                                                In, NotIn, Exists and DoesNotExist.
                                              type: string
                                            values:
                                              description: >-
                                                values is an array of string values. If
                                                the operator is In or NotIn, the values
                                                array must be non-empty. If the operator
                                                is Exists or DoesNotExist, the values
                                                array must be empty. This array is
                                                replaced during a strategic merge patch.
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        description: >-
                                          matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the
                                          matchLabels map is equivalent to an
                                          element of matchExpressions, whose key
                                          field is "key", the operator is "In",
                                          and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                        additionalProperties:
                                          type: string
                                  namespaceSelector:
                                    description: >-
                                      A label query over the set of namespaces
                                      that the term applies to. The term is
                                      applied to the union of the namespaces
                                      selected by this field and the ones listed
                                      in the namespaces field. null selector and
                                      null or empty namespaces list means "this
                                      pod's namespace". An empty selector ({})
                                      matches all namespaces. This field is
                                      alpha-level and is only honored when
                                      PodAffinityNamespaceSelector feature is
                                      enabled.
                                    type: object
                                    properties:
                                      matchExpressions:
                                        description: >-
                                          matchExpressions is a list of label
                                          selector requirements. The requirements
                                          are ANDed.
                                        type: array
                                        items:
                                          description: >-
                                            A label selector requirement is a
                                            selector that contains values, a key,
                                            and an operator that relates the key and
                                            values.
                                          type: object
                                          required:
                                            - key
                                            - operator
                                          properties:
                                            key:
                                              description: >-
                                                key is the label key that the selector
                                                applies to.
                                              type: string
                                            operator:
                                              description: >-
                                                operator represents a key's relationship
                                                to a set of values. Valid operators are
                                                In, NotIn, Exists and DoesNotExist.
                                              type: string
                                            values:
                                              description: >-
                                                values is an array of string values. If
                                                the operator is In or NotIn, the values
                                                array must be non-empty. If the operator
                                                is Exists or DoesNotExist, the values
                                                array must be empty. This array is
                                                replaced during a strategic merge patch.
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        description: >-
                                          matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the
                                          matchLabels map is equivalent to an
                                          element of matchExpressions, whose key
                                          field is "key", the operator is "In",
                                          and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                        additionalProperties:
                                          type: string
                                  namespaces:
                                    description: >-
                                      namespaces specifies a static list of
                                      namespace names that the term applies to.
                                      The term is applied to the union of the
                                      namespaces listed in this field and the
                                      ones selected by namespaceSelector. null
                                      or empty namespaces list and null
                                      namespaceSelector means "this pod's
                                      namespace"
                                    type: array
                                    items:
                                      type: string
                                  topologyKey:
                                    description: >-
                                      This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the
                                      pods matching the labelSelector in the
                                      specified namespaces, where co-located is
                                      defined as running on a node whose value
                                      of the label with key topologyKey matches
                                      that of any node on which any of the
                                      selected pods is running. Empty
                                      topologyKey is not allowed.
                                    type: string
                              weight:
                                description: >-
                                  weight associated with matching the
                                  corresponding podAffinityTerm, in the range
                                  1-100.
                                type: integer
                                format: int32
                        requiredDuringSchedulingIgnoredDuringExecution:
                          description: >-
                            If the affinity requirements specified by this field
                            are not met at scheduling time, the pod will not be
                            scheduled onto the node. If the affinity
                            requirements specified by this field cease to be met
                            at some point during pod execution (e.g. due to a
                            pod label update), the system may or may not try to
                            eventually evict the pod from its node. When there
                            are multiple elements, the lists of nodes
                            corresponding to each podAffinityTerm are
                            intersected, i.e. all terms must be satisfied.
                          type: array
                          items:
                            description: >-
                              Defines a set of pods (namely those matching the
                              labelSelector relative to the given namespace(s))
                              that this pod should be co-located (affinity) or
                              not co-located (anti-affinity) with, where
                              co-located is defined as running on a node whose
                              value of the label with key <topologyKey> matches
                              that of any node on which a pod of the set of pods
                              is running
                            type: object
                            required:
                              - topologyKey
                            properties:
                              labelSelector:
                                description: >-
                                  A label query over a set of resources, in this
                                  case pods.
                                type: object
                                properties:
                                  matchExpressions:
                                    description: >-
                                      matchExpressions is a list of label
                                      selector requirements. The requirements
                                      are ANDed.
                                    type: array
                                    items:
                                      description: >-
                                        A label selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            key is the label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: >-
                                            operator represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: >-
                                            values is an array of string values. If
                                            the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    description: >-
                                      matchLabels is a map of {key,value} pairs.
                                      A single {key,value} in the matchLabels
                                      map is equivalent to an element of
                                      matchExpressions, whose key field is
                                      "key", the operator is "In", and the
                                      values array contains only "value". The
                                      requirements are ANDed.
                                    type: object
                                    additionalProperties:
                                      type: string
                              namespaceSelector:
                                description: >-
                                  A label query over the set of namespaces that
                                  the term applies to. The term is applied to
                                  the union of the namespaces selected by this
                                  field and the ones listed in the namespaces
                                  field. null selector and null or empty
                                  namespaces list means "this pod's namespace".
                                  An empty selector ({}) matches all namespaces.
                                  This field is alpha-level and is only honored
                                  when PodAffinityNamespaceSelector feature is
                                  enabled.
                                type: object
                                properties:
                                  matchExpressions:
                                    description: >-
                                      matchExpressions is a list of label
                                      selector requirements. The requirements
                                      are ANDed.
                                    type: array
                                    items:
                                      description: >-
                                        A label selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            key is the label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: >-
                                            operator represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: >-
                                            values is an array of string values. If
                                            the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    description: >-
                                      matchLabels is a map of {key,value} pairs.
                                      A single {key,value} in the matchLabels
                                      map is equivalent to an element of
                                      matchExpressions, whose key field is
                                      "key", the operator is "In", and the
                                      values array contains only "value". The
                                      requirements are ANDed.
                                    type: object
                                    additionalProperties:
                                      type: string
                              namespaces:
                                description: >-
                                  namespaces specifies a static list of
                                  namespace names that the term applies to. The
                                  term is applied to the union of the namespaces
                                  listed in this field and the ones selected by
                                  namespaceSelector. null or empty namespaces
                                  list and null namespaceSelector means "this
                                  pod's namespace"
                                type: array
                                items:
                                  type: string
                              topologyKey:
                                description: >-
                                  This pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with the pods
                                  matching the labelSelector in the specified
                                  namespaces, where co-located is defined as
                                  running on a node whose value of the label
                                  with key topologyKey matches that of any node
                                  on which any of the selected pods is running.
                                  Empty topologyKey is not allowed.
                                type: string
                    podAntiAffinity:
                      description: >-
                        Describes pod anti-affinity scheduling rules (e.g. avoid
                        putting this pod in the same node, zone, etc. as some
                        other pod(s)).
                      type: object
                      properties:
                        preferredDuringSchedulingIgnoredDuringExecution:
                          description: >-
                            The scheduler will prefer to schedule pods to nodes
                            that satisfy the anti-affinity expressions specified
                            by this field, but it may choose a node that
                            violates one or more of the expressions. The node
                            that is most preferred is the one with the greatest
                            sum of weights, i.e. for each node that meets all of
                            the scheduling requirements (resource request,
                            requiredDuringScheduling anti-affinity expressions,
                            etc.), compute a sum by iterating through the
                            elements of this field and adding "weight" to the
                            sum if the node has pods which matches the
                            corresponding podAffinityTerm; the node(s) with the
                            highest sum are the most preferred.
                          type: array
                          items:
                            description: >-
                              The weights of all of the matched
                              WeightedPodAffinityTerm fields are added per-node
                              to find the most preferred node(s)
                            type: object
                            required:
                              - podAffinityTerm
                              - weight
                            properties:
                              podAffinityTerm:
                                description: >-
                                  Required. A pod affinity term, associated with
                                  the corresponding weight.
                                type: object
                                required:
                                  - topologyKey
                                properties:
                                  labelSelector:
                                    description: >-
                                      A label query over a set of resources, in
                                      this case pods.
                                    type: object
                                    properties:
                                      matchExpressions:
                                        description: >-
                                          matchExpressions is a list of label
                                          selector requirements. The requirements
                                          are ANDed.
                                        type: array
                                        items:
                                          description: >-
                                            A label selector requirement is a
                                            selector that contains values, a key,
                                            and an operator that relates the key and
                                            values.
                                          type: object
                                          required:
                                            - key
                                            - operator
                                          properties:
                                            key:
                                              description: >-
                                                key is the label key that the selector
                                                applies to.
                                              type: string
                                            operator:
                                              description: >-
                                                operator represents a key's relationship
                                                to a set of values. Valid operators are
                                                In, NotIn, Exists and DoesNotExist.
                                              type: string
                                            values:
                                              description: >-
                                                values is an array of string values. If
                                                the operator is In or NotIn, the values
                                                array must be non-empty. If the operator
                                                is Exists or DoesNotExist, the values
                                                array must be empty. This array is
                                                replaced during a strategic merge patch.
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        description: >-
                                          matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the
                                          matchLabels map is equivalent to an
                                          element of matchExpressions, whose key
                                          field is "key", the operator is "In",
                                          and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                        additionalProperties:
                                          type: string
                                  namespaceSelector:
                                    description: >-
                                      A label query over the set of namespaces
                                      that the term applies to. The term is
                                      applied to the union of the namespaces
                                      selected by this field and the ones listed
                                      in the namespaces field. null selector and
                                      null or empty namespaces list means "this
                                      pod's namespace". An empty selector ({})
                                      matches all namespaces. This field is
                                      alpha-level and is only honored when
                                      PodAffinityNamespaceSelector feature is
                                      enabled.
                                    type: object
                                    properties:
                                      matchExpressions:
                                        description: >-
                                          matchExpressions is a list of label
                                          selector requirements. The requirements
                                          are ANDed.
                                        type: array
                                        items:
                                          description: >-
                                            A label selector requirement is a
                                            selector that contains values, a key,
                                            and an operator that relates the key and
                                            values.
                                          type: object
                                          required:
                                            - key
                                            - operator
                                          properties:
                                            key:
                                              description: >-
                                                key is the label key that the selector
                                                applies to.
                                              type: string
                                            operator:
                                              description: >-
                                                operator represents a key's relationship
                                                to a set of values. Valid operators are
                                                In, NotIn, Exists and DoesNotExist.
                                              type: string
                                            values:
                                              description: >-
                                                values is an array of string values. If
                                                the operator is In or NotIn, the values
                                                array must be non-empty. If the operator
                                                is Exists or DoesNotExist, the values
                                                array must be empty. This array is
                                                replaced during a strategic merge patch.
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        description: >-
                                          matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the
                                          matchLabels map is equivalent to an
                                          element of matchExpressions, whose key
                                          field is "key", the operator is "In",
                                          and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                        additionalProperties:
                                          type: string
                                  namespaces:
                                    description: >-
                                      namespaces specifies a static list of
                                      namespace names that the term applies to.
                                      The term is applied to the union of the
                                      namespaces listed in this field and the
                                      ones selected by namespaceSelector. null
                                      or empty namespaces list and null
                                      namespaceSelector means "this pod's
                                      namespace"
                                    type: array
                                    items:
                                      type: string
                                  topologyKey:
                                    description: >-
                                      This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the
                                      pods matching the labelSelector in the
                                      specified namespaces, where co-located is
                                      defined as running on a node whose value
                                      of the label with key topologyKey matches
                                      that of any node on which any of the
                                      selected pods is running. Empty
                                      topologyKey is not allowed.
                                    type: string
                              weight:
                                description: >-
                                  weight associated with matching the
                                  corresponding podAffinityTerm, in the range
                                  1-100.
                                type: integer
                                format: int32
                        requiredDuringSchedulingIgnoredDuringExecution:
                          description: >-
                            If the anti-affinity requirements specified by this
                            field are not met at scheduling time, the pod will
                            not be scheduled onto the node. If the anti-affinity
                            requirements specified by this field cease to be met
                            at some point during pod execution (e.g. due to a
                            pod label update), the system may or may not try to
                            eventually evict the pod from its node. When there
                            are multiple elements, the lists of nodes
                            corresponding to each podAffinityTerm are
                            intersected, i.e. all terms must be satisfied.
                          type: array
                          items:
                            description: >-
                              Defines a set of pods (namely those matching the
                              labelSelector relative to the given namespace(s))
                              that this pod should be co-located (affinity) or
                              not co-located (anti-affinity) with, where
                              co-located is defined as running on a node whose
                              value of the label with key <topologyKey> matches
                              that of any node on which a pod of the set of pods
                              is running
                            type: object
                            required:
                              - topologyKey
                            properties:
                              labelSelector:
                                description: >-
                                  A label query over a set of resources, in this
                                  case pods.
                                type: object
                                properties:
                                  matchExpressions:
                                    description: >-
                                      matchExpressions is a list of label
                                      selector requirements. The requirements
                                      are ANDed.
                                    type: array
                                    items:
                                      description: >-
                                        A label selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            key is the label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: >-
                                            operator represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: >-
                                            values is an array of string values. If
                                            the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    description: >-
                                      matchLabels is a map of {key,value} pairs.
                                      A single {key,value} in the matchLabels
                                      map is equivalent to an element of
                                      matchExpressions, whose key field is
                                      "key", the operator is "In", and the
                                      values array contains only "value". The
                                      requirements are ANDed.
                                    type: object
                                    additionalProperties:
                                      type: string
                              namespaceSelector:
                                description: >-
                                  A label query over the set of namespaces that
                                  the term applies to. The term is applied to
                                  the union of the namespaces selected by this
                                  field and the ones listed in the namespaces
                                  field. null selector and null or empty
                                  namespaces list means "this pod's namespace".
                                  An empty selector ({}) matches all namespaces.
                                  This field is alpha-level and is only honored
                                  when PodAffinityNamespaceSelector feature is
                                  enabled.
                                type: object
                                properties:
                                  matchExpressions:
                                    description: >-
                                      matchExpressions is a list of label
                                      selector requirements. The requirements
                                      are ANDed.
                                    type: array
                                    items:
                                      description: >-
                                        A label selector requirement is a
                                        selector that contains values, a key,
                                        and an operator that relates the key and
                                        values.
                                      type: object
                                      required:
                                        - key
                                        - operator
                                      properties:
                                        key:
                                          description: >-
                                            key is the label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: >-
                                            operator represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: >-
                                            values is an array of string values. If
                                            the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. This array is
                                            replaced during a strategic merge patch.
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    description: >-
                                      matchLabels is a map of {key,value} pairs.
                                      A single {key,value} in the matchLabels
                                      map is equivalent to an element of
                                      matchExpressions, whose key field is
                                      "key", the operator is "In", and the
                                      values array contains only "value". The
                                      requirements are ANDed.
                                    type: object
                                    additionalProperties:
                                      type: string
                              namespaces:
                                description: >-
                                  namespaces specifies a static list of
                                  namespace names that the term applies to. The
                                  term is applied to the union of the namespaces
                                  listed in this field and the ones selected by
                                  namespaceSelector. null or empty namespaces
                                  list and null namespaceSelector means "this
                                  pod's namespace"
                                type: array
                                items:
                                  type: string
                              topologyKey:
                                description: >-
                                  This pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with the pods
                                  matching the labelSelector in the specified
                                  namespaces, where co-located is defined as
                                  running on a node whose value of the label
                                  with key topologyKey matches that of any node
                                  on which any of the selected pods is running.
                                  Empty topologyKey is not allowed.
                                type: string
                dbVolumeResources:
                  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`,
                  type: object
                  properties:
                    limits:
                      description: >-
                        Limits describes the maximum amount of compute resources
                        allowed. More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      type: object
                      additionalProperties:
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        anyOf:
                          - type: integer
                          - type: string
                        x-kubernetes-int-or-string: true
                    requests:
                      description: >-
                        Requests describes the minimum amount of compute
                        resources required. If Requests is omitted for a
                        container, it defaults to Limits if that is explicitly
                        specified, otherwise to an implementation-defined value.
                        More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      type: object
                      additionalProperties:
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        anyOf:
                          - type: integer
                          - type: string
                        x-kubernetes-int-or-string: true
                imagePullSecret:
                  description: >-
                    ImagePullSecret (optional) sets a pull secret for the system
                    image
                  type: object
                  properties:
                    name:
                      description: >-
                        Name of the referent. More info:
                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        TODO: Add other useful fields. apiVersion, kind, uid?
                      type: string
                debugLevel:
                  description: DebugLevel (optional) sets the debug level
                  type: integer
                  enum:
                    - all
                    - nsfs
                    - warn
                    - default_level
                region:
                  description: >-
                    Region (optional) provide a region for the location info of
                    the endpoints in the endpoint deployment
                  type: string
                cleanupPolicy:
                  description: >-
                    CleanupPolicy (optional) Indicates user's policy for
                    deletion
                  type: object
                  properties:
                    confirmation:
                      description: >-
                        CleanupConfirmationProperty is a string that specifies
                        cleanup confirmation
                      type: string
                dbType:
                  description: >-
                    DBType (optional) overrides the default type image for the
                    db container
                  type: string
                  enum:
                    - mongodb
                    - postgres
                joinSecret:
                  description: >-
                    JoinSecret (optional) instructs the operator to join another
                    cluster and point to a secret that holds the join
                    information
                  type: object
                  properties:
                    name:
                      description: >-
                        Name is unique within a namespace to reference a secret
                        resource.
                      type: string
                    namespace:
                      description: >-
                        Namespace defines the space within which the secret name
                        must be unique.
                      type: string
                image:
                  description: >-
                    Image (optional) overrides the default image for the server
                    container
                  type: string
                dbStorageClass:
                  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.
                  type: string
                pvPoolDefaultStorageClass:
                  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.
                  type: string
                tolerations:
                  description: Tolerations (optional) passed through to noobaa's pods
                  type: array
                  items:
                    description: >-
                      The pod this Toleration is attached to tolerates any taint
                      that matches the triple <key,value,effect> using the
                      matching operator <operator>.
                    type: object
                    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.
                        type: integer
                        format: int64
                      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
                dbImage:
                  description: >-
                    DBImage (optional) overrides the default image for the db
                    container
                  type: string
                mongoDbURL:
                  description: >-
                    MongoDbURL (optional) overrides the default mongo db remote
                    url
                  type: string
                endpoints:
                  description: >-
                    Endpoints (optional) sets configuration info for the noobaa
                    endpoint deployment.
                  type: object
                  properties:
                    additionalVirtualHosts:
                      description: >-
                        AdditionalVirtualHosts (optional) provide a list of
                        additional hostnames (on top of the builtin names
                        defined by the cluster: service name, elb name, route
                        name) to be used as virtual hosts by the the endpoints
                        in the endpoint deployment
                      type: array
                      items:
                        type: string
                    maxCount:
                      description: >-
                        MaxCount, the number of endpoint instances (pods) to be
                        used as the upper bound when autoscaling
                      type: integer
                      format: int32
                    minCount:
                      description: >-
                        MinCount, the number of endpoint instances (pods) to be
                        used as the lower bound when autoscaling
                      type: integer
                      format: int32
                    resources:
                      description: >-
                        Resources (optional) overrides the default resource
                        requirements for every endpoint pod
                      type: object
                      properties:
                        limits:
                          description: >-
                            Limits describes the maximum amount of compute
                            resources allowed. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                          type: object
                          additionalProperties:
                            pattern: >-
                              ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            anyOf:
                              - type: integer
                              - type: string
                            x-kubernetes-int-or-string: true
                        requests:
                          description: >-
                            Requests describes the minimum amount of compute
                            resources required. If Requests is omitted for a
                            container, it defaults to Limits if that is
                            explicitly specified, otherwise to an
                            implementation-defined value. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                          type: object
                          additionalProperties:
                            pattern: >-
                              ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            anyOf:
                              - type: integer
                              - type: string
                            x-kubernetes-int-or-string: true
                labels:
                  description: >-
                    The labels-related configuration to add/set on each Pod
                    related object.
                  type: object
                  additionalProperties:
                    description: Labels are label for a given daemon
                    type: object
                    additionalProperties:
                      type: string
                  nullable: true
                  x-kubernetes-preserve-unknown-fields: true
            status:
              description: Most recently observed status of the noobaa system.
              type: object
              properties:
                observedGeneration:
                  description: >-
                    ObservedGeneration is the most recent generation observed
                    for this noobaa system. It corresponds to the CR generation,
                    which is updated on mutation by the API Server.
                  type: integer
                  format: int64
                accounts:
                  description: Accounts reports accounts info for the admin account
                  type: object
                  required:
                    - admin
                  properties:
                    admin:
                      description: UserStatus is the status info of a user secret
                      type: object
                      required:
                        - secretRef
                      properties:
                        secretRef:
                          description: >-
                            SecretReference represents a Secret Reference. It
                            has enough information to retrieve secret in any
                            namespace
                          type: object
                          properties:
                            name:
                              description: >-
                                Name is unique within a namespace to reference a
                                secret resource.
                              type: string
                            namespace:
                              description: >-
                                Namespace defines the space within which the
                                secret name must be unique.
                              type: string
                relatedObjects:
                  description: >-
                    RelatedObjects is a list of objects related to this
                    operator.
                  type: array
                  items:
                    description: >-
                      ObjectReference contains enough information to let you
                      inspect or modify the referred object. --- New uses of
                      this type are discouraged because of difficulty describing
                      its usage when embedded in APIs.  1. Ignored fields.  It
                      includes many fields which are not generally honored.  For
                      instance, ResourceVersion and FieldPath are both very
                      rarely valid in actual usage.  2. Invalid usage help.  It
                      is impossible to add specific help for individual usage. 
                      In most embedded usages, there are particular    
                      restrictions like, "must refer only to types A and B" or
                      "UID not honored" or "name must be restricted".     Those
                      cannot be well described when embedded.  3. Inconsistent
                      validation.  Because the usages are different, the
                      validation rules are different by usage, which makes it
                      hard for users to predict what will happen.  4. The fields
                      are both imprecise and overly precise.  Kind is not a
                      precise mapping to a URL. This can produce ambiguity    
                      during interpretation and require a REST mapping.  In most
                      cases, the dependency is on the group,resource tuple    
                      and the version of the actual struct is irrelevant.  5. We
                      cannot easily change it.  Because this type is embedded in
                      many locations, updates to this type     will affect
                      numerous schemas.  Don't make new APIs embed an
                      underspecified API type they do not control. Instead of
                      using this type, create a locally provided and used type
                      that is well-focused on your reference. For example,
                      ServiceReferences for admission registration:
                      https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
                      .
                    type: object
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      fieldPath:
                        description: >-
                          If referring to a piece of an object instead of an
                          entire object, this string should contain a valid
                          JSON/Go field access statement, such as
                          desiredState.manifest.containers[2]. For example, if
                          the object reference is to a container within a pod,
                          this would take on a value like:
                          "spec.containers{name}" (where "name" refers to the
                          name of the container that triggered the event) or if
                          no container name is specified "spec.containers[2]"
                          (container with index 2 in this pod). This syntax is
                          chosen only to have some well-defined way of
                          referencing a part of an object. TODO: this design is
                          not final and this field is subject to change in the
                          future.
                        type: string
                      kind:
                        description: >-
                          Kind of the referent. More info:
                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                        type: string
                      name:
                        description: >-
                          Name of the referent. More info:
                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        type: string
                      namespace:
                        description: >-
                          Namespace of the referent. More info:
                          https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                        type: string
                      resourceVersion:
                        description: >-
                          Specific resourceVersion to which this reference is
                          made, if any. More info:
                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                        type: string
                      uid:
                        description: >-
                          UID of the referent. More info:
                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                        type: string
                actualImage:
                  description: >-
                    ActualImage is set to report which image the operator is
                    using
                  type: string
                readme:
                  description: >-
                    Readme is a user readable string with explanations on the
                    system
                  type: string
                conditions:
                  description: >-
                    Conditions is a list of conditions related to operator
                    reconciliation
                  type: array
                  items:
                    description: >-
                      Condition represents the state of the operator's
                      reconciliation functionality.
                    type: object
                    required:
                      - status
                      - type
                    properties:
                      lastHeartbeatTime:
                        type: string
                        format: date-time
                      lastTransitionTime:
                        type: string
                        format: date-time
                      message:
                        type: string
                      reason:
                        type: string
                      status:
                        type: string
                      type:
                        description: >-
                          ConditionType is the state of the operator's
                          reconciliation functionality.
                        type: string
                phase:
                  description: >-
                    Phase is a simple, high-level summary of where the System is
                    in its lifecycle
                  type: string
                services:
                  description: Services reports addresses for the services
                  type: object
                  required:
                    - serviceMgmt
                    - serviceS3
                  properties:
                    serviceMgmt:
                      description: >-
                        ServiceStatus is the status info and network addresses
                        of a service
                      type: object
                      properties:
                        externalDNS:
                          description: >-
                            ExternalDNS are external public addresses for the
                            service
                          type: array
                          items:
                            type: string
                        externalIP:
                          description: >-
                            ExternalIP are external public addresses for the
                            service LoadBalancerPorts such as AWS ELB provide
                            public address and load balancing for the service
                            IngressPorts are manually created public addresses
                            for the service
                            https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
                            https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
                            https://kubernetes.io/docs/concepts/services-networking/ingress/
                          type: array
                          items:
                            type: string
                        internalDNS:
                          description: >-
                            InternalDNS are internal addresses of the service
                            inside the cluster
                          type: array
                          items:
                            type: string
                        internalIP:
                          description: >-
                            InternalIP are internal addresses of the service
                            inside the cluster
                            https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
                          type: array
                          items:
                            type: string
                        nodePorts:
                          description: >-
                            NodePorts are the most basic network available.
                            NodePorts use the networks available on the hosts of
                            kubernetes nodes. This generally works from within a
                            pod, and from the internal network of the nodes, but
                            may fail from public network.
                            https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
                          type: array
                          items:
                            type: string
                        podPorts:
                          description: >-
                            PodPorts are the second most basic network address.
                            Every pod has an IP in the cluster and the pods
                            network is a mesh so the operator running inside a
                            pod in the cluster can use this address. Note: pod
                            IPs are not guaranteed to persist over restarts, so
                            should be rediscovered. Note2: when running the
                            operator outside of the cluster, pod IP is not
                            accessible.
                          type: array
                          items:
                            type: string
                    serviceS3:
                      description: >-
                        ServiceStatus is the status info and network addresses
                        of a service
                      type: object
                      properties:
                        externalDNS:
                          description: >-
                            ExternalDNS are external public addresses for the
                            service
                          type: array
                          items:
                            type: string
                        externalIP:
                          description: >-
                            ExternalIP are external public addresses for the
                            service LoadBalancerPorts such as AWS ELB provide
                            public address and load balancing for the service
                            IngressPorts are manually created public addresses
                            for the service
                            https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
                            https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
                            https://kubernetes.io/docs/concepts/services-networking/ingress/
                          type: array
                          items:
                            type: string
                        internalDNS:
                          description: >-
                            InternalDNS are internal addresses of the service
                            inside the cluster
                          type: array
                          items:
                            type: string
                        internalIP:
                          description: >-
                            InternalIP are internal addresses of the service
                            inside the cluster
                            https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
                          type: array
                          items:
                            type: string
                        nodePorts:
                          description: >-
                            NodePorts are the most basic network available.
                            NodePorts use the networks available on the hosts of
                            kubernetes nodes. This generally works from within a
                            pod, and from the internal network of the nodes, but
                            may fail from public network.
                            https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
                          type: array
                          items:
                            type: string
                        podPorts:
                          description: >-
                            PodPorts are the second most basic network address.
                            Every pod has an IP in the cluster and the pods
                            network is a mesh so the operator running inside a
                            pod in the cluster can use this address. Note: pod
                            IPs are not guaranteed to persist over restarts, so
                            should be rediscovered. Note2: when running the
                            operator outside of the cluster, pod IP is not
                            accessible.
                          type: array
                          items:
                            type: string
                endpoints:
                  description: >-
                    Endpoints reports the actual number of endpoints in the
                    endpoint deployment and the virtual hosts list used
                    recognized by the endpoints
                  type: object
                  required:
                    - readyCount
                    - virtualHosts
                  properties:
                    readyCount:
                      type: integer
                      format: int32
                    virtualHosts:
                      type: array
                      items:
                        type: string
                upgradePhase:
                  description: Upgrade reports the status of the ongoing upgrade process
                  type: string
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Mgmt-Endpoints
          type: string
          description: Management Endpoints
          jsonPath: .status.services.serviceMgmt.nodePorts
        - name: S3-Endpoints
          type: string
          description: S3 Endpoints
          jsonPath: .status.services.serviceS3.nodePorts
        - name: Image
          type: string
          description: Actual Image
          jsonPath: .status.actualImage
        - name: Phase
          type: string
          description: Phase
          jsonPath: .status.phase
        - name: Age
          type: date
          jsonPath: .metadata.creationTimestamp
  conversion:
    strategy: None
status:
  conditions:
    - type: NamesAccepted
      status: 'True'
      lastTransitionTime: '2022-02-08T04:22:17Z'
      reason: NoConflicts
      message: no conflicts found
    - type: Established
      status: 'True'
      lastTransitionTime: '2022-02-08T04:22:17Z'
      reason: InitialNamesAccepted
      message: the initial names have been accepted
  acceptedNames:
    plural: noobaas
    singular: noobaa
    shortNames:
      - nb
    kind: NooBaa
    listKind: NooBaaList
  storedVersions:
    - v1alpha1
