Documentation
¶
Overview ¶
Package types defines structures for installer configuration and management.
Index ¶
- Constants
- Variables
- type Architecture
- type BootstrapInPlace
- type Capabilities
- type ClusterMetadata
- type ClusterNetworkEntry
- type ClusterPlatformMetadata
- type ClusterQuota
- type CredentialsMode
- type HyperthreadingMode
- type ImageContentSource
- type InstallConfig
- type MachineNetworkEntry
- type MachinePool
- type MachinePoolPlatform
- type Networking
- type Platform
- type PolicyType
- type Proxy
- type PublishingStrategy
Constants ¶
const ( // MachinePoolComputeRoleName name associated with the compute machinepool MachinePoolComputeRoleName = "worker" // MachinePoolControlPlaneRoleName name associated with the control plane machinepool MachinePoolControlPlaneRoleName = "master" )
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" )
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 ¶
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{ alibabacloud.Name, aws.Name, azure.Name, gcp.Name, ibmcloud.Name, nutanix.Name, openstack.Name, ovirt.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{ baremetal.Name, none.Name, } // FCOS is a setting to enable Fedora CoreOS-only modifications FCOS = false // SCOS is a setting to enable CentOS Stream CoreOS-only modifications SCOS = false )
Functions ¶
This section is empty.
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
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.
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"`
}
ClusterMetadata contains information regarding the cluster that was created by installer.
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.
// +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.
type ClusterPlatformMetadata ¶
type ClusterPlatformMetadata struct {
AlibabaCloud *alibabacloud.Metadata `json:"alibabacloud,omitempty"`
AWS *aws.Metadata `json:"aws,omitempty"`
OpenStack *openstack.Metadata `json:"openstack,omitempty"`
Libvirt *libvirt.Metadata `json:"libvirt,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"`
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) 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
ClusterQuota contains the size, in cloud quota, of the cluster that was created by installer.
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 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 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.
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"`
// 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.
// +optional
ImageContentSources []ImageContentSource `json:"imageContentSources,omitempty"`
// Publish controls how the user facing endpoints of the cluster like the Kubernetes API, OpenShift routes etc. are exposed.
// When no strategy is specified, the strategy is "External".
//
// +kubebuilder:default=External
// +optional
Publish PublishingStrategy `json:"publish,omitempty"`
// FIPS configures https://www.nist.gov/itl/fips-general-information
//
// +kubebuilder:default=false
// +optional
FIPS bool `json:"fips,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 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"
// AlibabaCloud: "Manual"
// 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.
// +optional
FeatureSet configv1.FeatureSet `json:"featureSet,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) IsFCOS ¶ added in v0.4.15
func (c *InstallConfig) IsFCOS() bool
IsFCOS returns true if Fedora CoreOS-only modifications are enabled
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) 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.
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".
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"`
}
MachinePool is a pool of machines to be installed.
type MachinePoolPlatform ¶
type MachinePoolPlatform struct {
// AlibabaCloud is the configuration used when installing on Alibaba Cloud.
AlibabaCloud *alibabacloud.MachinePool `json:"alibabacloud,omitempty"`
// 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"`
// Libvirt is the configuration used when installing on libvirt.
Libvirt *libvirt.MachinePool `json:"libvirt,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"`
// 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) 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 libvirt and Power VS.
// For libvirt, the default is 192.168.126.0/24.
// 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"`
// 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.
type Platform ¶
type Platform struct {
// AlibabaCloud is the configuration used when installing on Alibaba Cloud.
// +optional
AlibabaCloud *alibabacloud.Platform `json:"alibabacloud,omitempty"`
// 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"`
// Libvirt is the configuration used when installing on libvirt.
// +optional
Libvirt *libvirt.Platform `json:"libvirt,omitempty"`
// None is the empty configuration used when installing on an unsupported
// platform.
None *none.Platform `json:"none,omitempty"`
// OpenStack is the configuration used when installing on OpenStack.
// +optional
OpenStack *openstack.Platform `json:"openstack,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.
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.
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
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" )
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
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 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 libvirt contains libvirt-specific structures for installer configuration and management.
|
Package libvirt contains libvirt-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 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. |