v1

package
v2.0.8+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2021 License: Apache-2.0 Imports: 28 Imported by: 14

Documentation

Overview

Package v1 contains API Schema definitions for the StarlingX v1 API group.

The schema definitions contained within are based on the StarlingX API definitions which are documented at the following location:

https://docs.starlingx.io/api-ref/stx-config/index.html

The API documentation contained within this package is intended to provide additional information related directly to the usage of the Deployment Manager. There is only minimal information about the nature of each attribute to provide the reader with some context. For a more thorough explanation the API definition at the aforementioned URL should be referenced. +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +deepequal-gen=package +k8s:conversion-gen=github.com/wind-river/cloud-platform-deployment-manager/pkg/apis/starlingx +k8s:defaulter-gen=TypeMeta +groupName=starlingx.windriver.com

Package v1 contains API Schema definitions for the starlingx v1beta1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/wind-river/cloud-platform-deployment-manager/pkg/apis/starlingx +k8s:defaulter-gen=TypeMeta +groupName=starlingx.windriver.com

Index

Constants

View Source
const (
	ControllerToolsLabel   = "controller-tools.k8s.io"
	ControllerToolsVersion = "1.0"
)
View Source
const (
	// Secret map key names.
	SecretUsernameKey = "username"
	SecretPasswordKey = "password"
)
View Source
const (
	KindHost            = "Host"
	KindHostProfile     = "HostProfile"
	KindPlatformNetwork = "PlatformNetwork"
	KindDataNetwork     = "DataNetwork"
	KindSystem          = "System"
)

Defines the current list of resource kinds.

View Source
const (
	ProvioningModeStatic  = "static"
	ProvioningModeDynamic = "dynamic"
)

Defines the valid host provisioning modes

View Source
const (
	// List of valid certificate types.  These must align with the system
	// API expected values.
	PlatformCertificate    = "ssl"
	PlatformCACertificate  = "ssl_ca"
	OpenstackCertificate   = "openstack"
	OpenstackCACertificate = "openstack_ca"
	DockerCertificate      = "docker_registry"
	TPMCertificate         = "tpm_mode"
)
View Source
const (
	// List of secret data attribute keys
	SecretCertKey           = "tls.crt"
	SecretPrivKeyKey        = "tls.key"
	SecretCaCertKey         = "ca.crt"
	SecretLicenseContentKey = "content"
)
View Source
const APIVersion = Group + "/" + Version
View Source
const Group = "starlingx.windriver.com"

group defines the current in use API group.

View Source
const SystemDefaultLicenseName = "system-license"

Defines the default Secret name used for tracking license files.

View Source
const Version = "v1"

version defines the curent in use API version.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "starlingx.windriver.com", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme is required by pkg/client/...
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func NewBMSecret

func NewBMSecret(name string, namespace string, username string) (*v1.Secret, error)

func NewCertificateSecret

func NewCertificateSecret(name string, namespace string) (*v1.Secret, error)

func NewLicenseSecret

func NewLicenseSecret(name string, namespace string, content string) (*v1.Secret, error)

func NewMissingSystemResource

func NewMissingSystemResource(msg string) error

NewMissingSystemResource defines a constructor for the ErrMissingSystemResource error type.

func NewNamespace

func NewNamespace(name string) (*v1.Namespace, error)

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type AddressInfo

type AddressInfo struct {
	// Interface is a reference to the interface name against which to configure
	// the address.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Interface string `json:"interface"`

	// Address defines the IPv4 or IPv6 address value.
	Address string `json:"address"`

	// Prefix defines the IP address network prefix length.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=128
	Prefix int `json:"prefix"`
}

AddressInfo defines the attributes specific to a single address.

func (*AddressInfo) DeepCopy

func (in *AddressInfo) DeepCopy() *AddressInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressInfo.

func (*AddressInfo) DeepCopyInto

func (in *AddressInfo) DeepCopyInto(out *AddressInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddressInfo) DeepEqual

func (in *AddressInfo) DeepEqual(other *AddressInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (AddressInfo) IsKeyEqual

func (in AddressInfo) IsKeyEqual(x AddressInfo) bool

IsKeyEqual compares two interface address array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type AddressList

type AddressList []AddressInfo

AddressList defines a type to represent a slice of addresses. +deepequal-gen:unordered-array=true

func (AddressList) DeepCopy

func (in AddressList) DeepCopy() AddressList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressList.

func (AddressList) DeepCopyInto

func (in AddressList) DeepCopyInto(out *AddressList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AddressList) DeepEqual

func (in *AddressList) DeepEqual(other *AddressList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type AllocationInfo

type AllocationInfo struct {
	// Ranges defines the pools from which host addresses are allocated.   If
	// omitted addresses the entire network
	// address space is considered available.
	Ranges []AllocationRange `json:"ranges,omitempty"`

	// Type defines whether network addresses are allocated dynamically or
	// statically.
	// +kubebuilder:validation:Enum=static,dynamic
	Type string `json:"type"`

	// Order defines whether host address are allocation randomly or sequential
	// from the available pool or addresses.
	// +kubebuilder:validation:Enum=sequential,random
	// +optional
	Order *string `json:"order,omitempty"`
}

AllocationInfo defines the allocation scheme details for a network

func (*AllocationInfo) DeepCopy

func (in *AllocationInfo) DeepCopy() *AllocationInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationInfo.

func (*AllocationInfo) DeepCopyInto

func (in *AllocationInfo) DeepCopyInto(out *AllocationInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AllocationInfo) DeepEqual

func (in *AllocationInfo) DeepEqual(other *AllocationInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type AllocationRange

type AllocationRange struct {
	// Start defines the beginning of the address range (inclusively)
	Start string `json:"start"`

	// End defines the end of the address range (inclusively)
	End string `json:"end"`
}

AllocationRange defines the start and end address for an allocation range

func (*AllocationRange) DeepCopy

func (in *AllocationRange) DeepCopy() *AllocationRange

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationRange.

func (*AllocationRange) DeepCopyInto

func (in *AllocationRange) DeepCopyInto(out *AllocationRange)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AllocationRange) DeepEqual

func (in *AllocationRange) DeepEqual(other *AllocationRange) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type BMCredentials

type BMCredentials struct {
	// Password defines the attributes specific to password based
	// authentication.
	// +optional
	Password *BMPasswordInfo `json:"password,omitempty"`
}

BMCredentials defines attributes specific to each authentication type. +deepequal-gen:ignore-nil-fields=true

func (*BMCredentials) DeepCopy

func (in *BMCredentials) DeepCopy() *BMCredentials

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCredentials.

func (*BMCredentials) DeepCopyInto

func (in *BMCredentials) DeepCopyInto(out *BMCredentials)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BMCredentials) DeepEqual

func (in *BMCredentials) DeepEqual(other *BMCredentials) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type BMInfo

type BMInfo struct {
	// Type defines the board management controller type.  This is left as
	// optional so that the address can be overridden on a per-host basis
	// without worrying about overwriting the type or credentials.
	// +kubebuilder:validation:Enum=none,bmc,dynamic,ipmi,redfish
	// +optional
	Type *string `json:"type,omitempty"`

	// Address defines the IP address or hostname of the board management
	// interface.  An address is specific to a host therefore this should only
	// be set if the profile is only going to be used to configure a single
	// host; otherwise it should be set as a per-host override.
	// +optional
	Address *string `json:"address,omitempty"`

	// Credentials defines the authentication credentials for the board
	// management interface.  This is left as optional so that the address can
	// be overridden on a per-host basis without worrying about overwriting the
	// type or credentials.
	// +optional
	Credentials *BMCredentials `json:"credentials,omitempty"`
}

+deepequal-gen:ignore-nil-fields=true

func (*BMInfo) DeepCopy

func (in *BMInfo) DeepCopy() *BMInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMInfo.

func (*BMInfo) DeepCopyInto

func (in *BMInfo) DeepCopyInto(out *BMInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BMInfo) DeepEqual

func (in *BMInfo) DeepEqual(other *BMInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type BMPasswordInfo

type BMPasswordInfo struct {
	// Secret defines the name of the secret which contains the username and
	// password for the board management
	// controller.
	Secret string `json:"secret"`
}

BMPasswordInfo defines attributes specific to password based authentication.

func (*BMPasswordInfo) DeepCopy

func (in *BMPasswordInfo) DeepCopy() *BMPasswordInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMPasswordInfo.

func (*BMPasswordInfo) DeepCopyInto

func (in *BMPasswordInfo) DeepCopyInto(out *BMPasswordInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BMPasswordInfo) DeepEqual

func (in *BMPasswordInfo) DeepEqual(other *BMPasswordInfo) bool

DeepEqual overrides the code generated DeepEqual method because the credential information built from the running configuration never includes the password since the system API does not provide it. Therefore when the BMPasswordInfo is setup dynamically we put a dummy value in the Secret name which will likely never match what is in the desired configuration so there is no point in comparing it.

type BondInfo

type BondInfo struct {
	// CommonInterfaceInfo defines attributes common to all interface
	// types.
	CommonInterfaceInfo `json:",inline"`

	// Members defines the list of interfaces which, together, make up the Bond
	// interface.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Members StringList `json:"members"`

	// Mode defines the Bond interface aggregation mode.
	// +kubebuilder:validation:Enum=balanced,active_standby,802.3ad
	Mode string `json:"mode"`

	// TransmitHashPolicy defines the transmit interface selection policy for
	// the Bond interface.  Only applicable for 802.3ad and balanced modes.
	// +kubebuilder:validation:Enum=layer2,layer2+3
	// +optional
	TransmitHashPolicy *string `json:"transmitHashPolicy,omitempty"`

	// PrimaryReselect defines the reselection policy for the Bond interface.
	// Only applicable for active_standby mode.
	// +kubebuilder:valiation:Enum=always,better,failure
	// +optional
	PrimaryReselect *string `json:"primaryReselect,omitempty"`
}

BondInfo defines the attributes specific to a single Bond interface.

func (*BondInfo) DeepCopy

func (in *BondInfo) DeepCopy() *BondInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BondInfo.

func (*BondInfo) DeepCopyInto

func (in *BondInfo) DeepCopyInto(out *BondInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BondInfo) DeepEqual

func (in *BondInfo) DeepEqual(other *BondInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (BondInfo) IsKeyEqual

func (in BondInfo) IsKeyEqual(x BondInfo) bool

IsKeyEqual compares two Bond interface array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type BondList

type BondList []BondInfo

BondList defines a type to represent a slice of Bond interfaces. +deepequal-gen:unordered-array=true

func (BondList) DeepCopy

func (in BondList) DeepCopy() BondList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BondList.

func (BondList) DeepCopyInto

func (in BondList) DeepCopyInto(out *BondList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BondList) DeepEqual

func (in *BondList) DeepEqual(other *BondList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CertificateInfo

type CertificateInfo struct {
	// Type represents the intended usage of the certificate
	// +kubebuilder:validation:Enum=ssl,ssl_ca,openstack,openstack_ca,docker_registry,tpm_mode
	Type string `json:"type"`

	// Secret is the name of a TLS secret containing the public certificate and
	// private key.  The secret must be of type kubernetes.io/tls and must
	// contain specific data attributes.  Specifically, all secrets must, at a
	// minimum contain the "tls.crt" key since all certificates will at least
	// require public certificate PEM data.  The remaining two keys "tls.key"
	// and "ca.crt" are optional depending on the certificate type. For the
	// "platform", "openstack", "tpm", and "docker" certificate types both the
	// "tls.crt" and "tls.key" certificates are needed while for the "*_ca"
	// version of those same certificate types only the "tls.crt" attribute is
	// required.  The "ca.crt" attribute is only required for the "platform" or
	// "tpm" certificate types, and only if the supplied public certificate is
	// signed by a non-standard root CA.
	Secret string `json:"secret"`

	// Signature is the serial number of the certificate prepended with its
	// type. This attribute is for internal use only, when making comparisons
	Signature string `json:"-"`
}

CertificateInfo defines the attributes required to define an instance of a certificate to be installed via the system API. The structure of the system API is not uniform for all certificate types therefore some attention is required when defining these resources.

func (*CertificateInfo) DeepCopy

func (in *CertificateInfo) DeepCopy() *CertificateInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInfo.

func (*CertificateInfo) DeepCopyInto

func (in *CertificateInfo) DeepCopyInto(out *CertificateInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateInfo) DeepEqual

func (in *CertificateInfo) DeepEqual(other *CertificateInfo) bool

DeepEqual overrides the code generated DeepEqual method because the credential information built from the running configuration never includes enough information to rebuild the certificate (i.e., the private key is not returned at the API) so when the profile is created dynamically it can only point to a Secret named by the system.

func (CertificateInfo) IsKeyEqual

func (in CertificateInfo) IsKeyEqual(x CertificateInfo) bool

IsKeyEqual compares two CertificateInfo list elements and determines if they refer to the same instance.

func (*CertificateInfo) PrivateKeyExpected

func (in *CertificateInfo) PrivateKeyExpected() bool

PrivateKeyExpected determines whether a certificate requires a private key to be supplied to the system API.

type CertificateList

type CertificateList []CertificateInfo

CertificateList defines a type to represent a slice of certificate info objects. +deepequal-gen:unordered-array=true

func (CertificateList) DeepCopy

func (in CertificateList) DeepCopy() CertificateList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateList.

func (CertificateList) DeepCopyInto

func (in CertificateList) DeepCopyInto(out *CertificateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateList) DeepEqual

func (in *CertificateList) DeepEqual(other *CertificateList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CommonInterfaceInfo

type CommonInterfaceInfo struct {
	// Name defines the name of the interface to be configured.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Name string `json:"name"`

	// Class defines the intended usage of this interface by the system.
	// +kubebuilder:validation:Enum=platform,data,pci-sriov,pci-passthrough,none
	Class string `json:"class"`

	// MTU defines the maximum transmit unit for this interface.
	// +kubebuilder:validation:Minimum=576
	// +kubebuilder:validation:Maximum=9216
	// +optional
	MTU *int `json:"mtu,omitempty"`

	// PlatformNetworks defines the list of platform networks to be configured
	// against this interface.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	// +optional
	PlatformNetworks *StringList `json:"platformNetworks,omitempty"`

	// DataNetworks defines the list of data networks to be configured against
	// this interface.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	// +optional
	DataNetworks *StringList `json:"dataNetworks,omitempty"`

	// PTPRole defines the ptp role as master, slave, or none
	// +kubebuilder:validation:Enum=master,slave,none
	PTPRole *string `json:"ptpRole,omitempty"`
}

CommonInterfaceInfo defines the attributes common to all interface types. They are defined once, here, and inlined within each of the different interface type structures. +deepequal-gen:ignore-nil-fields=true

func (*CommonInterfaceInfo) DeepCopy

func (in *CommonInterfaceInfo) DeepCopy() *CommonInterfaceInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonInterfaceInfo.

func (*CommonInterfaceInfo) DeepCopyInto

func (in *CommonInterfaceInfo) DeepCopyInto(out *CommonInterfaceInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CommonInterfaceInfo) DeepEqual

func (in *CommonInterfaceInfo) DeepEqual(other *CommonInterfaceInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ControllerFileSystemInfo

type ControllerFileSystemInfo struct {
	// Name defines the system defined name of the filesystem resource.
	Name string `json:"name"`

	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:ExclusiveMinimum=false
	Size int `json:"size"`
}

ControllerFileSystemInfo defines the attributes of a single controller filesystem resource.

func (*ControllerFileSystemInfo) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerFileSystemInfo.

func (*ControllerFileSystemInfo) DeepCopyInto

func (in *ControllerFileSystemInfo) DeepCopyInto(out *ControllerFileSystemInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ControllerFileSystemInfo) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (ControllerFileSystemInfo) IsKeyEqual

IsKeyEqual compares two controller file system array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type ControllerFileSystemList

type ControllerFileSystemList []ControllerFileSystemInfo

ControllerFileSystemList defines a type to represent a slice of controller filesystem resources. +deepequal-gen:unordered-array=true

func (ControllerFileSystemList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerFileSystemList.

func (ControllerFileSystemList) DeepCopyInto

func (in ControllerFileSystemList) DeepCopyInto(out *ControllerFileSystemList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ControllerFileSystemList) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type DRBDConfiguration

type DRBDConfiguration struct {
	// LinkUtilization defines the maximum link utilisation percentage during
	// sync activities.
	// +kubebuilder:validation:Minimum=20
	// +kubebuilder:validation:Maximum=100
	// +kubebuilder:validation:ExclusiveMinimum=false
	// +kubebuilder:validation:ExclusiveMaximum=false
	LinkUtilization int `json:"linkUtilization"`
}

DRBDConfiguration defines the DRBD file system settings for the system.

func (*DRBDConfiguration) DeepCopy

func (in *DRBDConfiguration) DeepCopy() *DRBDConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DRBDConfiguration.

func (*DRBDConfiguration) DeepCopyInto

func (in *DRBDConfiguration) DeepCopyInto(out *DRBDConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DRBDConfiguration) DeepEqual

func (in *DRBDConfiguration) DeepEqual(other *DRBDConfiguration) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type DataNetwork

type DataNetwork struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DataNetworkSpec   `json:"spec,omitempty"`
	Status DataNetworkStatus `json:"status,omitempty"`
}

DataNetworks defines the attributes that represent the data network level attributes of a StarlingX system. This is a composition of the following StarlingX API endpoints.

https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#data-networks

+k8s:openapi-gen=true +deepequal-gen=false +kubebuilder:subresource:status +kubebuilder:printcolumn:name="type",type="string",JSONPath=".spec.type",description="The data network encapsulation type." +kubebuilder:printcolumn:name="insync",type="boolean",JSONPath=".status.inSync",description="The current synchronization state." +kubebuilder:printcolumn:name="reconciled",type="boolean",JSONPath=".status.reconciled",description="The current reconciliation state."

func NewDataNetwork

func NewDataNetwork(name string, namespace string, net datanetworks.DataNetwork) (*DataNetwork, error)

func (*DataNetwork) DeepCopy

func (in *DataNetwork) DeepCopy() *DataNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataNetwork.

func (*DataNetwork) DeepCopyInto

func (in *DataNetwork) DeepCopyInto(out *DataNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DataNetwork) DeepCopyObject

func (in *DataNetwork) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DataNetworkList

type DataNetworkList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []DataNetwork `json:"items"`
}

DataNetworkNameList contains a list of DataNetwork +deepequal-gen=false

func (*DataNetworkList) DeepCopy

func (in *DataNetworkList) DeepCopy() *DataNetworkList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataNetworkList.

func (*DataNetworkList) DeepCopyInto

func (in *DataNetworkList) DeepCopyInto(out *DataNetworkList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DataNetworkList) DeepCopyObject

func (in *DataNetworkList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DataNetworkSpec

type DataNetworkSpec struct {
	// Type defines the encapsulation method used for the data network.
	// +kubebuilder:validation:Enum=flat,vlan,vxlan
	Type string `json:"type"`

	// Description defines a user define description which explains the purpose
	// of the data network.
	// +optional
	Description *string `json:"description,omitempty"`

	// MTU defines the maximum transmit unit for any virtual network derived
	// from this data network.
	// +kubebuilder:validation:Minimum=576
	// +kubebuilder:validation:Maximum=9216
	// +optional
	MTU *int `json:"mtu,omitempty"`

	// VxLan defines VxLAN specific attributes for the data network.
	// +optional
	VxLAN *VxLANInfo `json:"vxlan,omitempty"`
}

DataNetworkSpec defines the desired state of a DataNetwork resource

func NewDataNetworkSpec

func NewDataNetworkSpec(net datanetworks.DataNetwork) (*DataNetworkSpec, error)

func (*DataNetworkSpec) DeepCopy

func (in *DataNetworkSpec) DeepCopy() *DataNetworkSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataNetworkSpec.

func (*DataNetworkSpec) DeepCopyInto

func (in *DataNetworkSpec) DeepCopyInto(out *DataNetworkSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DataNetworkSpec) DeepEqual

func (in *DataNetworkSpec) DeepEqual(other *DataNetworkSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type DataNetworkStatus

type DataNetworkStatus struct {
	// ID defines the system assigned unique identifier.  This will only exist
	// once this resource has been provisioned into the system.
	// +optional
	ID *string `json:"id,omitempty"`

	// Reconciled defines whether the host has been successfully reconciled
	// at least once.  If further changes are made they will be ignored by the
	// reconciler.
	Reconciled bool `json:"reconciled"`

	// Defines whether the resource has been provisioned on the target system.
	InSync bool `json:"inSync"`
}

DataNetworkStatus defines the observed state of a DataNetwork resource

func (*DataNetworkStatus) DeepCopy

func (in *DataNetworkStatus) DeepCopy() *DataNetworkStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataNetworkStatus.

func (*DataNetworkStatus) DeepCopyInto

func (in *DataNetworkStatus) DeepCopyInto(out *DataNetworkStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DataNetworkStatus) DeepEqual

func (in *DataNetworkStatus) DeepEqual(other *DataNetworkStatus) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ErrMissingSystemResource

type ErrMissingSystemResource struct {
	// contains filtered or unexported fields
}

ErrMissingSystemResource defines an error to be used when reporting that an operation is unable to find a required system resource from the system API. This error is not intended for kubernetes resources that are missing. For those use ErrMissingKubernetesResource

func (*ErrMissingSystemResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrMissingSystemResource.

func (*ErrMissingSystemResource) DeepCopyInto

func (in *ErrMissingSystemResource) DeepCopyInto(out *ErrMissingSystemResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ErrMissingSystemResource) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (ErrMissingSystemResource) Error

func (in ErrMissingSystemResource) Error() string

Error returns the message associated with an error of this type.

type EthernetInfo

type EthernetInfo struct {
	// CommonInterfaceInfo defines attributes common to all interface
	// types.
	CommonInterfaceInfo `json:",inline"`

	// VFCount defines the number of SRIOV VF interfaces to be allocated.  Only
	// applicable if the interface class is set to "pci-sriov".
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=128
	// +optional
	VFCount *int `json:"vfCount,omitempty"`

	// VFDriver defines the device driver to be associated with each individual
	// SRIOV VF interface allocated.  Only applicable if the interface class is
	// set to "pci-sriov".
	VFDriver *string `json:"vfDriver,omitempty"`

	// Port defines the attributes identifying the underlying port which defines
	// this Ethernet interface.
	Port EthernetPortInfo `json:"port"`

	// Lower defines the interface name over which this ethernet interface is to be
	// configured.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Lower string `json:"lower,omitempty"`
}

EthernetInfo defines the attributes specific to a single Ethernet interface. +deepequal-gen:ignore-nil-fields=true

func (*EthernetInfo) DeepCopy

func (in *EthernetInfo) DeepCopy() *EthernetInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EthernetInfo.

func (*EthernetInfo) DeepCopyInto

func (in *EthernetInfo) DeepCopyInto(out *EthernetInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EthernetInfo) DeepEqual

func (in *EthernetInfo) DeepEqual(other *EthernetInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (EthernetInfo) IsKeyEqual

func (in EthernetInfo) IsKeyEqual(x EthernetInfo) bool

IsKeyEqual compares two ethernet interface array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type EthernetList

type EthernetList []EthernetInfo

EthernetList defines a type to represent a slice of ethernet interfaces. +deepequal-gen:unordered-array=true

func (EthernetList) DeepCopy

func (in EthernetList) DeepCopy() EthernetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EthernetList.

func (EthernetList) DeepCopyInto

func (in EthernetList) DeepCopyInto(out *EthernetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EthernetList) DeepEqual

func (in *EthernetList) DeepEqual(other *EthernetList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type EthernetPortInfo

type EthernetPortInfo struct {
	// SystemName defines the device name of the Ethernet port.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	Name string `json:"name"`
}

EthernetPortInfo defines the attributes specific to a single Ethernet port.

func (*EthernetPortInfo) DeepCopy

func (in *EthernetPortInfo) DeepCopy() *EthernetPortInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EthernetPortInfo.

func (*EthernetPortInfo) DeepCopyInto

func (in *EthernetPortInfo) DeepCopyInto(out *EthernetPortInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EthernetPortInfo) DeepEqual

func (in *EthernetPortInfo) DeepEqual(other *EthernetPortInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type FileSystemInfo

type FileSystemInfo struct {
	// Name defines the system defined name of the filesystem resource.  Each
	// filesystem name may only be applicable to a subset of host personalities.
	// Refer to StarlingX documentation for more information.
	// +kubebuilder:validation:Enum=backup,docker,scratch,kubelet
	Name string `json:"name"`

	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:ExclusiveMinimum=false
	Size int `json:"size"`
}

FileSystemInfo defines the attributes of a single host filesystem resource.

func (*FileSystemInfo) DeepCopy

func (in *FileSystemInfo) DeepCopy() *FileSystemInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemInfo.

func (*FileSystemInfo) DeepCopyInto

func (in *FileSystemInfo) DeepCopyInto(out *FileSystemInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FileSystemInfo) DeepEqual

func (in *FileSystemInfo) DeepEqual(other *FileSystemInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (FileSystemInfo) IsKeyEqual

func (in FileSystemInfo) IsKeyEqual(x FileSystemInfo) bool

IsKeyEqual compares two storage file system array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type FileSystemList

type FileSystemList []FileSystemInfo

FileSystemList defines a type to represent a slice of host filesystem resources. +deepequal-gen:unordered-array=true

func (FileSystemList) DeepCopy

func (in FileSystemList) DeepCopy() FileSystemList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemList.

func (FileSystemList) DeepCopyInto

func (in FileSystemList) DeepCopyInto(out *FileSystemList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FileSystemList) DeepEqual

func (in *FileSystemList) DeepEqual(other *FileSystemList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type Host

type Host struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   HostSpec   `json:"spec,omitempty"`
	Status HostStatus `json:"status,omitempty"`
}

Host defines the attributes that represent the host level attributes of a StarlingX system.

+k8s:openapi-gen=true +deepequal-gen=false +kubebuilder:subresource:status +kubebuilder:printcolumn:name="administrative",type="string",JSONPath=".status.administrativeState",description="The administrative state of the host." +kubebuilder:printcolumn:name="operational",type="string",JSONPath=".status.operationalStatus",description="The operational status of the host." +kubebuilder:printcolumn:name="availability",type="string",JSONPath=".status.availabilityStatus",description="The availability status of the host." +kubebuilder:printcolumn:name="profile",type="string",JSONPath=".spec.profile",description="The configuration profile of the host." +kubebuilder:printcolumn:name="insync",type="boolean",JSONPath=".status.inSync",description="The current synchronization state." +kubebuilder:printcolumn:name="reconciled",type="boolean",JSONPath=".status.reconciled",description="The current reconciliation state."

func NewHost

func NewHost(name string, namespace string, hostInfo v1info.HostInfo) (*Host, error)

func (*Host) DeepCopy

func (in *Host) DeepCopy() *Host

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Host.

func (*Host) DeepCopyInto

func (in *Host) DeepCopyInto(out *Host)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Host) DeepCopyObject

func (in *Host) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HostList

type HostList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Host `json:"items"`
}

HostList contains a list of Host +deepequal-gen=false

func (*HostList) DeepCopy

func (in *HostList) DeepCopy() *HostList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostList.

func (*HostList) DeepCopyInto

func (in *HostList) DeepCopyInto(out *HostList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostList) DeepCopyObject

func (in *HostList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HostProfile

type HostProfile struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec HostProfileSpec `json:"spec,omitempty"`
}

HostProfile defines the attributes that represent the host level attributes of a StarlingX system. This is represents the bulk of the system API attributes and is the most complex part of the schema definition. Refer the full list of API documentation here:

https://docs.starlingx.io/api-ref/stx-config/index.html

+k8s:openapi-gen=true +deepequal-gen=false +kubebuilder:printcolumn:name="base",type="string",JSONPath=".spec.base",description="The parent host profile."

func NewHostProfile

func NewHostProfile(name string, namespace string, hostInfo v1info.HostInfo) (*HostProfile, error)

func (*HostProfile) DeepCopy

func (in *HostProfile) DeepCopy() *HostProfile

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostProfile.

func (*HostProfile) DeepCopyInto

func (in *HostProfile) DeepCopyInto(out *HostProfile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostProfile) DeepCopyObject

func (in *HostProfile) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HostProfileList

type HostProfileList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HostProfile `json:"items"`
}

HostProfileList contains a list of HostProfile +deepequal-gen=false

func (*HostProfileList) DeepCopy

func (in *HostProfileList) DeepCopy() *HostProfileList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostProfileList.

func (*HostProfileList) DeepCopyInto

func (in *HostProfileList) DeepCopyInto(out *HostProfileList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostProfileList) DeepCopyObject

func (in *HostProfileList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HostProfileSpec

type HostProfileSpec struct {
	// Base defines the name of another HostProfile from which to inherit
	// attributes.  HostProfiles can be structured in a hierarchy so that many
	// HostProfiles can inherit generic attributes from a parent HostProfile.
	// This hierarchy can be defined in multiple layers; with lower layers
	// overriding attributes set in higher layers.
	//
	// At configuration time, before a Host is configured, the hierarchy of
	// HostProfile resources is flattened to produce a single composite profile
	// that represents the final attributes as they are overridden down the
	// HostProfile hierarchy.
	//
	// Once the HostProfile hierarchy is flattened to a composite profile.  The
	// Deployment Manager will further refine the profile to create a final
	// HostProfile which serves as the final configuration for the Host
	// resource.  To create the final HostProfile, the Deployment Manages merges
	// the composite profile with the initial default host attributes, and then
	// merges the individual host overrides into that result.  The process
	// can be illustrated as follows:
	//
	//
	//         Host Defaults      +---------------------+
	//            |                                      \
	//            |                                       \
	//         Base Profile        +                       \
	//            |                 \                       \
	//           ...                  + Composite Profile ----+  Final Profile
	//            |                 /                        /
	//      Personality Profile(s) +                        /
	//            |                                        /
	//            |                                       /
	//           Host                                    /
	//            |                                     /
	//            |                                    /
	//         Host Overrides       +-----------------+
	//
	//
	// Merging two HostProfileSpec resources consists of merging the attributes
	// of a higher precedence profile into the attributes of a lower precedences
	// profile.  The rules for merging attributes are as follows.
	//
	//   1) A nil pointer is always overwritten by a non-nil pointer.
	//
	//   2) Two non-nil pointers are merged together according to the underlying
	//      type.
	//
	//   2a) If the type pointed to is a primitive type (e.g., int, bool,
	//       string, etc) then the higher precedence value is used).
	//
	//   2b) If the type pointed to is a structure then this same merge
	//       procedure is repeated recursively on each field of the structure
	//       with these same rules applying to each field.
	//
	//   2c) If the type pointed to is a slice/array then rule (3) is used.
	//
	//   2d) If the type pointed to is a map then higher precedence value is
	//       used and the entire map is overwritten.
	//
	//   3) Two slices are merged together using the following sub-rules.
	//
	//   3a) If the elements of slices define the KeyEqual() method then an
	//       attempt is made to try to merge equivalent element using this same
	//       merge strategy.  Elements from the higher precedence list that do
	//       not have an equivalent in the lower precedence list are appended to
	//       the list.  Elements appearing in the lower precedence list but not
	//       in the higher precedence list are kept intact.
	//
	//   3b) If the elements of the slices do not define the KeyEqual() method
	//       then they are simply concatenated together.
	//
	//   3c) An empty slice is handled as a special case that deletes the
	//       contents of the lower precedence slice.  Do not confuse an empty
	//       slice with a nil slice pointer.
	//
	// +optional
	Base *string `json:"base,omitempty"`

	// ProfileBaseAttributes defines the node level base attributes.  They are
	// grouped together to take advantage of the code generated DeepEqual
	// method to facilitate comparisons.
	ProfileBaseAttributes `json:",inline"`

	// BoardManagement defines the attributes specific to the board management
	// controller configuration.
	// +optional
	BoardManagement *BMInfo `json:"boardManagement,omitempty"`

	// Processors defines the core allocations for each function across all NUMA
	// sockets/nodes.
	Processors ProcessorNodeList `json:"processors,omitempty"`

	// Memory defines the memory allocations for each function across all NUMA
	// sockets/nodes.
	Memory MemoryNodeList `json:"memory,omitempty"`

	// Storage defines the storage attributes for the host
	// +optional
	Storage *ProfileStorageInfo `json:"storage,omitempty"`

	// Interfaces defines the list of interfaces to be configured against this
	// host.
	// +optional
	Interfaces *InterfaceInfo `json:"interfaces,omitempty"`

	// Addresses defines the list of addresses to be configured against this
	// host.  Addresses are specific to a single host therefore they should only
	// be specified if this profile is only going to be used to configure a
	// single
	// host.
	Addresses AddressList `json:"addresses,omitempty"`

	// Routes defines the list of routes to be configured against this host.
	// Routes require that the target interface be configured with a suitable
	// address (e.g., one that allows reachability to next hop device(s))
	// therefore the host must be configured with valid addresses or configured
	// to for automatic address assignment from a platform network.
	Routes RouteList `json:"routes,omitempty"`
}

HostProfileSpec defines the desired state of HostProfile

func NewHostProfileSpec

func NewHostProfileSpec(host v1info.HostInfo) (*HostProfileSpec, error)

BuildHostProfile takes the current set of host attributes and builds a fake host profile that can be used as a reference for the current settings applied to the host.

func (*HostProfileSpec) DeepCopy

func (in *HostProfileSpec) DeepCopy() *HostProfileSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostProfileSpec.

func (*HostProfileSpec) DeepCopyInto

func (in *HostProfileSpec) DeepCopyInto(out *HostProfileSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostProfileSpec) DeepEqual

func (in *HostProfileSpec) DeepEqual(other *HostProfileSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (*HostProfileSpec) HasWorkerSubFunction

func (in *HostProfileSpec) HasWorkerSubFunction() bool

HasWorkerSubfunction is a utility function that returns true if a profile is configured to require the compute subfunction.

type HostSpec

type HostSpec struct {
	// Profile defines the name of the HostProfile to use as a configuration
	// template for the host.  A host may point to a single HostProfile resource
	// or may point to a chain or hierarchy of HostProfile resources.  At
	// configuration time the Deployment Manager will flatten the Host
	// attributes defined in the hierarchy of HostProfiles and produce a final
	// composite profile that represents the intended configuration state of
	// an individual Host resources.  This composite profile also include any
	// individual host specific attributes defined in the "overrides" attribute
	// defined below.
	Profile string `json:"profile"`

	// Match defines the attributes used to match a system host resource to a
	// host CR definition.
	// +optional
	Match *MatchInfo `json:"match,omitempty"`

	// Overrides defines a set of HostProfile attributes that must be overridden
	// from the base HostProfile before configuring the host.  The schema for
	// this field is intentionally a copy of the full HostProfileSpec schema
	// so that any HostProfile attribute can be overridden on a per-host basis.
	//
	// For example, it may be necessary to define IP addresses that are unique
	// to each host, or to override storage device paths if the installed
	// devices does not align completely with the HostProfile pointed to by the
	// "profile" attribute.
	// +optional
	Overrides *HostProfileSpec `json:"overrides,omitempty"`
}

HostSpec defines the desired state of a Host resource.

func NewHostSpec

func NewHostSpec(hostInfo v1info.HostInfo) (*HostSpec, error)

func (*HostSpec) DeepCopy

func (in *HostSpec) DeepCopy() *HostSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostSpec.

func (*HostSpec) DeepCopyInto

func (in *HostSpec) DeepCopyInto(out *HostSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostSpec) DeepEqual

func (in *HostSpec) DeepEqual(other *HostSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type HostStatus

type HostStatus struct {
	// ID defines the system assigned unique identifier.  This will only exist
	// once this resource has been provisioned into the system.
	ID *string `json:"id,omitempty"`

	// AdministrativeState is the last known administrative state of the host.
	AdministrativeState *string `json:"administrativeState,omitempty"`

	// OperationalStatus is the last known operational status of the host.
	OperationalStatus *string `json:"operationalStatus,omitempty"`

	// AvailabilityStatus is the last known availability status of the host.
	AvailabilityStatus *string `json:"availabilityStatus,omitempty"`

	// InSync defines whether the desired state matches the operational state.
	InSync bool `json:"inSync"`

	// Reconciled defines whether the host has been successfully reconciled
	// at least once.  If further changes are made they will be ignored by the
	// reconciler.
	Reconciled bool `json:"reconciled"`

	// Defaults defines the configuration attributed collected before applying
	// any user configuration values.
	Defaults *string `json:"defaults,omitempty"`
}

HostStatus defines the observed state of a Host resource.

func (*HostStatus) DeepCopy

func (in *HostStatus) DeepCopy() *HostStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostStatus.

func (*HostStatus) DeepCopyInto

func (in *HostStatus) DeepCopyInto(out *HostStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostStatus) DeepEqual

func (in *HostStatus) DeepEqual(other *HostStatus) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type InterfaceInfo

type InterfaceInfo struct {
	// Ethernet defines the list of ethernet interfaces to be configured on a
	// host.
	Ethernet EthernetList `json:"ethernet,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// VLAN defines the list of VLAN interfaces to be configured on a host.
	VLAN VLANList `json:"vlan,omitempty"`

	// Bond defines the list of Bond interfaces to be configured on a host.
	Bond BondList `json:"bond,omitempty"`

	// VF defines the list of SR-IOV VF interfaces to be configured on a host.
	VF VFList `json:"vf,omitempty"`
}

InterfaceInfo defines the attributes specific to a single interface.

func (*InterfaceInfo) DeepCopy

func (in *InterfaceInfo) DeepCopy() *InterfaceInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfaceInfo.

func (*InterfaceInfo) DeepCopyInto

func (in *InterfaceInfo) DeepCopyInto(out *InterfaceInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InterfaceInfo) DeepEqual

func (in *InterfaceInfo) DeepEqual(other *InterfaceInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type JournalInfo

type JournalInfo struct {
	// Location defines	the OSD device path to be used as the Journal OSD for
	// this logical device.
	// +kubebuilder:validation:MaxLength=255
	Location string `json:"location"`

	// Size defines the size of the OSD journal in gibibytes.
	// +kubebuilder:validation:Minimum=1
	Size int `json:"size"`
}

JournalInfo defines attributes of an OSD journal device.

func (*JournalInfo) DeepCopy

func (in *JournalInfo) DeepCopy() *JournalInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JournalInfo.

func (*JournalInfo) DeepCopyInto

func (in *JournalInfo) DeepCopyInto(out *JournalInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*JournalInfo) DeepEqual

func (in *JournalInfo) DeepEqual(other *JournalInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type LicenseInfo

type LicenseInfo struct {
	// Secret is the name of a TLS secret containing the license file contents.
	// It must refer to a Opaque Kubernetes Secret.
	Secret string `json:"secret"`
}

LicenseInfo defines the attributes which specify an individual License resource.

func (*LicenseInfo) DeepCopy

func (in *LicenseInfo) DeepCopy() *LicenseInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseInfo.

func (*LicenseInfo) DeepCopyInto

func (in *LicenseInfo) DeepCopyInto(out *LicenseInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*LicenseInfo) DeepEqual

func (in *LicenseInfo) DeepEqual(other *LicenseInfo) bool

DeepEqual overrides the code generated DeepEqual method because the License information is stored in a Secret and we cannot compare it easily since it is not directly a part of the SystemSpec.

type MatchBMInfo

type MatchBMInfo struct {
	// Address defines the board management IP address.
	Address *string `json:"address,omitempty"`

	// Type defines the board management type
	// +kubebuilder:validation:Enum=none,bmc,dynamic,ipmi,redfish
	// +optional
	Type *string `json:"type,omitempty"`
}

MatchBMInfo defines the board management attributes that can be used to match a system host resource to a host CR definition.

func (*MatchBMInfo) DeepCopy

func (in *MatchBMInfo) DeepCopy() *MatchBMInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchBMInfo.

func (*MatchBMInfo) DeepCopyInto

func (in *MatchBMInfo) DeepCopyInto(out *MatchBMInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MatchBMInfo) DeepEqual

func (in *MatchBMInfo) DeepEqual(other *MatchBMInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type MatchDMIInfo

type MatchDMIInfo struct {
	// SerialNumber defines the board serial number as stored in the DMI block.
	// +kubebuilder:validation:MaxLength=255
	// +optional
	SerialNumber *string `json:"serialNumber,omitempty"`

	// AssetTag defines the board asset tag as stored in the DMI block.
	// +kubebuilder:validation:MaxLength=255
	// +optional
	AssetTag *string `json:"assetTag,omitempty"`
}

MatchDMIInfo defines the Desktop Management Interface attributes that can be used to match a system host resource to a host CR definition.

func (*MatchDMIInfo) DeepCopy

func (in *MatchDMIInfo) DeepCopy() *MatchDMIInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchDMIInfo.

func (*MatchDMIInfo) DeepCopyInto

func (in *MatchDMIInfo) DeepCopyInto(out *MatchDMIInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MatchDMIInfo) DeepEqual

func (in *MatchDMIInfo) DeepEqual(other *MatchDMIInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type MatchInfo

type MatchInfo struct {
	// BootMAC defines the MAC address that a host used to perform the initial
	// software installation.
	// +kubebuilder:validation:Pattern=^([0-9a-fA-Z]{2}[:-]){5}([0-9a-fA-Z]{2})$
	// +optional
	BootMAC *string `json:"bootMAC,omitempty"`

	// BoardManagement defines the board management attributes that can be used
	// to match a system host resource to a system CR definition.
	// NOTE:  Not yet supported.
	// +optional
	BoardManagement *MatchBMInfo `json:"boardManagement,omitempty"`

	// DMI defines the Desktop Management Interface attributes that can be used
	// to match a system host resource to a system CR definition.
	// NOTE:  Not yet supported.
	// +optional
	DMI *MatchDMIInfo `json:"dmi,omitempty"`
}

MatchInfo defines the attributes that can be used to dynamically match a system host resource to a host CR definition. To be considered a match all of the fields defined with the match criteria must match the actual attributes of the system host resource.

func (*MatchInfo) DeepCopy

func (in *MatchInfo) DeepCopy() *MatchInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchInfo.

func (*MatchInfo) DeepCopyInto

func (in *MatchInfo) DeepCopyInto(out *MatchInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MatchInfo) DeepEqual

func (in *MatchInfo) DeepEqual(other *MatchInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type MemoryFunctionInfo

type MemoryFunctionInfo struct {
	// Function defines the function for which to allocate a number of cores.
	// +kubebuilder:validation:Enum=platform,vm,vswitch
	Function string `json:"function"`

	// PageSize defines the size of individual memory pages to be allocated to
	// a specific function.  For platform
	// allocations the 4KB page size is the only valid choice.
	// +kubebuilder:validation:Enum=4KB,2MB,1GB
	PageSize string `json:"pageSize"`

	// PageCount defines the number of pages to allocate to a specific function.
	PageCount int `json:"pageCount"`
}

MemoryFunctionInfo defines the amount of memory to assign to a specific function.

func (*MemoryFunctionInfo) DeepCopy

func (in *MemoryFunctionInfo) DeepCopy() *MemoryFunctionInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryFunctionInfo.

func (*MemoryFunctionInfo) DeepCopyInto

func (in *MemoryFunctionInfo) DeepCopyInto(out *MemoryFunctionInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MemoryFunctionInfo) DeepEqual

func (in *MemoryFunctionInfo) DeepEqual(other *MemoryFunctionInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (MemoryFunctionInfo) IsKeyEqual

func (in MemoryFunctionInfo) IsKeyEqual(x MemoryFunctionInfo) bool

IsKeyEqual compares two memory function array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type MemoryFunctionList

type MemoryFunctionList []MemoryFunctionInfo

MemoryFunctionList defines a type to represent a slice of memory function objects. +deepequal-gen:unordered-array=true

func (MemoryFunctionList) DeepCopy

func (in MemoryFunctionList) DeepCopy() MemoryFunctionList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryFunctionList.

func (MemoryFunctionList) DeepCopyInto

func (in MemoryFunctionList) DeepCopyInto(out *MemoryFunctionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MemoryFunctionList) DeepEqual

func (in *MemoryFunctionList) DeepEqual(other *MemoryFunctionList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type MemoryNodeInfo

type MemoryNodeInfo struct {
	// Node defines the NUMA node number for which to allocate a number of
	// functions.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=7
	Node int `json:"node"`

	// Functions defines a list of function specific allocations for the given
	// NUMA socket/node.
	Functions MemoryFunctionList `json:"functions"`
}

MemoryNodeInfo defines the memory allocations for a specific NUMA node/socket.

func (*MemoryNodeInfo) DeepCopy

func (in *MemoryNodeInfo) DeepCopy() *MemoryNodeInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryNodeInfo.

func (*MemoryNodeInfo) DeepCopyInto

func (in *MemoryNodeInfo) DeepCopyInto(out *MemoryNodeInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MemoryNodeInfo) DeepEqual

func (in *MemoryNodeInfo) DeepEqual(other *MemoryNodeInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (MemoryNodeInfo) IsKeyEqual

func (in MemoryNodeInfo) IsKeyEqual(x MemoryNodeInfo) bool

IsKeyEqual compares two memory info array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type MemoryNodeList

type MemoryNodeList []MemoryNodeInfo

MemoryNodeList defines a type to represent a slice of memory node objects. +deepequal-gen:unordered-array=true

func (MemoryNodeList) DeepCopy

func (in MemoryNodeList) DeepCopy() MemoryNodeList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryNodeList.

func (MemoryNodeList) DeepCopyInto

func (in MemoryNodeList) DeepCopyInto(out *MemoryNodeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MemoryNodeList) DeepEqual

func (in *MemoryNodeList) DeepEqual(other *MemoryNodeList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type MonitorInfo

type MonitorInfo struct {
	// Size represents the storage allocated to the monitor in gibibytes
	// +kubebuilder:validation:Minimum=20
	// +kubebuilder:validation:Maximum=40
	// +optional
	Size *int `json:"size,omitempty"`
}

MonitorInfo defines the monitor attributes used to configure a Ceph storage monitor on a node. +deepequal-gen:ignore-nil-fields=true

func (*MonitorInfo) DeepCopy

func (in *MonitorInfo) DeepCopy() *MonitorInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorInfo.

func (*MonitorInfo) DeepCopyInto

func (in *MonitorInfo) DeepCopyInto(out *MonitorInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MonitorInfo) DeepEqual

func (in *MonitorInfo) DeepEqual(other *MonitorInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type OSDInfo

type OSDInfo struct {
	// Function defines the function to be assigned to the OSD device.
	// +kubebuilder:validation:Enum=osd,journal
	Function string `json:"function"`

	// Path defines the disk device path to use as backing for the OSD device.
	// +kubebuilder:validation:MaxLength=4095
	// +kubebuilder:validation:Pattern=^/dev/.+$
	Path string `json:"path"`

	// ClusterName defines the storage cluster to which the OSD device should
	// be assigned.  By default this is the "ceph_cluster".
	// +kubebuilder:validation:MaxLength=255
	// +optional
	ClusterName *string `json:"cluster,omitempty"`

	// Journal defines another OSD device to be used as the journal for this
	// OSD device.
	// +optional
	Journal *JournalInfo `json:"journal,omitempty"`
}

OSDInfo defines attributes specific to a single OSD device. +deepequal-gen:ignore-nil-fields=true

func (*OSDInfo) DeepCopy

func (in *OSDInfo) DeepCopy() *OSDInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSDInfo.

func (*OSDInfo) DeepCopyInto

func (in *OSDInfo) DeepCopyInto(out *OSDInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OSDInfo) DeepEqual

func (in *OSDInfo) DeepEqual(other *OSDInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (*OSDInfo) GetClusterName

func (in *OSDInfo) GetClusterName() string

GetClusterName returns the configured cluster name or the default if it wasn't specified. TODO(alegacy): this could be done with a defaulting webhook but it seems like

overkill for so few cases where a default is necessary.

func (OSDInfo) IsKeyEqual

func (in OSDInfo) IsKeyEqual(x OSDInfo) bool

IsKeyEqual compares two storage OSD info array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type OSDList

type OSDList []OSDInfo

OSDList defines a type to represent a slice of OSD objects. +deepequal-gen:unordered-array=true

func (OSDList) DeepCopy

func (in OSDList) DeepCopy() OSDList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSDList.

func (OSDList) DeepCopyInto

func (in OSDList) DeepCopyInto(out *OSDList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OSDList) DeepEqual

func (in *OSDList) DeepEqual(other *OSDList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PTPInfo

type PTPInfo struct {
	// Mode defines the precision time protocol mode of the system.
	// +kubebuilder:validation:Enum=hardware,software,legacy
	// +optional
	Mode *string `json:"mode,omitempty"`

	// Transport defines the network transport protocol used to implement the
	// precision time protocol.
	// +kubebuilder:validation:Enum=l2,udp
	// +optional
	Transport *string `json:"transport,omitempty"`

	// Mechanism defines the high level messaging architecture used to implement
	// the precision time procotol.
	// +kubebuilder:validation:Enum=p2p,e2e
	// +optional
	Mechanism *string `json:"mechanism,omitempty"`
}

PTPInfo defines the system level precision time protocol attributes that are configurable. +deepequal-gen:ignore-nil-fields=true

func (*PTPInfo) DeepCopy

func (in *PTPInfo) DeepCopy() *PTPInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PTPInfo.

func (*PTPInfo) DeepCopyInto

func (in *PTPInfo) DeepCopyInto(out *PTPInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PTPInfo) DeepEqual

func (in *PTPInfo) DeepEqual(other *PTPInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PageSize

type PageSize string
const (
	PageSize4K PageSize = "4KB"
	PageSize2M PageSize = "2MB"
	PageSize1G PageSize = "1GB"
)

Defines the accepted hugepage memory page sizes.

func (PageSize) Bytes

func (v PageSize) Bytes() int

Bytes returns the page size in bytes.

func (PageSize) Megabytes

func (v PageSize) Megabytes() int

Gibibytes returns the page size in megabytes.

type PhysicalVolumeInfo

type PhysicalVolumeInfo struct {
	// Type defines the type of physical volume.
	// +kubebuilder:validation:Enum=disk,partition
	Type string `json:"type"`

	// Path defines the device path backing the physical volume.  If 'Type' is
	// set as disk then this attribute refers to the absolute path of a disk
	// device.  If 'Type' is set as partition then it refers to the device path
	// of the disk onto which this partition will be created.
	// +kubebuilder:validation:MaxLength=255
	Path string `json:"path"`

	// Size defines the size of the disk partition in gibibytes.  This should be
	// omitted if the path refers to a disk.
	// +kubebuilder:validation:Minimum=1
	// +optional
	Size *int `json:"size,omitempty"`
}

PhysicalVolumeInfo defines attributes of a physical volume. +deepequal-gen:ignore-nil-fields=true

func (*PhysicalVolumeInfo) DeepCopy

func (in *PhysicalVolumeInfo) DeepCopy() *PhysicalVolumeInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalVolumeInfo.

func (*PhysicalVolumeInfo) DeepCopyInto

func (in *PhysicalVolumeInfo) DeepCopyInto(out *PhysicalVolumeInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PhysicalVolumeInfo) DeepEqual

func (in *PhysicalVolumeInfo) DeepEqual(other *PhysicalVolumeInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PhysicalVolumeList

type PhysicalVolumeList []PhysicalVolumeInfo

PhysicalVolumeList defines a type to represent a slice of physical volumes +deepequal-gen:unordered-array=true

func (PhysicalVolumeList) DeepCopy

func (in PhysicalVolumeList) DeepCopy() PhysicalVolumeList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhysicalVolumeList.

func (PhysicalVolumeList) DeepCopyInto

func (in PhysicalVolumeList) DeepCopyInto(out *PhysicalVolumeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PhysicalVolumeList) DeepEqual

func (in *PhysicalVolumeList) DeepEqual(other *PhysicalVolumeList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PlatformNetwork

type PlatformNetwork struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PlatformNetworkSpec   `json:"spec,omitempty"`
	Status PlatformNetworkStatus `json:"status,omitempty"`
}

PlatformNetwork defines the attributes that represent the network level attributes of a StarlingX system. This is a composition of the following StarlingX API endpoints.

https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#networks
https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#address-pools

+k8s:openapi-gen=true +deepequal-gen=false +kubebuilder:subresource:status +kubebuilder:printcolumn:name="type",type="string",JSONPath=".spec.type",description="The platform network type." +kubebuilder:printcolumn:name="subnet",type="string",JSONPath=".spec.subnet",description="The platform network address subnet." +kubebuilder:printcolumn:name="prefix",type="string",JSONPath=".spec.prefix",description="The platform network address prefix." +kubebuilder:printcolumn:name="insync",type="boolean",JSONPath=".status.inSync",description="The current synchronization state." +kubebuilder:printcolumn:name="reconciled",type="boolean",JSONPath=".status.reconciled",description="The current reconciliation state."

func NewPlatformNetwork

func NewPlatformNetwork(name string, namespace string, pool addresspools.AddressPool, network_type string) (*PlatformNetwork, error)

func (*PlatformNetwork) DeepCopy

func (in *PlatformNetwork) DeepCopy() *PlatformNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformNetwork.

func (*PlatformNetwork) DeepCopyInto

func (in *PlatformNetwork) DeepCopyInto(out *PlatformNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PlatformNetwork) DeepCopyObject

func (in *PlatformNetwork) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PlatformNetworkList

type PlatformNetworkList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PlatformNetwork `json:"items"`
}

PlatformNetworkNameList contains a list of PlatformNetwork +deepequal-gen=false

func (*PlatformNetworkList) DeepCopy

func (in *PlatformNetworkList) DeepCopy() *PlatformNetworkList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformNetworkList.

func (*PlatformNetworkList) DeepCopyInto

func (in *PlatformNetworkList) DeepCopyInto(out *PlatformNetworkList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PlatformNetworkList) DeepCopyObject

func (in *PlatformNetworkList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PlatformNetworkSpec

type PlatformNetworkSpec struct {
	// Type defines the intended usage of the network
	// +kubebuilder:validation:Enum=mgmt,pxeboot,infra,oam,multicast,system-controller,cluster-host,cluster-pod,cluster-service,storage,other
	Type string `json:"type"`

	// Subnet defines the IPv4 or IPv6 network address for the network
	Subnet string `json:"subnet"`

	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=128
	Prefix int `json:"prefix"`

	// Gateway defines the nexthop gateway IP address if applicable
	// +optional
	Gateway *string `json:"gateway,omitempty"`

	// Allocation defines the allocation scheme details for the network
	Allocation AllocationInfo `json:"allocation"`
}

PlatformNetworkSpec defines the desired state of a PlatformNetwork resource.

func NewPlatformNetworkSpec

func NewPlatformNetworkSpec(pool addresspools.AddressPool, network_type string) (*PlatformNetworkSpec, error)

func (*PlatformNetworkSpec) DeepCopy

func (in *PlatformNetworkSpec) DeepCopy() *PlatformNetworkSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformNetworkSpec.

func (*PlatformNetworkSpec) DeepCopyInto

func (in *PlatformNetworkSpec) DeepCopyInto(out *PlatformNetworkSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PlatformNetworkSpec) DeepEqual

func (in *PlatformNetworkSpec) DeepEqual(other *PlatformNetworkSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PlatformNetworkStatus

type PlatformNetworkStatus struct {
	// ID defines the system assigned unique identifier.  This will only exist
	// once this resource has been provisioned into the system.
	// +optional
	ID *string `json:"id,omitempty"`

	// PoolUUID defines the system assigned unique identifier that is represents
	// the networks underlying address pool resource.  This will only exist
	// once this resource has been provisioned into the system.
	// +optional
	PoolUUID *string `json:"poolUUID,omitempty"`

	// Reconciled defines whether the network has been successfully reconciled
	// at least once.  If further changes are made they will be ignored by the
	// reconciler.
	Reconciled bool `json:"reconciled"`

	// Defines whether the resource has been provisioned on the target system.
	InSync bool `json:"inSync"`
}

PlatformNetworkStatus defines the observed state of a PlatformNetwork resource.

func (*PlatformNetworkStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformNetworkStatus.

func (*PlatformNetworkStatus) DeepCopyInto

func (in *PlatformNetworkStatus) DeepCopyInto(out *PlatformNetworkStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PlatformNetworkStatus) DeepEqual

func (in *PlatformNetworkStatus) DeepEqual(other *PlatformNetworkStatus) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ProcessorFunctionInfo

type ProcessorFunctionInfo struct {
	// Function defines the function for which to allocate a number of cores.
	// +kubebuilder:validation:Enum=platform,shared,vswitch,application-isolated,application
	Function string `json:"function"`

	// Count defines the number of cores to allocate to a specific function.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=64
	Count int `json:"count"`
}

ProcessorFunctionInfo defines the number of cores to assign to a specific function.

func (*ProcessorFunctionInfo) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProcessorFunctionInfo.

func (*ProcessorFunctionInfo) DeepCopyInto

func (in *ProcessorFunctionInfo) DeepCopyInto(out *ProcessorFunctionInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProcessorFunctionInfo) DeepEqual

func (in *ProcessorFunctionInfo) DeepEqual(other *ProcessorFunctionInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (ProcessorFunctionInfo) IsKeyEqual

IsKeyEqual compares two processor function array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type ProcessorFunctionList

type ProcessorFunctionList []ProcessorFunctionInfo

ProcessorFunctionList defines a type to represent a slice of processor function objects. +deepequal-gen:unordered-array=true

func (ProcessorFunctionList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProcessorFunctionList.

func (ProcessorFunctionList) DeepCopyInto

func (in ProcessorFunctionList) DeepCopyInto(out *ProcessorFunctionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProcessorFunctionList) DeepEqual

func (in *ProcessorFunctionList) DeepEqual(other *ProcessorFunctionList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ProcessorInfo

type ProcessorInfo struct {
	// Node defines the NUMA node number for which to allocate a number of
	// functions.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=7
	Node int `json:"node"`

	// Functions defines a list of function specific allocations for the given
	// NUMA socket/node.
	Functions ProcessorFunctionList `json:"functions"`
}

ProcessorInfo defines the processor core allocations for a specific NUMA socket/node.

func (*ProcessorInfo) DeepCopy

func (in *ProcessorInfo) DeepCopy() *ProcessorInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProcessorInfo.

func (*ProcessorInfo) DeepCopyInto

func (in *ProcessorInfo) DeepCopyInto(out *ProcessorInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProcessorInfo) DeepEqual

func (in *ProcessorInfo) DeepEqual(other *ProcessorInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (ProcessorInfo) IsKeyEqual

func (in ProcessorInfo) IsKeyEqual(x ProcessorInfo) bool

IsKeyEqual compares two processor info array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type ProcessorNodeList

type ProcessorNodeList []ProcessorInfo

ProcessorNodeList defines a type to represent a slice of processor infos +deepequal-gen:unordered-array=true

func (ProcessorNodeList) DeepCopy

func (in ProcessorNodeList) DeepCopy() ProcessorNodeList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProcessorNodeList.

func (ProcessorNodeList) DeepCopyInto

func (in ProcessorNodeList) DeepCopyInto(out *ProcessorNodeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProcessorNodeList) DeepEqual

func (in *ProcessorNodeList) DeepEqual(other *ProcessorNodeList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ProfileBaseAttributes

type ProfileBaseAttributes struct {
	// Personality defines the role to be assigned to the host
	// +kubebuilder:validation:Enum=controller,worker,storage,controller-worker
	// +optional
	Personality *string `json:"personality,omitempty"`

	// AdministrativeState defines the desired administrative state of the host
	// +kubebuilder:validation:Enum=locked,unlocked
	// +optional
	AdministrativeState *string `json:"administrativeState,omitempty"`

	// SubFunctionList defines the set of subfunctions to be provisioned on the
	// node at time of initial provisioning.
	// +kubebuilder:validation:Enum=controller,worker,storage,lowlatency
	// +optional
	SubFunctions StringList `json:"subfunctions,omitempty"`

	// Location defines the physical location of the host in the data centre.
	// +optional
	Location *string `json:"location,omitempty"`

	// Labels defines the set of labels to be applied to the kubernetes node
	// resources that is running on this host.
	Labels map[string]string `json:"labels,omitempty"`

	// InstallOutput defines the install output method.  The graphical mode is
	// only suitable when the console attribute is set to a graphical terminal.
	// The text mode can be used with both serial and graphical console
	// configurations.
	// +kubebuilder:validation:Enum=text,graphical
	// +optional
	InstallOutput *string `json:"installOutput,omitempty"`

	// Console defines the installation output device.
	// +kubebuilder:validation:Pattern=^(|tty[0-9]+|ttyS[0-9]+(,\d+([a-zA-Z0-9]+)?)?|ttyUSB[0-9]+(,\d+([a-zA-Z0-9]+))?|lp[0-9]+)$
	// +optional
	Console *string `json:"console,omitempty"`

	// BootDevice defines the absolute device path of the device to be used for
	// installation.
	// +kubebuilder:validation:Pattern=^/dev/.+$
	// +kubebuilder:validation:MaxLength=4095
	// +optional
	BootDevice *string `json:"bootDevice,omitempty"`

	// PowerOn defines the initial power state of the node if static
	// provisioning is being used.
	// +optional
	PowerOn *bool `json:"powerOn,omitempty"`

	// ProvisioningMode defines whether a host is provisioned dynamically when
	// it appears in system host inventory or whether it is provisioned
	// statically and powered up explicitly.  Statically provisioned hosts
	// require that the user supply a boot MAC address, board management IP
	// address, and a management IP address if the management network is
	// configured for static address assignment.
	// +kubebuilder:validation:Enum=static,dynamic
	// +optional
	ProvisioningMode *string `json:"provisioningMode,omitempty"`

	// BootMAC defines the MAC address that a host uses to perform the initial
	// software installation.  This is only applicable for statically
	// provisioned hosts and should be set on each hosts via the overrides
	// attributes.
	// +kubebuilder:validation:Pattern=^([0-9a-fA-Z]{2}[:-]){5}([0-9a-fA-Z]{2})$
	// +optional
	BootMAC *string `json:"bootMAC,omitempty"`

	// RootDevice defines the absolute device path of the device to be used as
	// the root file system.
	// +kubebuilder:validation:Pattern=^/dev/.+$
	// +kubebuilder:validation:MaxLength=4095
	// +optional
	RootDevice *string `json:"rootDevice,omitempty"`

	// ClockSynchronization defines the clock synchronization source of the host
	// resource.
	// +kubebuilder:validation:Enum=ntp,ptp
	// +optional
	ClockSynchronization *string `json:"clockSynchronization,omitempty"`
}

+deepequal-gen:ignore-nil-fields=true

func (*ProfileBaseAttributes) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProfileBaseAttributes.

func (*ProfileBaseAttributes) DeepCopyInto

func (in *ProfileBaseAttributes) DeepCopyInto(out *ProfileBaseAttributes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProfileBaseAttributes) DeepEqual

func (in *ProfileBaseAttributes) DeepEqual(other *ProfileBaseAttributes) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ProfileStorageInfo

type ProfileStorageInfo struct {
	// Monitor defines whether a Ceph storage monitor should be enabled on a
	// node.
	// +optional
	Monitor *MonitorInfo `json:"monitor,omitempty"`

	// OSDs defines the list of OSD devices to be created on the host.  This is
	// only applicable to storage related nodes.
	// +optional
	OSDs *OSDList `json:"osds,omitempty"`

	// VolumeGroups defines the list of volume groups to be created on the host.
	// +optional
	VolumeGroups *VolumeGroupList `json:"volumeGroups,omitempty"`

	// FileSystems defines the list of file systems to be defined on the host.
	// +optional
	FileSystems *FileSystemList `json:"filesystems,omitempty"`
}

ProfileStorageInfo defines the storage specific attributes for the host. +deepequal-gen:ignore-nil-fields=true

func (*ProfileStorageInfo) DeepCopy

func (in *ProfileStorageInfo) DeepCopy() *ProfileStorageInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProfileStorageInfo.

func (*ProfileStorageInfo) DeepCopyInto

func (in *ProfileStorageInfo) DeepCopyInto(out *ProfileStorageInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProfileStorageInfo) DeepEqual

func (in *ProfileStorageInfo) DeepEqual(other *ProfileStorageInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type RouteInfo

type RouteInfo struct {
	// Interface is a reference to the interface name against which to configure
	// the route.
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Interface string `json:"interface"`

	// Subnet defines the destination network address subnet.
	Network string `json:"subnet"`

	// Prefix defines the destination network address prefix length.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=128
	Prefix int `json:"prefix"`

	// Gateway defines the next hop gateway IP address.
	Gateway string `json:"gateway"`

	// Metric defines the route preference metric for this route.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=255
	// +optional
	Metric *int `json:"metric,omitempty"`
}

RouteInfo defines the attributes specific to a single route. +deepequal-gen:ignore-nil-fields=true

func (*RouteInfo) DeepCopy

func (in *RouteInfo) DeepCopy() *RouteInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteInfo.

func (*RouteInfo) DeepCopyInto

func (in *RouteInfo) DeepCopyInto(out *RouteInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteInfo) DeepEqual

func (in *RouteInfo) DeepEqual(other *RouteInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (RouteInfo) IsKeyEqual

func (in RouteInfo) IsKeyEqual(x RouteInfo) bool

IsKeyEqual compares two interface route array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type RouteList

type RouteList []RouteInfo

RouteList defines a type to represent a slice of routes. +deepequal-gen:unordered-array=true

func (RouteList) DeepCopy

func (in RouteList) DeepCopy() RouteList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteList.

func (RouteList) DeepCopyInto

func (in RouteList) DeepCopyInto(out *RouteList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteList) DeepEqual

func (in *RouteList) DeepEqual(other *RouteList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type ServiceParameterInfo

type ServiceParameterInfo struct {
	// Service identifies the service for this service parameter
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	// +kubebuilder:validation:MaxLength=16
	Service string `json:"service"`

	// Section identifies the section for this service parameter
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	// +kubebuilder:validation:MaxLength=128
	Section string `json:"section"`

	// ParamName identifies the name for this service parameter
	// +kubebuilder:validation:MaxLength=255
	ParamName string `json:"paramname"`

	// ParamValue identifies the value for this service parameter
	// +kubebuilder:validation:MaxLength=4096
	ParamValue string `json:"paramvalue"`

	// Personality identifies the personality for this service parameter
	// +kubebuilder:validation:MaxLength=255
	// +optional
	Personality *string `json:"personality,omitempty"`

	// Resource identifies the resource for this service parameter
	// +kubebuilder:validation:MaxLength=255
	// +optional
	Resource *string `json:"resource,omitempty"`
}

ServiceParameterInfo defines the attributes required to define an instance of a service parameter to be installed via the system API.

func (*ServiceParameterInfo) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceParameterInfo.

func (*ServiceParameterInfo) DeepCopyInto

func (in *ServiceParameterInfo) DeepCopyInto(out *ServiceParameterInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceParameterInfo) DeepEqual

func (in *ServiceParameterInfo) DeepEqual(other *ServiceParameterInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (ServiceParameterInfo) IsKeyEqual

IsKeyEqual compares two ServiceParameter if they mostly match

type ServiceParameterList

type ServiceParameterList []ServiceParameterInfo

ServiceParameterList defines a type to represent a slice of service parameter info objects. +deepequal-gen:unordered-array=true

func (ServiceParameterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceParameterList.

func (ServiceParameterList) DeepCopyInto

func (in ServiceParameterList) DeepCopyInto(out *ServiceParameterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceParameterList) DeepEqual

func (in *ServiceParameterList) DeepEqual(other *ServiceParameterList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type StorageBackend

type StorageBackend struct {
	// SystemName uniquely identifies the storage backend instance.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	// +kubebuilder:validation:MaxLength=255
	Name string `json:"name"`

	// Type specifies the storage backend type.
	// +kubebuilder:validation:Enum=file,lvm,ceph
	Type string `json:"type"`

	// Services is a list of services to enable for this backend instance.  Each
	// backend type supports a limited set
	// of services.  Refer to customer documentation for more information.
	// +kubebuilder:validation:Enum=cinder,glance,nova,swift,rbd-provisioner
	Services []string `json:"services,omitempty"`

	// ReplicationFactor is the number of storage hosts required in each
	// replication group for storage redundancy.
	// This attribute is only applicable for Ceph storage backends.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=3
	// +kubebuilder:validation:ExclusiveMinimum=false
	// +kubebuilder:validation:ExclusiveMaximum=false
	// +optional
	ReplicationFactor *int `json:"replicationFactor,omitempty"`

	// PartitionSize is the controller disk partition size to be allocated for
	// the Ceph monitor - in gigabytes.
	// This attribute is only applicable for Ceph storage backends.
	// +kubebuilder:validation:Minimum=20
	// +kubebuilder:validation:ExclusiveMinimum=false
	// +optional
	PartitionSize *int `json:"partitionSize,omitempty"`

	// Network is the network type associated with this backend.
	// At the momemnt it is used only for ceph backend.
	// +kubebuilder:validation:Enum=mgmt,cluster-host
	// +optional
	Network *string `json:"network,omitempty"`
}

+deepequal-gen:ignore-nil-fields=true

func (*StorageBackend) DeepCopy

func (in *StorageBackend) DeepCopy() *StorageBackend

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageBackend.

func (*StorageBackend) DeepCopyInto

func (in *StorageBackend) DeepCopyInto(out *StorageBackend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageBackend) DeepEqual

func (in *StorageBackend) DeepEqual(other *StorageBackend) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type StorageBackendList

type StorageBackendList []StorageBackend

StorageBackendList defines a type to represent a slice of storage backends. +deepequal-gen:unordered-array=true

func (StorageBackendList) DeepCopy

func (in StorageBackendList) DeepCopy() StorageBackendList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageBackendList.

func (StorageBackendList) DeepCopyInto

func (in StorageBackendList) DeepCopyInto(out *StorageBackendList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageBackendList) DeepEqual

func (in *StorageBackendList) DeepEqual(other *StorageBackendList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type StringList

type StringList []string

+deepequal-gen:unordered-array=true

func (StringList) DeepCopy

func (in StringList) DeepCopy() StringList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringList.

func (StringList) DeepCopyInto

func (in StringList) DeepCopyInto(out *StringList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StringList) DeepEqual

func (in *StringList) DeepEqual(other *StringList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (StringList) ToStringList

func (in StringList) ToStringList() []string

ToStringList converts from this type alias to an actual array of strings

type System

type System struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SystemSpec   `json:"spec,omitempty"`
	Status SystemStatus `json:"status,omitempty"`
}

System defines the attributes that represent the system level attributes of a StarlingX system. This is a composition of the following StarlingX API endpoints.

https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#system
https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#dns
https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#ntp
https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#system-certificate-configuration
https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html#storage-backends

+k8s:openapi-gen=true +deepequal-gen=false +kubebuilder:subresource:status +kubebuilder:printcolumn:name="mode",type="string",JSONPath=".status.systemMode",description="The configured system mode." +kubebuilder:printcolumn:name="type",type="string",JSONPath=".status.systemType",description="The configured system type." +kubebuilder:printcolumn:name="version",type="string",JSONPath=".status.softwareVersion",description="The current software version" +kubebuilder:printcolumn:name="insync",type="boolean",JSONPath=".status.inSync",description="The current synchronization state." +kubebuilder:printcolumn:name="reconciled",type="boolean",JSONPath=".status.reconciled",description="The current reconciliation state."

func NewSystem

func NewSystem(namespace string, name string, systemInfo v1info.SystemInfo) (*System, error)

func (*System) DeepCopy

func (in *System) DeepCopy() *System

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new System.

func (*System) DeepCopyInto

func (in *System) DeepCopyInto(out *System)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*System) DeepCopyObject

func (in *System) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*System) HTTPSEnabled

func (in *System) HTTPSEnabled() bool

HTTPSEnabled determine whether HTTPS needs to be enabled. Rather than model this attribute explicitly we determine the result dynamically.

type SystemList

type SystemList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []System `json:"items"`
}

SystemList contains a list of System +deepequal-gen=false

func (*SystemList) DeepCopy

func (in *SystemList) DeepCopy() *SystemList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemList.

func (*SystemList) DeepCopyInto

func (in *SystemList) DeepCopyInto(out *SystemList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SystemList) DeepCopyObject

func (in *SystemList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SystemSpec

type SystemSpec struct {
	// Description is a free form string describing the intended purpose of the
	// system.
	// +optional
	Description *string `json:"description,omitempty"`

	// Location is a short description of the system's physical location.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\. ]+$
	// +kubebuilder:validation:MaxLength=255
	// +optional
	Location *string `json:"location,omitempty"`

	// Latitude is the latitude geolocation coordinate of the system's physical
	// location.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\. ]+$
	// +kubebuilder:validation:MaxLength=30
	// +optional
	Latitude *string `json:"latitude,omitempty"`

	// Longitude is the longitude geolocation coordinate of the system's physical
	// location.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\. ]+$
	// +kubebuilder:validation:MaxLength=30
	// +optional
	Longitude *string `json:"longitude,omitempty"`

	// Contact is a method to reach the person responsible for the system.  For
	// example it could be an email address,
	// phone number, or physical address.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9@\-_\. ]+$
	// +kubebuilder:validation:MaxLength=255
	// +optional
	Contact *string `json:"contact,omitempty"`

	// Nameservers is an array of Domain SystemName servers.  Each server can be
	// specified as either an IPv4 or IPv6
	// address.
	// +optional
	DNSServers *StringList `json:"dnsServers,omitempty"`

	// NTPServers is an array of Network Time Protocol servers.  Each server can
	// be specified as either an IPv4 or IPv6
	// address, or a FQDN hostname.
	// +optional
	NTPServers *StringList `json:"ntpServers,omitempty"`

	// PTP defines the Precision Time Protocol configuration for the system.
	PTP *PTPInfo `json:"ptp,omitempty"`

	// Certificates is a list of references to certificates that must be
	// installed.
	// +optional
	Certificates *CertificateList `json:"certificates,omitempty"`

	// License is a reference to a license file that must be installed.
	// +optional
	License *LicenseInfo `json:"license,omitempty"`

	// ServiceParameters is a list of service parameters
	// +optional
	ServiceParameters *ServiceParameterList `json:"serviceParameters,omitempty"`

	// Storage is a set of storage specific attributes to be configured for the
	// system.
	// +optional
	Storage *SystemStorageInfo `json:"storage,omitempty"`

	// VSwitchType is the desired vswitch implementation to be configured. This
	// is intentionally left unvalidated to avoid issues with proprietary
	// vswitch implementation.
	// +optional
	VSwitchType *string `json:"vswitchType,omitempty"`
}

SystemSpec defines the desired state of System +deepequal-gen:ignore-nil-fields=true

func NewSystemSpec

func NewSystemSpec(systemInfo v1info.SystemInfo) (*SystemSpec, error)

func (*SystemSpec) DeepCopy

func (in *SystemSpec) DeepCopy() *SystemSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemSpec.

func (*SystemSpec) DeepCopyInto

func (in *SystemSpec) DeepCopyInto(out *SystemSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SystemSpec) DeepEqual

func (in *SystemSpec) DeepEqual(other *SystemSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type SystemStatus

type SystemStatus struct {
	// ID defines the unique identifier assigned by the system.
	ID string `json:"id"`

	// SystemType defines the current system type reported by the system API.
	SystemType string `json:"systemType"`

	// SystemMode defines the current system mode reported by the system API.
	SystemMode string `json:"systemMode"`

	// SoftwareVersion defines the current software version reported by the
	// system API.
	SoftwareVersion string `json:"softwareVersion"`

	// Defines whether the resource has been provisioned on the target system.
	InSync bool `json:"inSync"`

	// Reconciled defines whether the System has been successfully reconciled
	// at least once.  If further changes are made they will be ignored by the
	// reconciler.
	Reconciled bool `json:"reconciled"`

	// Defaults defines the configuration attributed collected before applying
	// any user configuration values.
	// +optional
	Defaults *string `json:"defaults,omitempty"`
}

SystemStatus defines the observed state of System

func NewSystemStatus

func NewSystemStatus(systemInfo v1info.SystemInfo) (*SystemStatus, error)

func (*SystemStatus) DeepCopy

func (in *SystemStatus) DeepCopy() *SystemStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemStatus.

func (*SystemStatus) DeepCopyInto

func (in *SystemStatus) DeepCopyInto(out *SystemStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SystemStatus) DeepEqual

func (in *SystemStatus) DeepEqual(other *SystemStatus) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type SystemStorageInfo

type SystemStorageInfo struct {
	// Backends is a set of backend storage methods to be configured.  Only
	Backends *StorageBackendList `json:"backends,omitempty"`

	// DRBD defines the set of DRBD configuration attributes for the system.
	DRBD *DRBDConfiguration `json:"drbd,omitempty"`

	// Filesystems defines the set of controller file system definitions.
	FileSystems *ControllerFileSystemList `json:"filesystems,omitempty"`
}

SystemStorageInfo defines the system level storage attributes that are configurable. +deepequal-gen:ignore-nil-fields=true

func (*SystemStorageInfo) DeepCopy

func (in *SystemStorageInfo) DeepCopy() *SystemStorageInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemStorageInfo.

func (*SystemStorageInfo) DeepCopyInto

func (in *SystemStorageInfo) DeepCopyInto(out *SystemStorageInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SystemStorageInfo) DeepEqual

func (in *SystemStorageInfo) DeepEqual(other *SystemStorageInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type VFInfo

type VFInfo struct {
	// CommonInterfaceInfo defines attributes common to all interface
	// types.
	CommonInterfaceInfo `json:",inline"`

	// Lower defines the interface name over which this VF interface is to be
	// configured.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Lower string `json:"lower"`

	// VFCount defines the number of SRIOV virtual functions for this VF interface.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=256
	VFCount int `json:"vfCount"`

	// VFDriver defines the device driver to be associated with each individual
	// SRIOV VF interface allocated.  Only applicable if the interface class is
	// set to "pci-sriov".
	VFDriver *string `json:"vfDriver,omitempty"`

	// MaxTxRate defines the maximum tx rate of SRIOV VF
	// interfaces. Only applicable if the interface class is set to
	// "pci-sriov" and interface type is set to "vf".
	MaxTxRate *int `json:"maxTxRate,omitempty"`
}

VFInfo defines the attributes specific to a single SR-IOV vf interface.

func (*VFInfo) DeepCopy

func (in *VFInfo) DeepCopy() *VFInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VFInfo.

func (*VFInfo) DeepCopyInto

func (in *VFInfo) DeepCopyInto(out *VFInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VFInfo) DeepEqual

func (in *VFInfo) DeepEqual(other *VFInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (VFInfo) IsKeyEqual

func (in VFInfo) IsKeyEqual(x VFInfo) bool

IsKeyEqual compares two VF interface array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type VFList

type VFList []VFInfo

VFList defines a type to represent a slice of SR-IOV virtual functions. +deepequal-gen:unordered-array=true

func (VFList) DeepCopy

func (in VFList) DeepCopy() VFList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VFList.

func (VFList) DeepCopyInto

func (in VFList) DeepCopyInto(out *VFList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VFList) DeepEqual

func (in *VFList) DeepEqual(other *VFList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type VLANInfo

type VLANInfo struct {
	// CommonInterfaceInfo defines attributes common to all interface
	// types.
	CommonInterfaceInfo `json:",inline"`

	// Lower defines the interface name over which this VLAN interface is to be
	// configured.
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_\.]+$
	Lower string `json:"lower"`

	// VID defines the VLAN ID value to be assigned to this VLAN interface.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4095
	VID int `json:"vid"`
}

VLANInfo defines the attributes specific to a single VLAN interface.

func (*VLANInfo) DeepCopy

func (in *VLANInfo) DeepCopy() *VLANInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLANInfo.

func (*VLANInfo) DeepCopyInto

func (in *VLANInfo) DeepCopyInto(out *VLANInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLANInfo) DeepEqual

func (in *VLANInfo) DeepEqual(other *VLANInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (VLANInfo) IsKeyEqual

func (in VLANInfo) IsKeyEqual(x VLANInfo) bool

IsKeyEqual compares two VLAN interface array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type VLANList

type VLANList []VLANInfo

VLANList defines a type to represent a slice of VLAN interfaces. +deepequal-gen:unordered-array=true

func (VLANList) DeepCopy

func (in VLANList) DeepCopy() VLANList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLANList.

func (VLANList) DeepCopyInto

func (in VLANList) DeepCopyInto(out *VLANList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLANList) DeepEqual

func (in *VLANList) DeepEqual(other *VLANList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type VolumeGroupInfo

type VolumeGroupInfo struct {
	// SystemName defines the name of the logical volume group
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9\-_]+$
	Name string `json:"name"`

	// ConcurrentDiskOperations defines the number of concurrent disk operations
	// permitted.
	// +kubebuilder:validation:Minimum=1
	// +optional
	ConcurrentDiskOperations *int `json:"concurrentDiskOperations,omitempty"`

	// LVMType defines the provisioning type for volumes defines with 'Type'
	// set to 'lvm'.
	// +kubebuilder:validation:Enum=thin,thick
	// +optional
	LVMType *string `json:"lvmType,omitempty"`

	// PhysicalVolumes defines the list of volumes to be created on the host.
	PhysicalVolumes PhysicalVolumeList `json:"physicalVolumes"`
}

VolumeGroupInfo defines the attributes specific to a single volume group. +deepequal-gen:ignore-nil-fields=true

func (*VolumeGroupInfo) DeepCopy

func (in *VolumeGroupInfo) DeepCopy() *VolumeGroupInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeGroupInfo.

func (*VolumeGroupInfo) DeepCopyInto

func (in *VolumeGroupInfo) DeepCopyInto(out *VolumeGroupInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VolumeGroupInfo) DeepEqual

func (in *VolumeGroupInfo) DeepEqual(other *VolumeGroupInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (VolumeGroupInfo) IsKeyEqual

func (in VolumeGroupInfo) IsKeyEqual(x VolumeGroupInfo) bool

IsKeyEqual compares two storage volume array elements and determines if they refer to the same instance. All other attributes will be merged during profile merging.

type VolumeGroupList

type VolumeGroupList []VolumeGroupInfo

VolumeGroupList defines a type to represent a slice of volume groups +deepequal-gen:unordered-array=true

func (VolumeGroupList) DeepCopy

func (in VolumeGroupList) DeepCopy() VolumeGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeGroupList.

func (VolumeGroupList) DeepCopyInto

func (in VolumeGroupList) DeepCopyInto(out *VolumeGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VolumeGroupList) DeepEqual

func (in *VolumeGroupList) DeepEqual(other *VolumeGroupList) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type VxLANInfo

type VxLANInfo struct {
	// MulticastGroup defines the multicast IP address to be used for the data
	// network.
	// +optional
	MulticastGroup *string `json:"multicastGroup,omitempty"`

	// UDPPortNumber defines the UDP protocol number to be used for the data
	// network.  The IANA or Legacy port
	// number values can be used.
	// +kubebuilder:validation:Enum=4789,8472
	UDPPortNumber *int `json:"udpPortNumber,omitempty"`

	// TTL defines the time-to-live value to assign to the data network.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=255
	// +optional
	TTL *int `json:"ttl,omitempty"`

	// EndpointMode defines the endpoint port learning mode for the data network
	// network.  The dynamic mode allows the virtual network to use multicast
	// addressing when transmitting a packet to an unknown endpoint to
	// dynamically discover that node's VTEP IP address.   The static mode
	// requires that all VTEP IP addresses be programmed into the virtual switch
	// in advance and any packets destined to an unknown endpoint are dropped.
	// +kubebuilder:validation:Enum=static,dynamic
	// +optional
	EndpointMode *string `json:"endpointMode,omitempty"`
}

VxLANInfo defines VxLAN specific attributes of a data network

func (*VxLANInfo) DeepCopy

func (in *VxLANInfo) DeepCopy() *VxLANInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VxLANInfo.

func (*VxLANInfo) DeepCopyInto

func (in *VxLANInfo) DeepCopyInto(out *VxLANInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VxLANInfo) DeepEqual

func (in *VxLANInfo) DeepEqual(other *VxLANInfo) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL