v1alpha1

package
v0.0.0-...-541df5b Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: Apache-2.0 Imports: 8 Imported by: 1

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the siteconfig v1alpha1 API group +kubebuilder:object:generate=true +groupName=siteconfig.open-cluster-management.io

Index

Constants

View Source
const (
	PreservationLabelKey      = Group + "/preserve"
	ClusterIdentityLabelValue = "cluster-identity"
)

ClusterInstance preservation label constants

View Source
const (
	ManifestRenderedSuccess   = "rendered"
	ManifestRenderedFailure   = "failed"
	ManifestRenderedValidated = "validated"
	ManifestSuppressed        = "suppressed"
	ManifestPruneFailure      = "pruning-attempt-failed"
)
View Source
const (
	Group               = "siteconfig.open-cluster-management.io"
	Version             = "v1alpha1"
	ClusterInstanceKind = "ClusterInstance"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: Group, Version: Version}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type BmcCredentialsName

type BmcCredentialsName struct {
	// +required
	Name string `json:"name"`
}

BmcCredentialsName

func (*BmcCredentialsName) DeepCopy

func (in *BmcCredentialsName) DeepCopy() *BmcCredentialsName

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

func (*BmcCredentialsName) DeepCopyInto

func (in *BmcCredentialsName) DeepCopyInto(out *BmcCredentialsName)

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

type CPUPartitioningMode

type CPUPartitioningMode string

CPUPartitioningMode is used to drive how a cluster nodes CPUs are Partitioned.

const (
	// The only supported configurations are an all or nothing configuration.
	CPUPartitioningNone     CPUPartitioningMode = "None"
	CPUPartitioningAllNodes CPUPartitioningMode = "AllNodes"
)

type ClusterInstance

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

	Spec   ClusterInstanceSpec   `json:"spec,omitempty"`
	Status ClusterInstanceStatus `json:"status,omitempty"`
}

ClusterInstance is the Schema for the clusterinstances API

func (*ClusterInstance) DeepCopy

func (in *ClusterInstance) DeepCopy() *ClusterInstance

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

func (*ClusterInstance) DeepCopyInto

func (in *ClusterInstance) DeepCopyInto(out *ClusterInstance)

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

func (*ClusterInstance) DeepCopyObject

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

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

type ClusterInstanceConditionReason

type ClusterInstanceConditionReason string

ClusterInstanceConditionReason is a string representing the ClusterInstanceConditionType's reason

const (
	Completed       ClusterInstanceConditionReason = "Completed"
	Failed          ClusterInstanceConditionReason = "Failed"
	TimedOut        ClusterInstanceConditionReason = "TimedOut"
	InProgress      ClusterInstanceConditionReason = "InProgress"
	Unknown         ClusterInstanceConditionReason = "Unknown"
	StaleConditions ClusterInstanceConditionReason = "StaleConditions"
)

The following constants define the different reasons that conditions will be set for

const (
	PreservationNotRequired ClusterInstanceConditionReason = "PreservationNotRequired"
	DataUnavailable         ClusterInstanceConditionReason = "DataUnavailable"
	DataAvailable           ClusterInstanceConditionReason = "DataAvailable"
)

The following constants define additional reinstall condition reasons

func (ClusterInstanceConditionReason) String

String returns the ClusterInstanceConditionReason as a string

type ClusterInstanceConditionType

type ClusterInstanceConditionType string

ClusterInstanceConditionType is a string representing the condition's type

const (
	ClusterInstanceValidated   ClusterInstanceConditionType = "ClusterInstanceValidated"
	RenderedTemplates          ClusterInstanceConditionType = "RenderedTemplates"
	RenderedTemplatesValidated ClusterInstanceConditionType = "RenderedTemplatesValidated"
	RenderedTemplatesApplied   ClusterInstanceConditionType = "RenderedTemplatesApplied"
	ClusterProvisioned         ClusterInstanceConditionType = "Provisioned"
)

The following constants define the different types of conditions that will be set

const (
	ReinstallRequestValidated            ClusterInstanceConditionType = "ReinstallRequestValidated"
	ReinstallRequestProcessed            ClusterInstanceConditionType = "ReinstallRequestProcessed"
	ReinstallPreservationDataBackedup    ClusterInstanceConditionType = "ReinstallPreservationDataBackedup"
	ReinstallPreservationDataRestored    ClusterInstanceConditionType = "ReinstallPreservationDataRestored"
	ReinstallClusterIdentityDataDetected ClusterInstanceConditionType = "ReinstallClusterIdentityDataDetected"
	ReinstallRenderedManifestsDeleted    ClusterInstanceConditionType = "ReinstallRenderedManifestsDeleted"
)

The following constants define the different reinstall condition types

func (ClusterInstanceConditionType) String

String satisfies the conditions.ConditionType interface

type ClusterInstanceList

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

ClusterInstanceList contains a list of ClusterInstance

func (*ClusterInstanceList) DeepCopy

func (in *ClusterInstanceList) DeepCopy() *ClusterInstanceList

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

func (*ClusterInstanceList) DeepCopyInto

func (in *ClusterInstanceList) DeepCopyInto(out *ClusterInstanceList)

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

func (*ClusterInstanceList) DeepCopyObject

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

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

type ClusterInstanceSpec

type ClusterInstanceSpec struct {

	// ClusterName is the name of the cluster.
	// +required
	ClusterName string `json:"clusterName"`

	// PullSecretRef is the reference to the secret to use when pulling images.
	// +required
	PullSecretRef corev1.LocalObjectReference `json:"pullSecretRef"`

	// ClusterImageSetNameRef is the name of the ClusterImageSet resource indicating which
	// OpenShift version to deploy.
	// +required
	ClusterImageSetNameRef string `json:"clusterImageSetNameRef"`

	// SSHPublicKey is the public Secure Shell (SSH) key to provide access to instances.
	// This key will be added to the host to allow ssh access
	// +optional
	SSHPublicKey string `json:"sshPublicKey,omitempty"`

	// BaseDomain is the base domain to use for the deployed cluster.
	// +required
	BaseDomain string `json:"baseDomain"`

	// APIVIPs are the virtual IPs used to reach the OpenShift cluster's API.
	// Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at
	// most one IP address per IP stack used). The order of stacks should be the same as order
	// of subnets in Cluster Networks, Service Networks, and Machine Networks.
	// +kubebuilder:validation:MaxItems=2
	// +optional
	ApiVIPs []string `json:"apiVIPs,omitempty"`

	// IngressVIPs are the virtual IPs used for cluster ingress traffic.
	// Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at
	// most one IP address per IP stack used). The order of stacks should be the same as order
	// of subnets in Cluster Networks, Service Networks, and Machine Networks.
	// +kubebuilder:validation:MaxItems=2
	// +optional
	IngressVIPs []string `json:"ingressVIPs,omitempty"`

	// HoldInstallation will prevent installation from happening when true.
	// Inspection and validation will proceed as usual, but once the RequirementsMet condition is true,
	// installation will not begin until this field is set to false.
	// +kubebuilder:default:=false
	// +optional
	HoldInstallation bool `json:"holdInstallation,omitempty"`

	// AdditionalNTPSources is a list of NTP sources (hostname or IP) to be added to all cluster
	// hosts. They are added to any NTP sources that were configured through other means.
	// +optional
	AdditionalNTPSources []string `json:"additionalNTPSources,omitempty"`

	// MachineNetwork is the list of IP address pools for machines.
	// +optional
	MachineNetwork []MachineNetworkEntry `json:"machineNetwork,omitempty"`

	// ClusterNetwork is the list of IP address pools for pods.
	// +optional
	ClusterNetwork []ClusterNetworkEntry `json:"clusterNetwork,omitempty"`

	// ServiceNetwork is the list of IP address pools for services.
	// +optional
	ServiceNetwork []ServiceNetworkEntry `json:"serviceNetwork,omitempty"`

	// NetworkType is the Container Network Interface (CNI) plug-in to install
	// The default value is OpenShiftSDN for IPv4, and OVNKubernetes for IPv6 or SNO
	// +kubebuilder:validation:Enum=OpenShiftSDN;OVNKubernetes
	// +kubebuilder:default:=OVNKubernetes
	// +optional
	NetworkType string `json:"networkType,omitempty"`

	// PlatformType is the name for the specific platform upon which to perform the installation.
	// +optional
	PlatformType PlatformType `json:"platformType,omitempty"`

	// Additional cluster-wide annotations to be applied to the rendered templates
	// +optional
	ExtraAnnotations map[string]map[string]string `json:"extraAnnotations,omitempty"`

	// Additional cluster-wide labels to be applied to the rendered templates
	// +optional
	ExtraLabels map[string]map[string]string `json:"extraLabels,omitempty"`

	// InstallConfigOverrides is a Json formatted string that provides a generic way of passing
	// install-config parameters.
	// +optional
	InstallConfigOverrides string `json:"installConfigOverrides,omitempty"`

	// Json formatted string containing the user overrides for the initial ignition config
	// +optional
	IgnitionConfigOverride string `json:"ignitionConfigOverride,omitempty"`

	// DiskEncryption is the configuration to enable/disable disk encryption for cluster nodes.
	// +optional
	DiskEncryption *DiskEncryption `json:"diskEncryption,omitempty"`

	// Proxy defines the proxy settings used for the install config
	// +optional
	Proxy *aiv1beta1.Proxy `json:"proxy,omitempty"`

	// ExtraManifestsRefs is list of config map references containing additional manifests to be applied to the cluster.
	// +optional
	ExtraManifestsRefs []corev1.LocalObjectReference `json:"extraManifestsRefs,omitempty"`

	// SuppressedManifests is a list of manifest names to be excluded from the template rendering process
	// +optional
	SuppressedManifests []string `json:"suppressedManifests,omitempty"`

	// PruneManifests represents a list of Kubernetes resource references that indicates which manifests should be
	// pruned (removed).
	// +optional
	PruneManifests []ResourceRef `json:"pruneManifests,omitempty"`

	// CPUPartitioning determines if a cluster should be setup for CPU workload partitioning at install time.
	// When this field is set the cluster will be flagged for CPU Partitioning allowing users to segregate workloads to
	// specific CPU Sets. This does not make any decisions on workloads it only configures the nodes to allow CPU
	// Partitioning.
	// The "AllNodes" value will setup all nodes for CPU Partitioning, the default is "None".
	// +kubebuilder:validation:Enum=None;AllNodes
	// +kubebuilder:default=None
	// +optional
	CPUPartitioning CPUPartitioningMode `json:"cpuPartitioningMode,omitempty"`

	// +kubebuilder:validation:Enum=SNO;HighlyAvailable
	// +optional
	ClusterType ClusterType `json:"clusterType,omitempty"`

	// TemplateRefs is a list of references to cluster-level templates. A cluster-level template consists of a ConfigMap
	// in which the keys of the data field represent the kind of the installation manifest(s).
	// Cluster-level templates are instantiated once per cluster (ClusterInstance CR).
	// +required
	TemplateRefs []TemplateRef `json:"templateRefs"`

	// CABundle is a reference to a config map containing the new bundle of trusted certificates for the host.
	// +optional
	CaBundleRef *corev1.LocalObjectReference `json:"caBundleRef,omitempty"`

	// List of node objects
	// +required
	Nodes []NodeSpec `json:"nodes"`

	// Reinstall specifications
	// +optional
	Reinstall *ReinstallSpec `json:"reinstall,omitempty"`
}

ClusterInstanceSpec defines the desired state of ClusterInstance

func (*ClusterInstanceSpec) DeepCopy

func (in *ClusterInstanceSpec) DeepCopy() *ClusterInstanceSpec

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

func (*ClusterInstanceSpec) DeepCopyInto

func (in *ClusterInstanceSpec) DeepCopyInto(out *ClusterInstanceSpec)

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

func (*ClusterInstanceSpec) ExtraAnnotationSearch

func (c *ClusterInstanceSpec) ExtraAnnotationSearch(kind string) (map[string]string, bool)

ExtraAnnotationSearch Looks up a specific manifest Annotation for this cluster

func (*ClusterInstanceSpec) ExtraLabelSearch

func (c *ClusterInstanceSpec) ExtraLabelSearch(kind string) (map[string]string, bool)

ExtraLabelSearch Looks up a specific manifest label for this cluster

type ClusterInstanceStatus

type ClusterInstanceStatus struct {

	// List of conditions pertaining to actions performed on the ClusterInstance resource.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Reference to the associated ClusterDeployment resource.
	// +optional
	ClusterDeploymentRef *corev1.LocalObjectReference `json:"clusterDeploymentRef,omitempty"`

	// List of hive status conditions associated with the ClusterDeployment resource.
	// +optional
	DeploymentConditions []hivev1.ClusterDeploymentCondition `json:"deploymentConditions,omitempty"`

	// List of manifests that have been rendered along with their status.
	// +optional
	ManifestsRendered []ManifestReference `json:"manifestsRendered,omitempty"`

	// Track the observed generation to avoid unnecessary reconciles
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Reinstall status information.
	// +optional
	Reinstall *ReinstallStatus `json:"reinstall,omitempty"`
}

ClusterInstanceStatus defines the observed state of ClusterInstance

func (*ClusterInstanceStatus) DeepCopy

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

func (*ClusterInstanceStatus) DeepCopyInto

func (in *ClusterInstanceStatus) DeepCopyInto(out *ClusterInstanceStatus)

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

type ClusterNetworkEntry

type ClusterNetworkEntry struct {
	// CIDR is the IP block address pool.
	// +required
	CIDR string `json:"cidr"`

	// HostPrefix is the prefix size to allocate to each node from the CIDR.
	// For example, 24 would allocate 2^8=256 adresses to each node. If this
	// field is not used by the plugin, it can be left unset.
	// +optional
	HostPrefix int32 `json:"hostPrefix,omitempty"`
}

ClusterNetworkEntry is a single IP address block for pod IP blocks. IP blocks are allocated with size 2^HostSubnetLength.

func (*ClusterNetworkEntry) DeepCopy

func (in *ClusterNetworkEntry) DeepCopy() *ClusterNetworkEntry

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

func (*ClusterNetworkEntry) DeepCopyInto

func (in *ClusterNetworkEntry) DeepCopyInto(out *ClusterNetworkEntry)

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

type ClusterType

type ClusterType string

ClusterType is a string representing the cluster type

const (
	ClusterTypeSNO             ClusterType = "SNO"
	ClusterTypeHighlyAvailable ClusterType = "HighlyAvailable"
)

type DiskEncryption

type DiskEncryption struct {
	// +kubebuilder:default:=none
	Type string       `json:"type,omitempty"`
	Tang []TangConfig `json:"tang,omitempty"`
}

func (*DiskEncryption) DeepCopy

func (in *DiskEncryption) DeepCopy() *DiskEncryption

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

func (*DiskEncryption) DeepCopyInto

func (in *DiskEncryption) DeepCopyInto(out *DiskEncryption)

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

type IronicInspect

type IronicInspect string

IronicInspect is used to specify if automatic introspection carried out during registration of BMH is enabled or disabled. +kubebuilder:validation:Enum="";disabled

type MachineNetworkEntry

type MachineNetworkEntry struct {
	// CIDR is the IP block address pool for machines within the cluster.
	// +required
	CIDR string `json:"cidr"`
}

MachineNetworkEntry is a single IP address block for node IP blocks.

func (*MachineNetworkEntry) DeepCopy

func (in *MachineNetworkEntry) DeepCopy() *MachineNetworkEntry

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

func (*MachineNetworkEntry) DeepCopyInto

func (in *MachineNetworkEntry) DeepCopyInto(out *MachineNetworkEntry)

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

type ManifestReference

type ManifestReference struct {
	// APIGroup is the group for the resource being referenced.
	// If APIGroup is not specified, the specified Kind must be in the core API group.
	// For any other third-party types, APIGroup is required.
	// +required
	APIGroup *string `json:"apiGroup"`
	// Kind is the type of resource being referenced
	// +required
	Kind string `json:"kind"`
	// Name is the name of the resource being referenced
	// +required
	Name string `json:"name"`
	// Namespace is the namespace of the resource being referenced
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// SyncWave is the order in which the resource should be processed: created in ascending order, deleted in
	// descending order.
	// +required
	SyncWave int `json:"syncWave"`
	// Status is the status of the manifest
	// +required
	Status string `json:"status"`
	// lastAppliedTime is the last time the manifest was applied.
	// This should be when the underlying manifest changed.  If that is not known, then using the time when the API
	// field changed is acceptable.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=date-time
	// +required
	LastAppliedTime metav1.Time `json:"lastAppliedTime"`
	// message is a human readable message indicating details about the transition.
	// This may be an empty string.
	// +kubebuilder:validation:MaxLength=32768
	// +optional
	Message string `json:"message,omitempty"`
}

ManifestReference contains enough information to let you locate the typed referenced object inside the same namespace. +structType=atomic

func (*ManifestReference) DeepCopy

func (in *ManifestReference) DeepCopy() *ManifestReference

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

func (*ManifestReference) DeepCopyInto

func (in *ManifestReference) DeepCopyInto(out *ManifestReference)

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

type NodeSpec

type NodeSpec struct {
	// BmcAddress holds the URL for accessing the controller on the network.
	// +required
	BmcAddress string `json:"bmcAddress"`

	// BmcCredentialsName is the name of the secret containing the BMC credentials (requires keys "username"
	// and "password").
	// +required
	BmcCredentialsName BmcCredentialsName `json:"bmcCredentialsName"`

	// Which MAC address will PXE boot? This is optional for some
	// types, but required for libvirt VMs driven by vbmc.
	// +kubebuilder:validation:Pattern=`[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}`
	// +required
	BootMACAddress string `json:"bootMACAddress"`

	// When set to disabled, automated cleaning will be avoided during provisioning and deprovisioning.
	// Set the value to metadata to enable the removal of the disk’s partitioning table only, without fully wiping
	// the disk. The default value is disabled.
	// +optional
	// +kubebuilder:default:=disabled
	AutomatedCleaningMode bmh_v1alpha1.AutomatedCleaningMode `json:"automatedCleaningMode,omitempty"`

	// RootDeviceHints specifies the device for deployment.
	// Identifiers that are stable across reboots are recommended, for example, wwn: <disk_wwn> or
	// deviceName: /dev/disk/by-path/<device_path>
	// +optional
	RootDeviceHints *bmh_v1alpha1.RootDeviceHints `json:"rootDeviceHints,omitempty"`

	// NodeNetwork is a set of configurations pertaining to the network settings for the node.
	// +optional
	NodeNetwork *aiv1beta1.NMStateConfigSpec `json:"nodeNetwork,omitempty"`

	// NodeLabels allows the specification of custom roles for your nodes in your managed clusters.
	// These are additional roles that are not used by any OpenShift Container Platform components, only by the user.
	// When you add a custom role, it can be associated with a custom machine config pool that references a specific
	// configuration for that role.
	// Adding custom labels or roles during installation makes the deployment process more effective and prevents the
	// need for additional reboots after the installation is complete.
	// +optional
	NodeLabels map[string]string `json:"nodeLabels,omitempty"`

	// Hostname is the desired hostname for the host
	// +required
	HostName string `json:"hostName"`

	// Provide guidance about how to choose the device for the image being provisioned.
	// +kubebuilder:default:=UEFI
	// +optional
	BootMode bmh_v1alpha1.BootMode `json:"bootMode,omitempty"`

	// Json formatted string containing the user overrides for the host's coreos installer args
	// +optional
	InstallerArgs string `json:"installerArgs,omitempty"`

	// Json formatted string containing the user overrides for the host's ignition config
	// IgnitionConfigOverride enables the assignment of partitions for persistent storage.
	// Adjust disk ID and size to the specific hardware.
	// +optional
	IgnitionConfigOverride string `json:"ignitionConfigOverride,omitempty"`

	// +kubebuilder:validation:Enum=master;worker
	// +kubebuilder:default:=master
	// +optional
	Role string `json:"role,omitempty"`

	// Additional node-level annotations to be applied to the rendered templates
	// +optional
	ExtraAnnotations map[string]map[string]string `json:"extraAnnotations,omitempty"`

	// Additional node-level labels to be applied to the rendered templates
	// +optional
	ExtraLabels map[string]map[string]string `json:"extraLabels,omitempty"`

	// SuppressedManifests is a list of node-level manifest names to be excluded from the template rendering process
	// +optional
	SuppressedManifests []string `json:"suppressedManifests,omitempty"`

	// PruneManifests represents a list of Kubernetes resource references that indicates which "node-level" manifests
	// should be pruned (removed).
	// +optional
	PruneManifests []ResourceRef `json:"pruneManifests,omitempty"`

	// IronicInspect is used to specify if automatic introspection carried out during registration of BMH is enabled or
	// disabled
	// +kubebuilder:default:=""
	// +optional
	IronicInspect IronicInspect `json:"ironicInspect,omitempty"`

	// TemplateRefs is a list of references to node-level templates. A node-level template consists of a ConfigMap
	// in which the keys of the data field represent the kind of the installation manifest(s).
	// Node-level templates are instantiated once for each node in the ClusterInstance CR.
	// +required
	TemplateRefs []TemplateRef `json:"templateRefs"`
}

NodeSpec

func (*NodeSpec) DeepCopy

func (in *NodeSpec) DeepCopy() *NodeSpec

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

func (*NodeSpec) DeepCopyInto

func (in *NodeSpec) DeepCopyInto(out *NodeSpec)

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

func (*NodeSpec) ExtraAnnotationSearch

func (node *NodeSpec) ExtraAnnotationSearch(kind string, cluster *ClusterInstanceSpec) (map[string]string, bool)

ExtraAnnotationSearch Looks up a specific manifest annotation for this node, with fallback to cluster

func (*NodeSpec) ExtraLabelSearch

func (node *NodeSpec) ExtraLabelSearch(kind string, cluster *ClusterInstanceSpec) (map[string]string, bool)

ExtraLabelSearch Looks up a specific manifest label for this node, with fallback to cluster

type PlatformType

type PlatformType string

PlatformType is a specific supported infrastructure provider. +kubebuilder:validation:Enum="";BareMetal;None;VSphere;Nutanix;External

type PreservationMode

type PreservationMode string

PreservationMode represents the modes of data preservation for a ClusterInstance during reinstallation.

const (
	// PreservationModeNone indicates that no data preservation will be performed.
	PreservationModeNone PreservationMode = "None"

	// PreservationModeAll indicates that all resources labeled with PreservationLabelKey will be preserved.
	PreservationModeAll PreservationMode = "All"

	// PreservationModeClusterIdentity indicates that only cluster identity resources labeled with
	// PreservationLabelKey and ClusterIdentityLabelValue will be preserved.
	PreservationModeClusterIdentity PreservationMode = "ClusterIdentity"
)

Supported modes of data preservation for reinstallation.

type ReinstallHistory

type ReinstallHistory struct {
	// Generation specifies the generation of the ClusterInstance at the time of the reinstallation.
	// This value corresponds to the ReinstallSpec.Generation field associated with the reinstallation request.
	// +required
	Generation string `json:"generation"`

	// Timestamp indicates the date and time when the reinstallation occurred.
	// +required
	Timestamp metav1.Time `json:"timestamp"`

	// ClusterInstanceSpecDiff provides a JSON representation of the differences between the
	// ClusterInstance spec at the time of reinstallation and the previous spec.
	// This field helps in tracking changes that triggered the reinstallation.
	// +required
	ClusterInstanceSpecDiff string `json:"clusterInstanceSpecDiff"`
}

ReinstallHistory represents a record of a reinstallation event for a ClusterInstance.

func (*ReinstallHistory) DeepCopy

func (in *ReinstallHistory) DeepCopy() *ReinstallHistory

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

func (*ReinstallHistory) DeepCopyInto

func (in *ReinstallHistory) DeepCopyInto(out *ReinstallHistory)

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

type ReinstallSpec

type ReinstallSpec struct {
	// Generation specifies the desired generation for the reinstallation operation.
	// Updating this field triggers a new reinstall request.
	// +required
	Generation string `json:"generation"`

	// PreservationMode defines the strategy for data preservation during reinstallation.
	// Supported values:
	// - None: No data will be preserved.
	// - All: All Secrets and ConfigMaps in the ClusterInstance namespace labeled with the PreservationLabelKey will be
	//   preserved.
	// - ClusterIdentity: Only Secrets and ConfigMaps in the ClusterInstance namespace labeled with both the
	//   PreservationLabelKey and the ClusterIdentityLabelValue will be preserved.
	// This field ensures critical cluster identity data is preserved when required.
	// +kubebuilder:validation:Enum=None;All;ClusterIdentity
	// +kubebuilder:default=None
	// +required
	PreservationMode PreservationMode `json:"preservationMode"`
}

ReinstallSpec defines the configuration for reinstallation of a ClusterInstance.

func (*ReinstallSpec) DeepCopy

func (in *ReinstallSpec) DeepCopy() *ReinstallSpec

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

func (*ReinstallSpec) DeepCopyInto

func (in *ReinstallSpec) DeepCopyInto(out *ReinstallSpec)

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

type ReinstallStatus

type ReinstallStatus struct {
	// ObservedGeneration is the generation of the ClusterInstance that has been processed for reinstallation.
	// It corresponds to the Generation field in ReinstallSpec and indicates the latest reinstall request that
	// the controller has acted upon.
	// +required
	ObservedGeneration string `json:"observedGeneration"`

	// History maintains a record of all previous reinstallation attempts.
	// Each entry captures details such as the generation, timestamp, and the differences in the ClusterInstance
	// specification that triggered the reinstall.
	// This field is useful for debugging, auditing, and tracking reinstallation events over time.
	// +optional
	History []ReinstallHistory `json:"history,omitempty"`
}

ReinstallStatus represents the current state and historical details of reinstall operations for a ClusterInstance.

func (*ReinstallStatus) DeepCopy

func (in *ReinstallStatus) DeepCopy() *ReinstallStatus

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

func (*ReinstallStatus) DeepCopyInto

func (in *ReinstallStatus) DeepCopyInto(out *ReinstallStatus)

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

type ResourceRef

type ResourceRef struct {
	// APIVersion is the version of the Kubernetes API to use when interacting
	// with the resource. It includes both the API group and the version, such
	// as "v1" for core resources or "apps/v1" for deployments.
	// +required
	APIVersion string `json:"apiVersion"`

	// Kind is the type of Kubernetes resource being referenced.
	// +required
	Kind string `json:"kind"`
}

ResourceRef represents the API version and kind of a Kubernetes resource

func (*ResourceRef) DeepCopy

func (in *ResourceRef) DeepCopy() *ResourceRef

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

func (*ResourceRef) DeepCopyInto

func (in *ResourceRef) DeepCopyInto(out *ResourceRef)

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

type ServiceNetworkEntry

type ServiceNetworkEntry struct {
	// CIDR is the IP block address pool for machines within the cluster.
	// +required
	CIDR string `json:"cidr"`
}

ServiceNetworkEntry is a single IP address block for node IP blocks.

func (*ServiceNetworkEntry) DeepCopy

func (in *ServiceNetworkEntry) DeepCopy() *ServiceNetworkEntry

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

func (*ServiceNetworkEntry) DeepCopyInto

func (in *ServiceNetworkEntry) DeepCopyInto(out *ServiceNetworkEntry)

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

type TangConfig

type TangConfig struct {
	URL        string `json:"url,omitempty"`
	Thumbprint string `json:"thumbprint,omitempty"`
}

func (*TangConfig) DeepCopy

func (in *TangConfig) DeepCopy() *TangConfig

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

func (*TangConfig) DeepCopyInto

func (in *TangConfig) DeepCopyInto(out *TangConfig)

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

type TemplateRef

type TemplateRef struct {
	// +required
	Name string `json:"name"`
	// +required
	Namespace string `json:"namespace"`
}

TemplateRef is used to specify the installation CR templates

func (*TemplateRef) DeepCopy

func (in *TemplateRef) DeepCopy() *TemplateRef

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

func (*TemplateRef) DeepCopyInto

func (in *TemplateRef) DeepCopyInto(out *TemplateRef)

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

Jump to

Keyboard shortcuts

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