apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  name: multiclusterhubs.operator.open-cluster-management.io
spec:
  group: operator.open-cluster-management.io
  names:
    kind: MultiClusterHub
    listKind: MultiClusterHubList
    plural: multiclusterhubs
    shortNames:
    - mch
    singular: multiclusterhub
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The overall status of the multiclusterhub
      jsonPath: .status.phase
      name: Status
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: MultiClusterHub defines the configuration for an instance of
          the MultiCluster Hub
        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: MultiClusterHubSpec defines the desired state of MultiClusterHub
            properties:
              availabilityConfig:
                description: 'Specifies deployment replication for improved availability.
                  Options are: Basic and High (default)'
                type: string
              customCAConfigmap:
                description: Provide the customized OpenShift default ingress CA certificate
                  to RHACM
                type: string
              disableHubSelfManagement:
                description: Disable automatic import of the hub cluster as a managed
                  cluster
                type: boolean
              disableUpdateClusterImageSets:
                description: Disable automatic update of ClusterImageSets
                type: boolean
              enableClusterProxyAddon:
                description: Enable cluster proxy addon
                type: boolean
              hive:
                description: (Deprecated) Overrides for the default HiveConfig spec
                properties:
                  additionalCertificateAuthorities:
                    description: (Deprecated) AdditionalCertificateAuthorities is
                      a list of references to secrets in the 'hive' namespace that
                      contain an additional Certificate Authority to use when communicating
                      with target clusters. These certificate authorities will be
                      used in addition to any self-signed CA generated by each cluster
                      on installation.
                    items:
                      description: LocalObjectReference contains enough information
                        to let you locate the referenced object inside the same namespace.
                      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
                      type: object
                    type: array
                  backup:
                    description: (Deprecated) Backup specifies configuration for backup
                      integration. If absent, backup integration will be disabled.
                    properties:
                      minBackupPeriodSeconds:
                        description: (Deprecated) MinBackupPeriodSeconds specifies
                          that a minimum of MinBackupPeriodSeconds will occur in between
                          each backup. This is used to rate limit backups. This potentially
                          batches together multiple changes into 1 backup. No backups
                          will be lost as changes that happen during this interval
                          are queued up and will result in a backup happening once
                          the interval has been completed.
                        type: integer
                      velero:
                        description: (Deprecated) Velero specifies configuration for
                          the Velero backup integration.
                        properties:
                          enabled:
                            description: (Deprecated) Enabled dictates if Velero backup
                              integration is enabled. If not specified, the default
                              is disabled.
                            type: boolean
                        type: object
                    type: object
                  externalDNS:
                    description: (Deprecated) ExternalDNS specifies configuration
                      for external-dns if it is to be deployed by Hive. If absent,
                      external-dns will not be deployed.
                    properties:
                      aws:
                        description: (Deprecated) AWS contains AWS-specific settings
                          for external DNS
                        properties:
                          credentials:
                            description: (Deprecated) Credentials references a secret
                              that will be used to authenticate with AWS Route53.
                              It will need permission to manage entries in each of
                              the managed domains for this cluster. Secret should
                              have AWS keys named 'aws_access_key_id' and 'aws_secret_access_key'.
                            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
                            type: object
                        type: object
                      gcp:
                        description: (Deprecated) GCP contains GCP-specific settings
                          for external DNS
                        properties:
                          credentials:
                            description: (Deprecated) Credentials references a secret
                              that will be used to authenticate with GCP DNS. It will
                              need permission to manage entries in each of the managed
                              domains for this cluster. Secret should have a key names
                              'osServiceAccount.json'. The credentials must specify
                              the project to use.
                            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
                            type: object
                        type: object
                    type: object
                  failedProvisionConfig:
                    description: (Deprecated) FailedProvisionConfig is used to configure
                      settings related to handling provision failures.
                    properties:
                      skipGatherLogs:
                        description: (Deprecated) SkipGatherLogs disables functionality
                          that attempts to gather full logs from the cluster if an
                          installation fails for any reason. The logs will be stored
                          in a persistent volume for up to 7 days.
                        type: boolean
                    type: object
                  globalPullSecret:
                    description: (Deprecated) GlobalPullSecret is used to specify
                      a pull secret that will be used globally by all of the cluster
                      deployments. For each cluster deployment, the contents of GlobalPullSecret
                      will be merged with the specific pull secret for a cluster deployment(if
                      specified), with precedence given to the contents of the pull
                      secret for the cluster deployment.
                    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
                    type: object
                  maintenanceMode:
                    description: (Deprecated) MaintenanceMode can be set to true to
                      disable the hive controllers in situations where we need to
                      ensure nothing is running that will add or act upon finalizers
                      on Hive types. This should rarely be needed. Sets replicas to
                      0 for the hive-controllers deployment to accomplish this.
                    type: boolean
                required:
                - failedProvisionConfig
                type: object
              imagePullSecret:
                description: Override pull secret for accessing MultiClusterHub operand
                  and endpoint images
                type: string
              ingress:
                description: Configuration options for ingress management
                properties:
                  sslCiphers:
                    description: List of SSL ciphers enabled for management ingress.
                      Defaults to full list of supported ciphers
                    items:
                      type: string
                    type: array
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                description: Set the nodeselectors
                type: object
              overrides:
                description: Developer Overrides
                properties:
                  imagePullPolicy:
                    description: Pull policy of the MultiCluster hub images
                    type: string
                type: object
              separateCertificateManagement:
                description: (Deprecated) Install cert-manager into its own namespace
                type: boolean
            type: object
          status:
            description: MultiClusterHubStatus defines the observed state of MultiClusterHub
            properties:
              components:
                additionalProperties:
                  description: StatusCondition contains condition information.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        changed from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human-readable message indicating
                        details about the last status change.
                      type: string
                    reason:
                      description: Reason is a (brief) reason for the condition's
                        last status change.
                      type: string
                    status:
                      description: Status is the status of the condition. One of True,
                        False, Unknown.
                      type: string
                    type:
                      description: Type is the type of the cluster condition.
                      type: string
                  type: object
                description: Components []ComponentCondition `json:"manifests,omitempty"`
                type: object
              conditions:
                description: Conditions contains the different condition statuses
                  for the MultiClusterHub
                items:
                  description: StatusCondition contains condition information.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        changed from one status to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human-readable message indicating
                        details about the last status change.
                      type: string
                    reason:
                      description: Reason is a (brief) reason for the condition's
                        last status change.
                      type: string
                    status:
                      description: Status is the status of the condition. One of True,
                        False, Unknown.
                      type: string
                    type:
                      description: Type is the type of the cluster condition.
                      type: string
                  type: object
                type: array
              currentVersion:
                description: CurrentVersion indicates the current version
                type: string
              desiredVersion:
                description: DesiredVersion indicates the desired version
                type: string
              phase:
                description: Represents the running phase of the MultiClusterHub
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []