apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.openshift.io: https://github.com/openshift/api/pull/470
    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"
  name: imagecontentsourcepolicies.operator.openshift.io
spec:
  group: operator.openshift.io
  names:
    kind: ImageContentSourcePolicy
    listKind: ImageContentSourcePolicyList
    plural: imagecontentsourcepolicies
    singular: imagecontentsourcepolicy
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ImageContentSourcePolicy holds cluster-wide information about
          how to handle registry mirror rules. When multiple policies are defined,
          the outcome of the behavior is defined on each field.
        type: object
        required:
        - 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: spec holds user settable values for configuration
            type: object
            properties:
              repositoryDigestMirrors:
                description: "repositoryDigestMirrors allows images referenced by
                  image digests in pods to be pulled from alternative mirrored repository
                  locations. The image pull specification provided to the pod will
                  be compared to the source locations described in RepositoryDigestMirrors
                  and the image may be pulled down from any of the mirrors in the
                  list instead of the specified repository allowing administrators
                  to choose a potentially faster mirror. Only image pull specifications
                  that have an image digest will have this behavior applied to them
                  - tags will continue to be pulled from the specified repository
                  in the pull spec. \n Each “source” repository is treated independently;
                  configurations for different “source” repositories don’t interact.
                  \n When multiple policies are defined for the same “source” repository,
                  the sets of defined mirrors will be merged together, preserving
                  the relative order of the mirrors, if possible. For example, if
                  policy A has mirrors `a, b, c` and policy B has mirrors `c, d, e`,
                  the mirrors will be used in the order `a, b, c, d, e`.  If the orders
                  of mirror entries conflict (e.g. `a, b` vs. `b, a`) the configuration
                  is not rejected but the resulting order is unspecified."
                type: array
                items:
                  description: 'RepositoryDigestMirrors holds cluster-wide information
                    about how to handle mirros in the registries config. Note: the
                    mirrors only work when pulling the images that are referenced
                    by their digests.'
                  type: object
                  required:
                  - source
                  properties:
                    mirrors:
                      description: mirrors is one or more repositories that may also
                        contain the same images. The order of mirrors in this list
                        is treated as the user's desired priority, while source is
                        by default considered lower priority than all mirrors. Other
                        cluster configuration, including (but not limited to) other
                        repositoryDigestMirrors objects, may impact the exact order
                        mirrors are contacted in, or some mirrors may be contacted
                        in parallel, so this should be considered a preference rather
                        than a guarantee of ordering.
                      type: array
                      items:
                        type: string
                    source:
                      description: source is the repository that users refer to, e.g.
                        in image pull specifications.
                      type: string
    served: true
    storage: true
    subresources:
      status: {}
