---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.openshift.io: https://github.com/openshift/api/pull/470
    api.openshift.io/merged-by-featuregates: "true"
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    release.openshift.io/bootstrap-required: "true"
  creationTimestamp: "2025-10-27T11:17:10Z"
  generation: 1
  managedFields:
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:api-approved.openshift.io: {}
          f:api.openshift.io/merged-by-featuregates: {}
          f:include.release.openshift.io/ibm-cloud-managed: {}
          f:include.release.openshift.io/self-managed-high-availability: {}
          f:release.openshift.io/bootstrap-required: {}
      f:spec:
        f:conversion:
          .: {}
          f:strategy: {}
        f:group: {}
        f:names:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
    manager: cluster-bootstrap
    operation: Update
    time: "2025-10-27T11:17:10Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          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: {}
    manager: kube-apiserver
    operation: Update
    subresource: status
    time: "2025-10-27T11:17:10Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:ownerReferences:
          .: {}
          k:{"uid":"d36bdf59-d268-4238-afb0-5e0b21cca1a4"}: {}
    manager: cluster-version-operator
    operation: Update
    time: "2025-10-27T11:18:29Z"
  name: imagecontentsourcepolicies.operator.openshift.io
  ownerReferences:
  - apiVersion: config.openshift.io/v1
    controller: true
    kind: ClusterVersion
    name: version
    uid: d36bdf59-d268-4238-afb0-5e0b21cca1a4
  resourceVersion: "1375"
  uid: 960d2a46-3ad6-4387-bf1b-7739005ef575
spec:
  conversion:
    strategy: None
  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.

          Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.
        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
            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.

                  Each “source” repository is treated independently; configurations for different “source”
                  repositories don’t interact.

                  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.
                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.
                  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.
                      items:
                        type: string
                      type: array
                    source:
                      description: source is the repository that users refer to, e.g.
                        in image pull specifications.
                      type: string
                  required:
                  - source
                  type: object
                type: array
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ImageContentSourcePolicy
    listKind: ImageContentSourcePolicyList
    plural: imagecontentsourcepolicies
    singular: imagecontentsourcepolicy
  conditions:
  - lastTransitionTime: "2025-10-27T11:17:10Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2025-10-27T11:17:10Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1alpha1
