3 apiVersion: apiextensions.k8s.io/v1
4 kind: CustomResourceDefinition
7 controller-gen.kubebuilder.io/version: v0.6.2
8 creationTimestamp: null
9 name: baremetalhosts.metal3.io
14 listKind: BareMetalHostList
15 plural: baremetalhosts
19 singular: baremetalhost
22 - additionalPrinterColumns:
23 - description: Operational status
24 jsonPath: .status.operationalStatus
28 - description: Provisioning status
29 jsonPath: .status.provisioning.state
32 - description: Consumer using this host
33 jsonPath: .spec.consumerRef.name
36 - description: Address of management controller
37 jsonPath: .spec.bmc.address
41 - description: The type of hardware detected
42 jsonPath: .status.hardwareProfile
43 name: Hardware_Profile
46 - description: Whether the host is online or not
47 jsonPath: .spec.online
50 - description: Type of the most recent error
51 jsonPath: .status.errorType
54 - description: Time duration since creation of BaremetalHost
55 jsonPath: .metadata.creationTimestamp
61 description: BareMetalHost is the Schema for the baremetalhosts API
64 description: 'APIVersion defines the versioned schema of this representation
65 of an object. Servers should convert recognized schemas to the latest
66 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
69 description: 'Kind is a string value representing the REST resource this
70 object represents. Servers may infer this from the endpoint the client
71 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
76 description: BareMetalHostSpec defines the desired state of BareMetalHost
78 automatedCleaningMode:
80 description: When set to disabled, automated cleaning will be avoided
81 during provisioning and deprovisioning.
87 description: How do we connect to the BMC?
90 description: Address holds the URL for accessing the controller
94 description: The name of the secret containing the BMC credentials
95 (requires keys "username" and "password").
97 disableCertificateVerification:
98 description: DisableCertificateVerification disables verification
99 of server certificates when using HTTPS to connect to the BMC.
100 This is required when the server certificate is self-signed,
101 but is insecure because it allows a man-in-the-middle to intercept
109 description: Which MAC address will PXE boot? This is optional for
110 some types, but required for libvirt VMs driven by vbmc.
111 pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
114 description: Select the method of initializing the hardware during
115 boot. Defaults to UEFI.
122 description: ConsumerRef can be used to store information about something
123 that is using a host. When it is not empty, the host is considered
127 description: API version of the referent.
130 description: 'If referring to a piece of an object instead of
131 an entire object, this string should contain a valid JSON/Go
132 field access statement, such as desiredState.manifest.containers[2].
133 For example, if the object reference is to a container within
134 a pod, this would take on a value like: "spec.containers{name}"
135 (where "name" refers to the name of the container that triggered
136 the event) or if no container name is specified "spec.containers[2]"
137 (container with index 2 in this pod). This syntax is chosen
138 only to have some well-defined way of referencing a part of
139 an object. TODO: this design is not final and this field is
140 subject to change in the future.'
143 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
146 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
149 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
152 description: 'Specific resourceVersion to which this reference
153 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
156 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
160 description: A custom deploy procedure.
163 description: Custom deploy method name. This name is specific
164 to the deploy ramdisk used. If you don't have a custom deploy
165 ramdisk, you shouldn't use CustomDeploy.
171 description: Description is a human-entered text used to help identify
174 externallyProvisioned:
175 description: ExternallyProvisioned means something else is managing
176 the image running on the host and the operator should only manage
177 the power status and hardware inventory inspection. If the Image
178 field is filled in, this field is ignored.
181 description: BIOS configuration for bare metal server
183 simultaneousMultithreadingEnabled:
184 description: 'Allows a single physical processor core to appear
185 as several logical processors. This supports following options:
192 description: 'SR-IOV support enables a hypervisor to create virtual
193 instances of a PCI-express device, potentially increasing performance.
194 This supports following options: true, false.'
199 virtualizationEnabled:
200 description: 'Supports the virtualization of platform hardware.
201 This supports following options: true, false.'
208 description: What is the name of the hardware profile for this host?
209 It should only be necessary to set this when inspection cannot automatically
210 determine the profile.
213 description: Image holds the details of the image to be provisioned.
216 description: Checksum is the checksum for the image.
219 description: ChecksumType is the checksum algorithm for the image.
220 e.g md5, sha256, sha512
227 description: DiskFormat contains the format of the image (raw,
228 qcow2, ...). Needs to be set to raw for raw images streaming.
229 Note live-iso means an iso referenced by the url will be live-booted
230 and not deployed to disk, and in this case the checksum options
231 are not required and if specified will be ignored.
240 description: URL is a location of an image to deploy.
246 description: MetaData holds the reference to the Secret containing
247 host metadata (e.g. meta_data.json which is passed to Config Drive).
250 description: Name is unique within a namespace to reference a
254 description: Namespace defines the space within which the secret
259 description: NetworkData holds the reference to the Secret containing
260 network configuration (e.g content of network_data.json which is
261 passed to Config Drive).
264 description: Name is unique within a namespace to reference a
268 description: Namespace defines the space within which the secret
273 description: Should the server be online?
276 description: RAID configuration for bare metal server
279 description: The list of logical disks for hardware RAID, if rootDeviceHints
280 isn't used, first volume is root volume. You can set the value
281 of this field to `[]` to clear all the hardware RAID configurations.
283 description: HardwareRAIDVolume defines the desired configuration
284 of volume in hardware RAID
287 description: 'RAID level for the logical disk. The following
288 levels are supported: 0;1;2;5;6;1+0;5+0;6+0.'
300 description: Name of the volume. Should be unique within
301 the Node. If not specified, volume name will be auto-generated.
304 numberOfPhysicalDisks:
305 description: Integer, number of physical disks to use for
306 the logical disk. Defaults to minimum number of disks
307 required for the particular RAID level.
311 description: Select disks with only rotational or solid-state
315 description: Size (Integer) of the logical disk to be created
316 in GiB. If unspecified or set be 0, the maximum capacity
317 of disk will be used for logical disk.
326 description: The list of logical disks for software RAID, if rootDeviceHints
327 isn't used, first volume is root volume. If HardwareRAIDVolumes
328 is set this item will be invalid. The number of created Software
329 RAID devices must be 1 or 2. If there is only one Software RAID
330 device, it has to be a RAID-1. If there are two, the first one
331 has to be a RAID-1, while the RAID level for the second one
332 can be 0, 1, or 1+0. As the first RAID device will be the deployment
333 device, enforcing a RAID-1 reduces the risk of ending up with
334 a non-booting node in case of a disk failure. Software RAID
335 will always be deleted.
337 description: SoftwareRAIDVolume defines the desired configuration
338 of volume in software RAID
341 description: 'RAID level for the logical disk. The following
342 levels are supported: 0;1;1+0.'
349 description: A list of device hints, the number of items
350 should be greater than or equal to 2.
352 description: RootDeviceHints holds the hints for specifying
353 the storage location for the root filesystem for the
357 description: A Linux device name like "/dev/vda".
358 The hint must match the actual value exactly.
361 description: A SCSI bus address like 0:0:0:0. The
362 hint must match the actual value exactly.
365 description: The minimum size of the device in Gigabytes.
369 description: A vendor-specific device identifier.
370 The hint can be a substring of the actual value.
373 description: True if the device should use spinning
374 media, false otherwise.
377 description: Device serial number. The hint must match
378 the actual value exactly.
381 description: The name of the vendor or manufacturer
382 of the device. The hint can be a substring of the
386 description: Unique storage identifier. The hint must
387 match the actual value exactly.
390 description: Unique vendor storage identifier. The
391 hint must match the actual value exactly.
394 description: Unique storage identifier with the vendor
395 extension appended. The hint must match the actual
402 description: Size (Integer) of the logical disk to be created
403 in GiB. If unspecified or set be 0, the maximum capacity
404 of disk will be used for logical disk.
415 description: Provide guidance about how to choose the device for the
416 image being provisioned.
419 description: A Linux device name like "/dev/vda". The hint must
420 match the actual value exactly.
423 description: A SCSI bus address like 0:0:0:0. The hint must match
424 the actual value exactly.
427 description: The minimum size of the device in Gigabytes.
431 description: A vendor-specific device identifier. The hint can
432 be a substring of the actual value.
435 description: True if the device should use spinning media, false
439 description: Device serial number. The hint must match the actual
443 description: The name of the vendor or manufacturer of the device.
444 The hint can be a substring of the actual value.
447 description: Unique storage identifier. The hint must match the
448 actual value exactly.
451 description: Unique vendor storage identifier. The hint must match
452 the actual value exactly.
455 description: Unique storage identifier with the vendor extension
456 appended. The hint must match the actual value exactly.
460 description: Taints is the full, authoritative list of taints to apply
461 to the corresponding Machine. This list will overwrite any modifications
462 made to the Machine on an ongoing basis.
464 description: The node this Taint is attached to has the "effect"
465 on any pod that does not tolerate the Taint.
468 description: Required. The effect of the taint on pods that
469 do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule
473 description: Required. The taint key to be applied to a node.
476 description: TimeAdded represents the time at which the taint
477 was added. It is only written for NoExecute taints.
481 description: The taint value corresponding to the taint key.
489 description: UserData holds the reference to the Secret containing
490 the user data to be passed to the host before it boots.
493 description: Name is unique within a namespace to reference a
497 description: Namespace defines the space within which the secret
505 description: BareMetalHostStatus defines the observed state of BareMetalHost
509 description: ErrorCount records how many times the host has encoutered
510 an error since the last successful operation
513 description: the last error message reported by the provisioning subsystem
516 description: ErrorType indicates the type of failure encountered when
517 the OperationalStatus is OperationalStatusError
519 - provisioned registration error
524 - power management error
527 description: the last credentials we were able to validate as working
530 description: SecretReference represents a Secret Reference. It
531 has enough information to retrieve secret in any namespace
534 description: Name is unique within a namespace to reference
538 description: Namespace defines the space within which the
539 secret name must be unique.
546 description: The hardware discovered to exist on the host.
549 description: CPU describes one processor on the host.
554 description: ClockSpeed is a clock speed in MHz
567 description: Firmware describes the firmware on the host.
570 description: The BIOS for this firmware
573 description: The release/build date for this BIOS
576 description: The vendor name for this BIOS
579 description: The version of the BIOS
587 description: NIC describes one network interface on the host.
590 description: The IP address of the interface. This will
591 be an IPv4 or IPv6 address if one is present. If both
592 IPv4 and IPv6 addresses are present in a dual-stack environment,
593 two nics will be output, one with each IP.
596 description: The device MAC address
597 pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
600 description: The vendor and product IDs of the NIC, e.g.
604 description: The name of the network interface, e.g. "en0"
607 description: Whether the NIC is PXE Bootable
610 description: The speed of the device in Gigabits per second
613 description: The untagged VLAN ID
619 description: The VLANs available
621 description: VLAN represents the name and ID of a VLAN
624 description: VLANID is a 12-bit 802.1Q VLAN identifier
639 description: Storage describes one storage device (disk, SSD,
643 description: The SCSI location of the device
646 description: Hardware model
649 description: The Linux device name of the disk, e.g. "/dev/sda".
650 Note that this may not be stable across reboots.
653 description: Whether this disk represents rotational storage.
654 This field is not recommended for usage, please prefer
655 using 'Type' field instead, this field will be deprecated
659 description: The serial number of the device
662 description: The size of the disk in Bytes
666 description: 'Device type, one of: HDD, SSD, NVME.'
673 description: The name of the vendor of the device
676 description: The WWN of the device
679 description: The WWN Vendor extension of the device
682 description: The WWN with the extension
687 description: HardwareSystemVendor stores details about the whole
699 description: The name of the profile matching the hardware details.
702 description: LastUpdated identifies when this status was last observed.
706 description: OperationHistory holds information about operations performed
710 description: OperationMetric contains metadata about an operation
711 (inspection, provisioning, etc.) used for tracking metrics.
723 description: OperationMetric contains metadata about an operation
724 (inspection, provisioning, etc.) used for tracking metrics.
736 description: OperationMetric contains metadata about an operation
737 (inspection, provisioning, etc.) used for tracking metrics.
749 description: OperationMetric contains metadata about an operation
750 (inspection, provisioning, etc.) used for tracking metrics.
763 description: OperationalStatus holds the status of the host
773 description: indicator for whether or not the host is powered on
776 description: Information tracked by the provisioner.
779 description: The machine's UUID from the underlying provisioning
783 description: BootMode indicates the boot mode used to provision
791 description: Custom deploy procedure applied to the host.
794 description: Custom deploy method name. This name is specific
795 to the deploy ramdisk used. If you don't have a custom deploy
796 ramdisk, you shouldn't use CustomDeploy.
802 description: The Bios set by the user
804 simultaneousMultithreadingEnabled:
805 description: 'Allows a single physical processor core to appear
806 as several logical processors. This supports following options:
813 description: 'SR-IOV support enables a hypervisor to create
814 virtual instances of a PCI-express device, potentially increasing
815 performance. This supports following options: true, false.'
820 virtualizationEnabled:
821 description: 'Supports the virtualization of platform hardware.
822 This supports following options: true, false.'
829 description: Image holds the details of the last image successfully
830 provisioned to the host.
833 description: Checksum is the checksum for the image.
836 description: ChecksumType is the checksum algorithm for the
837 image. e.g md5, sha256, sha512
844 description: DiskFormat contains the format of the image (raw,
845 qcow2, ...). Needs to be set to raw for raw images streaming.
846 Note live-iso means an iso referenced by the url will be
847 live-booted and not deployed to disk, and in this case the
848 checksum options are not required and if specified will
858 description: URL is a location of an image to deploy.
864 description: The Raid set by the user
867 description: The list of logical disks for hardware RAID,
868 if rootDeviceHints isn't used, first volume is root volume.
869 You can set the value of this field to `[]` to clear all
870 the hardware RAID configurations.
872 description: HardwareRAIDVolume defines the desired configuration
873 of volume in hardware RAID
876 description: 'RAID level for the logical disk. The following
877 levels are supported: 0;1;2;5;6;1+0;5+0;6+0.'
889 description: Name of the volume. Should be unique within
890 the Node. If not specified, volume name will be auto-generated.
893 numberOfPhysicalDisks:
894 description: Integer, number of physical disks to use
895 for the logical disk. Defaults to minimum number of
896 disks required for the particular RAID level.
900 description: Select disks with only rotational or solid-state
904 description: Size (Integer) of the logical disk to be
905 created in GiB. If unspecified or set be 0, the maximum
906 capacity of disk will be used for logical disk.
915 description: The list of logical disks for software RAID,
916 if rootDeviceHints isn't used, first volume is root volume.
917 If HardwareRAIDVolumes is set this item will be invalid.
918 The number of created Software RAID devices must be 1 or
919 2. If there is only one Software RAID device, it has to
920 be a RAID-1. If there are two, the first one has to be a
921 RAID-1, while the RAID level for the second one can be 0,
922 1, or 1+0. As the first RAID device will be the deployment
923 device, enforcing a RAID-1 reduces the risk of ending up
924 with a non-booting node in case of a disk failure. Software
925 RAID will always be deleted.
927 description: SoftwareRAIDVolume defines the desired configuration
928 of volume in software RAID
931 description: 'RAID level for the logical disk. The following
932 levels are supported: 0;1;1+0.'
939 description: A list of device hints, the number of items
940 should be greater than or equal to 2.
942 description: RootDeviceHints holds the hints for specifying
943 the storage location for the root filesystem for
947 description: A Linux device name like "/dev/vda".
948 The hint must match the actual value exactly.
951 description: A SCSI bus address like 0:0:0:0.
952 The hint must match the actual value exactly.
955 description: The minimum size of the device in
960 description: A vendor-specific device identifier.
961 The hint can be a substring of the actual value.
964 description: True if the device should use spinning
965 media, false otherwise.
968 description: Device serial number. The hint must
969 match the actual value exactly.
972 description: The name of the vendor or manufacturer
973 of the device. The hint can be a substring of
977 description: Unique storage identifier. The hint
978 must match the actual value exactly.
981 description: Unique vendor storage identifier.
982 The hint must match the actual value exactly.
985 description: Unique storage identifier with the
986 vendor extension appended. The hint must match
987 the actual value exactly.
993 description: Size (Integer) of the logical disk to be
994 created in GiB. If unspecified or set be 0, the maximum
995 capacity of disk will be used for logical disk.
1006 description: The RootDevicehints set by the user
1009 description: A Linux device name like "/dev/vda". The hint
1010 must match the actual value exactly.
1013 description: A SCSI bus address like 0:0:0:0. The hint must
1014 match the actual value exactly.
1017 description: The minimum size of the device in Gigabytes.
1021 description: A vendor-specific device identifier. The hint
1022 can be a substring of the actual value.
1025 description: True if the device should use spinning media,
1029 description: Device serial number. The hint must match the
1030 actual value exactly.
1033 description: The name of the vendor or manufacturer of the
1034 device. The hint can be a substring of the actual value.
1037 description: Unique storage identifier. The hint must match
1038 the actual value exactly.
1041 description: Unique vendor storage identifier. The hint must
1042 match the actual value exactly.
1045 description: Unique storage identifier with the vendor extension
1046 appended. The hint must match the actual value exactly.
1050 description: An indiciator for what the provisioner is doing with
1058 description: the last credentials we sent to the provisioning backend
1061 description: SecretReference represents a Secret Reference. It
1062 has enough information to retrieve secret in any namespace
1065 description: Name is unique within a namespace to reference
1069 description: Namespace defines the space within which the
1070 secret name must be unique.