MachineInventory [elemental.cattle.io/v1beta1]
MachineInventory 是物理主机的长期身份对象。它由 elemental-register 在主机启动 seed ISO 后创建,并会在重新 provision 过程中持续保留——BaremetalMachine 仅在一个 Kubernetes 节点的生命周期内借用它。由 Inventory 拥有的 managed data volumes 也会在该临时 Machine 被删除后继续保留。
裸金属 provider 及其主机侧 observer 使用该资源的以下部分:
metadata.name— 必须出现在MachineInventoryPool.spec.machineInventories[].name条目中,主机才可被分配。spec.observedNetwork— 仅 Alauda fork 可用的字段,在注册期间采集;provider 会在每次重新 provision 时将其回放为 cloud-initnetwork-configv2,因此主机会以与首次编目时相同的网卡 / bond / VLAN / IP 布局重新启动。spec.storage— 可选的、由 operator 编写的期望状态,最多支持 32 个由 Inventory 拥有的数据卷。它通过稳定 ID 选择设备,定义Adopt或InitializeIfBlank、XFS 或 ext4、挂载路径、所需行为以及重试 nonce。status.observedStorage— 由elemental-storage-observer.service报告的客观设备、标识、签名、文件系统、挂载、multipath 健康状态以及 observation watermark。status.storage— provider 拥有的生命周期状态和用于 Prepare、Activate、Deactivate 和 Release 的 journal,包括已应用的 volume 标识以及StoragePrepared/StorageActiveconditions。
provider 还会写入 metadata.annotations(baremetal.alauda.io/owner-* 和 storage plan-claim 元数据),更新 status.plan / status.conditions,并通过该 Inventory 的默认 plan Secret 对 storage-prepare、reprovision、clean 和 storage-release 工作进行串行化处理。
InitializeIfBlank 在其目标为空时具有破坏性。准入需要一个与当前 Inventory UID、规范化 storage hash 以及单调递增计数器绑定的 approval,并且还需要对虚拟 machineinventories/storageinitialize subresource 的 update 授权。请使用匹配的 storagectl 二进制文件创建原子 patch;不要手动计算或编辑该 approval。
有关设备选择规则、生命周期语义、兼容性边界以及完整示例,请参见 在裸金属主机上管理数据磁盘。
- 类型
object
规格
.spec
- 类型
object
.spec.ipAddressClaims
- 描述
- IPAddressClaims is a map of IPAddressClaim associated to this machine. The map key is the ipAddressPool.name.
- 类型
object
.spec.ipAddressPools
- 描述
- IPAddressPools is a list of IPAddressPool associated to this machine.
- 类型
object
.spec.network
- 描述
- NetworkConfig is the final NetworkConfig.
- 类型
object
.spec.network.ipAddresses
- 描述
- IPAddresses contains a map of claimed IPAddresses
- 类型
object
.spec.observedNetwork
- 描述
- ObservedNetwork is a live-ISO-side snapshot of the host's actual network configuration uploaded by elemental-register during initial registration (Alauda fork). It is informational only and is intentionally kept separate from Network (the target/template network). Consumers such as baremetal providers can read this to know what the host looked like before install-time network reconfiguration.
- 类型
object
.spec.observedNetwork.dnsServers
- 描述
- DNSServers observed (typically from /etc/resolv.conf).
- 类型
array
.spec.observedNetwork.dnsServers[]
- 类型
string
.spec.observedNetwork.interfaces
- 描述
- Interfaces observed on the host.
- 类型
array
.spec.observedNetwork.interfaces[]
- 描述
- ObservedInterface describes a single network interface on the host.
- 类型
object- 必填
name
.spec.observedNetwork.interfaces[].addresses
- 描述
- Addresses assigned to the interface, in CIDR form (e.g. 10.0.0.5/24, fe80::1/64). Both IPv4 and IPv6 may appear.
- 类型
array
.spec.observedNetwork.interfaces[].addresses[]
- 类型
string
.spec.observedNetwork.routes
- 描述
- Routes observed in the host's routing table.
- 类型
array
.spec.observedNetwork.routes[]
- 描述
- ObservedRoute describes a single routing table entry.
- 类型
object- 必填
destination
.spec.observedNetwork.searchDomains
- 描述
- SearchDomains observed.
- 类型
array
.spec.observedNetwork.searchDomains[]
- 类型
string
.spec.storage
- 描述
- Storage is the explicit desired state for Inventory-owned data volumes. Devices omitted from this list remain unmanaged.
- 类型
object
.spec.storage.volumes
- 描述
- Volumes are the only block devices the platform may manage.
- 类型
array
.spec.storage.volumes[]
- 描述
- MachineInventoryStorageVolume declares one filesystem and its business mount point on this Inventory.
- 类型
object- 必填
filesystemmountnamesource
.spec.storage.volumes[].filesystem
- 描述
- StorageVolumeFilesystem declares filesystem adoption/initialization intent.
- 类型
object- 必填
policytype
.spec.storage.volumes[].mount
- 描述
- StorageVolumeMount declares the business mount path and readiness policy.
- 类型
object- 必填
path
.spec.storage.volumes[].mount.options
- 描述
- Options contains individual, admission-whitelisted mount options.
- 类型
array
.spec.storage.volumes[].mount.options[]
- 类型
string
.spec.storage.volumes[].source
- 描述
- StorageVolumeSource selects one observer-reported logical block device.
- 类型
object- 必填
deviceID
.spec.storage.volumes[].source.multipath
- 描述
- Multipath is valid only for a wwid: aggregate map.
- 类型
object
.status
- 类型
object
.status.conditions
- 描述
- Conditions describe the state of the machine inventory object.
- 类型
array
.status.conditions[]
- 描述
- Condition contains details for one aspect of the current state of this API Resource.
- 类型
object- 必填
lastTransitionTimemessagereasonstatustype
.status.observedStorage
- 描述
- ObservedStorage is objective host state written only by the authenticated periodic observer channel.
- 类型
object
.status.observedStorage.devices
- 描述
- Devices contains facts for all discovered logical block devices.
- 类型
array
.status.observedStorage.devices[]
- 描述
- ObservedStorageDevice describes one logical block device and its topology.
- 类型
object- 必填
idkindsystemRole
.status.observedStorage.devices[].consumers
- 描述
- Consumers contains descendant block devices layered on this logical device (for example partitions, dm-crypt, LVM or RAID). These are objective topology facts; provider policy decides whether they make the device ineligible for management.
- 类型
array
.status.observedStorage.devices[].consumers[]
- 描述
- ObservedStorageConsumer describes one descendant block consumer. Path is diagnostic only; Type and FilesystemType are the kernel/util-linux facts.
- 类型
object- 必填
pathtype
.status.observedStorage.devices[].consumers[].mounts
- 类型
array
.status.observedStorage.devices[].consumers[].mounts[]
- 类型
string
.status.observedStorage.devices[].filesystem
- 描述
- ObservedStorageFilesystem describes an existing filesystem.
- 类型
object- 必填
type
.status.observedStorage.devices[].health
- 描述
- ObservedStorageMultipathHealth reports aggregate path health.
- 类型
object
.status.observedStorage.devices[].memberIDs
- 描述
- MemberIDs lists Multipath member-path diagnostic identities. Members are never valid desired device IDs.
- 类型
array
.status.observedStorage.devices[].memberIDs[]
- 类型
string
.status.observedStorage.devices[].mounts
- 类型
array
.status.observedStorage.devices[].mounts[]
- 描述
- ObservedStorageMount describes a current mount of this exact logical device.
- 类型
object- 必填
path
.status.observedStorage.devices[].mounts[].options
- 类型
array
.status.observedStorage.devices[].mounts[].options[]
- 类型
string
.status.observedStorage.devices[].signatures
- 类型
array
.status.observedStorage.devices[].signatures[]
- 描述
- ObservedStorageSignature is one wipefs/lsblk signature fact.
- 类型
object- 必填
typevalue
.status.observedStorage.devices[].stablePaths
- 描述
- StablePaths are current udev aliases for diagnostics/resolution.
- 类型
array
.status.observedStorage.devices[].stablePaths[]
- 类型
string
.status.observedStorage.devices[].systemEvidence
- 类型
array
.status.observedStorage.devices[].systemEvidence[]
- 类型
string
.status.plan
- 描述
- PlanStatus reflect the status of the plan owned by the machine inventory object.
- 类型
object
.status.plan.secretRef
- 描述
- PlanSecretRef a reference to the created plan secret.
- 类型
object
.status.storage
- 描述
- Storage is desired-state convergence written only by the baremetal provider Inventory Storage Reconciler.
- 类型
object
.status.storage.appliedVolumes
- 类型
array
.status.storage.appliedVolumes[]
- 描述
- ManagedStorageVolumeStatus is a complete cleanup-capable snapshot of one managed volume, not merely a diagnostic summary.
- 类型
object- 必填
deviceIDeffectiveRequiredfilesystemPolicyfilesystemTypemountPathnamerequired
.status.storage.appliedVolumes[].mountOptions
- 类型
array
.status.storage.appliedVolumes[].mountOptions[]
- 类型
string
.status.storage.conditions
- 类型
array
.status.storage.conditions[]
- 描述
- Condition contains details for one aspect of the current state of this API Resource.
- 类型
object- 必填
lastTransitionTimemessagereasonstatustype
.status.storage.operation
- 描述
- StorageOperationStatus is the durable controller journal projection for a logical operation and its current execution attempt.
- 类型
object- 必填
attemptIDmutationStateoperationIDphaseplanOwnerKindplanOwnerUIDretryNoncestartedAttargetSpecHashtypeupdatedAt
.status.storage.operation.volumes
- 类型
array
.status.storage.operation.volumes[]
- 描述
- ManagedStorageVolumeStatus is a complete cleanup-capable snapshot of one managed volume, not merely a diagnostic summary.
- 类型
object- 必填
deviceIDeffectiveRequiredfilesystemPolicyfilesystemTypemountPathnamerequired
.status.storage.operation.volumes[].mountOptions
- 类型
array
.status.storage.operation.volumes[].mountOptions[]
- 类型
string
API 端点
可用的 API 端点如下:
/apis/elemental.cattle.io/v1beta1/namespaces/{namespace}/machineinventoriesDELETE: delete collection of MachineInventoryGET: list objects of kind MachineInventoryPOST: create a new MachineInventory
/apis/elemental.cattle.io/v1beta1/namespaces/{namespace}/machineinventories/{name}DELETE: delete the specified MachineInventoryGET: read the specified MachineInventoryPATCH: partially update the specified MachineInventoryPUT: replace the specified MachineInventory
/apis/elemental.cattle.io/v1beta1/namespaces/{namespace}/machineinventories/{name}/statusGET: read status of the specified MachineInventoryPATCH: partially update status of the specified MachineInventoryPUT: replace status of the specified MachineInventory
/apis/elemental.cattle.io/v1beta1/namespaces/{namespace}/machineinventories
- HTTP 方法
DELETE- 描述
- delete collection of MachineInventory
- HTTP 响应
- HTTP 方法
GET- 描述
- list objects of kind MachineInventory
- HTTP 响应
- HTTP 方法
POST- 描述
- create a new MachineInventory
- 查询参数
- 请求体参数
- HTTP 响应
/apis/elemental.cattle.io/v1beta1/namespaces/{namespace}/machineinventories/{name}
- HTTP 方法
DELETE- 描述
- delete the specified MachineInventory
- 查询参数
- HTTP 响应
- HTTP 方法
GET- 描述
- read the specified MachineInventory
- HTTP 响应
- HTTP 方法
PATCH- 描述
- partially update the specified MachineInventory
- 查询参数
- HTTP 响应
- HTTP 方法
PUT- 描述
- replace the specified MachineInventory
- 查询参数
- 请求体参数
- HTTP 响应
/apis/elemental.cattle.io/v1beta1/namespaces/{namespace}/machineinventories/{name}/status
- HTTP 方法
GET- 描述
- read status of the specified MachineInventory
- HTTP 响应
- HTTP 方法
PATCH- 描述
- partially update status of the specified MachineInventory
- 查询参数
- HTTP 响应
- HTTP 方法
PUT- 描述
- replace status of the specified MachineInventory
- 查询参数
- 请求体参数
- HTTP 响应