--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.18.0 creationTimestamp: "2025-10-11T10:50:42Z" generation: 1 labels: openstack.openstack.org/crd: "" managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} 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-11T10:50:42Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:controller-gen.kubebuilder.io/version: {} f:labels: .: {} f:openstack.openstack.org/crd: {} f:spec: f:conversion: .: {} f:strategy: {} f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:scope: {} f:versions: {} manager: operator operation: Update time: "2025-10-11T10:51:45Z" name: openstackprovisionservers.baremetal.openstack.org resourceVersion: "31958" uid: c512f1ce-5b86-4186-a886-013d98e333c5 spec: conversion: strategy: None group: baremetal.openstack.org names: kind: OpenStackProvisionServer listKind: OpenStackProvisionServerList plural: openstackprovisionservers shortNames: - osprovserver - osprovservers singular: openstackprovisionserver scope: Namespaced versions: - additionalPrinterColumns: - description: Status jsonPath: .status.conditions[0].status name: Status type: string - description: Message jsonPath: .status.conditions[0].message name: Message type: string name: v1beta1 schema: openAPIV3Schema: description: OpenStackProvisionServer used to serve custom images for baremetal provisioning with Metal3 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: OpenStackProvisionServerSpec defines the desired state of OpenStackProvisionServer properties: agentImageUrl: description: AgentImageURL - Container image URL for the sidecar container that discovers provisioning network IPs type: string apacheImageUrl: description: ApacheImageURL - Container image URL for the main container that serves the downloaded OS qcow2 image (osImage) type: string interface: description: Interface - An optional interface to use instead of the cluster's default provisioning interface (if any) type: string nodeSelector: additionalProperties: type: string description: NodeSelector to target subset of worker nodes running this provision server type: object osContainerImageUrl: description: OSContainerImageURL - Container image URL for init with the OS qcow2 image (osImage) type: string osImage: description: OSImage - OS qcow2 image (compressed as gz, or uncompressed) type: string osImageDir: default: /usr/local/apache2/htdocs description: OSImageDir - Directory on the container which holds the OS qcow2 image and checksum type: string port: description: Port - The port on which the Apache server should listen format: int32 maximum: 6220 minimum: 6190 type: integer preserveJobs: default: false description: PreserveJobs - do not delete jobs after they finished e.g. to check logs type: boolean resources: description: |- Resources - Compute Resources required by this provision server (Limits/Requests). https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ properties: claims: description: |- Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: description: |- Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. type: string request: description: |- Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: |- Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: |- Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object required: - agentImageUrl - apacheImageUrl - osContainerImageUrl - osImage - osImageDir type: object status: description: OpenStackProvisionServerStatus defines the observed state of OpenStackProvisionServer properties: conditions: description: Conditions items: description: Condition defines an observation of a API resource operational state. properties: lastTransitionTime: description: |- 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: A human readable message indicating details about the transition. type: string reason: description: The reason for the condition's last transition in CamelCase. type: string severity: description: |- Severity provides a classification of Reason code, so the current situation is immediately understandable and could act accordingly. It is meant for situations where Status=False and it should be indicated if it is just informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue and no actions to automatically resolve the issue can/should be done). For conditions where Status=Unknown or Status=True the Severity should be SeverityNone. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: description: Type of condition in CamelCase. type: string required: - lastTransitionTime - status - type type: object type: array hash: additionalProperties: type: string description: Map of hashes to track e.g. job status type: object localImageChecksumUrl: description: URL of provisioning image checksum on underlying Apache web server type: string localImageUrl: description: URL of provisioning image on underlying Apache web server type: string osImageChecksumFilename: description: Filename of OSImage checksum type: string osImageChecksumType: description: OSImage checksum type enum: - md5 - sha256 - sha512 - auto type: string provisionIp: description: IP of the provisioning interface on the node running the ProvisionServer pod type: string provisionIpError: description: Any error reported by the provisioning agent during provisioning IP acquisition type: string readyCount: description: ReadyCount of provision server Apache instances format: int32 type: integer type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: OpenStackProvisionServer listKind: OpenStackProvisionServerList plural: openstackprovisionservers shortNames: - osprovserver - osprovservers singular: openstackprovisionserver conditions: - lastTransitionTime: "2025-10-11T10:50:42Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2025-10-11T10:50:42Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1beta1