Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the kvm v1 API group +kubebuilder:ac:generate=true +kubebuilder:ac:output:package=../../applyconfigurations +kubebuilder:object:generate=true +groupName=kvm.cloud.sap
Index ¶
- Constants
- Variables
- type Aggregate
- type Capabilities
- type Cell
- type DomainCapabilities
- type Eviction
- type EvictionList
- type EvictionSpec
- type EvictionStatus
- type HyperVisorUpdateStatus
- type Hypervisor
- type HypervisorList
- type HypervisorSpec
- type HypervisorStatus
- type Instance
- type OperatingSystemStatus
- type ResourceName
Constants ¶
const ( // ConditionTypeMigration is the type of condition for migration status of a server ConditionTypeMigration = "MigratingInstance" // ConditionTypePreflight is a condition for preflight checks, e.g. OS Hypervisor validation ConditionTypePreflight = "PreflightChecksSucceeded" // ConditionTypeHypervisorReEnabled is the type of condition for hypervisor re-enabled status ConditionTypeHypervisorReEnabled = "HypervisorReEnabled" // ConditionTypeHypervisorDisabled is the type of condition for hypervisor disabled status ConditionTypeHypervisorDisabled = "HypervisorDisabled" // ConditionTypeHaEnabled is the type of condition for signalling if HA is enabled / disabled for the hypervisor ConditionTypeHaEnabled = "HaEnabled" // ConditionTypeEvicting is the type of condition for eviction status ConditionTypeEvicting = "Evicting" )
Eviction Condition Types type of condition in CamelCase or in foo.example.com/CamelCase.
const ( // ConditionReasonRunning means the eviction is currently running ConditionReasonRunning string = "Running" // ConditionReasonFailed means the eviction has failed ConditionReasonFailed string = "Failed" // ConditionReasonSucceeded means the eviction has succeeded ConditionReasonSucceeded string = "Succeeded" )
Condition Reasons
const ( // ConditionTypeOnboarding is the type of condition for onboarding status ConditionTypeOnboarding = "Onboarding" // ConditionTypeOffboarded is the type of condition for the completed offboarding ConditionTypeOffboarded = "Offboarded" // ConditionTypeReady is the type of condition for ready status of a hypervisor ConditionTypeReady = "Ready" // ConditionTypeTerminating is the type of condition for terminating status of a hypervisor ConditionTypeTerminating = "Terminating" // ConditionTypeTainted is the type of condition for tainted status of a hypervisor ConditionTypeTainted = "Tainted" // ConditionTypeTraitsUpdated is the type of condition for traits updated status of a hypervisor ConditionTypeTraitsUpdated = "TraitsUpdated" // ConditionTypeAggregatesUpdated is the type of condition for aggregates updated status of a hypervisor ConditionTypeAggregatesUpdated = "AggregatesUpdated" )
Hypervisor Condition Types type of condition in CamelCase or in foo.example.com/CamelCase.
const ( // ConditionTypeReady reasons ConditionReasonReadyReady = "Ready" ConditionReasonReadyMaintenance = "Maintenance" ConditionReasonReadyEvicted = "Evicted" ConditionReasonReadyEvicting = "Evicting" // ConditionTypeOnboarding reasons ConditionReasonInitial = "Initial" ConditionReasonOnboarding = "Onboarding" ConditionReasonTesting = "Testing" ConditionReasonHandover = "Handover" // Indicates that the onboarding is almost completed, save for other controllers doing their part ConditionReasonAborted = "Aborted" // ConditionTypeAggregatesUpdated reasons // Note: ConditionReasonSucceeded and ConditionReasonFailed are shared with eviction_types.go ConditionReasonTestAggregates = "TestAggregates" ConditionReasonTerminating = "Terminating" ConditionReasonEvictionInProgress = "EvictionInProgress" ConditionReasonWaitingForTraits = "WaitingForTraits" // ConditionTypeHaEnabled reasons ConditionReasonHaEvicted = "Evicted" // HA disabled due to eviction ConditionReasonHaOnboarding = "Onboarding" // HA disabled during onboarding )
Condition Reasons The value should be a CamelCase string.
const ( // HypervisorMaintenance "enum" MaintenanceUnset = "" MaintenanceManual = "manual" // manual maintenance mode by external user MaintenanceAuto = "auto" // automatic maintenance mode MaintenanceHA = "ha" // high availability maintenance mode MaintenanceTermination = "termination" // internal use only, when node is terminating state )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "kvm.cloud.sap", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme // Workaround: https://github.com/kubernetes-sigs/controller-tools/issues/1193 SchemeGroupVersion = GroupVersion )
Functions ¶
This section is empty.
Types ¶
type Aggregate ¶
type Aggregate struct {
// Name is the name of the aggregate.
Name string `json:"name"`
// UUID is the unique identifier of the aggregate.
UUID string `json:"uuid"`
}
Aggregate represents an OpenStack aggregate with its name and UUID.
func (*Aggregate) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Aggregate.
func (*Aggregate) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Capabilities ¶
type Capabilities struct {
// +kubebuilder:default:=unknown
// The hosts CPU architecture (not the guests).
HostCpuArch string `json:"cpuArch,omitempty"`
// Total host memory available as a sum of memory over all numa cells.
HostMemory resource.Quantity `json:"memory,omitempty"`
// Total host cpus available as a sum of cpus over all numa cells.
HostCpus resource.Quantity `json:"cpus,omitempty"`
}
Capabilities of the hypervisor as reported by libvirt.
func (*Capabilities) DeepCopy ¶
func (in *Capabilities) DeepCopy() *Capabilities
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Capabilities.
func (*Capabilities) DeepCopyInto ¶
func (in *Capabilities) DeepCopyInto(out *Capabilities)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Cell ¶
type Cell struct {
// Cell ID.
CellID uint64 `json:"cellID"`
// Auto-discovered resource allocation of all hosted VMs in this cell.
// +kubebuilder:validation:Optional
Allocation map[ResourceName]resource.Quantity `json:"allocation"`
// Auto-discovered capacity of this cell.
//
// Note that this capacity does not include the applied overcommit ratios,
// and represents the actual capacity of the cell. Use the effective capacity
// field to get the capacity considering the applied overcommit ratios.
//
// +kubebuilder:validation:Optional
Capacity map[ResourceName]resource.Quantity `json:"capacity"`
// Auto-discovered capacity of this cell, considering the
// applied overcommit ratios.
//
// In case no overcommit ratio is specified for a resource type, the default
// overcommit ratio of 1 should be applied, meaning the effective capacity
// is the same as the actual capacity.
//
// If the overcommit ratio results in a fractional effective capacity, the
// effective capacity is expected to be rounded down.
//
// +kubebuilder:validation:Optional
EffectiveCapacity map[ResourceName]resource.Quantity `json:"effectiveCapacity,omitempty"`
}
Cell represents a NUMA cell on the hypervisor.
func (*Cell) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cell.
func (*Cell) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DomainCapabilities ¶
type DomainCapabilities struct {
// The available domain cpu architecture.
// +kubebuilder:default:=unknown
Arch string `json:"arch,omitempty"`
// The supported type of virtualization for domains, such as "ch".
// +kubebuilder:default:=unknown
HypervisorType string `json:"hypervisorType,omitempty"`
// Supported devices for domains.
//
// The format of this list is the device type, and if specified, a specific
// model. For example, the take the following xml domain device definition:
//
// <video supported='yes'>
// <enum name='modelType'>
// <value>nvidia</value>
// </enum>
// </video>
//
// The corresponding entries in this list would be "video" and "video/nvidia".
//
// +kubebuilder:default:={}
SupportedDevices []string `json:"supportedDevices,omitempty"`
// Supported cpu modes for domains.
//
// The format of this list is cpu mode, and if specified, a specific
// submode. For example, the take the following xml domain cpu definition:
//
// <mode name='host-passthrough' supported='yes'>
// <enum name='hostPassthroughMigratable'/>
// </mode>
//
// The corresponding entries in this list would be "host-passthrough" and
// "host-passthrough/migratable".
//
// +kubebuilder:default:={}
SupportedCpuModes []string `json:"supportedCpuModes,omitempty"`
// Supported features for domains, such as "sev" or "sgx".
//
// This is a flat list of supported features, meaning the following xml:
//
// <features>
// <sev supported='no'/>
// <sgx supported='no'/>
// </features>
//
// Would correspond to the entries "sev" and "sgx" in this list.
//
// +kubebuilder:default:={}
SupportedFeatures []string `json:"supportedFeatures,omitempty"`
}
Domain capabilities of the hypervisor as reported by libvirt. These details are relevant to check if a VM can be scheduled on the hypervisor.
func (*DomainCapabilities) DeepCopy ¶
func (in *DomainCapabilities) DeepCopy() *DomainCapabilities
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainCapabilities.
func (*DomainCapabilities) DeepCopyInto ¶
func (in *DomainCapabilities) DeepCopyInto(out *DomainCapabilities)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Eviction ¶
type Eviction struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec EvictionSpec `json:"spec,omitempty"`
Status EvictionStatus `json:"status,omitempty"`
}
Eviction is the Schema for the evictions API
func (*Eviction) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Eviction.
func (*Eviction) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Eviction) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EvictionList ¶
type EvictionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Eviction `json:"items"`
}
EvictionList contains a list of Eviction
func (*EvictionList) DeepCopy ¶
func (in *EvictionList) DeepCopy() *EvictionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EvictionList.
func (*EvictionList) DeepCopyInto ¶
func (in *EvictionList) DeepCopyInto(out *EvictionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EvictionList) DeepCopyObject ¶
func (in *EvictionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EvictionSpec ¶
type EvictionSpec struct {
// Name of hypervisor to evict
Hypervisor string `json:"hypervisor"`
// Reason for eviction, always required
Reason string `json:"reason"`
}
EvictionSpec defines the desired state of Eviction
func (*EvictionSpec) DeepCopy ¶
func (in *EvictionSpec) DeepCopy() *EvictionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EvictionSpec.
func (*EvictionSpec) DeepCopyInto ¶
func (in *EvictionSpec) DeepCopyInto(out *EvictionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EvictionStatus ¶
type EvictionStatus struct {
// +kubebuilder:validation:Optional
HypervisorServiceId string `json:"hypervisorServiceId"`
// +kubebuilder:validation:Optional
// +kubebuilder:default=0
OutstandingRamMb int64 `json:"outstandingRamMb"`
// +kubebuilder:validation:Optional
OutstandingInstances []string `json:"outstandingInstances"`
// Conditions is an array of current conditions
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
EvictionStatus defines the observed state of Eviction
func (*EvictionStatus) DeepCopy ¶
func (in *EvictionStatus) DeepCopy() *EvictionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EvictionStatus.
func (*EvictionStatus) DeepCopyInto ¶
func (in *EvictionStatus) DeepCopyInto(out *EvictionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HyperVisorUpdateStatus ¶
type HyperVisorUpdateStatus struct {
// +kubebuilder:default:=false
// Represents a running Operating System update.
InProgress bool `json:"inProgress"`
// +kubebuilder:default:=unknown
// Represents the Operating System installed update version.
Installed string `json:"installed,omitempty"`
// +kubebuilder:default:=3
// Represents the number of retries.
Retry int `json:"retry"`
}
func (*HyperVisorUpdateStatus) DeepCopy ¶
func (in *HyperVisorUpdateStatus) DeepCopy() *HyperVisorUpdateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HyperVisorUpdateStatus.
func (*HyperVisorUpdateStatus) DeepCopyInto ¶
func (in *HyperVisorUpdateStatus) DeepCopyInto(out *HyperVisorUpdateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Hypervisor ¶
type Hypervisor struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HypervisorSpec `json:"spec,omitempty"`
Status HypervisorStatus `json:"status,omitempty"`
}
Hypervisor is the Schema for the hypervisors API
func (*Hypervisor) DeepCopy ¶
func (in *Hypervisor) DeepCopy() *Hypervisor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hypervisor.
func (*Hypervisor) DeepCopyInto ¶
func (in *Hypervisor) DeepCopyInto(out *Hypervisor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Hypervisor) DeepCopyObject ¶
func (in *Hypervisor) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HypervisorList ¶
type HypervisorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Hypervisor `json:"items"`
}
HypervisorList contains a list of Hypervisor
func (*HypervisorList) DeepCopy ¶
func (in *HypervisorList) DeepCopy() *HypervisorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HypervisorList.
func (*HypervisorList) DeepCopyInto ¶
func (in *HypervisorList) DeepCopyInto(out *HypervisorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HypervisorList) DeepCopyObject ¶
func (in *HypervisorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HypervisorSpec ¶
type HypervisorSpec struct {
// +kubebuilder:validation:Optional
// OperatingSystemVersion represents the desired operating system version.
OperatingSystemVersion string `json:"version,omitempty"`
// +kubebuilder:default:=false
// Reboot request an reboot after successful installation of an upgrade.
Reboot bool `json:"reboot"`
// +kubebuilder:default:=true
// EvacuateOnReboot request an evacuation of all instances before reboot.
EvacuateOnReboot bool `json:"evacuateOnReboot"`
// +kubebuilder:default:=true
// LifecycleEnabled enables the lifecycle management of the hypervisor via hypervisor-operator.
LifecycleEnabled bool `json:"lifecycleEnabled"`
// +kubebuilder:default:=false
// SkipTests skips the tests during the onboarding process.
SkipTests bool `json:"skipTests"`
// +kubebuilder:default:={}
// CustomTraits are used to apply custom traits to the hypervisor.
CustomTraits []string `json:"customTraits"`
// +kubebuilder:default:={}
// Aggregates are used to apply aggregates to the hypervisor.
Aggregates []string `json:"aggregates"`
// +kubebuilder:default:={}
// AllowedProjects defines which openstack projects are allowed to schedule
// instances on this hypervisor. The values of this list should be project
// uuids. If left empty, all projects are allowed.
AllowedProjects []string `json:"allowedProjects"`
// +kubebuilder:default:=true
// HighAvailability is used to enable the high availability handling of the hypervisor.
HighAvailability bool `json:"highAvailability"`
// +kubebuilder:default:=false
// Require to issue a certificate from cert-manager for the hypervisor, to be used for
// secure communication with the libvirt API.
CreateCertManagerCertificate bool `json:"createCertManagerCertificate"`
// +kubebuilder:default:=true
// InstallCertificate is used to enable the installations of the certificates via kvm-node-agent.
InstallCertificate bool `json:"installCertificate"`
// +kubebuilder:optional
// +kubebuilder:validation:Enum:="";manual;auto;ha;termination
// Maintenance indicates whether the hypervisor is in maintenance mode.
Maintenance string `json:"maintenance,omitempty"`
// +kubebuilder:optional
// MaintenanceReason provides the reason for manual maintenance mode.
MaintenanceReason string `json:"maintenanceReason,omitempty"`
// Overcommit specifies the desired overcommit ratio by resource type.
//
// If no overcommit is specified for a resource type, the default overcommit
// ratio of 1.0 should be applied, i.e. the effective capacity is the same
// as the actual capacity.
//
// If the overcommit ratio results in a fractional effective capacity,
// the effective capacity is expected to be rounded down. This allows
// gradually adjusting the hypervisor capacity.
//
// +kubebuilder:validation:Optional
//
// It is validated that all overcommit ratios are greater than or equal to
// 1.0, if specified. For this we don't need extra validating webhooks.
// See: https://kubernetes.io/blog/2022/09/23/crd-validation-rules-beta/#crd-transition-rules
// +kubebuilder:validation:XValidation:rule="self.all(k, self[k] >= 1.0)",message="overcommit ratios must be >= 1.0"
Overcommit map[ResourceName]float64 `json:"overcommit,omitempty"`
}
HypervisorSpec defines the desired state of Hypervisor +kubebuilder:validation:XValidation:rule="!has(oldSelf.maintenance) || oldSelf.maintenance != 'termination' || self.maintenance == 'ha' || self == oldSelf",message="spec is immutable when maintenance is 'termination'; can only change maintenance to 'ha'" +kubebuilder:validation:XValidation:rule="!has(self.maintenance) || self.maintenance != 'manual' || (has(self.maintenanceReason) && self.maintenanceReason.size() > 0)",message="maintenanceReason must be non-empty when maintenance is 'manual'"
func (*HypervisorSpec) DeepCopy ¶
func (in *HypervisorSpec) DeepCopy() *HypervisorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HypervisorSpec.
func (*HypervisorSpec) DeepCopyInto ¶
func (in *HypervisorSpec) DeepCopyInto(out *HypervisorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HypervisorStatus ¶
type HypervisorStatus struct {
// +kubebuilder:default:=unknown
// Represents the LibVirt version.
LibVirtVersion string `json:"libVirtVersion,omitempty"`
// +kubebuilder:default:=unknown
// Represents the Hypervisor version
HypervisorVersion string `json:"hypervisorVersion,omitempty"`
// Represents the Operating System status.
OperatingSystem OperatingSystemStatus `json:"operatingSystem,omitempty"`
// Represents the Hypervisor update status.
Update HyperVisorUpdateStatus `json:"updateStatus,omitempty"`
// Represents the Hypervisor hosted Virtual Machines
Instances []Instance `json:"instances,omitempty"`
// Auto-discovered capabilities as reported by libvirt.
// +kubebuilder:validation:Optional
Capabilities Capabilities `json:"capabilities"`
// Auto-discovered domain capabilities relevant to check if a VM
// can be scheduled on the hypervisor.
// +kubebuilder:validation:Optional
DomainCapabilities DomainCapabilities `json:"domainCapabilities"`
// Auto-discovered resource allocation of all hosted VMs.
// +kubebuilder:validation:Optional
Allocation map[ResourceName]resource.Quantity `json:"allocation"`
// Auto-discovered capacity of the hypervisor.
//
// Note that this capacity does not include the applied overcommit ratios,
// and represents the actual capacity of the hypervisor. Use the
// effective capacity field to get the capacity considering the applied
// overcommit ratios.
//
// +kubebuilder:validation:Optional
Capacity map[ResourceName]resource.Quantity `json:"capacity"`
// Auto-discovered capacity of the hypervisor, considering the
// applied overcommit ratios.
//
// In case no overcommit ratio is specified for a resource type, the default
// overcommit ratio of 1 should be applied, meaning the effective capacity
// is the same as the actual capacity.
//
// If the overcommit ratio results in a fractional effective capacity, the
// effective capacity is expected to be rounded down.
//
// +kubebuilder:validation:Optional
EffectiveCapacity map[ResourceName]resource.Quantity `json:"effectiveCapacity,omitempty"`
// Auto-discovered cells on this hypervisor.
// +kubebuilder:validation:Optional
Cells []Cell `json:"cells,omitempty"`
// +kubebuilder:default:=0
// Represent the num of instances
NumInstances int `json:"numInstances"`
// HypervisorID is the unique identifier of the hypervisor in OpenStack.
HypervisorID string `json:"hypervisorId,omitempty"`
// ServiceID is the unique identifier of the compute service in OpenStack.
ServiceID string `json:"serviceId,omitempty"`
// Traits are the applied traits of the hypervisor.
Traits []string `json:"traits,omitempty"`
// Aggregates are the applied aggregates of the hypervisor with their names and UUIDs.
Aggregates []Aggregate `json:"aggregates,omitempty"`
// InternalIP is the internal IP address of the hypervisor.
InternalIP string `json:"internalIp,omitempty"`
// Evicted indicates whether the hypervisor is evicted. (no instances left with active maintenance mode)
Evicted bool `json:"evicted,omitempty"`
// Represents the Hypervisor node conditions.
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
SpecHash string `json:"specHash,omitempty"`
}
HypervisorStatus defines the observed state of Hypervisor
func (*HypervisorStatus) DeepCopy ¶
func (in *HypervisorStatus) DeepCopy() *HypervisorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HypervisorStatus.
func (*HypervisorStatus) DeepCopyInto ¶
func (in *HypervisorStatus) DeepCopyInto(out *HypervisorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Instance ¶
type Instance struct {
// Represents the instance ID (uuidv4).
ID string `json:"id"`
// Represents the instance name.
Name string `json:"name"`
// Represents the instance state.
Active bool `json:"active"`
}
func (*Instance) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.
func (*Instance) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperatingSystemStatus ¶
type OperatingSystemStatus struct {
// Represents the Operating System version.
Version string `json:"version,omitempty"`
// Identifying a specific variant or edition of the operating system
VariantID string `json:"variantID,omitempty"`
// PrettyVersion
PrettyVersion string `json:"prettyVersion,omitempty"`
// KernelName
KernelName string `json:"kernelName,omitempty"`
// KernelRelease
KernelRelease string `json:"kernelRelease,omitempty"`
// KernelVersion
KernelVersion string `json:"kernelVersion,omitempty"`
// KernelCommandLine contains the raw kernel boot parameters from /proc/cmdline.
KernelCommandLine string `json:"kernelCommandLine,omitempty"`
// HardwareVendor
HardwareVendor string `json:"hardwareVendor,omitempty"`
// HardwareModel
HardwareModel string `json:"hardwareModel,omitempty"`
// HardwareSerial
HardwareSerial string `json:"hardwareSerial,omitempty"`
// FirmwareVersion
FirmwareVersion string `json:"firmwareVersion,omitempty"`
// FirmwareVendor
FirmwareVendor string `json:"firmwareVendor,omitempty"`
// FirmwareDate
FirmwareDate metav1.Time `json:"firmwareDate,omitempty"`
// Represents the Garden Linux build commit id
GardenLinuxCommitID string `json:"gardenLinuxCommitID,omitempty"`
// Represents the Garden Linux Feature Set
GardenLinuxFeatures []string `json:"gardenLinuxFeatures,omitempty"`
}
func (*OperatingSystemStatus) DeepCopy ¶
func (in *OperatingSystemStatus) DeepCopy() *OperatingSystemStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatingSystemStatus.
func (*OperatingSystemStatus) DeepCopyInto ¶
func (in *OperatingSystemStatus) DeepCopyInto(out *OperatingSystemStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceName ¶
type ResourceName string
ResourceName is the name identifying a hypervisor resource. Note: this type is similar to the type defined in the kubernetes core api, but may be extended to support additional resource types in the future. See: https://github.com/kubernetes/api/blob/7e7aaba/core/v1/types.go#L6954-L6970
const ( // CPU, in cores. Note that currently, it is not supported to provide // fractional cpu resources, such as 500m for 0.5 cpu. ResourceCPU ResourceName = "cpu" // Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) ResourceMemory ResourceName = "memory" )
Resource names must be not more than 63 characters, consisting of upper- or lower-case alphanumeric characters, with the -, _, and . characters allowed anywhere, except the first or last character. The default convention, matching that for annotations, is to use lower-case names, with dashes, rather than camel case, separating compound words. Fully-qualified resource typenames are constructed from a DNS-style subdomain, followed by a slash `/` and a name.