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 the Config
251 description: Name is unique within a namespace to reference a
255 description: Namespace defines the space within which the secret
260 description: NetworkData holds the reference to the Secret containing
261 network configuration (e.g content of network_data.json) which is
262 passed to the Config Drive.
265 description: Name is unique within a namespace to reference a
269 description: Namespace defines the space within which the secret
274 description: Should the server be online?
276 preprovisioningNetworkDataName:
277 description: PreprovisioningNetworkDataName is the name of the Secret
278 in the local namespace containing network configuration (e.g content
279 of network_data.json) which is passed to the preprovisioning image,
280 and to the Config Drive if not overridden by specifying NetworkData.
283 description: RAID configuration for bare metal server
286 description: The list of logical disks for hardware RAID, if rootDeviceHints
287 isn't used, first volume is root volume. You can set the value
288 of this field to `[]` to clear all the hardware RAID configurations.
290 description: HardwareRAIDVolume defines the desired configuration
291 of volume in hardware RAID
294 description: 'RAID level for the logical disk. The following
295 levels are supported: 0;1;2;5;6;1+0;5+0;6+0.'
307 description: Name of the volume. Should be unique within
308 the Node. If not specified, volume name will be auto-generated.
311 numberOfPhysicalDisks:
312 description: Integer, number of physical disks to use for
313 the logical disk. Defaults to minimum number of disks
314 required for the particular RAID level.
318 description: Select disks with only rotational or solid-state
322 description: Size (Integer) of the logical disk to be created
323 in GiB. If unspecified or set be 0, the maximum capacity
324 of disk will be used for logical disk.
333 description: The list of logical disks for software RAID, if rootDeviceHints
334 isn't used, first volume is root volume. If HardwareRAIDVolumes
335 is set this item will be invalid. The number of created Software
336 RAID devices must be 1 or 2. If there is only one Software RAID
337 device, it has to be a RAID-1. If there are two, the first one
338 has to be a RAID-1, while the RAID level for the second one
339 can be 0, 1, or 1+0. As the first RAID device will be the deployment
340 device, enforcing a RAID-1 reduces the risk of ending up with
341 a non-booting node in case of a disk failure. Software RAID
342 will always be deleted.
344 description: SoftwareRAIDVolume defines the desired configuration
345 of volume in software RAID
348 description: 'RAID level for the logical disk. The following
349 levels are supported: 0;1;1+0.'
356 description: A list of device hints, the number of items
357 should be greater than or equal to 2.
359 description: RootDeviceHints holds the hints for specifying
360 the storage location for the root filesystem for the
364 description: A Linux device name like "/dev/vda".
365 The hint must match the actual value exactly.
368 description: A SCSI bus address like 0:0:0:0. The
369 hint must match the actual value exactly.
372 description: The minimum size of the device in Gigabytes.
376 description: A vendor-specific device identifier.
377 The hint can be a substring of the actual value.
380 description: True if the device should use spinning
381 media, false otherwise.
384 description: Device serial number. The hint must match
385 the actual value exactly.
388 description: The name of the vendor or manufacturer
389 of the device. The hint can be a substring of the
393 description: Unique storage identifier. The hint must
394 match the actual value exactly.
397 description: Unique vendor storage identifier. The
398 hint must match the actual value exactly.
401 description: Unique storage identifier with the vendor
402 extension appended. The hint must match the actual
409 description: Size (Integer) of the logical disk to be created
410 in GiB. If unspecified or set be 0, the maximum capacity
411 of disk will be used for logical disk.
422 description: Provide guidance about how to choose the device for the
423 image being provisioned.
426 description: A Linux device name like "/dev/vda". The hint must
427 match the actual value exactly.
430 description: A SCSI bus address like 0:0:0:0. The hint must match
431 the actual value exactly.
434 description: The minimum size of the device in Gigabytes.
438 description: A vendor-specific device identifier. The hint can
439 be a substring of the actual value.
442 description: True if the device should use spinning media, false
446 description: Device serial number. The hint must match the actual
450 description: The name of the vendor or manufacturer of the device.
451 The hint can be a substring of the actual value.
454 description: Unique storage identifier. The hint must match the
455 actual value exactly.
458 description: Unique vendor storage identifier. The hint must match
459 the actual value exactly.
462 description: Unique storage identifier with the vendor extension
463 appended. The hint must match the actual value exactly.
467 description: Taints is the full, authoritative list of taints to apply
468 to the corresponding Machine. This list will overwrite any modifications
469 made to the Machine on an ongoing basis.
471 description: The node this Taint is attached to has the "effect"
472 on any pod that does not tolerate the Taint.
475 description: Required. The effect of the taint on pods that
476 do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule
480 description: Required. The taint key to be applied to a node.
483 description: TimeAdded represents the time at which the taint
484 was added. It is only written for NoExecute taints.
488 description: The taint value corresponding to the taint key.
496 description: UserData holds the reference to the Secret containing
497 the user data to be passed to the host before it boots.
500 description: Name is unique within a namespace to reference a
504 description: Namespace defines the space within which the secret
512 description: BareMetalHostStatus defines the observed state of BareMetalHost
516 description: ErrorCount records how many times the host has encoutered
517 an error since the last successful operation
520 description: the last error message reported by the provisioning subsystem
523 description: ErrorType indicates the type of failure encountered when
524 the OperationalStatus is OperationalStatusError
526 - provisioned registration error
531 - power management error
534 description: the last credentials we were able to validate as working
537 description: SecretReference represents a Secret Reference. It
538 has enough information to retrieve secret in any namespace
541 description: Name is unique within a namespace to reference
545 description: Namespace defines the space within which the
546 secret name must be unique.
553 description: The hardware discovered to exist on the host.
556 description: CPU describes one processor on the host.
561 description: ClockSpeed is a clock speed in MHz
574 description: Firmware describes the firmware on the host.
577 description: The BIOS for this firmware
580 description: The release/build date for this BIOS
583 description: The vendor name for this BIOS
586 description: The version of the BIOS
594 description: NIC describes one network interface on the host.
597 description: The IP address of the interface. This will
598 be an IPv4 or IPv6 address if one is present. If both
599 IPv4 and IPv6 addresses are present in a dual-stack environment,
600 two nics will be output, one with each IP.
603 description: The device MAC address
604 pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
607 description: The vendor and product IDs of the NIC, e.g.
611 description: The name of the network interface, e.g. "en0"
614 description: Whether the NIC is PXE Bootable
617 description: The speed of the device in Gigabits per second
620 description: The untagged VLAN ID
626 description: The VLANs available
628 description: VLAN represents the name and ID of a VLAN
631 description: VLANID is a 12-bit 802.1Q VLAN identifier
646 description: Storage describes one storage device (disk, SSD,
650 description: The SCSI location of the device
653 description: Hardware model
656 description: The Linux device name of the disk, e.g. "/dev/sda".
657 Note that this may not be stable across reboots.
660 description: Whether this disk represents rotational storage.
661 This field is not recommended for usage, please prefer
662 using 'Type' field instead, this field will be deprecated
666 description: The serial number of the device
669 description: The size of the disk in Bytes
673 description: 'Device type, one of: HDD, SSD, NVME.'
680 description: The name of the vendor of the device
683 description: The WWN of the device
686 description: The WWN Vendor extension of the device
689 description: The WWN with the extension
694 description: HardwareSystemVendor stores details about the whole
706 description: The name of the profile matching the hardware details.
709 description: LastUpdated identifies when this status was last observed.
713 description: OperationHistory holds information about operations performed
717 description: OperationMetric contains metadata about an operation
718 (inspection, provisioning, etc.) used for tracking metrics.
730 description: OperationMetric contains metadata about an operation
731 (inspection, provisioning, etc.) used for tracking metrics.
743 description: OperationMetric contains metadata about an operation
744 (inspection, provisioning, etc.) used for tracking metrics.
756 description: OperationMetric contains metadata about an operation
757 (inspection, provisioning, etc.) used for tracking metrics.
770 description: OperationalStatus holds the status of the host
780 description: indicator for whether or not the host is powered on
783 description: Information tracked by the provisioner.
786 description: The machine's UUID from the underlying provisioning
790 description: BootMode indicates the boot mode used to provision
798 description: Custom deploy procedure applied to the host.
801 description: Custom deploy method name. This name is specific
802 to the deploy ramdisk used. If you don't have a custom deploy
803 ramdisk, you shouldn't use CustomDeploy.
809 description: The Bios set by the user
811 simultaneousMultithreadingEnabled:
812 description: 'Allows a single physical processor core to appear
813 as several logical processors. This supports following options:
820 description: 'SR-IOV support enables a hypervisor to create
821 virtual instances of a PCI-express device, potentially increasing
822 performance. This supports following options: true, false.'
827 virtualizationEnabled:
828 description: 'Supports the virtualization of platform hardware.
829 This supports following options: true, false.'
836 description: Image holds the details of the last image successfully
837 provisioned to the host.
840 description: Checksum is the checksum for the image.
843 description: ChecksumType is the checksum algorithm for the
844 image. e.g md5, sha256, sha512
851 description: DiskFormat contains the format of the image (raw,
852 qcow2, ...). Needs to be set to raw for raw images streaming.
853 Note live-iso means an iso referenced by the url will be
854 live-booted and not deployed to disk, and in this case the
855 checksum options are not required and if specified will
865 description: URL is a location of an image to deploy.
871 description: The Raid set by the user
874 description: The list of logical disks for hardware RAID,
875 if rootDeviceHints isn't used, first volume is root volume.
876 You can set the value of this field to `[]` to clear all
877 the hardware RAID configurations.
879 description: HardwareRAIDVolume defines the desired configuration
880 of volume in hardware RAID
883 description: 'RAID level for the logical disk. The following
884 levels are supported: 0;1;2;5;6;1+0;5+0;6+0.'
896 description: Name of the volume. Should be unique within
897 the Node. If not specified, volume name will be auto-generated.
900 numberOfPhysicalDisks:
901 description: Integer, number of physical disks to use
902 for the logical disk. Defaults to minimum number of
903 disks required for the particular RAID level.
907 description: Select disks with only rotational or solid-state
911 description: Size (Integer) of the logical disk to be
912 created in GiB. If unspecified or set be 0, the maximum
913 capacity of disk will be used for logical disk.
922 description: The list of logical disks for software RAID,
923 if rootDeviceHints isn't used, first volume is root volume.
924 If HardwareRAIDVolumes is set this item will be invalid.
925 The number of created Software RAID devices must be 1 or
926 2. If there is only one Software RAID device, it has to
927 be a RAID-1. If there are two, the first one has to be a
928 RAID-1, while the RAID level for the second one can be 0,
929 1, or 1+0. As the first RAID device will be the deployment
930 device, enforcing a RAID-1 reduces the risk of ending up
931 with a non-booting node in case of a disk failure. Software
932 RAID will always be deleted.
934 description: SoftwareRAIDVolume defines the desired configuration
935 of volume in software RAID
938 description: 'RAID level for the logical disk. The following
939 levels are supported: 0;1;1+0.'
946 description: A list of device hints, the number of items
947 should be greater than or equal to 2.
949 description: RootDeviceHints holds the hints for specifying
950 the storage location for the root filesystem for
954 description: A Linux device name like "/dev/vda".
955 The hint must match the actual value exactly.
958 description: A SCSI bus address like 0:0:0:0.
959 The hint must match the actual value exactly.
962 description: The minimum size of the device in
967 description: A vendor-specific device identifier.
968 The hint can be a substring of the actual value.
971 description: True if the device should use spinning
972 media, false otherwise.
975 description: Device serial number. The hint must
976 match the actual value exactly.
979 description: The name of the vendor or manufacturer
980 of the device. The hint can be a substring of
984 description: Unique storage identifier. The hint
985 must match the actual value exactly.
988 description: Unique vendor storage identifier.
989 The hint must match the actual value exactly.
992 description: Unique storage identifier with the
993 vendor extension appended. The hint must match
994 the actual value exactly.
1000 description: Size (Integer) of the logical disk to be
1001 created in GiB. If unspecified or set be 0, the maximum
1002 capacity of disk will be used for logical disk.
1013 description: The RootDevicehints set by the user
1016 description: A Linux device name like "/dev/vda". The hint
1017 must match the actual value exactly.
1020 description: A SCSI bus address like 0:0:0:0. The hint must
1021 match the actual value exactly.
1024 description: The minimum size of the device in Gigabytes.
1028 description: A vendor-specific device identifier. The hint
1029 can be a substring of the actual value.
1032 description: True if the device should use spinning media,
1036 description: Device serial number. The hint must match the
1037 actual value exactly.
1040 description: The name of the vendor or manufacturer of the
1041 device. The hint can be a substring of the actual value.
1044 description: Unique storage identifier. The hint must match
1045 the actual value exactly.
1048 description: Unique vendor storage identifier. The hint must
1049 match the actual value exactly.
1052 description: Unique storage identifier with the vendor extension
1053 appended. The hint must match the actual value exactly.
1057 description: An indiciator for what the provisioner is doing with
1065 description: the last credentials we sent to the provisioning backend
1068 description: SecretReference represents a Secret Reference. It
1069 has enough information to retrieve secret in any namespace
1072 description: Name is unique within a namespace to reference
1076 description: Namespace defines the space within which the
1077 secret name must be unique.