apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.15.0
  creationTimestamp: null
  name: multiclusterengines.multicluster.openshift.io
spec:
  group: multicluster.openshift.io
  names:
    kind: MultiClusterEngine
    listKind: MultiClusterEngineList
    plural: multiclusterengines
    shortNames:
    - mce
    singular: multiclusterengine
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - description: The overall state of the MultiClusterEngine
      jsonPath: .status.phase
      name: Status
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: The current version of the MultiClusterEngine
      jsonPath: .status.currentVersion
      name: CurrentVersion
      type: string
    - description: The desired version of the MultiClusterEngine
      jsonPath: .status.desiredVersion
      name: DesiredVersion
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: |-
          MultiClusterEngine defines the configuration for an instance
          of a multicluster engine, a central point providing the foundational components for managing multiple Kubernetes-based clusters. The deployment of the multicluster engine components is
          determined based on the configuration that is defined in this resource.
        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: MultiClusterEngineSpec defines the desired state of MultiClusterEngine
            properties:
              availabilityConfig:
                description: 'Specifies deployment replication for improved availability. Options are: Basic and High (default)'
                type: string
              imagePullSecret:
                description: Override pull secret for accessing MultiClusterEngine operand and endpoint images
                type: string
              nodeSelector:
                additionalProperties:
                  type: string
                description: Set the nodeselectors
                type: object
              overrides:
                description: Developer Overrides
                properties:
                  components:
                    description: 'Provides optional configuration for components, the list of which can be found here: https://github.com/stolostron/backplane-operator/tree/main/docs/available-components.md'
                    items:
                      description: ComponentConfig provides optional configuration items for individual components
                      properties:
                        configOverrides:
                          description: ConfigOverrides contains optional configuration overrides for deployments and containers.
                          properties:
                            deployments:
                              description: Deployments is a list of deployment specific configuration overrides.
                              items:
                                description: DeploymentConfig provides configuration details for a specific deployment.
                                properties:
                                  containers:
                                    description: Containers is a list of container specific configurations within the deployment.
                                    items:
                                      description: ContainerConfig holds configuration details for a specific container within a deployment.
                                      properties:
                                        env:
                                          description: Env is a list of environment variable overrides for the container.
                                          items:
                                            description: EnvConfig represents an override for an environment variable within a container.
                                            properties:
                                              name:
                                                description: Name specifies the name of the environment variable.
                                                type: string
                                              value:
                                                description: Value specifies the value of the environment variable.
                                                type: string
                                            type: object
                                          type: array
                                        name:
                                          description: Name specifies the name of the container being configured.
                                          type: string
                                      required:
                                      - env
                                      - name
                                      type: object
                                    type: array
                                  name:
                                    description: Name specifies the name of the deployment being configured.
                                    type: string
                                required:
                                - containers
                                - name
                                type: object
                              type: array
                          type: object
                        enabled:
                          description: Enabled specifies whether the component is enabled or disabled.
                          type: boolean
                        name:
                          description: Name denotes the name of the component being configured.
                          type: string
                      required:
                      - enabled
                      - name
                      type: object
                    type: array
                  imagePullPolicy:
                    description: Pull policy for the MCE images
                    type: string
                  infrastructureCustomNamespace:
                    description: Namespace to install Assisted Installer operator
                    type: string
                type: object
              targetNamespace:
                description: Location where MCE resources will be placed
                type: string
              tolerations:
                description: Tolerations causes all components to tolerate any taints.
                items:
                  description: |-
                    The pod this Toleration is attached to tolerates any taint that matches
                    the triple <key,value,effect> using the matching operator <operator>.
                  properties:
                    effect:
                      description: |-
                        Effect indicates the taint effect to match. Empty means match all taint effects.
                        When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                      type: string
                    key:
                      description: |-
                        Key is the taint key that the toleration applies to. Empty means match all taint keys.
                        If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                      type: string
                    operator:
                      description: |-
                        Operator represents a key's relationship to the value.
                        Valid operators are Exists and Equal. Defaults to Equal.
                        Exists is equivalent to wildcard for value, so that a pod can
                        tolerate all taints of a particular category.
                      type: string
                    tolerationSeconds:
                      description: |-
                        TolerationSeconds represents the period of time the toleration (which must be
                        of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
                        it is not set, which means tolerate the taint forever (do not evict). Zero and
                        negative values will be treated as 0 (evict immediately) by the system.
                      format: int64
                      type: integer
                    value:
                      description: |-
                        Value is the taint value the toleration matches to.
                        If the operator is Exists, the value should be empty, otherwise just a regular string.
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: MultiClusterEngineStatus defines the observed state of MultiClusterEngine
            properties:
              components:
                items:
                  description: ComponentCondition contains condition information for tracked components
                  properties:
                    kind:
                      description: The resource kind this condition represents
                      type: string
                    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
                    name:
                      description: The component name
                      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
              conditions:
                items:
                  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 is the most recent version successfully installed
                type: string
              desiredVersion:
                description: DesiredVersion is the version the operator is reconciling towards
                type: string
              phase:
                description: Latest observed overall state
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
