apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: configs.samples.operator.openshift.io
  annotations:
    description: Extension for configuring openshif samples operator.
    displayName: ConfigsSamples
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
spec:
  scope: Cluster
  preserveUnknownFields: false
  group: samples.operator.openshift.io
  versions:
  - name: v1
    subresources:
      status: {}
    served: true
    storage: true
    "schema":
      "openAPIV3Schema":
        description: Config contains the configuration and detailed condition status
          for the Samples Operator.
        type: object
        required:
        - metadata
        - spec
        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: ConfigSpec contains the desired configuration and state for
              the Samples Operator, controlling various behavior around the imagestreams
              and templates it creates/updates in the openshift namespace.
            type: object
            properties:
              architectures:
                description: architectures determine which hardware architecture(s)
                  to install, where x86_64, ppc64le, and s390x are the only supported
                  choices currently.
                type: array
                items:
                  type: string
              managementState:
                description: managementState is top level on/off type of switch for
                  all operators. When "Managed", this operator processes config and
                  manipulates the samples accordingly. When "Unmanaged", this operator
                  ignores any updates to the resources it watches. When "Removed",
                  it reacts that same wasy as it does if the Config object is deleted,
                  meaning any ImageStreams or Templates it manages (i.e. it honors
                  the skipped lists) and the registry secret are deleted, along with
                  the ConfigMap in the operator's namespace that represents the last
                  config used to manipulate the samples,
                type: string
                pattern: ^(Managed|Unmanaged|Force|Removed)$
              samplesRegistry:
                description: samplesRegistry allows for the specification of which
                  registry is accessed by the ImageStreams for their image content.  Defaults
                  on the content in https://github.com/openshift/library that are
                  pulled into this github repository, but based on our pulling only
                  ocp content it typically defaults to registry.redhat.io.
                type: string
              skippedImagestreams:
                description: skippedImagestreams specifies names of image streams
                  that should NOT be created/updated.  Admins can use this to allow
                  them to delete content they don’t want.  They will still have to
                  manually delete the content but the operator will not recreate(or
                  update) anything listed here.
                type: array
                items:
                  type: string
              skippedTemplates:
                description: skippedTemplates specifies names of templates that should
                  NOT be created/updated.  Admins can use this to allow them to delete
                  content they don’t want.  They will still have to manually delete
                  the content but the operator will not recreate(or update) anything
                  listed here.
                type: array
                items:
                  type: string
          status:
            description: ConfigStatus contains the actual configuration in effect,
              as well as various details that describe the state of the Samples Operator.
            type: object
            properties:
              architectures:
                description: architectures determine which hardware architecture(s)
                  to install, where x86_64 and ppc64le are the supported choices.
                type: array
                items:
                  type: string
              conditions:
                description: conditions represents the available maintenance status
                  of the sample imagestreams and templates.
                type: array
                items:
                  description: ConfigCondition captures various conditions of the
                    Config as entries are processed.
                  type: object
                  required:
                  - status
                  - type
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another.
                      type: string
                      format: date-time
                    lastUpdateTime:
                      description: lastUpdateTime is the last time this condition
                        was updated.
                      type: string
                      format: date-time
                    message:
                      description: message is a human readable message indicating
                        details about the transition.
                      type: string
                    reason:
                      description: reason is what caused the condition's last transition.
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: type of condition.
                      type: string
              managementState:
                description: managementState reflects the current operational status
                  of the on/off switch for the operator.  This operator compares the
                  ManagementState as part of determining that we are turning the operator
                  back on (i.e. "Managed") when it was previously "Unmanaged".
                type: string
                pattern: ^(Managed|Unmanaged|Force|Removed)$
              samplesRegistry:
                description: samplesRegistry allows for the specification of which
                  registry is accessed by the ImageStreams for their image content.  Defaults
                  on the content in https://github.com/openshift/library that are
                  pulled into this github repository, but based on our pulling only
                  ocp content it typically defaults to registry.redhat.io.
                type: string
              skippedImagestreams:
                description: skippedImagestreams specifies names of image streams
                  that should NOT be created/updated.  Admins can use this to allow
                  them to delete content they don’t want.  They will still have to
                  manually delete the content but the operator will not recreate(or
                  update) anything listed here.
                type: array
                items:
                  type: string
              skippedTemplates:
                description: skippedTemplates specifies names of templates that should
                  NOT be created/updated.  Admins can use this to allow them to delete
                  content they don’t want.  They will still have to manually delete
                  the content but the operator will not recreate(or update) anything
                  listed here.
                type: array
                items:
                  type: string
              version:
                description: version is the value of the operator's payload based
                  version indicator when it was last successfully processed
                type: string
  names:
    plural: configs
    singular: config
    kind: Config
    listKind: ConfigList
