---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.5
  labels:
    clusterctl.cluster.x-k8s.io: ""
  name: preprovisioningimages.metal3.io
spec:
  group: metal3.io
  names:
    kind: PreprovisioningImage
    listKind: PreprovisioningImageList
    plural: preprovisioningimages
    shortNames:
    - ppimg
    singular: preprovisioningimage
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Whether the image is ready
      jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - description: The reason for the image readiness status
      jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: PreprovisioningImage is the Schema for the preprovisioningimages
          API.
        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: PreprovisioningImageSpec defines the desired state of PreprovisioningImage.
            properties:
              acceptFormats:
                description: acceptFormats is a list of acceptable image formats.
                items:
                  description: ImageFormat enumerates the allowed image formats
                  enum:
                  - iso
                  - initrd
                  type: string
                type: array
              architecture:
                description: architecture is the processor architecture for which
                  to build the image.
                type: string
              networkDataName:
                description: |-
                  networkDataName is the name of a Secret in the local namespace that
                  contains network data to build in to the image.
                type: string
            type: object
          status:
            description: PreprovisioningImageStatus defines the observed state of
              PreprovisioningImage.
            properties:
              architecture:
                description: architecture is the processor architecture for which
                  the image is built
                type: string
              conditions:
                description: conditions describe the state of the built image
                items:
                  description: Condition contains details for one aspect of the current
                    state of this API Resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        lastTransitionTime is the last time the condition transitioned from one status to another.
                        This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        message is a human readable message indicating details about the transition.
                        This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: |-
                        observedGeneration represents the .metadata.generation that the condition was set based upon.
                        For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                        with respect to the current state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: |-
                        reason contains a programmatic identifier indicating the reason for the condition's last transition.
                        Producers of specific condition types may define expected values and meanings for this field,
                        and whether the values are considered a guaranteed API.
                        The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              extraKernelParams:
                description: |-
                  extraKernelParams is a string with extra parameters to pass to the
                  kernel when booting the image over network. Only makes sense for initrd images.
                type: string
              format:
                description: |-
                  format is the type of image that is available at the download url:
                  either iso or initrd.
                enum:
                - iso
                - initrd
                type: string
              imageUrl:
                description: imageUrl is the URL from which the built image can be
                  downloaded.
                type: string
              kernelUrl:
                description: |-
                  kernelUrl is the URL from which the kernel of the image can be downloaded.
                  Only makes sense for initrd images.
                type: string
              networkData:
                description: |-
                  networkData is a reference to the version of the Secret containing the
                  network data used to build the image.
                properties:
                  name:
                    type: string
                  version:
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
