types

package
v1.4.21-pre Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2025 License: Apache-2.0 Imports: 24 Imported by: 709

Documentation

Overview

Package types defines structures for installer configuration and management. +k8s:deepcopy-gen=package

Index

Constants

View Source
const (
	// MachinePoolComputeRoleName name associated with the compute machinepool.
	MachinePoolComputeRoleName = "worker"
	// MachinePoolEdgeRoleName name associated with the compute edge machinepool.
	MachinePoolEdgeRoleName = "edge"
	// MachinePoolControlPlaneRoleName name associated with the control plane machinepool.
	MachinePoolControlPlaneRoleName = "master"
	// MachinePoolArbiterRoleName name associated with the control plane machinepool for smaller sized limited nodes.
	MachinePoolArbiterRoleName = "arbiter"
)
View Source
const (
	// ArchitectureAMD64 indicates AMD64 (x86_64).
	ArchitectureAMD64 = "amd64"
	// ArchitectureS390X indicates s390x (IBM System Z).
	ArchitectureS390X = "s390x"
	// ArchitecturePPC64LE indicates ppc64 little endian (Power PC)
	ArchitecturePPC64LE = "ppc64le"
	// ArchitectureARM64 indicates arm (aarch64) systems
	ArchitectureARM64 = "arm64"
)
View Source
const (
	// InstallConfigVersion is the version supported by this package.
	// If you bump this, you must also update the list of convertable values in
	// pkg/types/conversion/installconfig.go
	InstallConfigVersion = "v1"
)

Variables

View Source
var (
	// PlatformNames is a slice with all the visibly-supported
	// platform names in alphabetical order. This is the list of
	// platforms presented to the user in the interactive wizard.
	PlatformNames = []string{
		aws.Name,
		azure.Name,
		baremetal.Name,
		gcp.Name,
		ibmcloud.Name,
		nutanix.Name,
		openstack.Name,
		powervc.Name,
		powervs.Name,
		vsphere.Name,
	}
	// HiddenPlatformNames is a slice with all the
	// hidden-but-supported platform names. This list isn't presented
	// to the user in the interactive wizard.
	HiddenPlatformNames = []string{
		external.Name,
		none.Name,
	}

	// SCOS is a setting to enable CentOS Stream CoreOS-only modifications
	SCOS = false
)

Functions

func GetClusterProfileName added in v0.90.0

func GetClusterProfileName() features.ClusterProfileName

GetClusterProfileName utility method to retrieve the cluster profile setting. This is used when dealing with openshift api to get FeatureSets.

func MachineNetworksToCIDRs added in v0.90.0

func MachineNetworksToCIDRs(nets []MachineNetworkEntry) []configv1.CIDR

MachineNetworksToCIDRs is used to convert list of Machine Network Entries to list of CIDRs.

func StringsToIPs added in v0.90.0

func StringsToIPs(ips []string) []configv1.IP

StringsToIPs is used to convert list of strings to list of IP addresses.

Types

type Architecture added in v0.4.15

type Architecture string

Architecture is the instruction set architecture for the machines in a pool. +kubebuilder:validation:Enum="";amd64

type BootstrapInPlace added in v0.4.15

type BootstrapInPlace struct {
	// InstallationDisk is the target disk drive for coreos-installer
	InstallationDisk string `json:"installationDisk"`
}

BootstrapInPlace defines the configuration for bootstrap-in-place installation

func (*BootstrapInPlace) DeepCopy

func (in *BootstrapInPlace) DeepCopy() *BootstrapInPlace

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

func (*BootstrapInPlace) DeepCopyInto

func (in *BootstrapInPlace) DeepCopyInto(out *BootstrapInPlace)

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

type CPUPartitioningMode added in v0.4.15

type CPUPartitioningMode string

CPUPartitioningMode defines how the nodes should be setup for partitioning the CPU Sets. +kubebuilder:validation:Enum=None;AllNodes

const (
	// CPUPartitioningNone means that no CPU Partitioning is on in this cluster infrastructure.
	CPUPartitioningNone CPUPartitioningMode = "None"
	// CPUPartitioningAllNodes means that all nodes are configured with CPU Partitioning in this cluster.
	CPUPartitioningAllNodes CPUPartitioningMode = "AllNodes"
)

type Capabilities added in v0.4.15

type Capabilities struct {
	// baselineCapabilitySet selects an initial set of
	// optional capabilities to enable, which can be extended via
	// additionalEnabledCapabilities. The default is vCurrent.
	// +optional
	BaselineCapabilitySet configv1.ClusterVersionCapabilitySet `json:"baselineCapabilitySet,omitempty"`

	// additionalEnabledCapabilities extends the set of managed
	// capabilities beyond the baseline defined in
	// baselineCapabilitySet. The default is an empty set.
	// +optional
	AdditionalEnabledCapabilities []configv1.ClusterVersionCapability `json:"additionalEnabledCapabilities,omitempty"`
}

Capabilities selects the managed set of optional, core cluster components.

func (*Capabilities) DeepCopy

func (in *Capabilities) DeepCopy() *Capabilities

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

func (*Capabilities) DeepCopyInto

func (in *Capabilities) DeepCopyInto(out *Capabilities)

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

type CertificateVerificationPolicy

type CertificateVerificationPolicy string

CertificateVerificationPolicy represents the options for CertificateVerification .

const (
	// CertificateVerificationEnabled enables ssl certificate verification.
	CertificateVerificationEnabled CertificateVerificationPolicy = "Enabled"
	// CertificateVerificationDisabled disables ssl certificate verification.
	CertificateVerificationDisabled CertificateVerificationPolicy = "Disabled"
)

type ClusterMetadata

type ClusterMetadata struct {
	// ClusterName is the name for the cluster.
	ClusterName string `json:"clusterName"`
	// ClusterID is a globally unique ID that is used to identify an Openshift cluster.
	ClusterID string `json:"clusterID"`
	// InfraID is an ID that is used to identify cloud resources created by the installer.
	InfraID                 string `json:"infraID"`
	ClusterPlatformMetadata `json:",inline"`
	FeatureSet              configv1.FeatureSet          `json:"featureSet"`
	CustomFeatureSet        *configv1.CustomFeatureGates `json:"customFeatureSet"`
}

ClusterMetadata contains information regarding the cluster that was created by installer.

func (*ClusterMetadata) DeepCopy

func (in *ClusterMetadata) DeepCopy() *ClusterMetadata

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

func (*ClusterMetadata) DeepCopyInto

func (in *ClusterMetadata) DeepCopyInto(out *ClusterMetadata)

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

type ClusterNetworkEntry added in v0.4.15

type ClusterNetworkEntry struct {
	// CIDR is the IP block address pool.
	CIDR ipnet.IPNet `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.
	// When multiple CIDRs of the same family (i.e. IPv4/IPv6) are present,
	// their HostPrefix value must be the same.
	// +optional
	HostPrefix int32 `json:"hostPrefix,omitempty"`

	// The size of blocks to allocate from the larger pool.
	// This is the length in bits - so a 9 here will allocate a /23.
	// +optional
	DeprecatedHostSubnetLength int32 `json:"hostSubnetLength,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 ClusterPlatformMetadata

type ClusterPlatformMetadata struct {
	AWS       *aws.Metadata       `json:"aws,omitempty"`
	OpenStack *openstack.Metadata `json:"openstack,omitempty"`
	Azure     *azure.Metadata     `json:"azure,omitempty"`
	GCP       *gcp.Metadata       `json:"gcp,omitempty"`
	IBMCloud  *ibmcloud.Metadata  `json:"ibmcloud,omitempty"`
	BareMetal *baremetal.Metadata `json:"baremetal,omitempty"`
	Ovirt     *ovirt.Metadata     `json:"ovirt,omitempty"`
	PowerVC   *powervc.Metadata   `json:"powervc,omitempty"`
	PowerVS   *powervs.Metadata   `json:"powervs,omitempty"`
	VSphere   *vsphere.Metadata   `json:"vsphere,omitempty"`
	Nutanix   *nutanix.Metadata   `json:"nutanix,omitempty"`
}

ClusterPlatformMetadata contains metadata for platfrom.

func (*ClusterPlatformMetadata) DeepCopy

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

func (*ClusterPlatformMetadata) DeepCopyInto

func (in *ClusterPlatformMetadata) DeepCopyInto(out *ClusterPlatformMetadata)

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

func (*ClusterPlatformMetadata) Platform

func (cpm *ClusterPlatformMetadata) Platform() string

Platform returns a string representation of the platform (e.g. "aws" if AWS is non-nil). It returns an empty string if no platform is configured.

type ClusterQuota added in v0.4.15

type ClusterQuota struct {
	GCP *gcp.Quota `json:"gcp,omitempty"`
}

ClusterQuota contains the size, in cloud quota, of the cluster that was created by installer.

func (*ClusterQuota) DeepCopy

func (in *ClusterQuota) DeepCopy() *ClusterQuota

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

func (*ClusterQuota) DeepCopyInto

func (in *ClusterQuota) DeepCopyInto(out *ClusterQuota)

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

type Credential

type Credential struct {
	HostName string `json:"hostName,omitempty" validate:"required,uniqueField"`
	Username string `json:"username" validate:"required"`
	Password string `json:"password" validate:"required"`
	Address  string `json:"address" validate:"required,uniqueField"`
	// CertificateVerification Defines whether ssl certificate verification is required or not.
	// If omitted, the platform chooses a default, that default is enabled.
	// +kubebuilder:default:="Enabled"
	// +kubebuilder:validation:Enum=Enabled;Disabled
	// +optional
	CertificateVerification CertificateVerificationPolicy `json:"certificateVerification,omitempty"`
}

Credential stores the information about a baremetal host's management controller.

func (*Credential) DeepCopy

func (in *Credential) DeepCopy() *Credential

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

func (*Credential) DeepCopyInto

func (in *Credential) DeepCopyInto(out *Credential)

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

type CredentialsMode added in v0.4.15

type CredentialsMode string

CredentialsMode is the mode by which CredentialsRequests will be satisfied. +kubebuilder:validation:Enum="";Mint;Passthrough;Manual

const (
	// ManualCredentialsMode indicates that cloud-credential-operator should not process any CredentialsRequests.
	ManualCredentialsMode CredentialsMode = "Manual"

	// MintCredentialsMode indicates that cloud-credential-operator should be creating users for each
	// CredentialsRequest.
	MintCredentialsMode CredentialsMode = "Mint"

	// PassthroughCredentialsMode indicates that cloud-credential-operator should just copy over the cluster's
	// cloud credentials for each CredentialsRequest.
	PassthroughCredentialsMode CredentialsMode = "Passthrough"
)

type Disk

type Disk struct {
	Type DiskType `json:"type,omitempty"`

	UserDefined *DiskUserDefined `json:"userDefined,omitempty"`
	Etcd        *DiskEtcd        `json:"etcd,omitempty"`
	Swap        *DiskSwap        `json:"swap,omitempty"`
}

Disk defines the type of disk (etcd, swap or user-defined) and the configuration of each disk type.

func (*Disk) DeepCopy

func (in *Disk) DeepCopy() *Disk

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

func (*Disk) DeepCopyInto

func (in *Disk) DeepCopyInto(out *Disk)

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

type DiskEtcd

type DiskEtcd struct {
	PlatformDiskID string `json:"platformDiskID,omitempty"`
}

DiskEtcd defines a disk type of etcd.

func (*DiskEtcd) DeepCopy

func (in *DiskEtcd) DeepCopy() *DiskEtcd

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

func (*DiskEtcd) DeepCopyInto

func (in *DiskEtcd) DeepCopyInto(out *DiskEtcd)

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

type DiskSwap

type DiskSwap struct {
	PlatformDiskID string `json:"platformDiskID,omitempty"`
}

DiskSwap defines a disk type of swap.

func (*DiskSwap) DeepCopy

func (in *DiskSwap) DeepCopy() *DiskSwap

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

func (*DiskSwap) DeepCopyInto

func (in *DiskSwap) DeepCopyInto(out *DiskSwap)

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

type DiskType

type DiskType string

DiskType is the string representation of the three types disk setups +kubebuilder:validation:Enum=etcd;swap;user-defined

const (
	// Etcd indicates etcd disk setup.
	Etcd DiskType = "etcd"
	// Swap indicates swap disk setup.
	Swap DiskType = "swap"
	// UserDefined indicates user-defined disk setup.
	UserDefined DiskType = "user-defined"
)

type DiskUserDefined

type DiskUserDefined struct {
	PlatformDiskID string `json:"platformDiskID,omitempty"`
	MountPath      string `json:"mountPath,omitempty"`
}

DiskUserDefined defines a disk type of user-defined.

func (*DiskUserDefined) DeepCopy

func (in *DiskUserDefined) DeepCopy() *DiskUserDefined

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

func (*DiskUserDefined) DeepCopyInto

func (in *DiskUserDefined) DeepCopyInto(out *DiskUserDefined)

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

type Fencing

type Fencing struct {
	// Credentials stores the information about a baremetal host's management controller.
	// +optional
	Credentials []*Credential `json:"credentials,omitempty"`
}

Fencing stores the information about a baremetal host's management controller.

func (*Fencing) DeepCopy

func (in *Fencing) DeepCopy() *Fencing

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

func (*Fencing) DeepCopyInto

func (in *Fencing) DeepCopyInto(out *Fencing)

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

type HyperthreadingMode added in v0.4.15

type HyperthreadingMode string

HyperthreadingMode is the mode of hyperthreading for a machine. +kubebuilder:validation:Enum="";Enabled;Disabled

const (
	// HyperthreadingEnabled indicates that hyperthreading is enabled.
	HyperthreadingEnabled HyperthreadingMode = "Enabled"
	// HyperthreadingDisabled indicates that hyperthreading is disabled.
	HyperthreadingDisabled HyperthreadingMode = "Disabled"
)

type IPv4OVNKubernetesConfig

type IPv4OVNKubernetesConfig struct {
	// internalJoinSubnet is a v4 subnet used internally by ovn-kubernetes in case the
	// default one is being already used by something else. It must not overlap with
	// any other subnet being used by OpenShift or by the node network. The size of the
	// subnet must be larger than the number of nodes. The value cannot be changed
	// after installation.
	// The current default value is 100.64.0.0/16
	// The subnet must be large enough to accommodate one IP per node in your cluster
	// The value must be in proper IPV4 CIDR format
	// +optional
	InternalJoinSubnet *ipnet.IPNet `json:"internalJoinSubnet,omitempty"`
}

IPv4OVNKubernetesConfig is IPv4 configuration for the ovn-kubernetes sdn plugin.

func (*IPv4OVNKubernetesConfig) DeepCopy

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

func (*IPv4OVNKubernetesConfig) DeepCopyInto

func (in *IPv4OVNKubernetesConfig) DeepCopyInto(out *IPv4OVNKubernetesConfig)

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

type ImageContentSource added in v0.4.15

type ImageContentSource struct {
	// Source is the repository that users refer to, e.g. in image pull specifications.
	Source string `json:"source"`

	// Mirrors is one or more repositories that may also contain the same images.
	// +optional
	Mirrors []string `json:"mirrors,omitempty"`
}

ImageContentSource defines a list of sources/repositories that can be used to pull content. The field is deprecated. Please use imageDigestSources.

func (*ImageContentSource) DeepCopy

func (in *ImageContentSource) DeepCopy() *ImageContentSource

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

func (*ImageContentSource) DeepCopyInto

func (in *ImageContentSource) DeepCopyInto(out *ImageContentSource)

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

type ImageDigestSource added in v0.4.15

type ImageDigestSource struct {
	// Source is the repository that users refer to, e.g. in image pull specifications.
	Source string `json:"source"`

	// Mirrors is one or more repositories that may also contain the same images.
	// +optional
	Mirrors []string `json:"mirrors,omitempty"`

	// SourcePolicy defines the fallback policy when there is a failure pulling an
	// image from the mirrors.
	// +optional
	SourcePolicy configv1.MirrorSourcePolicy `json:"sourcePolicy"`
}

ImageDigestSource defines a list of sources/repositories that can be used to pull content.

func (*ImageDigestSource) DeepCopy

func (in *ImageDigestSource) DeepCopy() *ImageDigestSource

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

func (*ImageDigestSource) DeepCopyInto

func (in *ImageDigestSource) DeepCopyInto(out *ImageDigestSource)

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

type InstallConfig

type InstallConfig struct {
	// +optional
	metav1.TypeMeta `json:",inline"`

	metav1.ObjectMeta `json:"metadata"`

	// AdditionalTrustBundle is a PEM-encoded X.509 certificate bundle
	// that will be added to the nodes' trusted certificate store.
	//
	// +optional
	AdditionalTrustBundle string `json:"additionalTrustBundle,omitempty"`

	// AdditionalTrustBundlePolicy determines when to add the AdditionalTrustBundle
	// to the nodes' trusted certificate store. "Proxyonly" is the default.
	// The field can be set to following specified values.
	// "Proxyonly" : adds the AdditionalTrustBundle to nodes when http/https proxy is configured.
	// "Always" : always adds AdditionalTrustBundle.
	AdditionalTrustBundlePolicy PolicyType `json:"additionalTrustBundlePolicy,omitempty"`

	// SSHKey is the public Secure Shell (SSH) key to provide access to instances.
	// +optional
	SSHKey string `json:"sshKey,omitempty"`

	// BaseDomain is the base domain to which the cluster should belong.
	BaseDomain string `json:"baseDomain"`

	// Networking is the configuration for the pod network provider in
	// the cluster.
	*Networking `json:"networking,omitempty"`

	// ControlPlane is the configuration for the machines that comprise the
	// control plane.
	// +optional
	ControlPlane *MachinePool `json:"controlPlane,omitempty"`

	// Arbiter is the configuration for the machines that comprise the
	// arbiter nodes.
	// +optional
	Arbiter *MachinePool `json:"arbiter,omitempty"`

	// Compute is the configuration for the machines that comprise the
	// compute nodes.
	// +optional
	Compute []MachinePool `json:"compute,omitempty"`

	// Platform is the configuration for the specific platform upon which to
	// perform the installation.
	Platform `json:"platform"`

	// PullSecret is the secret to use when pulling images.
	PullSecret string `json:"pullSecret"`

	// Proxy defines the proxy settings for the cluster.
	// If unset, the cluster will not be configured to use a proxy.
	// +optional
	Proxy *Proxy `json:"proxy,omitempty"`

	// ImageContentSources lists sources/repositories for the release-image content.
	// The field is deprecated. Please use imageDigestSources.
	// +optional
	DeprecatedImageContentSources []ImageContentSource `json:"imageContentSources,omitempty"`

	// ImageDigestSources lists sources/repositories for the release-image content.
	// +optional
	ImageDigestSources []ImageDigestSource `json:"imageDigestSources,omitempty"`

	// Publish controls how the user facing endpoints of the cluster like the Kubernetes API, OpenShift routes etc. are exposed.
	// A "Mixed" strategy only applies to the "azure" platform, and requires "operatorPublishingStrategy" to be configured.
	// When no strategy is specified, the strategy is "External".
	//
	// +kubebuilder:default=External
	// +optional
	Publish PublishingStrategy `json:"publish,omitempty"`

	// OperatorPublishingStrategy controls the visibility of ingress and apiserver. Defaults to public.
	OperatorPublishingStrategy *OperatorPublishingStrategy `json:"operatorPublishingStrategy,omitempty"`

	// FIPS configures https://www.nist.gov/itl/fips-general-information
	//
	// +kubebuilder:default=false
	// +optional
	FIPS bool `json:"fips,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:default="None"
	// +optional
	CPUPartitioning CPUPartitioningMode `json:"cpuPartitioningMode,omitempty"`

	// CredentialsMode is used to explicitly set the mode with which CredentialRequests are satisfied.
	//
	// If this field is set, then the installer will not attempt to query the cloud permissions before attempting
	// installation. If the field is not set or empty, then the installer will perform its normal verification that the
	// credentials provided are sufficient to perform an installation.
	//
	// There are three possible values for this field, but the valid values are dependent upon the platform being used.
	// "Mint": create new credentials with a subset of the overall permissions for each CredentialsRequest
	// "Passthrough": copy the credentials with all of the overall permissions for each CredentialsRequest
	// "Manual": CredentialsRequests must be handled manually by the user
	//
	// For each of the following platforms, the field can be set to the specified values. For all other platforms, the
	// field must not be set.
	// AWS: "Mint", "Passthrough", "Manual"
	// Azure: "Passthrough", "Manual"
	// AzureStack: "Manual"
	// GCP: "Mint", "Passthrough", "Manual"
	// IBMCloud: "Manual"
	// OpenStack: "Passthrough"
	// PowerVC: "Passthrough"
	// PowerVS: "Manual"
	// Nutanix: "Manual"
	// +optional
	CredentialsMode CredentialsMode `json:"credentialsMode,omitempty"`

	// BootstrapInPlace is the configuration for installing a single node
	// with bootstrap in place installation.
	BootstrapInPlace *BootstrapInPlace `json:"bootstrapInPlace,omitempty"`

	// Capabilities configures the installation of optional core cluster components.
	// +optional
	Capabilities *Capabilities `json:"capabilities,omitempty"`

	// FeatureSet enables features that are not part of the default feature set.
	// Valid values are "Default", "TechPreviewNoUpgrade" and "CustomNoUpgrade".
	// When omitted, the "Default" feature set is used.
	// +optional
	FeatureSet configv1.FeatureSet `json:"featureSet,omitempty"`

	// FeatureGates enables a set of custom feature gates.
	// May only be used in conjunction with FeatureSet "CustomNoUpgrade".
	// Features may be enabled or disabled by providing a true or false value for the feature gate.
	// E.g. "featureGates": ["FeatureGate1=true", "FeatureGate2=false"].
	// +optional
	FeatureGates []string `json:"featureGates,omitempty"`
}

InstallConfig is the configuration for an OpenShift install.

func (*InstallConfig) ClusterDomain added in v0.4.15

func (c *InstallConfig) ClusterDomain() string

ClusterDomain returns the DNS domain that all records for a cluster must belong to.

func (*InstallConfig) CreateAzureIdentity

func (c *InstallConfig) CreateAzureIdentity() bool

CreateAzureIdentity determines whether a user-assigned identity should be created by the installer, based on the install config values.

func (*InstallConfig) DeepCopy

func (in *InstallConfig) DeepCopy() *InstallConfig

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

func (*InstallConfig) DeepCopyInto

func (in *InstallConfig) DeepCopyInto(out *InstallConfig)

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

func (*InstallConfig) EnabledFeatureGates added in v0.4.15

func (c *InstallConfig) EnabledFeatureGates() featuregates.FeatureGate

EnabledFeatureGates returns a FeatureGate that can be checked (using the Enabled function) to determine if a feature gate is enabled in the current feature sets.

func (*InstallConfig) GetEnabledCapabilities added in v0.90.17

func (c *InstallConfig) GetEnabledCapabilities() sets.Set[configv1.ClusterVersionCapability]

GetEnabledCapabilities returns a set of enabled ClusterVersionCapabilities.

func (*InstallConfig) IsArbiterEnabled

func (c *InstallConfig) IsArbiterEnabled() bool

IsArbiterEnabled returns if arbiter is enabled based off of the install-config arbiter machine pool.

func (*InstallConfig) IsOKD added in v0.4.15

func (c *InstallConfig) IsOKD() bool

IsOKD returns true if community-only modifications are enabled

func (*InstallConfig) IsSCOS added in v0.4.15

func (c *InstallConfig) IsSCOS() bool

IsSCOS returns true if CentOs Stream CoreOS-only modifications are enabled

func (*InstallConfig) IsSingleNodeOpenShift added in v0.4.15

func (c *InstallConfig) IsSingleNodeOpenShift() bool

IsSingleNodeOpenShift returns true if the install-config has been configured for bootstrapInPlace

func (*InstallConfig) PublicAPI added in v0.90.0

func (c *InstallConfig) PublicAPI() bool

PublicAPI indicates whether the API load balancer should be public by inspecting the cluster and operator publishing strategies.

func (*InstallConfig) PublicIngress

func (c *InstallConfig) PublicIngress() bool

PublicIngress indicates whether the Ingress load balancer should be public by inspecting the cluster and operator publishing strategies.

func (*InstallConfig) WorkerMachinePool added in v0.4.15

func (c *InstallConfig) WorkerMachinePool() *MachinePool

WorkerMachinePool retrieves the worker MachinePool from InstallConfig.Compute

type MachineNetworkEntry added in v0.4.15

type MachineNetworkEntry struct {
	// CIDR is the IP block address pool for machines within the cluster.
	CIDR ipnet.IPNet `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 MachinePool

type MachinePool struct {
	// Name is the name of the machine pool.
	// For the control plane machine pool, the name will always be "master".
	// For the compute machine pools, the only valid name is "worker".
	// For the arbiter machine pools, the only valid name is "arbiter".
	Name string `json:"name"`

	// Replicas is the machine count for the machine pool.
	Replicas *int64 `json:"replicas,omitempty"`

	// Platform is configuration for machine pool specific to the platform.
	Platform MachinePoolPlatform `json:"platform"`

	// Hyperthreading determines the mode of hyperthreading that machines in the
	// pool will utilize.
	// Default is for hyperthreading to be enabled.
	//
	// +kubebuilder:default=Enabled
	// +optional
	Hyperthreading HyperthreadingMode `json:"hyperthreading,omitempty"`

	// Architecture is the instruction set architecture of the machine pool.
	// Defaults to amd64.
	//
	// +kubebuilder:default=amd64
	// +optional
	Architecture Architecture `json:"architecture,omitempty"`

	// Fencing stores the information about a baremetal host's management controller.
	// Fencing may only be set for control plane nodes.
	// +optional
	Fencing *Fencing `json:"fencing,omitempty"`

	// DiskSetup stores the type of disks that will be setup with MachineConfigs.
	// The available types are etcd, swap and user-defined.
	// +optional
	DiskSetup []Disk `json:"diskSetup,omitempty"`
}

MachinePool is a pool of machines to be installed.

func (*MachinePool) DeepCopy

func (in *MachinePool) DeepCopy() *MachinePool

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

func (*MachinePool) DeepCopyInto

func (in *MachinePool) DeepCopyInto(out *MachinePool)

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

type MachinePoolPlatform

type MachinePoolPlatform struct {
	// AWS is the configuration used when installing on AWS.
	AWS *aws.MachinePool `json:"aws,omitempty"`

	// Azure is the configuration used when installing on Azure.
	Azure *azure.MachinePool `json:"azure,omitempty"`

	// BareMetal is the configuration used when installing on bare metal.
	BareMetal *baremetal.MachinePool `json:"baremetal,omitempty"`

	// GCP is the configuration used when installing on GCP
	GCP *gcp.MachinePool `json:"gcp,omitempty"`

	// IBMCloud is the configuration used when installing on IBM Cloud.
	IBMCloud *ibmcloud.MachinePool `json:"ibmcloud,omitempty"`

	// OpenStack is the configuration used when installing on OpenStack.
	OpenStack *openstack.MachinePool `json:"openstack,omitempty"`

	// VSphere is the configuration used when installing on vSphere.
	VSphere *vsphere.MachinePool `json:"vsphere,omitempty"`

	// Ovirt is the configuration used when installing on oVirt.
	Ovirt *ovirt.MachinePool `json:"ovirt,omitempty"`

	// PowerVC is the configuration used when installing on IBM Power VC.
	PowerVC *powervc.MachinePool `json:"powervc,omitempty"`

	// PowerVS is the configuration used when installing on IBM Power VS.
	PowerVS *powervs.MachinePool `json:"powervs,omitempty"`

	// Nutanix is the configuration used when installing on Nutanix.
	Nutanix *nutanix.MachinePool `json:"nutanix,omitempty"`
}

MachinePoolPlatform is the platform-specific configuration for a machine pool. Only one of the platforms should be set.

func (*MachinePoolPlatform) DeepCopy

func (in *MachinePoolPlatform) DeepCopy() *MachinePoolPlatform

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

func (*MachinePoolPlatform) DeepCopyInto

func (in *MachinePoolPlatform) DeepCopyInto(out *MachinePoolPlatform)

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

func (*MachinePoolPlatform) Name added in v0.4.0

func (p *MachinePoolPlatform) Name() string

Name returns a string representation of the platform (e.g. "aws" if AWS is non-nil). It returns an empty string if no platform is configured.

type Networking

type Networking struct {
	// NetworkType is the type of network to install.
	// The default value is OVNKubernetes.
	//
	// +kubebuilder:default=OVNKubernetes
	// +optional
	NetworkType string `json:"networkType,omitempty"`

	// MachineNetwork is the list of IP address pools for machines.
	// This field replaces MachineCIDR, and if set MachineCIDR must
	// be empty or match the first entry in the list.
	// Default is 10.0.0.0/16 for all platforms other than Power VS.
	// For Power VS, the default is 192.168.0.0/24.
	//
	// +optional
	MachineNetwork []MachineNetworkEntry `json:"machineNetwork,omitempty"`

	// ClusterNetwork is the list of IP address pools for pods.
	// Default is 10.128.0.0/14 and a host prefix of /23.
	//
	// +optional
	ClusterNetwork []ClusterNetworkEntry `json:"clusterNetwork,omitempty"`

	// ServiceNetwork is the list of IP address pools for services.
	// Default is 172.30.0.0/16.
	// NOTE: currently only one entry is supported.
	//
	// +kubebuilder:validation:MaxItems=1
	// +optional
	ServiceNetwork []ipnet.IPNet `json:"serviceNetwork,omitempty"`

	// ClusterNetworkMTU is the Maximum Transmit (MTU) Unit size in bytes to allocate to the cluster network.
	// For example, 1200 would set the MTU of the entire overlay network. If the deployment does
	// not require changes in the network plugin, leave it unset and the MTU will be calculated
	// automatically based on the host network MTU.
	// +optional
	ClusterNetworkMTU uint32 `json:"clusterNetworkMTU,omitempty"`

	// OVNKubernetesConfig provides configuration for ovn-kubernetes as the default
	// pod network when NetworkType is set to OVNKubernetes.
	OVNKubernetesConfig *OVNKubernetesConfig `json:"ovnKubernetesConfig,omitempty"`

	// Deprecated way to configure an IP address pool for machines.
	// Replaced by MachineNetwork which allows for multiple pools.
	// +optional
	DeprecatedMachineCIDR *ipnet.IPNet `json:"machineCIDR,omitempty"`

	// Deprecated name for NetworkType
	// +optional
	DeprecatedType string `json:"type,omitempty"`

	// Deprecated way to configure an IP address pool for services.
	// Replaced by ServiceNetwork which allows for multiple pools.
	// +optional
	DeprecatedServiceCIDR *ipnet.IPNet `json:"serviceCIDR,omitempty"`

	// Deprecated name for ClusterNetwork
	// +optional
	DeprecatedClusterNetworks []ClusterNetworkEntry `json:"clusterNetworks,omitempty"`
}

Networking defines the pod network provider in the cluster.

func (*Networking) DeepCopy

func (in *Networking) DeepCopy() *Networking

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

func (*Networking) DeepCopyInto

func (in *Networking) DeepCopyInto(out *Networking)

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

type OVNKubernetesConfig

type OVNKubernetesConfig struct {
	// ipv4 allows users to configure IP settings for IPv4 connections. When omitted,
	// this means no opinions and the default configuration is used. Check individual
	// fields within ipv4 for details of default values.
	// +optional
	IPv4 *IPv4OVNKubernetesConfig `json:"ipv4,omitempty"`
}

OVNKubernetesConfig configures the ovn-kubernetes sdn plugin.

func (*OVNKubernetesConfig) DeepCopy

func (in *OVNKubernetesConfig) DeepCopy() *OVNKubernetesConfig

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

func (*OVNKubernetesConfig) DeepCopyInto

func (in *OVNKubernetesConfig) DeepCopyInto(out *OVNKubernetesConfig)

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

type OperatorPublishingStrategy added in v0.4.15

type OperatorPublishingStrategy struct {
	// Ingress sets the visibility of the created dns resources.
	// +kubebuilder:validation:Enum="";External;Internal
	// +kubebuilder:default=External
	// +optional
	Ingress string `json:"ingress,omitempty"`

	// APIServer sets the visibility of the load balancers servicing the APIserver.
	// +kubebuilder:validation:Enum="";External;Internal
	// +kubebuilder:default=External
	// +optional
	APIServer string `json:"apiserver,omitempty"`
}

OperatorPublishingStrategy is used to control the visibility of the components which can be used to have a mix of public and private resources.

func (*OperatorPublishingStrategy) DeepCopy

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

func (*OperatorPublishingStrategy) DeepCopyInto

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

type Platform

type Platform struct {
	// AWS is the configuration used when installing on AWS.
	// +optional
	AWS *aws.Platform `json:"aws,omitempty"`

	// Azure is the configuration used when installing on Azure.
	// +optional
	Azure *azure.Platform `json:"azure,omitempty"`

	// BareMetal is the configuration used when installing on bare metal.
	// +optional
	BareMetal *baremetal.Platform `json:"baremetal,omitempty"`

	// GCP is the configuration used when installing on Google Cloud Platform.
	// +optional
	GCP *gcp.Platform `json:"gcp,omitempty"`

	// IBMCloud is the configuration used when installing on IBM Cloud.
	// +optional
	IBMCloud *ibmcloud.Platform `json:"ibmcloud,omitempty"`

	// None is the empty configuration used when installing on an unsupported
	// platform.
	None *none.Platform `json:"none,omitempty"`

	// External is the configuration used when installing on
	// an external cloud provider.
	External *external.Platform `json:"external,omitempty"`

	// OpenStack is the configuration used when installing on OpenStack.
	// +optional
	OpenStack *openstack.Platform `json:"openstack,omitempty"`

	// PowerVC is the configuration used when installing on Power VC.
	// +optional
	PowerVC *powervc.Platform `json:"powervc,omitempty"`

	// PowerVS is the configuration used when installing on Power VS.
	// +optional
	PowerVS *powervs.Platform `json:"powervs,omitempty"`

	// VSphere is the configuration used when installing on vSphere.
	// +optional
	VSphere *vsphere.Platform `json:"vsphere,omitempty"`

	// Ovirt is the configuration used when installing on oVirt.
	// +optional
	Ovirt *ovirt.Platform `json:"ovirt,omitempty"`

	// Nutanix is the configuration used when installing on Nutanix.
	// +optional
	Nutanix *nutanix.Platform `json:"nutanix,omitempty"`
}

Platform is the configuration for the specific platform upon which to perform the installation. Only one of the platform configuration should be set.

func (*Platform) DeepCopy

func (in *Platform) DeepCopy() *Platform

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

func (*Platform) DeepCopyInto

func (in *Platform) DeepCopyInto(out *Platform)

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

func (*Platform) Name added in v0.2.0

func (p *Platform) Name() string

Name returns a string representation of the platform (e.g. "aws" if AWS is non-nil). It returns an empty string if no platform is configured.

type PolicyType added in v0.4.15

type PolicyType string

PolicyType is for usage polices that are applied to additionalTrustBundle. +kubebuilder:validation:Enum="";Proxyonly;Always

const (
	// PolicyProxyOnly  enables use of AdditionalTrustBundle when http/https proxy is configured.
	PolicyProxyOnly PolicyType = "Proxyonly"
	// PolicyAlways ignores all conditions and uses AdditionalTrustBundle.
	PolicyAlways PolicyType = "Always"
)

type Proxy added in v0.4.15

type Proxy struct {
	// HTTPProxy is the URL of the proxy for HTTP requests.
	// +optional
	HTTPProxy string `json:"httpProxy,omitempty"`

	// HTTPSProxy is the URL of the proxy for HTTPS requests.
	// +optional
	HTTPSProxy string `json:"httpsProxy,omitempty"`

	// NoProxy is a comma-separated list of domains and CIDRs for which the proxy should not be used.
	// +optional
	NoProxy string `json:"noProxy,omitempty"`
}

Proxy defines the proxy settings for the cluster. At least one of HTTPProxy or HTTPSProxy is required.

func (*Proxy) DeepCopy

func (in *Proxy) DeepCopy() *Proxy

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

func (*Proxy) DeepCopyInto

func (in *Proxy) DeepCopyInto(out *Proxy)

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

type PublishingStrategy added in v0.4.15

type PublishingStrategy string

PublishingStrategy is a strategy for how various endpoints for the cluster are exposed. +kubebuilder:validation:Enum="";External;Internal;Mixed

const (
	// ExternalPublishingStrategy exposes endpoints for the cluster to the Internet.
	ExternalPublishingStrategy PublishingStrategy = "External"
	// InternalPublishingStrategy exposes the endpoints for the cluster to the private network only.
	InternalPublishingStrategy PublishingStrategy = "Internal"
	// MixedPublishingStrategy allows for the api server and the ingress to be configured individually for exposure to
	// private network or Internet.
	MixedPublishingStrategy PublishingStrategy = "Mixed"
)

Directories

Path Synopsis
aws
Package aws contains AWS-specific structures for installer configuration and management.
Package aws contains AWS-specific structures for installer configuration and management.
Package azure contains Azure-specific structures for installer configuration and management.
Package azure contains Azure-specific structures for installer configuration and management.
Package baremetal contains baremetal-specific structures for installer configuration and management.
Package baremetal contains baremetal-specific structures for installer configuration and management.
Package external contains generic structures for installer configuration and management.
Package external contains generic structures for installer configuration and management.
gcp
Package gcp contains GCP-specific structures for installer configuration and management.
Package gcp contains GCP-specific structures for installer configuration and management.
Package ibmcloud contains IBM Cloud-specific structures for installer configuration and management.
Package ibmcloud contains IBM Cloud-specific structures for installer configuration and management.
Package none contains generic structures for installer configuration and management.
Package none contains generic structures for installer configuration and management.
Package nutanix contains Nutanix-specific structures for installer configuration and management.
Package nutanix contains Nutanix-specific structures for installer configuration and management.
Package openstack contains OpenStack-specific structures for installer configuration and management.
Package openstack contains OpenStack-specific structures for installer configuration and management.
Package ovirt contains ovirt-specific structures for installer configuration and management.
Package ovirt contains ovirt-specific structures for installer configuration and management.
Package powervc contains PowerVC-OpenStack-specific structures for installer configuration and management.
Package powervc contains PowerVC-OpenStack-specific structures for installer configuration and management.
Package powervs contains Power VS-specific structures for installer configuration and management.
Package powervs contains Power VS-specific structures for installer configuration and management.
Package vsphere contains vSphere-specific structures for installer configuration and management.
Package vsphere contains vSphere-specific structures for installer configuration and management.

Jump to

Keyboard shortcuts

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