v1alpha1

package
v1.2.9 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2023 License: MPL-2.0 Imports: 31 Imported by: 0

Documentation

Overview

Package v1alpha1 configuration file contains all the options available for configuring a machine.

To generate a set of basic configuration files, run:

talosctl gen config --version v1alpha1 <cluster name> <cluster endpoint>

This will generate a machine config for each node type, and a talosconfig for the CLI.

Index

Constants

View Source
const (
	// Version is the version string for v1alpha1.
	Version = "v1alpha1"
)

Variables

View Source
var (
	ConfigDoc                         encoder.Doc
	MachineConfigDoc                  encoder.Doc
	MachineSeccompProfileDoc          encoder.Doc
	ClusterConfigDoc                  encoder.Doc
	ExtraMountDoc                     encoder.Doc
	MachineControlPlaneConfigDoc      encoder.Doc
	MachineControllerManagerConfigDoc encoder.Doc
	MachineSchedulerConfigDoc         encoder.Doc
	KubeletConfigDoc                  encoder.Doc
	KubeletNodeIPConfigDoc            encoder.Doc
	NetworkConfigDoc                  encoder.Doc
	InstallConfigDoc                  encoder.Doc
	InstallDiskSelectorDoc            encoder.Doc
	InstallExtensionConfigDoc         encoder.Doc
	TimeConfigDoc                     encoder.Doc
	RegistriesConfigDoc               encoder.Doc
	PodCheckpointerDoc                encoder.Doc
	CoreDNSDoc                        encoder.Doc
	EndpointDoc                       encoder.Doc
	ControlPlaneConfigDoc             encoder.Doc
	APIServerConfigDoc                encoder.Doc
	AdmissionPluginConfigDoc          encoder.Doc
	ControllerManagerConfigDoc        encoder.Doc
	ProxyConfigDoc                    encoder.Doc
	SchedulerConfigDoc                encoder.Doc
	EtcdConfigDoc                     encoder.Doc
	ClusterNetworkConfigDoc           encoder.Doc
	CNIConfigDoc                      encoder.Doc
	ExternalCloudProviderConfigDoc    encoder.Doc
	AdminKubeconfigConfigDoc          encoder.Doc
	MachineDiskDoc                    encoder.Doc
	DiskPartitionDoc                  encoder.Doc
	EncryptionConfigDoc               encoder.Doc
	EncryptionKeyDoc                  encoder.Doc
	EncryptionKeyStaticDoc            encoder.Doc
	EncryptionKeyNodeIDDoc            encoder.Doc
	MachineFileDoc                    encoder.Doc
	ExtraHostDoc                      encoder.Doc
	DeviceDoc                         encoder.Doc
	DHCPOptionsDoc                    encoder.Doc
	DeviceWireguardConfigDoc          encoder.Doc
	DeviceWireguardPeerDoc            encoder.Doc
	DeviceVIPConfigDoc                encoder.Doc
	VIPEquinixMetalConfigDoc          encoder.Doc
	VIPHCloudConfigDoc                encoder.Doc
	BondDoc                           encoder.Doc
	STPDoc                            encoder.Doc
	BridgeDoc                         encoder.Doc
	VlanDoc                           encoder.Doc
	RouteDoc                          encoder.Doc
	RegistryMirrorConfigDoc           encoder.Doc
	RegistryConfigDoc                 encoder.Doc
	RegistryAuthConfigDoc             encoder.Doc
	RegistryTLSConfigDoc              encoder.Doc
	SystemDiskEncryptionConfigDoc     encoder.Doc
	FeaturesConfigDoc                 encoder.Doc
	KubernetesTalosAPIAccessConfigDoc encoder.Doc
	VolumeMountConfigDoc              encoder.Doc
	ClusterInlineManifestDoc          encoder.Doc
	NetworkKubeSpanDoc                encoder.Doc
	NetworkDeviceSelectorDoc          encoder.Doc
	ClusterDiscoveryConfigDoc         encoder.Doc
	DiscoveryRegistriesConfigDoc      encoder.Doc
	RegistryKubernetesConfigDoc       encoder.Doc
	RegistryServiceConfigDoc          encoder.Doc
	UdevConfigDoc                     encoder.Doc
	LoggingConfigDoc                  encoder.Doc
	LoggingDestinationDoc             encoder.Doc
	KernelConfigDoc                   encoder.Doc
	KernelModuleConfigDoc             encoder.Doc
)
View Source
var (

	// ErrRequiredSection denotes a section is required.
	ErrRequiredSection = errors.New("required config section")
	// ErrRequiredSectionOptions denotes at least one section is required.
	ErrRequiredSectionOptions = errors.New("required either config section to be set")
	// ErrInvalidVersion denotes that the config file version is invalid.
	ErrInvalidVersion = errors.New("invalid config version")
	// ErrMutuallyExclusive denotes that config sections are mutually exclusive.
	ErrMutuallyExclusive = errors.New("config sections are mutually exclusive")
	// ErrEmpty denotes that config section should have at least a single field defined.
	ErrEmpty = errors.New("config section should contain at least one field")

	// ErrEmptyKeyCert denotes that crypto key/cert combination should not be empty.
	ErrEmptyKeyCert = errors.New("key/cert combination should not be empty")
	// ErrInvalidCert denotes that the certificate specified is invalid.
	ErrInvalidCert = errors.New("certificate is invalid")
	// ErrInvalidCertType denotes that the certificate type is invalid.
	ErrInvalidCertType = errors.New("certificate type is invalid")

	// ErrUnsupportedCNI denotes that the specified CNI is invalid.
	ErrUnsupportedCNI = errors.New("unsupported CNI driver")
	// ErrInvalidTrustdToken denotes that a trustd token has not been specified.
	ErrInvalidTrustdToken = errors.New("trustd token is invalid")

	// ErrInvalidAddress denotes that a bad address was provided.
	ErrInvalidAddress = errors.New("invalid network address")
)

Functions

func CheckDeviceAddressing

func CheckDeviceAddressing(d *Device, bondedInterfaces map[string]string) ([]string, error)

CheckDeviceAddressing ensures that an appropriate addressing method. has been specified.

func CheckDeviceInterface

func CheckDeviceInterface(d *Device, _ map[string]string) ([]string, error)

CheckDeviceInterface ensures that the interface has been specified.

func CheckDeviceRoutes

func CheckDeviceRoutes(d *Device, _ map[string]string) ([]string, error)

CheckDeviceRoutes ensures that the specified routes are valid.

func GetConfigurationDoc

func GetConfigurationDoc() *encoder.FileDoc

GetConfigurationDoc returns documentation for the file ./v1alpha1_types_doc.go.

func ValidateCNI

func ValidateCNI(cni config.CNI) ([]string, error)

ValidateCNI validates CNI config.

func ValidateNetworkDevices

func ValidateNetworkDevices(d *Device, pairedInterfaces map[string]string, checks ...NetworkDeviceCheck) ([]string, error)

ValidateNetworkDevices runs the specified validation checks specific to the network devices.

Types

type APIServerConfig

type APIServerConfig struct {
	//   description: |
	//     The container image used in the API server manifest.
	//   examples:
	//     - value: clusterAPIServerImageExample
	ContainerImage string `yaml:"image,omitempty"`
	//   description: |
	//     Extra arguments to supply to the API server.
	ExtraArgsConfig map[string]string `yaml:"extraArgs,omitempty"`
	//   description: |
	//     Extra volumes to mount to the API server static pod.
	ExtraVolumesConfig []VolumeMountConfig `yaml:"extraVolumes,omitempty"`
	//   description: |
	//     The `env` field allows for the addition of environment variables for the control plane component.
	EnvConfig Env `yaml:"env,omitempty"`
	//   description: |
	//     Extra certificate subject alternative names for the API server's certificate.
	CertSANs []string `yaml:"certSANs,omitempty"`
	//   description: |
	//     Disable PodSecurityPolicy in the API server and default manifests.
	DisablePodSecurityPolicyConfig *bool `yaml:"disablePodSecurityPolicy,omitempty"`
	//   description: |
	//     Configure the API server admission plugins.
	//   examples:
	//     - value: admissionControlConfigExample
	AdmissionControlConfig AdmissionPluginConfigList `yaml:"admissionControl,omitempty"`
}

APIServerConfig represents the kube apiserver configuration options.

func (*APIServerConfig) AdmissionControl added in v1.0.0

func (a *APIServerConfig) AdmissionControl() []config.AdmissionPlugin

AdmissionControl implements the config.APIServer interface.

func (*APIServerConfig) DeepCopy added in v0.12.0

func (in *APIServerConfig) DeepCopy() *APIServerConfig

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

func (*APIServerConfig) DeepCopyInto added in v0.12.0

func (in *APIServerConfig) DeepCopyInto(out *APIServerConfig)

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

func (*APIServerConfig) DisablePodSecurityPolicy added in v0.12.0

func (a *APIServerConfig) DisablePodSecurityPolicy() bool

DisablePodSecurityPolicy implements the config.APIServer interface.

func (APIServerConfig) Doc

func (_ APIServerConfig) Doc() *encoder.Doc

func (*APIServerConfig) Env added in v1.0.0

func (a *APIServerConfig) Env() Env

Env implements the config.APIServer interface.

func (*APIServerConfig) ExtraArgs

func (a *APIServerConfig) ExtraArgs() map[string]string

ExtraArgs implements the config.APIServer interface.

func (*APIServerConfig) ExtraVolumes

func (a *APIServerConfig) ExtraVolumes() []config.VolumeMount

ExtraVolumes implements the config.APIServer interface.

func (*APIServerConfig) Image

func (a *APIServerConfig) Image() string

Image implements the config.APIServer interface.

type AdminKubeconfigConfig

type AdminKubeconfigConfig struct {
	//   description: |
	//     Admin kubeconfig certificate lifetime (default is 1 year).
	//     Field format accepts any Go time.Duration format ('1h' for one hour, '10m' for ten minutes).
	AdminKubeconfigCertLifetime time.Duration `yaml:"certLifetime,omitempty"`
}

AdminKubeconfigConfig contains admin kubeconfig settings.

func (*AdminKubeconfigConfig) CertLifetime

func (a *AdminKubeconfigConfig) CertLifetime() time.Duration

CertLifetime implements the config.Provider interface.

func (*AdminKubeconfigConfig) DeepCopy added in v0.12.0

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

func (*AdminKubeconfigConfig) DeepCopyInto added in v0.12.0

func (in *AdminKubeconfigConfig) DeepCopyInto(out *AdminKubeconfigConfig)

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

func (AdminKubeconfigConfig) Doc

type AdmissionPluginConfig added in v1.0.0

type AdmissionPluginConfig struct {
	//   description: |
	//     Name is the name of the admission controller.
	//     It must match the registered admission plugin name.
	PluginName string `yaml:"name"`
	//   description: |
	//     Configuration is an embedded configuration object to be used as the plugin's
	//     configuration.
	PluginConfiguration Unstructured `yaml:"configuration"`
}

AdmissionPluginConfig represents the API server admission plugin configuration.

func (*AdmissionPluginConfig) Configuration added in v1.0.0

func (a *AdmissionPluginConfig) Configuration() map[string]interface{}

Configuration implements the config.AdmissionPlugin interface.

func (*AdmissionPluginConfig) DeepCopy added in v1.0.0

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

func (*AdmissionPluginConfig) DeepCopyInto added in v1.0.0

func (in *AdmissionPluginConfig) DeepCopyInto(out *AdmissionPluginConfig)

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

func (AdmissionPluginConfig) Doc added in v1.0.0

func (*AdmissionPluginConfig) Name added in v1.0.0

func (a *AdmissionPluginConfig) Name() string

Name implements the config.AdmissionPlugin interface.

type AdmissionPluginConfigList added in v1.2.0

type AdmissionPluginConfigList []*AdmissionPluginConfig

AdmissionPluginConfigList represents the admission plugin configuration list.

func (AdmissionPluginConfigList) DeepCopy added in v1.2.0

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

func (AdmissionPluginConfigList) DeepCopyInto added in v1.2.0

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

func (*AdmissionPluginConfigList) Merge added in v1.2.0

func (configs *AdmissionPluginConfigList) Merge(other interface{}) error

Merge the admission plugin configuration intelligently.

type Base64Bytes

type Base64Bytes []byte

Base64Bytes implements YAML marshaling/unmarshaling via base64 encoding.

func (Base64Bytes) DeepCopy added in v0.12.0

func (in Base64Bytes) DeepCopy() Base64Bytes

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

func (Base64Bytes) DeepCopyInto added in v0.12.0

func (in Base64Bytes) DeepCopyInto(out *Base64Bytes)

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

func (Base64Bytes) MarshalYAML

func (b Base64Bytes) MarshalYAML() (interface{}, error)

MarshalYAML implements the yaml.Marshaler interface.

func (*Base64Bytes) UnmarshalYAML

func (b *Base64Bytes) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements the yaml.Unmarshaler interface.

type Bond

type Bond struct {
	//   description: The interfaces that make up the bond.
	BondInterfaces []string `yaml:"interfaces"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	//     Not supported at the moment.
	BondARPIPTarget []string `yaml:"arpIPTarget,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondMode string `yaml:"mode"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondHashPolicy string `yaml:"xmitHashPolicy,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondLACPRate string `yaml:"lacpRate,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	//     Not supported at the moment.
	BondADActorSystem string `yaml:"adActorSystem,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondARPValidate string `yaml:"arpValidate,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondARPAllTargets string `yaml:"arpAllTargets,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondPrimary string `yaml:"primary,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondPrimaryReselect string `yaml:"primaryReselect,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondFailOverMac string `yaml:"failOverMac,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondADSelect string `yaml:"adSelect,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondMIIMon uint32 `yaml:"miimon,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondUpDelay uint32 `yaml:"updelay,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondDownDelay uint32 `yaml:"downdelay,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondARPInterval uint32 `yaml:"arpInterval,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondResendIGMP uint32 `yaml:"resendIgmp,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondMinLinks uint32 `yaml:"minLinks,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondLPInterval uint32 `yaml:"lpInterval,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondPacketsPerSlave uint32 `yaml:"packetsPerSlave,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondNumPeerNotif uint8 `yaml:"numPeerNotif,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondTLBDynamicLB uint8 `yaml:"tlbDynamicLb,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondAllSlavesActive uint8 `yaml:"allSlavesActive,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondUseCarrier *bool `yaml:"useCarrier,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondADActorSysPrio uint16 `yaml:"adActorSysPrio,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondADUserPortKey uint16 `yaml:"adUserPortKey,omitempty"`
	//   description: |
	//     A bond option.
	//     Please see the official kernel documentation.
	BondPeerNotifyDelay uint32 `yaml:"peerNotifyDelay,omitempty"`
}

Bond contains the various options for configuring a bonded interface.

func (*Bond) ADActorSysPrio

func (b *Bond) ADActorSysPrio() uint16

ADActorSysPrio implements the MachineNetwork interface.

func (*Bond) ADActorSystem

func (b *Bond) ADActorSystem() string

ADActorSystem implements the MachineNetwork interface.

func (*Bond) ADSelect

func (b *Bond) ADSelect() string

ADSelect implements the MachineNetwork interface.

func (*Bond) ADUserPortKey

func (b *Bond) ADUserPortKey() uint16

ADUserPortKey implements the MachineNetwork interface.

func (*Bond) ARPAllTargets

func (b *Bond) ARPAllTargets() string

ARPAllTargets implements the MachineNetwork interface.

func (*Bond) ARPIPTarget

func (b *Bond) ARPIPTarget() []string

ARPIPTarget implements the MachineNetwork interface.

func (*Bond) ARPInterval

func (b *Bond) ARPInterval() uint32

ARPInterval implements the MachineNetwork interface.

func (*Bond) ARPValidate

func (b *Bond) ARPValidate() string

ARPValidate implements the MachineNetwork interface.

func (*Bond) AllSlavesActive

func (b *Bond) AllSlavesActive() uint8

AllSlavesActive implements the MachineNetwork interface.

func (*Bond) DeepCopy added in v0.12.0

func (in *Bond) DeepCopy() *Bond

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

func (*Bond) DeepCopyInto added in v0.12.0

func (in *Bond) DeepCopyInto(out *Bond)

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

func (Bond) Doc

func (_ Bond) Doc() *encoder.Doc

func (*Bond) DownDelay

func (b *Bond) DownDelay() uint32

DownDelay implements the MachineNetwork interface.

func (*Bond) FailOverMac

func (b *Bond) FailOverMac() string

FailOverMac implements the MachineNetwork interface.

func (*Bond) HashPolicy

func (b *Bond) HashPolicy() string

HashPolicy implements the MachineNetwork interface.

func (*Bond) Interfaces

func (b *Bond) Interfaces() []string

Interfaces implements the MachineNetwork interface.

func (*Bond) LACPRate

func (b *Bond) LACPRate() string

LACPRate implements the MachineNetwork interface.

func (*Bond) LPInterval

func (b *Bond) LPInterval() uint32

LPInterval implements the MachineNetwork interface.

func (*Bond) MIIMon

func (b *Bond) MIIMon() uint32

MIIMon implements the MachineNetwork interface.

func (b *Bond) MinLinks() uint32

MinLinks implements the MachineNetwork interface.

func (*Bond) Mode

func (b *Bond) Mode() string

Mode implements the MachineNetwork interface.

func (*Bond) NumPeerNotif

func (b *Bond) NumPeerNotif() uint8

NumPeerNotif implements the MachineNetwork interface.

func (*Bond) PacketsPerSlave

func (b *Bond) PacketsPerSlave() uint32

PacketsPerSlave implements the MachineNetwork interface.

func (*Bond) PeerNotifyDelay

func (b *Bond) PeerNotifyDelay() uint32

PeerNotifyDelay implements the MachineNetwork interface.

func (*Bond) Primary

func (b *Bond) Primary() string

Primary implements the MachineNetwork interface.

func (*Bond) PrimaryReselect

func (b *Bond) PrimaryReselect() string

PrimaryReselect implements the MachineNetwork interface.

func (*Bond) ResendIGMP

func (b *Bond) ResendIGMP() uint32

ResendIGMP implements the MachineNetwork interface.

func (*Bond) TLBDynamicLB

func (b *Bond) TLBDynamicLB() uint8

TLBDynamicLB implements the MachineNetwork interface.

func (*Bond) UpDelay

func (b *Bond) UpDelay() uint32

UpDelay implements the MachineNetwork interface.

func (*Bond) UseCarrier

func (b *Bond) UseCarrier() bool

UseCarrier implements the MachineNetwork interface.

type Bridge added in v1.2.0

type Bridge struct {
	//   description: The interfaces that make up the bridge.
	BridgedInterfaces []string `yaml:"interfaces"`
	//   description: |
	//     A bridge option.
	//     Please see the official kernel documentation.
	BridgeSTP *STP `yaml:"stp,omitempty"`
}

Bridge contains the various options for configuring a bridge interface.

func (*Bridge) DeepCopy added in v1.2.0

func (in *Bridge) DeepCopy() *Bridge

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

func (*Bridge) DeepCopyInto added in v1.2.0

func (in *Bridge) DeepCopyInto(out *Bridge)

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

func (Bridge) Doc added in v1.2.0

func (_ Bridge) Doc() *encoder.Doc

func (*Bridge) Interfaces added in v1.2.0

func (b *Bridge) Interfaces() []string

Interfaces implements the config.Bridge interface.

func (*Bridge) STP added in v1.2.0

func (b *Bridge) STP() config.STP

STP implements the config.Bridge interface.

type CNIConfig

type CNIConfig struct {
	//   description: |
	//     Name of CNI to use.
	//   values:
	//     - flannel
	//     - custom
	//     - none
	CNIName string `yaml:"name,omitempty"`
	//   description: |
	//     URLs containing manifests to apply for the CNI.
	//     Should be present for "custom", must be empty for "flannel" and "none".
	CNIUrls []string `yaml:"urls,omitempty"`
}

CNIConfig represents the CNI configuration options.

func (*CNIConfig) DeepCopy added in v0.12.0

func (in *CNIConfig) DeepCopy() *CNIConfig

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

func (*CNIConfig) DeepCopyInto added in v0.12.0

func (in *CNIConfig) DeepCopyInto(out *CNIConfig)

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

func (CNIConfig) Doc

func (_ CNIConfig) Doc() *encoder.Doc

func (*CNIConfig) Name

func (c *CNIConfig) Name() string

Name implements the config.CNI interface.

func (*CNIConfig) URLs

func (c *CNIConfig) URLs() []string

URLs implements the config.CNI interface.

type ClusterConfig

type ClusterConfig struct {
	//   description: |
	//     Globally unique identifier for this cluster (base64 encoded random 32 bytes).
	ClusterID string `yaml:"id,omitempty"`
	//   description: |
	//     Shared secret of cluster (base64 encoded random 32 bytes).
	//     This secret is shared among cluster members but should never be sent over the network.
	ClusterSecret string `yaml:"secret,omitempty"`
	//   description: |
	//     Provides control plane specific configuration options.
	//   examples:
	//     - name: Setting controlplane endpoint address to 1.2.3.4 and port to 443 example.
	//       value: clusterControlPlaneExample
	ControlPlane *ControlPlaneConfig `yaml:"controlPlane"`
	//   description: |
	//     Configures the cluster's name.
	ClusterName string `yaml:"clusterName,omitempty"`
	//   description: |
	//     Provides cluster specific network configuration options.
	//   examples:
	//     - name: Configuring with flannel CNI and setting up subnets.
	//       value:  clusterNetworkExample
	ClusterNetwork *ClusterNetworkConfig `yaml:"network,omitempty"`
	//   description: |
	//     The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.
	//   examples:
	//     - name: Bootstrap token example (do not use in production!).
	//       value: '"wlzjyw.bei2zfylhs2by0wd"'
	BootstrapToken string `yaml:"token,omitempty"`
	//   description: |
	//     The key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
	//   examples:
	//     - name: Decryption secret example (do not use in production!).
	//       value: '"z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM="'
	ClusterAESCBCEncryptionSecret string `yaml:"aescbcEncryptionSecret"`
	//   description: |
	//     The base64 encoded root certificate authority used by Kubernetes.
	//   examples:
	//     - name: ClusterCA example.
	//       value: pemEncodedCertificateExample
	ClusterCA *x509.PEMEncodedCertificateAndKey `yaml:"ca,omitempty"`
	//   description: |
	//     The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.
	//
	//     This CA can be self-signed.
	//   examples:
	//     - name: AggregatorCA example.
	//       value: pemEncodedCertificateExample
	ClusterAggregatorCA *x509.PEMEncodedCertificateAndKey `yaml:"aggregatorCA,omitempty"`
	//   description: |
	//     The base64 encoded private key for service account token generation.
	//   examples:
	//     - name: AggregatorCA example.
	//       value: pemEncodedKeyExample
	ClusterServiceAccount *x509.PEMEncodedKey `yaml:"serviceAccount,omitempty"`
	//   description: |
	//     API server specific configuration options.
	//   examples:
	//     - value: clusterAPIServerExample
	APIServerConfig *APIServerConfig `yaml:"apiServer,omitempty"`
	//   description: |
	//     Controller manager server specific configuration options.
	//   examples:
	//     - value: clusterControllerManagerExample
	ControllerManagerConfig *ControllerManagerConfig `yaml:"controllerManager,omitempty"`
	//   description: |
	//     Kube-proxy server-specific configuration options
	//   examples:
	//     - value: clusterProxyExample
	ProxyConfig *ProxyConfig `yaml:"proxy,omitempty"`
	//   description: |
	//     Scheduler server specific configuration options.
	//   examples:
	//     - value: clusterSchedulerExample
	SchedulerConfig *SchedulerConfig `yaml:"scheduler,omitempty"`
	//   description: |
	//     Configures cluster member discovery.
	//   examples:
	//     - value: clusterDiscoveryExample
	ClusterDiscoveryConfig *ClusterDiscoveryConfig `yaml:"discovery,omitempty"`
	//   description: |
	//     Etcd specific configuration options.
	//   examples:
	//     - value: clusterEtcdExample
	EtcdConfig *EtcdConfig `yaml:"etcd,omitempty"`
	//   description: |
	//     Core DNS specific configuration options.
	//   examples:
	//     - value: clusterCoreDNSExample
	CoreDNSConfig *CoreDNS `yaml:"coreDNS,omitempty"`
	//   description: |
	//     External cloud provider configuration.
	//   examples:
	//     - value: clusterExternalCloudProviderConfigExample
	ExternalCloudProviderConfig *ExternalCloudProviderConfig `yaml:"externalCloudProvider,omitempty"`
	//   description: |
	//     A list of urls that point to additional manifests.
	//     These will get automatically deployed as part of the bootstrap.
	//   examples:
	//     - value: >
	//        []string{
	//         "https://www.example.com/manifest1.yaml",
	//         "https://www.example.com/manifest2.yaml",
	//        }
	ExtraManifests []string `yaml:"extraManifests,omitempty" talos:"omitonlyifnil"`
	//   description: |
	//     A map of key value pairs that will be added while fetching the extraManifests.
	//   examples:
	//     - value: >
	//         map[string]string{
	//           "Token": "1234567",
	//           "X-ExtraInfo": "info",
	//         }
	ExtraManifestHeaders map[string]string `yaml:"extraManifestHeaders,omitempty"`
	//   description: |
	//     A list of inline Kubernetes manifests.
	//     These will get automatically deployed as part of the bootstrap.
	//   examples:
	//     - value: clusterInlineManifestsExample
	ClusterInlineManifests ClusterInlineManifests `yaml:"inlineManifests,omitempty" talos:"omitonlyifnil"`
	//   description: |
	//     Settings for admin kubeconfig generation.
	//     Certificate lifetime can be configured.
	//   examples:
	//     - value: clusterAdminKubeconfigExample
	AdminKubeconfigConfig *AdminKubeconfigConfig `yaml:"adminKubeconfig,omitempty"`
	// docgen:nodoc
	//
	// Deprecated: Use `AllowSchedulingOnControlPlanes` instead.
	AllowSchedulingOnMasters *bool `yaml:"allowSchedulingOnMasters,omitempty"`
	//   description: |
	//     Allows running workload on control-plane nodes.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	AllowSchedulingOnControlPlanes *bool `yaml:"allowSchedulingOnControlPlanes,omitempty"`
}

ClusterConfig represents the cluster-wide config values.

examples:
   - value: clusterConfigExample

func (*ClusterConfig) AESCBCEncryptionSecret

func (c *ClusterConfig) AESCBCEncryptionSecret() string

AESCBCEncryptionSecret implements the config.ClusterConfig interface.

func (*ClusterConfig) APIServer

func (c *ClusterConfig) APIServer() config.APIServer

APIServer implements the config.ClusterConfig interface.

func (*ClusterConfig) APIServerIPs

func (c *ClusterConfig) APIServerIPs() ([]net.IP, error)

APIServerIPs implements the config.ClusterNetwork interface.

func (*ClusterConfig) AdminKubeconfig

func (c *ClusterConfig) AdminKubeconfig() config.AdminKubeconfig

AdminKubeconfig implements the config.ClusterConfig interface.

func (*ClusterConfig) AggregatorCA

func (c *ClusterConfig) AggregatorCA() *x509.PEMEncodedCertificateAndKey

AggregatorCA implements the config.ClusterConfig interface.

func (*ClusterConfig) CA

CA implements the config.ClusterConfig interface.

func (*ClusterConfig) CNI

func (c *ClusterConfig) CNI() config.CNI

CNI implements the config.ClusterNetwork interface.

func (*ClusterConfig) CertSANs

func (c *ClusterConfig) CertSANs() []string

CertSANs implements the config.ClusterConfig interface.

func (*ClusterConfig) Config

func (c *ClusterConfig) Config(t machine.Type) (string, error)

Config implements the config.ClusterConfig interface.

func (*ClusterConfig) ControllerManager

func (c *ClusterConfig) ControllerManager() config.ControllerManager

ControllerManager implements the config.ClusterConfig interface.

func (*ClusterConfig) CoreDNS

func (c *ClusterConfig) CoreDNS() config.CoreDNS

CoreDNS implements the config.ClusterConfig interface.

func (*ClusterConfig) DNSDomain

func (c *ClusterConfig) DNSDomain() string

DNSDomain implements the config.ClusterNetwork interface.

func (*ClusterConfig) DNSServiceIPs

func (c *ClusterConfig) DNSServiceIPs() ([]net.IP, error)

DNSServiceIPs implements the config.ClusterNetwork interface.

func (*ClusterConfig) DeepCopy added in v0.12.0

func (in *ClusterConfig) DeepCopy() *ClusterConfig

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

func (*ClusterConfig) DeepCopyInto added in v0.12.0

func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)

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

func (*ClusterConfig) Discovery added in v0.13.0

func (c *ClusterConfig) Discovery() config.Discovery

Discovery implements the config.Cluster interface.

func (ClusterConfig) Doc

func (_ ClusterConfig) Doc() *encoder.Doc

func (*ClusterConfig) Endpoint

func (c *ClusterConfig) Endpoint() *url.URL

Endpoint implements the config.ClusterConfig interface.

func (*ClusterConfig) Etcd

func (c *ClusterConfig) Etcd() config.Etcd

Etcd implements the config.ClusterConfig interface.

func (*ClusterConfig) ExternalCloudProvider

func (c *ClusterConfig) ExternalCloudProvider() config.ExternalCloudProvider

ExternalCloudProvider implements the config.ClusterConfig interface.

func (*ClusterConfig) ExtraManifestHeaderMap

func (c *ClusterConfig) ExtraManifestHeaderMap() map[string]string

ExtraManifestHeaderMap implements the config.ClusterConfig interface.

func (*ClusterConfig) ExtraManifestURLs

func (c *ClusterConfig) ExtraManifestURLs() []string

ExtraManifestURLs implements the config.ClusterConfig interface.

func (*ClusterConfig) ID

func (c *ClusterConfig) ID() string

ID returns the unique identifier for the cluster.

func (*ClusterConfig) InlineManifests

func (c *ClusterConfig) InlineManifests() []config.InlineManifest

InlineManifests implements the config.ClusterConfig interface.

func (*ClusterConfig) LocalAPIServerPort

func (c *ClusterConfig) LocalAPIServerPort() int

LocalAPIServerPort implements the config.ClusterConfig interface.

func (*ClusterConfig) Name

func (c *ClusterConfig) Name() string

Name implements the config.ClusterConfig interface.

func (*ClusterConfig) Network

func (c *ClusterConfig) Network() config.ClusterNetwork

Network implements the config.ClusterConfig interface.

func (*ClusterConfig) PodCIDRs added in v0.13.0

func (c *ClusterConfig) PodCIDRs() []string

PodCIDRs implements the config.ClusterNetwork interface.

func (*ClusterConfig) Proxy

func (c *ClusterConfig) Proxy() config.Proxy

Proxy implements the config.ClusterConfig interface.

func (*ClusterConfig) ScheduleOnControlPlanes added in v1.2.0

func (c *ClusterConfig) ScheduleOnControlPlanes() bool

ScheduleOnControlPlanes implements the config.ClusterConfig interface.

func (*ClusterConfig) Scheduler

func (c *ClusterConfig) Scheduler() config.Scheduler

Scheduler implements the config.ClusterConfig interface.

func (*ClusterConfig) Secret

func (c *ClusterConfig) Secret() string

Secret returns the cluster secret.

func (*ClusterConfig) ServiceAccount

func (c *ClusterConfig) ServiceAccount() *x509.PEMEncodedKey

ServiceAccount implements the config.ClusterConfig interface.

func (*ClusterConfig) ServiceCIDRs added in v0.13.0

func (c *ClusterConfig) ServiceCIDRs() []string

ServiceCIDRs implements the config.ClusterNetwork interface.

func (*ClusterConfig) Token

func (c *ClusterConfig) Token() config.Token

Token implements the config.ClusterConfig interface.

func (*ClusterConfig) Validate

func (c *ClusterConfig) Validate() error

Validate validates the config.

type ClusterDiscoveryConfig added in v0.13.0

type ClusterDiscoveryConfig struct {
	// description: |
	//   Enable the cluster membership discovery feature.
	//   Cluster discovery is based on individual registries which are configured under the registries field.
	DiscoveryEnabled *bool `yaml:"enabled,omitempty"`
	// description: |
	//   Configure registries used for cluster member discovery.
	DiscoveryRegistries DiscoveryRegistriesConfig `yaml:"registries"`
}

ClusterDiscoveryConfig struct configures cluster membership discovery.

func (*ClusterDiscoveryConfig) DeepCopy added in v0.13.0

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

func (*ClusterDiscoveryConfig) DeepCopyInto added in v0.13.0

func (in *ClusterDiscoveryConfig) DeepCopyInto(out *ClusterDiscoveryConfig)

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

func (ClusterDiscoveryConfig) Doc added in v0.13.0

func (*ClusterDiscoveryConfig) Enabled added in v0.13.0

func (c *ClusterDiscoveryConfig) Enabled() bool

Enabled implements the config.ClusterDiscovery interface.

func (*ClusterDiscoveryConfig) Registries added in v0.13.0

Registries implements the config.ClusterDiscovery interface.

func (*ClusterDiscoveryConfig) Validate added in v0.13.0

func (c *ClusterDiscoveryConfig) Validate(clusterCfg *ClusterConfig) error

Validate the discovery config.

type ClusterInlineManifest

type ClusterInlineManifest struct {
	//   description: |
	//     Name of the manifest.
	//     Name should be unique.
	//   examples:
	//     - value: '"csi"'
	InlineManifestName string `yaml:"name"`
	//   description: |
	//     Manifest contents as a string.
	//   examples:
	//     - value: '"/etc/kubernetes/auth"'
	InlineManifestContents string `yaml:"contents"`
}

ClusterInlineManifest struct describes inline bootstrap manifests for the user.

func (ClusterInlineManifest) Contents

func (m ClusterInlineManifest) Contents() string

Contents implements the config.InlineManifest interface.

func (*ClusterInlineManifest) DeepCopy added in v0.12.0

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

func (*ClusterInlineManifest) DeepCopyInto added in v0.12.0

func (in *ClusterInlineManifest) DeepCopyInto(out *ClusterInlineManifest)

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

func (ClusterInlineManifest) Doc

func (ClusterInlineManifest) Name

func (m ClusterInlineManifest) Name() string

Name implements the config.InlineManifest interface.

type ClusterInlineManifests

type ClusterInlineManifests []ClusterInlineManifest

ClusterInlineManifests is a list of ClusterInlineManifest.

func (ClusterInlineManifests) DeepCopy added in v0.12.0

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

func (ClusterInlineManifests) DeepCopyInto added in v0.12.0

func (in ClusterInlineManifests) DeepCopyInto(out *ClusterInlineManifests)

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

func (ClusterInlineManifests) Validate

func (manifests ClusterInlineManifests) Validate() error

Validate the inline manifests.

type ClusterNetworkConfig

type ClusterNetworkConfig struct {
	//   description: |
	//     The CNI used.
	//     Composed of "name" and "urls".
	//     The "name" key supports the following options: "flannel", "custom", and "none".
	//     "flannel" uses Talos-managed Flannel CNI, and that's the default option.
	//     "custom" uses custom manifests that should be provided in "urls".
	//     "none" indicates that Talos will not manage any CNI installation.
	//   examples:
	//     - value: clusterCustomCNIExample
	CNI *CNIConfig `yaml:"cni,omitempty"`
	//   description: |
	//     The domain used by Kubernetes DNS.
	//     The default is `cluster.local`
	//   examples:
	//     - value: '"cluser.local"'
	DNSDomain string `yaml:"dnsDomain"`
	//   description: |
	//     The pod subnet CIDR.
	//   examples:
	//     -  value: >
	//          []string{"10.244.0.0/16"}
	PodSubnet []string `yaml:"podSubnets" merge:"replace"`
	//   description: |
	//     The service subnet CIDR.
	//   examples:
	//     -  value: >
	//          []string{"10.96.0.0/12"}
	ServiceSubnet []string `yaml:"serviceSubnets" merge:"replace"`
}

ClusterNetworkConfig represents kube networking configuration options.

func (*ClusterNetworkConfig) DeepCopy added in v0.12.0

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

func (*ClusterNetworkConfig) DeepCopyInto added in v0.12.0

func (in *ClusterNetworkConfig) DeepCopyInto(out *ClusterNetworkConfig)

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

func (ClusterNetworkConfig) Doc

func (_ ClusterNetworkConfig) Doc() *encoder.Doc

type Config

type Config struct {
	//   description: |
	//     Indicates the schema used to decode the contents.
	//   values:
	//     - "v1alpha1"
	ConfigVersion string `yaml:"version"`
	//   description: |
	//     Enable verbose logging to the console.
	//     All system containers logs will flow into serial console.
	//
	//     **Note:** To avoid breaking Talos bootstrap flow enable this option only if serial console can handle high message throughput.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	ConfigDebug *bool `yaml:"debug,omitempty"`
	//   description: |
	//     Indicates whether to pull the machine config upon every boot.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	ConfigPersist *bool `yaml:"persist,omitempty"`
	//   description: |
	//     Provides machine specific configuration options.
	MachineConfig *MachineConfig `yaml:"machine"`
	//   description: |
	//     Provides cluster specific configuration options.
	ClusterConfig *ClusterConfig `yaml:"cluster"`
}

Config defines the v1alpha1 configuration file.

examples:
   - value: configExample

func (*Config) Bytes

func (c *Config) Bytes() ([]byte, error)

Bytes implements the config.Provider interface.

func (*Config) Cluster

func (c *Config) Cluster() config.ClusterConfig

Cluster implements the config.Provider interface.

func (*Config) Debug

func (c *Config) Debug() bool

Debug implements the config.Provider interface.

func (*Config) DeepCopy added in v0.12.0

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto added in v0.12.0

func (in *Config) DeepCopyInto(out *Config)

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

func (Config) Doc

func (_ Config) Doc() *encoder.Doc

func (*Config) EncodeBytes added in v1.0.0

func (c *Config) EncodeBytes(options ...encoder.Option) ([]byte, error)

EncodeBytes implements the config.Provider interface.

func (*Config) EncodeString added in v1.0.0

func (c *Config) EncodeString(options ...encoder.Option) (string, error)

EncodeString implements the config.Provider interface.

func (*Config) Machine

func (c *Config) Machine() config.MachineConfig

Machine implements the config.Provider interface.

func (*Config) Persist

func (c *Config) Persist() bool

Persist implements the config.Provider interface.

func (*Config) Raw added in v1.0.0

func (c *Config) Raw() interface{}

Raw implements the config.Provider interface.

func (*Config) Validate

func (c *Config) Validate(mode config.RuntimeMode, options ...config.ValidationOption) ([]string, error)

Validate implements the config.Provider interface.

func (*Config) Version

func (c *Config) Version() string

Version implements the config.Provider interface.

type ControlPlaneConfig

type ControlPlaneConfig struct {
	//   description: |
	//     Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.
	//     It is single-valued, and may optionally include a port number.
	//   examples:
	//     - value: clusterEndpointExample1
	//     - value: clusterEndpointExample2
	Endpoint *Endpoint `yaml:"endpoint"`
	//   description: |
	//     The port that the API server listens on internally.
	//     This may be different than the port portion listed in the endpoint field above.
	//     The default is `6443`.
	LocalAPIServerPort int `yaml:"localAPIServerPort,omitempty"`
}

ControlPlaneConfig represents the control plane configuration options.

func (*ControlPlaneConfig) DeepCopy added in v0.12.0

func (in *ControlPlaneConfig) DeepCopy() *ControlPlaneConfig

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

func (*ControlPlaneConfig) DeepCopyInto added in v0.12.0

func (in *ControlPlaneConfig) DeepCopyInto(out *ControlPlaneConfig)

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

func (ControlPlaneConfig) Doc

func (_ ControlPlaneConfig) Doc() *encoder.Doc

type ControllerManagerConfig

type ControllerManagerConfig struct {
	//   description: |
	//     The container image used in the controller manager manifest.
	//   examples:
	//     - value: clusterControllerManagerImageExample
	ContainerImage string `yaml:"image,omitempty"`
	//   description: |
	//     Extra arguments to supply to the controller manager.
	ExtraArgsConfig map[string]string `yaml:"extraArgs,omitempty"`
	//   description: |
	//     Extra volumes to mount to the controller manager static pod.
	ExtraVolumesConfig []VolumeMountConfig `yaml:"extraVolumes,omitempty"`
	//   description: |
	//     The `env` field allows for the addition of environment variables for the control plane component.
	EnvConfig Env `yaml:"env,omitempty"`
}

ControllerManagerConfig represents the kube controller manager configuration options.

func (*ControllerManagerConfig) DeepCopy added in v0.12.0

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

func (*ControllerManagerConfig) DeepCopyInto added in v0.12.0

func (in *ControllerManagerConfig) DeepCopyInto(out *ControllerManagerConfig)

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

func (ControllerManagerConfig) Doc

func (*ControllerManagerConfig) Env added in v1.0.0

func (c *ControllerManagerConfig) Env() Env

Env implements the config.ControllerManager interface.

func (*ControllerManagerConfig) ExtraArgs

func (c *ControllerManagerConfig) ExtraArgs() map[string]string

ExtraArgs implements the config.ControllerManager interface.

func (*ControllerManagerConfig) ExtraVolumes

func (c *ControllerManagerConfig) ExtraVolumes() []config.VolumeMount

ExtraVolumes implements the config.ControllerManager interface.

func (*ControllerManagerConfig) Image

func (c *ControllerManagerConfig) Image() string

Image implements the config.ControllerManager interface.

type CoreDNS

type CoreDNS struct {
	//   description: |
	//     Disable coredns deployment on cluster bootstrap.
	CoreDNSDisabled *bool `yaml:"disabled,omitempty"`
	//   description: |
	//     The `image` field is an override to the default coredns image.
	CoreDNSImage string `yaml:"image,omitempty"`
}

CoreDNS represents the CoreDNS config values.

func (*CoreDNS) DeepCopy added in v0.12.0

func (in *CoreDNS) DeepCopy() *CoreDNS

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

func (*CoreDNS) DeepCopyInto added in v0.12.0

func (in *CoreDNS) DeepCopyInto(out *CoreDNS)

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

func (CoreDNS) Doc

func (_ CoreDNS) Doc() *encoder.Doc

func (*CoreDNS) Enabled

func (c *CoreDNS) Enabled() bool

Enabled implements the config.Provider interface.

func (*CoreDNS) Image

func (c *CoreDNS) Image() string

Image implements the config.Provider interface.

type DHCPOptions

type DHCPOptions struct {
	//   description: The priority of all routes received via DHCP.
	DHCPRouteMetric uint32 `yaml:"routeMetric"`
	//   description: Enables DHCPv4 protocol for the interface (default is enabled).
	DHCPIPv4 *bool `yaml:"ipv4,omitempty"`
	//   description: Enables DHCPv6 protocol for the interface (default is disabled).
	DHCPIPv6 *bool `yaml:"ipv6,omitempty"`
	//   description: Set client DUID (hex string).
	DHCPDUIDv6 string `yaml:"duidv6,omitempty"`
}

DHCPOptions contains options for configuring the DHCP settings for a given interface.

func (*DHCPOptions) DUIDv6 added in v1.1.0

func (d *DHCPOptions) DUIDv6() string

DUIDv6 implements the DHCPOptions interface.

func (*DHCPOptions) DeepCopy added in v0.12.0

func (in *DHCPOptions) DeepCopy() *DHCPOptions

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

func (*DHCPOptions) DeepCopyInto added in v0.12.0

func (in *DHCPOptions) DeepCopyInto(out *DHCPOptions)

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

func (DHCPOptions) Doc

func (_ DHCPOptions) Doc() *encoder.Doc

func (*DHCPOptions) IPv4

func (d *DHCPOptions) IPv4() bool

IPv4 implements the DHCPOptions interface.

func (*DHCPOptions) IPv6

func (d *DHCPOptions) IPv6() bool

IPv6 implements the DHCPOptions interface.

func (*DHCPOptions) RouteMetric

func (d *DHCPOptions) RouteMetric() uint32

RouteMetric implements the DHCPOptions interface.

type Device

type Device struct {
	//   description: |
	//     The interface name.
	//     Mutually exclusive with `deviceSelector`.
	//   examples:
	//     - value: '"eth0"'
	DeviceInterface string `yaml:"interface,omitempty"`
	//   description: |
	//     Picks a network device using the selector.
	//     Mutually exclusive with `interface`.
	//     Supports partial match using wildcard syntax.
	//   examples:
	//     - name: select a device with bus prefix 00:*.
	//       value: networkDeviceSelectorExamples[0]
	//     - name: select a device with mac address matching `*:f0:ab` and `virtio` kernel driver.
	//       value: networkDeviceSelectorExamples[1]
	DeviceSelector *NetworkDeviceSelector `yaml:"deviceSelector,omitempty"`
	//   description: |
	//     Assigns static IP addresses to the interface.
	//     An address can be specified either in proper CIDR notation or as a standalone address (netmask of all ones is assumed).
	//   examples:
	//     - value: '[]string{"10.5.0.0/16", "192.168.3.7"}'
	DeviceAddresses []string `yaml:"addresses,omitempty"`
	// docgen:nodoc
	DeviceCIDR string `yaml:"cidr,omitempty"`
	//   description: |
	//     A list of routes associated with the interface.
	//     If used in combination with DHCP, these routes will be appended to routes returned by DHCP server.
	//   examples:
	//     - value: networkConfigRoutesExample
	DeviceRoutes []*Route `yaml:"routes,omitempty"`
	//   description: Bond specific options.
	//   examples:
	//     - value: networkConfigBondExample
	DeviceBond *Bond `yaml:"bond,omitempty"`
	//   description: Bridge specific options.
	//   examples:
	//     - value: networkConfigBridgeExample
	DeviceBridge *Bridge `yaml:"bridge,omitempty"`
	//   description: VLAN specific options.
	DeviceVlans []*Vlan `yaml:"vlans,omitempty"`
	//   description: |
	//     The interface's MTU.
	//     If used in combination with DHCP, this will override any MTU settings returned from DHCP server.
	DeviceMTU int `yaml:"mtu"`
	//   description: |
	//     Indicates if DHCP should be used to configure the interface.
	//     The following DHCP options are supported:
	//
	//     - `OptionClasslessStaticRoute`
	//     - `OptionDomainNameServer`
	//     - `OptionDNSDomainSearchList`
	//     - `OptionHostName`
	//
	//   examples:
	//     - value: true
	DeviceDHCP *bool `yaml:"dhcp,omitempty"`
	//   description: Indicates if the interface should be ignored (skips configuration).
	DeviceIgnore *bool `yaml:"ignore,omitempty"`
	//   description: |
	//     Indicates if the interface is a dummy interface.
	//     `dummy` is used to specify that this interface should be a virtual-only, dummy interface.
	DeviceDummy *bool `yaml:"dummy,omitempty"`
	//   description: |
	//     DHCP specific options.
	//     `dhcp` *must* be set to true for these to take effect.
	//   examples:
	//     - value: networkConfigDHCPOptionsExample
	DeviceDHCPOptions *DHCPOptions `yaml:"dhcpOptions,omitempty"`
	//   description: |
	//     Wireguard specific configuration.
	//     Includes things like private key, listen port, peers.
	//   examples:
	//     - name: wireguard server example
	//       value: networkConfigWireguardHostExample
	//     - name: wireguard peer example
	//       value: networkConfigWireguardPeerExample
	DeviceWireguardConfig *DeviceWireguardConfig `yaml:"wireguard,omitempty"`
	//   description: Virtual (shared) IP address configuration.
	//   examples:
	//     - name: layer2 vip example
	//       value: networkConfigVIPLayer2Example
	DeviceVIPConfig *DeviceVIPConfig `yaml:"vip,omitempty"`
}

Device represents a network interface.

func (*Device) Addresses added in v0.12.0

func (d *Device) Addresses() []string

Addresses implements the MachineNetwork interface.

func (*Device) Bond

func (d *Device) Bond() config.Bond

Bond implements the MachineNetwork interface.

func (*Device) Bridge added in v1.2.0

func (d *Device) Bridge() config.Bridge

Bridge implements the MachineNetwork interface.

func (*Device) DHCP

func (d *Device) DHCP() bool

DHCP implements the MachineNetwork interface.

func (*Device) DHCPOptions

func (d *Device) DHCPOptions() config.DHCPOptions

DHCPOptions implements the MachineNetwork interface.

func (*Device) DeepCopy added in v0.12.0

func (in *Device) DeepCopy() *Device

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

func (*Device) DeepCopyInto added in v0.12.0

func (in *Device) DeepCopyInto(out *Device)

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

func (Device) Doc

func (_ Device) Doc() *encoder.Doc

func (*Device) Dummy

func (d *Device) Dummy() bool

Dummy implements the MachineNetwork interface.

func (*Device) Ignore

func (d *Device) Ignore() bool

Ignore implements the MachineNetwork interface.

func (*Device) Interface

func (d *Device) Interface() string

Interface implements the MachineNetwork interface.

func (*Device) MTU

func (d *Device) MTU() int

MTU implements the MachineNetwork interface.

func (*Device) Routes

func (d *Device) Routes() []config.Route

Routes implements the MachineNetwork interface.

func (*Device) Selector added in v1.1.0

func (d *Device) Selector() config.NetworkDeviceSelector

Selector implements the config.Device interface.

func (*Device) VIPConfig

func (d *Device) VIPConfig() config.VIPConfig

VIPConfig implements the MachineNetwork interface.

func (*Device) Vlans

func (d *Device) Vlans() []config.Vlan

Vlans implements the MachineNetwork interface.

func (*Device) WireguardConfig

func (d *Device) WireguardConfig() config.WireguardConfig

WireguardConfig implements the MachineNetwork interface.

type DeviceVIPConfig

type DeviceVIPConfig struct {
	// description: Specifies the IP address to be used.
	SharedIP string `yaml:"ip,omitempty"`
	// description: Specifies the Equinix Metal API settings to assign VIP to the node.
	EquinixMetalConfig *VIPEquinixMetalConfig `yaml:"equinixMetal,omitempty"`
	// description: Specifies the Hetzner Cloud API settings to assign VIP to the node.
	HCloudConfig *VIPHCloudConfig `yaml:"hcloud,omitempty"`
}

DeviceVIPConfig contains settings for configuring a Virtual Shared IP on an interface.

func (*DeviceVIPConfig) DeepCopy added in v0.12.0

func (in *DeviceVIPConfig) DeepCopy() *DeviceVIPConfig

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

func (*DeviceVIPConfig) DeepCopyInto added in v0.12.0

func (in *DeviceVIPConfig) DeepCopyInto(out *DeviceVIPConfig)

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

func (DeviceVIPConfig) Doc

func (_ DeviceVIPConfig) Doc() *encoder.Doc

func (*DeviceVIPConfig) EquinixMetal added in v0.12.0

func (d *DeviceVIPConfig) EquinixMetal() config.VIPEquinixMetal

EquinixMetal implements the config.VIPConfig interface.

func (*DeviceVIPConfig) HCloud added in v0.13.0

func (d *DeviceVIPConfig) HCloud() config.VIPHCloud

HCloud implements the config.VIPConfig interface.

func (*DeviceVIPConfig) IP

func (d *DeviceVIPConfig) IP() string

IP implements the config.VIPConfig interface.

type DeviceWireguardConfig

type DeviceWireguardConfig struct {
	//   description: |
	//     Specifies a private key configuration (base64 encoded).
	//     Can be generated by `wg genkey`.
	WireguardPrivateKey string `yaml:"privateKey,omitempty"`
	//   description: Specifies a device's listening port.
	WireguardListenPort int `yaml:"listenPort,omitempty"`
	//   description: Specifies a device's firewall mark.
	WireguardFirewallMark int `yaml:"firewallMark,omitempty"`
	//   description: Specifies a list of peer configurations to apply to a device.
	WireguardPeers []*DeviceWireguardPeer `yaml:"peers,omitempty"`
}

DeviceWireguardConfig contains settings for configuring Wireguard network interface.

func (*DeviceWireguardConfig) DeepCopy added in v0.12.0

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

func (*DeviceWireguardConfig) DeepCopyInto added in v0.12.0

func (in *DeviceWireguardConfig) DeepCopyInto(out *DeviceWireguardConfig)

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

func (DeviceWireguardConfig) Doc

func (*DeviceWireguardConfig) FirewallMark

func (wc *DeviceWireguardConfig) FirewallMark() int

FirewallMark implements the MachineNetwork interface.

func (*DeviceWireguardConfig) ListenPort

func (wc *DeviceWireguardConfig) ListenPort() int

ListenPort implements the MachineNetwork interface.

func (*DeviceWireguardConfig) Peers

Peers implements the MachineNetwork interface.

func (*DeviceWireguardConfig) PrivateKey

func (wc *DeviceWireguardConfig) PrivateKey() string

PrivateKey implements the MachineNetwork interface.

type DeviceWireguardPeer

type DeviceWireguardPeer struct {
	//   description: |
	//     Specifies the public key of this peer.
	//     Can be extracted from private key by running `wg pubkey < private.key > public.key && cat public.key`.
	WireguardPublicKey string `yaml:"publicKey,omitempty"`
	//   description: Specifies the endpoint of this peer entry.
	WireguardEndpoint string `yaml:"endpoint,omitempty"`
	//   description: |
	//     Specifies the persistent keepalive interval for this peer.
	//     Field format accepts any Go time.Duration format ('1h' for one hour, '10m' for ten minutes).
	WireguardPersistentKeepaliveInterval time.Duration `yaml:"persistentKeepaliveInterval,omitempty"`
	//   description: AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer.
	WireguardAllowedIPs []string `yaml:"allowedIPs,omitempty"`
}

DeviceWireguardPeer a WireGuard device peer configuration.

func (*DeviceWireguardPeer) AllowedIPs

func (wd *DeviceWireguardPeer) AllowedIPs() []string

AllowedIPs implements the MachineNetwork interface.

func (*DeviceWireguardPeer) DeepCopy added in v0.12.0

func (in *DeviceWireguardPeer) DeepCopy() *DeviceWireguardPeer

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

func (*DeviceWireguardPeer) DeepCopyInto added in v0.12.0

func (in *DeviceWireguardPeer) DeepCopyInto(out *DeviceWireguardPeer)

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

func (DeviceWireguardPeer) Doc

func (_ DeviceWireguardPeer) Doc() *encoder.Doc

func (*DeviceWireguardPeer) Endpoint

func (wd *DeviceWireguardPeer) Endpoint() string

Endpoint implements the MachineNetwork interface.

func (*DeviceWireguardPeer) PersistentKeepaliveInterval

func (wd *DeviceWireguardPeer) PersistentKeepaliveInterval() time.Duration

PersistentKeepaliveInterval implements the MachineNetwork interface.

func (*DeviceWireguardPeer) PublicKey

func (wd *DeviceWireguardPeer) PublicKey() string

PublicKey implements the MachineNetwork interface.

type DiscoveryRegistriesConfig added in v0.13.0

type DiscoveryRegistriesConfig struct {
	// description: |
	//   Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information
	//   as annotations on the Node resources.
	RegistryKubernetes RegistryKubernetesConfig `yaml:"kubernetes"`
	// description: |
	//   Service registry is using an external service to push and pull information about cluster members.
	RegistryService RegistryServiceConfig `yaml:"service"`
}

DiscoveryRegistriesConfig struct configures cluster membership discovery.

func (*DiscoveryRegistriesConfig) DeepCopy added in v0.13.0

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

func (*DiscoveryRegistriesConfig) DeepCopyInto added in v0.13.0

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

func (DiscoveryRegistriesConfig) Doc added in v0.13.0

func (DiscoveryRegistriesConfig) Kubernetes added in v0.13.0

Kubernetes implements the config.DiscoveryRegistries interface.

func (DiscoveryRegistriesConfig) Service added in v0.13.0

Service implements the config.DiscoveryRegistries interface.

type DiskPartition

type DiskPartition struct {
	//   description: >
	//     The size of partition: either bytes or human readable representation. If `size:`
	//     is omitted, the partition is sized to occupy the full disk.
	//   examples:
	//     - name: Human readable representation.
	//       value: DiskSize(100000000)
	//     - name: Precise value in bytes.
	//       value: 1024 * 1024 * 1024
	DiskSize DiskSize `yaml:"size,omitempty"`
	//   description:
	//     Where to mount the partition.
	DiskMountPoint string `yaml:"mountpoint,omitempty"`
}

DiskPartition represents the options for a disk partition.

func (*DiskPartition) DeepCopy added in v0.12.0

func (in *DiskPartition) DeepCopy() *DiskPartition

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

func (*DiskPartition) DeepCopyInto added in v0.12.0

func (in *DiskPartition) DeepCopyInto(out *DiskPartition)

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

func (DiskPartition) Doc

func (_ DiskPartition) Doc() *encoder.Doc

func (*DiskPartition) MountPoint

func (p *DiskPartition) MountPoint() string

MountPoint implements the config.Provider interface.

func (*DiskPartition) Size

func (p *DiskPartition) Size() uint64

Size implements the config.Provider interface.

type DiskSize

type DiskSize uint64

DiskSize partition size in bytes.

func (DiskSize) MarshalYAML

func (ds DiskSize) MarshalYAML() (interface{}, error)

MarshalYAML write as human readable string.

func (*DiskSize) UnmarshalYAML

func (ds *DiskSize) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML read from human readable string.

type EncryptionConfig

type EncryptionConfig struct {
	//   description: >
	//     Encryption provider to use for the encryption.
	//   examples:
	//     - value: '"luks2"'
	EncryptionProvider string `yaml:"provider"`
	//   description: >
	//     Defines the encryption keys generation and storage method.
	EncryptionKeys []*EncryptionKey `yaml:"keys"`
	//   description: >
	//     Cipher kind to use for the encryption.
	//     Depends on the encryption provider.
	//   values:
	//     - aes-xts-plain64
	//     - xchacha12,aes-adiantum-plain64
	//     - xchacha20,aes-adiantum-plain64
	//   examples:
	//     - value: '"aes-xts-plain64"'
	EncryptionCipher string `yaml:"cipher,omitempty"`
	//   description: >
	//     Defines the encryption key length.
	EncryptionKeySize uint `yaml:"keySize,omitempty"`
	//   description: >
	//     Defines the encryption sector size.
	//   examples:
	//     - value: '4096'
	EncryptionBlockSize uint64 `yaml:"blockSize,omitempty"`
	//   description: >
	//     Additional --perf parameters for the LUKS2 encryption.
	//   values:
	//     - no_read_workqueue
	//     - no_write_workqueue
	//     - same_cpu_crypt
	//   examples:
	//     -  value: >
	//          []string{"no_read_workqueue","no_write_workqueue"}
	EncryptionPerfOptions []string `yaml:"options,omitempty"`
}

EncryptionConfig represents partition encryption settings.

func (*EncryptionConfig) BlockSize added in v0.12.0

func (e *EncryptionConfig) BlockSize() uint64

BlockSize implements the config.Provider interface.

func (*EncryptionConfig) Cipher

func (e *EncryptionConfig) Cipher() string

Cipher implements the config.Provider interface.

func (*EncryptionConfig) DeepCopy added in v0.12.0

func (in *EncryptionConfig) DeepCopy() *EncryptionConfig

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

func (*EncryptionConfig) DeepCopyInto added in v0.12.0

func (in *EncryptionConfig) DeepCopyInto(out *EncryptionConfig)

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

func (EncryptionConfig) Doc

func (_ EncryptionConfig) Doc() *encoder.Doc

func (*EncryptionConfig) KeySize added in v0.12.0

func (e *EncryptionConfig) KeySize() uint

KeySize implements the config.Provider interface.

func (*EncryptionConfig) Keys

Keys implements the config.Provider interface.

func (*EncryptionConfig) Kind

func (e *EncryptionConfig) Kind() string

Kind implements the config.Provider interface.

func (*EncryptionConfig) Options added in v0.12.0

func (e *EncryptionConfig) Options() []string

Options implements the config.Provider interface.

type EncryptionKey

type EncryptionKey struct {
	//   description: >
	//     Key which value is stored in the configuration file.
	KeyStatic *EncryptionKeyStatic `yaml:"static,omitempty"`
	//   description: >
	//     Deterministically generated key from the node UUID and PartitionLabel.
	KeyNodeID *EncryptionKeyNodeID `yaml:"nodeID,omitempty"`
	//   description: >
	//     Key slot number for LUKS2 encryption.
	KeySlot int `yaml:"slot"`
}

EncryptionKey represents configuration for disk encryption key.

func (*EncryptionKey) DeepCopy added in v0.12.0

func (in *EncryptionKey) DeepCopy() *EncryptionKey

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

func (*EncryptionKey) DeepCopyInto added in v0.12.0

func (in *EncryptionKey) DeepCopyInto(out *EncryptionKey)

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

func (EncryptionKey) Doc

func (_ EncryptionKey) Doc() *encoder.Doc

func (*EncryptionKey) NodeID

NodeID implements the config.Provider interface.

func (*EncryptionKey) Slot

func (e *EncryptionKey) Slot() int

Slot implements the config.Provider interface.

func (*EncryptionKey) Static

Static implements the config.Provider interface.

type EncryptionKeyNodeID

type EncryptionKeyNodeID struct{}

EncryptionKeyNodeID represents deterministically generated key from the node UUID and PartitionLabel.

func (*EncryptionKeyNodeID) DeepCopy added in v0.12.0

func (in *EncryptionKeyNodeID) DeepCopy() *EncryptionKeyNodeID

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

func (*EncryptionKeyNodeID) DeepCopyInto added in v0.12.0

func (in *EncryptionKeyNodeID) DeepCopyInto(out *EncryptionKeyNodeID)

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

func (EncryptionKeyNodeID) Doc

func (_ EncryptionKeyNodeID) Doc() *encoder.Doc

type EncryptionKeyStatic

type EncryptionKeyStatic struct {
	//   description: >
	//     Defines the static passphrase value.
	KeyData string `yaml:"passphrase,omitempty"`
}

EncryptionKeyStatic represents throw away key type.

func (*EncryptionKeyStatic) DeepCopy added in v0.12.0

func (in *EncryptionKeyStatic) DeepCopy() *EncryptionKeyStatic

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

func (*EncryptionKeyStatic) DeepCopyInto added in v0.12.0

func (in *EncryptionKeyStatic) DeepCopyInto(out *EncryptionKeyStatic)

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

func (EncryptionKeyStatic) Doc

func (_ EncryptionKeyStatic) Doc() *encoder.Doc

func (*EncryptionKeyStatic) Key

func (e *EncryptionKeyStatic) Key() []byte

Key implements the config.Provider interface.

type Endpoint

type Endpoint struct {
	*url.URL
}

Endpoint represents the endpoint URL parsed out of the machine config.

func (*Endpoint) DeepCopy added in v0.12.0

func (e *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto added in v0.12.0

func (e *Endpoint) DeepCopyInto(out *Endpoint)

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

func (Endpoint) Doc

func (_ Endpoint) Doc() *encoder.Doc

func (*Endpoint) MarshalYAML

func (e *Endpoint) MarshalYAML() (interface{}, error)

MarshalYAML is a custom marshaller for `Endpoint`.

func (*Endpoint) UnmarshalYAML

func (e *Endpoint) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaller for `Endpoint`.

type Env

type Env = map[string]string

Env represents a set of environment variables.

type EtcdConfig

type EtcdConfig struct {
	//   description: |
	//     The container image used to create the etcd service.
	//   examples:
	//     - value: clusterEtcdImageExample
	ContainerImage string `yaml:"image,omitempty"`
	//   description: |
	//     The `ca` is the root certificate authority of the PKI.
	//     It is composed of a base64 encoded `crt` and `key`.
	//   examples:
	//     - value: pemEncodedCertificateExample
	RootCA *x509.PEMEncodedCertificateAndKey `yaml:"ca"`
	//   description: |
	//     Extra arguments to supply to etcd.
	//     Note that the following args are not allowed:
	//
	//     - `name`
	//     - `data-dir`
	//     - `initial-cluster-state`
	//     - `listen-peer-urls`
	//     - `listen-client-urls`
	//     - `cert-file`
	//     - `key-file`
	//     - `trusted-ca-file`
	//     - `peer-client-cert-auth`
	//     - `peer-cert-file`
	//     - `peer-trusted-ca-file`
	//     - `peer-key-file`
	//   examples:
	//     - values: >
	//         map[string]string{
	//           "initial-cluster": "https://1.2.3.4:2380",
	//           "advertise-client-urls": "https://1.2.3.4:2379",
	//         }
	EtcdExtraArgs map[string]string `yaml:"extraArgs,omitempty"`
	// docgen:nodoc
	//
	// Deprecated: use EtcdAdvertistedSubnets
	EtcdSubnet string `yaml:"subnet,omitempty"`
	//  description: |
	//    The `advertisedSubnets` field configures the networks to pick etcd advertised IP from.
	//
	//    IPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.
	//    Negative subnet matches should be specified last to filter out IPs picked by positive matches.
	//    If not specified, advertised IP is selected as the first routable address of the node.
	//
	//  examples:
	//    - value: clusterEtcdAdvertisedSubnetsExample
	EtcdAdvertisedSubnets []string `yaml:"advertisedSubnets,omitempty"`
	//  description: |
	//    The `listenSubnets` field configures the networks for the etcd to listen for peer and client connections.
	//
	//    If `listenSubnets` is not set, but `advertisedSubnets` is set, `listenSubnets` defaults to
	//    `advertisedSubnets`.
	//
	//    If neither `advertisedSubnets` nor `listenSubnets` is set, `listenSubnets` defaults to listen on all addresses.
	//
	//    IPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.
	//    Negative subnet matches should be specified last to filter out IPs picked by positive matches.
	//    If not specified, advertised IP is selected as the first routable address of the node.
	EtcdListenSubnets []string `yaml:"listenSubnets,omitempty"`
}

EtcdConfig represents the etcd configuration options.

func (*EtcdConfig) AdvertisedSubnets added in v1.2.0

func (e *EtcdConfig) AdvertisedSubnets() []string

AdvertisedSubnets implements the config.Etcd interface.

func (*EtcdConfig) CA

CA implements the config.Etcd interface.

func (*EtcdConfig) DeepCopy added in v0.12.0

func (in *EtcdConfig) DeepCopy() *EtcdConfig

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

func (*EtcdConfig) DeepCopyInto added in v0.12.0

func (in *EtcdConfig) DeepCopyInto(out *EtcdConfig)

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

func (EtcdConfig) Doc

func (_ EtcdConfig) Doc() *encoder.Doc

func (*EtcdConfig) ExtraArgs

func (e *EtcdConfig) ExtraArgs() map[string]string

ExtraArgs implements the config.Etcd interface.

func (*EtcdConfig) Image

func (e *EtcdConfig) Image() string

Image implements the config.Etcd interface.

func (*EtcdConfig) ListenSubnets added in v1.2.0

func (e *EtcdConfig) ListenSubnets() []string

ListenSubnets implements the config.Etcd interface.

func (*EtcdConfig) Validate added in v1.2.0

func (e *EtcdConfig) Validate() error

Validate etcd configuration.

type ExternalCloudProviderConfig

type ExternalCloudProviderConfig struct {
	//   description: |
	//     Enable external cloud provider.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	ExternalEnabled *bool `yaml:"enabled,omitempty"`
	//   description: |
	//     A list of urls that point to additional manifests for an external cloud provider.
	//     These will get automatically deployed as part of the bootstrap.
	//   examples:
	//     - value: >
	//        []string{
	//         "https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/rbac.yaml",
	//         "https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/aws-cloud-controller-manager-daemonset.yaml",
	//        }
	ExternalManifests []string `yaml:"manifests,omitempty"`
}

ExternalCloudProviderConfig contains external cloud provider configuration.

func (*ExternalCloudProviderConfig) DeepCopy added in v0.12.0

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

func (*ExternalCloudProviderConfig) DeepCopyInto added in v0.12.0

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

func (ExternalCloudProviderConfig) Doc

func (*ExternalCloudProviderConfig) Enabled

func (ecp *ExternalCloudProviderConfig) Enabled() bool

Enabled implements the config.ExternalCloudProvider interface.

func (*ExternalCloudProviderConfig) ManifestURLs

func (ecp *ExternalCloudProviderConfig) ManifestURLs() []string

ManifestURLs implements the config.ExternalCloudProvider interface.

func (*ExternalCloudProviderConfig) Validate

func (ecp *ExternalCloudProviderConfig) Validate() error

Validate validates external cloud provider configuration.

type ExtraHost

type ExtraHost struct {
	//   description: The IP of the host.
	HostIP string `yaml:"ip"`
	//   description: The host alias.
	HostAliases []string `yaml:"aliases"`
}

ExtraHost represents a host entry in /etc/hosts.

func (*ExtraHost) Aliases

func (e *ExtraHost) Aliases() []string

Aliases implements the MachineNetwork interface.

func (*ExtraHost) DeepCopy added in v0.12.0

func (in *ExtraHost) DeepCopy() *ExtraHost

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

func (*ExtraHost) DeepCopyInto added in v0.12.0

func (in *ExtraHost) DeepCopyInto(out *ExtraHost)

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

func (ExtraHost) Doc

func (_ ExtraHost) Doc() *encoder.Doc

func (*ExtraHost) IP

func (e *ExtraHost) IP() string

IP implements the MachineNetwork interface.

type ExtraMount added in v0.12.0

type ExtraMount struct {
	specs.Mount `yaml:",inline"`
}

ExtraMount wraps OCI Mount specification.

func (*ExtraMount) DeepCopy added in v0.12.0

func (in *ExtraMount) DeepCopy() *ExtraMount

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

func (*ExtraMount) DeepCopyInto added in v0.12.0

func (in *ExtraMount) DeepCopyInto(out *ExtraMount)

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

func (ExtraMount) Doc added in v0.12.0

func (_ ExtraMount) Doc() *encoder.Doc

type FeaturesConfig

type FeaturesConfig struct {
	//   description: |
	//     Enable role-based access control (RBAC).
	RBAC *bool `yaml:"rbac,omitempty"`
	//   description: |
	//     Enable stable default hostname.
	StableHostname *bool `yaml:"stableHostname,omitempty"`
	//   description: |
	//    Configure Talos API access from Kubernetes pods.
	//
	//    This feature is disabled if the feature config is not specified.
	//   examples:
	//     - value: kubernetesTalosAPIAccessConfigExample
	KubernetesTalosAPIAccessConfig *KubernetesTalosAPIAccessConfig `yaml:"kubernetesTalosAPIAccess,omitempty"`
}

FeaturesConfig describes individual Talos features that can be switched on or off.

func (*FeaturesConfig) DeepCopy added in v0.12.0

func (in *FeaturesConfig) DeepCopy() *FeaturesConfig

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

func (*FeaturesConfig) DeepCopyInto added in v0.12.0

func (in *FeaturesConfig) DeepCopyInto(out *FeaturesConfig)

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

func (FeaturesConfig) Doc

func (_ FeaturesConfig) Doc() *encoder.Doc

func (*FeaturesConfig) KubernetesTalosAPIAccess added in v1.2.0

func (f *FeaturesConfig) KubernetesTalosAPIAccess() config.KubernetesTalosAPIAccess

KubernetesTalosAPIAccess implements config.Features interface.

func (*FeaturesConfig) RBACEnabled

func (f *FeaturesConfig) RBACEnabled() bool

RBACEnabled implements config.Features interface.

func (*FeaturesConfig) StableHostnameEnabled added in v1.2.0

func (f *FeaturesConfig) StableHostnameEnabled() bool

StableHostnameEnabled implements config.Features interface.

type FileMode

type FileMode os.FileMode

FileMode represents file's permissions.

func (FileMode) MarshalYAML

func (fm FileMode) MarshalYAML() (interface{}, error)

MarshalYAML encodes as an octal value.

func (FileMode) String

func (fm FileMode) String() string

String convert file mode to octal string.

type InstallConfig

type InstallConfig struct {
	//   description: |
	//     The disk used for installations.
	//   examples:
	//     - value: '"/dev/sda"'
	//     - value: '"/dev/nvme0"'
	InstallDisk string `yaml:"disk,omitempty"`
	//   description: |
	//     Look up disk using disk attributes like model, size, serial and others.
	//     Always has priority over `disk`.
	//   examples:
	//     - value: machineInstallDiskSelectorExample
	InstallDiskSelector *InstallDiskSelector `yaml:"diskSelector,omitempty"`
	//   description: |
	//     Allows for supplying extra kernel args via the bootloader.
	//   examples:
	//     - value: '[]string{"talos.platform=metal", "reboot=k"}'
	InstallExtraKernelArgs []string `yaml:"extraKernelArgs,omitempty"`
	//   description: |
	//     Allows for supplying the image used to perform the installation.
	//     Image reference for each Talos release can be found on
	//     [GitHub releases page](https://github.com/siderolabs/talos/releases).
	//   examples:
	//     - value: '"ghcr.io/siderolabs/installer:latest"'
	InstallImage string `yaml:"image,omitempty"`
	//   description: |
	//     Allows for supplying additional system extension images to install on top of base Talos image.
	//   examples:
	//     - value: installExtensionsExample
	InstallExtensions []InstallExtensionConfig `yaml:"extensions,omitempty"`
	//   description: |
	//     Indicates if a bootloader should be installed.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	InstallBootloader *bool `yaml:"bootloader,omitempty"`
	//   description: |
	//     Indicates if the installation disk should be wiped at installation time.
	//     Defaults to `true`.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	InstallWipe *bool `yaml:"wipe"`
	//   description: |
	//     Indicates if MBR partition should be marked as bootable (active).
	//     Should be enabled only for the systems with legacy BIOS that doesn't support GPT partitioning scheme.
	InstallLegacyBIOSSupport *bool `yaml:"legacyBIOSSupport,omitempty"`
}

InstallConfig represents the installation options for preparing a node.

func (*InstallConfig) DeepCopy added in v0.12.0

func (in *InstallConfig) DeepCopy() *InstallConfig

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

func (*InstallConfig) DeepCopyInto added in v0.12.0

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) Disk

func (i *InstallConfig) Disk() (string, error)

Disk implements the config.Provider interface.

func (*InstallConfig) DiskMatchers

func (i *InstallConfig) DiskMatchers() []disk.Matcher

DiskMatchers implements the config.Provider interface.

func (InstallConfig) Doc

func (_ InstallConfig) Doc() *encoder.Doc

func (*InstallConfig) Extensions added in v1.0.0

func (i *InstallConfig) Extensions() []config.Extension

Extensions implements the config.Provider interface.

func (*InstallConfig) ExtraKernelArgs

func (i *InstallConfig) ExtraKernelArgs() []string

ExtraKernelArgs implements the config.Provider interface.

func (*InstallConfig) Image

func (i *InstallConfig) Image() string

Image implements the config.Provider interface.

func (*InstallConfig) LegacyBIOSSupport

func (i *InstallConfig) LegacyBIOSSupport() bool

LegacyBIOSSupport implements the config.Provider interface.

func (*InstallConfig) WithBootloader

func (i *InstallConfig) WithBootloader() bool

WithBootloader implements the config.Provider interface.

func (*InstallConfig) Zero

func (i *InstallConfig) Zero() bool

Zero implements the config.Provider interface.

type InstallDiskSelector

type InstallDiskSelector struct {
	//   description: Disk size.
	//   examples:
	//     - name: Select a disk which size is equal to 4GB.
	//       value: machineInstallDiskSizeMatcherExamples[0]
	//     - name: Select a disk which size is greater than 1TB.
	//       value: machineInstallDiskSizeMatcherExamples[1]
	//     - name: Select a disk which size is less or equal than 2TB.
	//       value: machineInstallDiskSizeMatcherExamples[2]
	Size *InstallDiskSizeMatcher `yaml:"size,omitempty"`
	//   description: Disk name `/sys/block/<dev>/device/name`.
	Name string `yaml:"name,omitempty"`
	//   description: Disk model `/sys/block/<dev>/device/model`.
	Model string `yaml:"model,omitempty"`
	//   description: Disk serial number `/sys/block/<dev>/serial`.
	Serial string `yaml:"serial,omitempty"`
	//   description: Disk modalias `/sys/block/<dev>/device/modalias`.
	Modalias string `yaml:"modalias,omitempty"`
	//   description: Disk UUID `/sys/block/<dev>/uuid`.
	UUID string `yaml:"uuid,omitempty"`
	//   description: Disk WWID `/sys/block/<dev>/wwid`.
	WWID string `yaml:"wwid,omitempty"`
	//   description: Disk Type.
	//   values:
	//     - ssd
	//     - hdd
	//     - nvme
	//     - sd
	Type InstallDiskType `yaml:"type,omitempty"`
	//   description: Disk bus path.
	//   examples:
	//     - value: '"/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0"'
	//     - value: '"/pci0000:00/*"'
	BusPath string `yaml:"busPath,omitempty"`
}

InstallDiskSelector represents a disk query parameters for the install disk lookup.

func (*InstallDiskSelector) DeepCopy added in v0.12.0

func (in *InstallDiskSelector) DeepCopy() *InstallDiskSelector

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

func (*InstallDiskSelector) DeepCopyInto added in v0.12.0

func (in *InstallDiskSelector) DeepCopyInto(out *InstallDiskSelector)

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

func (InstallDiskSelector) Doc

func (_ InstallDiskSelector) Doc() *encoder.Doc

type InstallDiskSizeMatchData added in v1.2.0

type InstallDiskSizeMatchData struct {
	Op   string
	Size uint64
}

InstallDiskSizeMatchData contains data for comparison - Op and Size.

func (*InstallDiskSizeMatchData) Compare added in v1.2.0

func (in *InstallDiskSizeMatchData) Compare(d *disk.Disk) bool

Compare is the method to compare disk size.

func (*InstallDiskSizeMatchData) DeepCopy added in v1.2.0

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

func (*InstallDiskSizeMatchData) DeepCopyInto added in v1.2.0

func (in *InstallDiskSizeMatchData) DeepCopyInto(out *InstallDiskSizeMatchData)

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

type InstallDiskSizeMatcher

type InstallDiskSizeMatcher struct {
	MatchData InstallDiskSizeMatchData
	// contains filtered or unexported fields
}

InstallDiskSizeMatcher disk size condition parser. docgen:nodoc

func (*InstallDiskSizeMatcher) DeepCopy added in v0.12.0

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

func (*InstallDiskSizeMatcher) DeepCopyInto added in v0.12.0

func (in *InstallDiskSizeMatcher) DeepCopyInto(out *InstallDiskSizeMatcher)

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

func (*InstallDiskSizeMatcher) MarshalYAML

func (m *InstallDiskSizeMatcher) MarshalYAML() (interface{}, error)

MarshalYAML is a custom marshaller for `InstallDiskSizeMatcher`.

func (*InstallDiskSizeMatcher) Matcher

func (m *InstallDiskSizeMatcher) Matcher(d *disk.Disk) bool

Matcher is a method that can handle some custom disk matching logic.

func (*InstallDiskSizeMatcher) UnmarshalYAML

func (m *InstallDiskSizeMatcher) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaller for `InstallDiskSizeMatcher`.

type InstallDiskType

type InstallDiskType disk.Type

InstallDiskType custom type for disk type selector.

func (InstallDiskType) MarshalYAML

func (it InstallDiskType) MarshalYAML() (interface{}, error)

MarshalYAML is a custom marshaller for `InstallDiskSizeMatcher`.

func (*InstallDiskType) UnmarshalYAML

func (it *InstallDiskType) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaller for `Endpoint`.

type InstallExtensionConfig added in v1.0.0

type InstallExtensionConfig struct {
	//   description: System extension image.
	ExtensionImage string `yaml:"image"`
}

InstallExtensionConfig represents a configuration for a system extension.

func (*InstallExtensionConfig) DeepCopy added in v1.0.0

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

func (*InstallExtensionConfig) DeepCopyInto added in v1.0.0

func (in *InstallExtensionConfig) DeepCopyInto(out *InstallExtensionConfig)

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

func (InstallExtensionConfig) Doc added in v1.0.0

func (InstallExtensionConfig) Image added in v1.0.0

func (i InstallExtensionConfig) Image() string

Image implements the config.Provider interface.

type KernelConfig added in v1.0.0

type KernelConfig struct {
	// description: |
	//   Kernel modules to load.
	KernelModules []*KernelModuleConfig `yaml:"modules,omitempty"`
}

KernelConfig struct configures Talos Linux kernel.

func (*KernelConfig) DeepCopy added in v1.0.0

func (in *KernelConfig) DeepCopy() *KernelConfig

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

func (*KernelConfig) DeepCopyInto added in v1.0.0

func (in *KernelConfig) DeepCopyInto(out *KernelConfig)

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

func (KernelConfig) Doc added in v1.0.0

func (_ KernelConfig) Doc() *encoder.Doc

func (*KernelConfig) Modules added in v1.0.0

func (kc *KernelConfig) Modules() []config.KernelModule

Modules implements config.Kernel interface.

type KernelModuleConfig added in v1.0.0

type KernelModuleConfig struct {
	// description: |
	//   Module name.
	ModuleName string `yaml:"name"`
}

KernelModuleConfig struct configures Linux kernel modules to load.

func (*KernelModuleConfig) DeepCopy added in v1.0.0

func (in *KernelModuleConfig) DeepCopy() *KernelModuleConfig

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

func (*KernelModuleConfig) DeepCopyInto added in v1.0.0

func (in *KernelModuleConfig) DeepCopyInto(out *KernelModuleConfig)

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

func (KernelModuleConfig) Doc added in v1.0.0

func (_ KernelModuleConfig) Doc() *encoder.Doc

func (*KernelModuleConfig) Name added in v1.0.0

func (kmc *KernelModuleConfig) Name() string

Name implements config.KernelModule interface.

type KubeletConfig

type KubeletConfig struct {
	//   description: |
	//     The `image` field is an optional reference to an alternative kubelet image.
	//   examples:
	//     - value: kubeletImageExample
	KubeletImage string `yaml:"image,omitempty"`
	//   description: |
	//     The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list.
	//   examples:
	//     - value: '[]string{"10.96.0.10", "169.254.2.53"}'
	KubeletClusterDNS []string `yaml:"clusterDNS,omitempty"`
	//   description: |
	//     The `extraArgs` field is used to provide additional flags to the kubelet.
	//   examples:
	//     - value: >
	//         map[string]string{
	//           "key": "value",
	//         }
	KubeletExtraArgs map[string]string `yaml:"extraArgs,omitempty"`
	//   description: |
	//     The `extraMounts` field is used to add additional mounts to the kubelet container.
	//     Note that either `bind` or `rbind` are required in the `options`.
	//   examples:
	//     - value: kubeletExtraMountsExample
	KubeletExtraMounts []ExtraMount `yaml:"extraMounts,omitempty"`
	//   description: |
	//     The `extraConfig` field is used to provide kubelet configuration overrides.
	//
	//     Some fields are not allowed to be overridden: authentication and authorization, cgroups
	//     configuration, ports, etc.
	//   examples:
	//     - value: kubeletExtraConfigExample
	KubeletExtraConfig Unstructured `yaml:"extraConfig,omitempty"`
	//  description: |
	//    Enable container runtime default Seccomp profile.
	//  values:
	//    - true
	//    - yes
	//    - false
	//    - no
	KubeletDefaultRuntimeSeccompProfileEnabled *bool `yaml:"defaultRuntimeSeccompProfileEnabled,omitempty"`
	//   description: |
	//     The `registerWithFQDN` field is used to force kubelet to use the node FQDN for registration.
	//     This is required in clouds like AWS.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	KubeletRegisterWithFQDN *bool `yaml:"registerWithFQDN,omitempty"`
	//   description: |
	//     The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.
	//     This is used when a node has multiple addresses to choose from.
	//   examples:
	//     - value: kubeletNodeIPExample
	KubeletNodeIP *KubeletNodeIPConfig `yaml:"nodeIP,omitempty"`
	//   description: |
	//      The `skipNodeRegistration` is used to run the kubelet without registering with the apiserver.
	//      This runs kubelet as standalone and only runs static pods.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	KubeletSkipNodeRegistration *bool `yaml:"skipNodeRegistration,omitempty"`
}

KubeletConfig represents the kubelet config values.

func (*KubeletConfig) ClusterDNS added in v0.12.0

func (k *KubeletConfig) ClusterDNS() []string

ClusterDNS implements the config.Provider interface.

func (*KubeletConfig) DeepCopy added in v0.12.0

func (in *KubeletConfig) DeepCopy() *KubeletConfig

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

func (*KubeletConfig) DeepCopyInto added in v0.12.0

func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig)

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

func (*KubeletConfig) DefaultRuntimeSeccompProfileEnabled added in v1.2.0

func (k *KubeletConfig) DefaultRuntimeSeccompProfileEnabled() bool

DefaultRuntimeSeccompProfileEnabled implements the config.Provider interface.

func (KubeletConfig) Doc

func (_ KubeletConfig) Doc() *encoder.Doc

func (*KubeletConfig) ExtraArgs

func (k *KubeletConfig) ExtraArgs() map[string]string

ExtraArgs implements the config.Provider interface.

func (*KubeletConfig) ExtraConfig added in v1.0.0

func (k *KubeletConfig) ExtraConfig() map[string]interface{}

ExtraConfig implements the config.Provider interface.

func (*KubeletConfig) ExtraMounts

func (k *KubeletConfig) ExtraMounts() []specs.Mount

ExtraMounts implements the config.Provider interface.

func (*KubeletConfig) Image

func (k *KubeletConfig) Image() string

Image implements the config.Provider interface.

func (*KubeletConfig) NodeIP added in v0.13.0

func (k *KubeletConfig) NodeIP() config.KubeletNodeIP

NodeIP implements the config.Provider interface.

func (*KubeletConfig) RegisterWithFQDN

func (k *KubeletConfig) RegisterWithFQDN() bool

RegisterWithFQDN implements the config.Provider interface.

func (*KubeletConfig) SkipNodeRegistration added in v1.2.0

func (k *KubeletConfig) SkipNodeRegistration() bool

SkipNodeRegistration implements the config.Provider interface.

func (*KubeletConfig) Validate added in v0.13.0

func (k *KubeletConfig) Validate() ([]string, error)

Validate kubelet configuration.

type KubeletNodeIPConfig added in v0.13.0

type KubeletNodeIPConfig struct {
	//  description: |
	//    The `validSubnets` field configures the networks to pick kubelet node IP from.
	//    For dual stack configuration, there should be two subnets: one for IPv4, another for IPv6.
	//    IPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.
	//    Negative subnet matches should be specified last to filter out IPs picked by positive matches.
	//    If not specified, node IP is picked based on cluster podCIDRs: IPv4/IPv6 address or both.
	KubeletNodeIPValidSubnets []string `yaml:"validSubnets,omitempty"`
}

KubeletNodeIPConfig represents the kubelet node IP configuration.

func (*KubeletNodeIPConfig) DeepCopy added in v0.13.0

func (in *KubeletNodeIPConfig) DeepCopy() *KubeletNodeIPConfig

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

func (*KubeletNodeIPConfig) DeepCopyInto added in v0.13.0

func (in *KubeletNodeIPConfig) DeepCopyInto(out *KubeletNodeIPConfig)

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

func (KubeletNodeIPConfig) Doc added in v0.13.0

func (_ KubeletNodeIPConfig) Doc() *encoder.Doc

func (*KubeletNodeIPConfig) ValidSubnets added in v0.13.0

func (k *KubeletNodeIPConfig) ValidSubnets() []string

ValidSubnets implements the config.Provider interface.

type KubernetesTalosAPIAccessConfig added in v1.2.0

type KubernetesTalosAPIAccessConfig struct {
	//   description: |
	//     Enable Talos API access from Kubernetes pods.
	AccessEnabled *bool `yaml:"enabled,omitempty"`
	//   description: |
	//     The list of Talos API roles which can be granted for access from Kubernetes pods.
	//
	//     Empty list means that no roles can be granted, so access is blocked.
	AccessAllowedRoles []string `yaml:"allowedRoles,omitempty"`
	//   description: |
	//     The list of Kubernetes namespaces Talos API access is available from.
	AccessAllowedKubernetesNamespaces []string `yaml:"allowedKubernetesNamespaces,omitempty"`
}

KubernetesTalosAPIAccessConfig describes the configuration for the Talos API access from Kubernetes pods.

func (*KubernetesTalosAPIAccessConfig) AllowedKubernetesNamespaces added in v1.2.0

func (c *KubernetesTalosAPIAccessConfig) AllowedKubernetesNamespaces() []string

AllowedKubernetesNamespaces implements config.KubernetesTalosAPIAccess.

func (*KubernetesTalosAPIAccessConfig) AllowedRoles added in v1.2.0

func (c *KubernetesTalosAPIAccessConfig) AllowedRoles() []string

AllowedRoles implements config.KubernetesTalosAPIAccess.

func (*KubernetesTalosAPIAccessConfig) DeepCopy added in v1.2.0

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

func (*KubernetesTalosAPIAccessConfig) DeepCopyInto added in v1.2.0

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

func (KubernetesTalosAPIAccessConfig) Doc added in v1.2.0

func (*KubernetesTalosAPIAccessConfig) Enabled added in v1.2.0

func (c *KubernetesTalosAPIAccessConfig) Enabled() bool

Enabled implements config.KubernetesTalosAPIAccess.

type LoggingConfig added in v0.14.0

type LoggingConfig struct {
	// description: |
	//   Logging destination.
	LoggingDestinations []LoggingDestination `yaml:"destinations"`
}

LoggingConfig struct configures Talos logging.

func (*LoggingConfig) DeepCopy added in v0.14.0

func (in *LoggingConfig) DeepCopy() *LoggingConfig

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

func (*LoggingConfig) DeepCopyInto added in v0.14.0

func (in *LoggingConfig) DeepCopyInto(out *LoggingConfig)

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

func (*LoggingConfig) Destinations added in v0.14.0

func (lc *LoggingConfig) Destinations() []config.LoggingDestination

Destinations implements config.Logging interface.

func (LoggingConfig) Doc added in v0.14.0

func (_ LoggingConfig) Doc() *encoder.Doc

func (*LoggingConfig) Validate added in v0.14.0

func (lc *LoggingConfig) Validate() error

Validate checks logging configuration for errors.

type LoggingDestination added in v0.14.0

type LoggingDestination struct {
	// description: |
	//   Where to send logs. Supported protocols are "tcp" and "udp".
	// examples:
	//   - value: loggingEndpointExample1
	//   - value: loggingEndpointExample2
	LoggingEndpoint *Endpoint `yaml:"endpoint"`
	// description: |
	//   Logs format.
	// values:
	//   - json_lines
	LoggingFormat string `yaml:"format"`
}

LoggingDestination struct configures Talos logging destination.

func (*LoggingDestination) DeepCopy added in v0.14.0

func (in *LoggingDestination) DeepCopy() *LoggingDestination

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

func (*LoggingDestination) DeepCopyInto added in v0.14.0

func (in *LoggingDestination) DeepCopyInto(out *LoggingDestination)

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

func (LoggingDestination) Doc added in v0.14.0

func (_ LoggingDestination) Doc() *encoder.Doc

func (LoggingDestination) Endpoint added in v0.14.0

func (ld LoggingDestination) Endpoint() *url.URL

Endpoint implements config.LoggingDestination interface.

func (LoggingDestination) Format added in v0.14.0

func (ld LoggingDestination) Format() string

Format implements config.LoggingDestination interface.

type MachineConfig

type MachineConfig struct {
	//   description: |
	//     Defines the role of the machine within the cluster.
	//
	//     **Control Plane**
	//
	//     Control Plane node type designates the node as a control plane member.
	//     This means it will host etcd along with the Kubernetes controlplane components such as API Server, Controller Manager, Scheduler.
	//
	//     **Worker**
	//
	//     Worker node type designates the node as a worker node.
	//     This means it will be an available compute node for scheduling workloads.
	//
	//     This node type was previously known as "join"; that value is still supported but deprecated.
	//   values:
	//     - "controlplane"
	//     - "worker"
	MachineType string `yaml:"type"`
	//   description: |
	//     The `token` is used by a machine to join the PKI of the cluster.
	//     Using this token, a machine will create a certificate signing request (CSR), and request a certificate that will be used as its' identity.
	//   examples:
	//     - name: example token
	//       value: "\"328hom.uqjzh6jnn2eie9oi\""
	MachineToken string `yaml:"token"` // Warning: It is important to ensure that this token is correct since a machine's certificate has a short TTL by default.
	//   description: |
	//     The root certificate authority of the PKI.
	//     It is composed of a base64 encoded `crt` and `key`.
	//   examples:
	//     - value: pemEncodedCertificateExample
	//       name: machine CA example
	MachineCA *x509.PEMEncodedCertificateAndKey `yaml:"ca,omitempty"`
	//   description: |
	//     Extra certificate subject alternative names for the machine's certificate.
	//     By default, all non-loopback interface IPs are automatically added to the certificate's SANs.
	//   examples:
	//     - name: Uncomment this to enable SANs.
	//       value: '[]string{"10.0.0.10", "172.16.0.10", "192.168.0.10"}'
	MachineCertSANs []string `yaml:"certSANs"`
	//   description: |
	//     Provides machine specific control plane configuration options.
	//   examples:
	//     - name: ControlPlane definition example.
	//       value: machineControlplaneExample
	MachineControlPlane *MachineControlPlaneConfig `yaml:"controlPlane,omitempty"`
	//   description: |
	//     Used to provide additional options to the kubelet.
	//   examples:
	//     - name: Kubelet definition example.
	//       value: machineKubeletExample
	MachineKubelet *KubeletConfig `yaml:"kubelet,omitempty"`
	//   description: |
	//     Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.
	//
	//     Static pods can be used to run components which should be started before the Kubernetes control plane is up.
	//     Talos doesn't validate the pod definition.
	//     Updates to this field can be applied without a reboot.
	//
	//     See https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/.
	//   examples:
	//     - name: nginx static pod.
	//       value: machinePodsExample
	MachinePods []Unstructured `yaml:"pods,omitempty"`
	//   description: |
	//     Provides machine specific network configuration options.
	//   examples:
	//     - name: Network definition example.
	//       value: machineNetworkConfigExample
	MachineNetwork *NetworkConfig `yaml:"network,omitempty"`
	//   description: |
	//     Used to partition, format and mount additional disks.
	//     Since the rootfs is read only with the exception of `/var`, mounts are only valid if they are under `/var`.
	//     Note that the partitioning and formating is done only once, if and only if no existing partitions are found.
	//     If `size:` is omitted, the partition is sized to occupy the full disk.
	//   examples:
	//     - name: MachineDisks list example.
	//       value: machineDisksExample
	MachineDisks []*MachineDisk `yaml:"disks,omitempty"` // Note: `size` is in units of bytes.
	//   description: |
	//     Used to provide instructions for installations.
	//   examples:
	//     - name: MachineInstall config usage example.
	//       value: machineInstallExample
	MachineInstall *InstallConfig `yaml:"install,omitempty"`
	//   description: |
	//     Allows the addition of user specified files.
	//     The value of `op` can be `create`, `overwrite`, or `append`.
	//     In the case of `create`, `path` must not exist.
	//     In the case of `overwrite`, and `append`, `path` must be a valid file.
	//     If an `op` value of `append` is used, the existing file will be appended.
	//     Note that the file contents are not required to be base64 encoded.
	//   examples:
	//      - name: MachineFiles usage example.
	//        value: machineFilesExample
	MachineFiles []*MachineFile `yaml:"files,omitempty"` // Note: The specified `path` is relative to `/var`.
	//   description: |
	//     The `env` field allows for the addition of environment variables.
	//     All environment variables are set on PID 1 in addition to every service.
	//   values:
	//     - "`GRPC_GO_LOG_VERBOSITY_LEVEL`"
	//     - "`GRPC_GO_LOG_SEVERITY_LEVEL`"
	//     - "`http_proxy`"
	//     - "`https_proxy`"
	//     - "`no_proxy`"
	//   examples:
	//     - name: Environment variables definition examples.
	//       value: machineEnvExamples[0]
	//     - value: machineEnvExamples[1]
	//     - value: machineEnvExamples[2]
	MachineEnv Env `yaml:"env,omitempty"`
	//   description: |
	//     Used to configure the machine's time settings.
	//   examples:
	//     - name: Example configuration for cloudflare ntp server.
	//       value: machineTimeExample
	MachineTime *TimeConfig `yaml:"time,omitempty"`
	//   description: |
	//     Used to configure the machine's sysctls.
	//   examples:
	//     - name: MachineSysctls usage example.
	//       value: machineSysctlsExample
	MachineSysctls map[string]string `yaml:"sysctls,omitempty"`
	//   description: |
	//     Used to configure the machine's sysfs.
	//   examples:
	//     - name: MachineSysfs usage example.
	//       value: machineSysfsExample
	MachineSysfs map[string]string `yaml:"sysfs,omitempty"`
	//   description: |
	//     Used to configure the machine's container image registry mirrors.
	//
	//     Automatically generates matching CRI configuration for registry mirrors.
	//
	//     The `mirrors` section allows to redirect requests for images to non-default registry,
	//     which might be local registry or caching mirror.
	//
	//     The `config` section provides a way to authenticate to the registry with TLS client
	//     identity, provide registry CA, or authentication information.
	//     Authentication information has same meaning with the corresponding field in `.docker/config.json`.
	//
	//     See also matching configuration for [CRI containerd plugin](https://github.com/containerd/cri/blob/master/docs/registry.md).
	//   examples:
	//     - value: machineConfigRegistriesExample
	MachineRegistries RegistriesConfig `yaml:"registries,omitempty"`
	//   description: |
	//     Machine system disk encryption configuration.
	//     Defines each system partition encryption parameters.
	//   examples:
	//     - value: machineSystemDiskEncryptionExample
	MachineSystemDiskEncryption *SystemDiskEncryptionConfig `yaml:"systemDiskEncryption,omitempty"`
	//   description: |
	//     Features describe individual Talos features that can be switched on or off.
	//   examples:
	//     - value: machineFeaturesExample
	MachineFeatures *FeaturesConfig `yaml:"features,omitempty"`
	//   description: |
	//     Configures the udev system.
	//   examples:
	//     - value: machineUdevExample
	MachineUdev *UdevConfig `yaml:"udev,omitempty"`
	//   description: |
	//     Configures the logging system.
	//   examples:
	//     - value: machineLoggingExample
	MachineLogging *LoggingConfig `yaml:"logging,omitempty"`
	//   description: |
	//     Configures the kernel.
	//   examples:
	//     - value: machineKernelExample
	MachineKernel *KernelConfig `yaml:"kernel,omitempty"`
	//  description: |
	//    Configures the seccomp profiles for the machine.
	//  examples:
	//    - value: machineSeccompExample
	MachineSeccompProfiles []*MachineSeccompProfile `yaml:"seccompProfiles,omitempty" talos:"omitonlyifnil"`
}

MachineConfig represents the machine-specific config values.

examples:
   - value: machineConfigExample

func (*MachineConfig) CA

CA implements the config.Provider interface.

func (*MachineConfig) CertSANs

func (m *MachineConfig) CertSANs() []string

CertSANs implements the config.Provider interface.

func (*MachineConfig) Controlplane added in v0.14.0

func (m *MachineConfig) Controlplane() config.MachineControlPlane

Controlplane implements the config.Provider interface.

func (*MachineConfig) DeepCopy added in v0.12.0

func (in *MachineConfig) DeepCopy() *MachineConfig

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

func (*MachineConfig) DeepCopyInto added in v0.12.0

func (in *MachineConfig) DeepCopyInto(out *MachineConfig)

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

func (*MachineConfig) Disks

func (m *MachineConfig) Disks() []config.Disk

Disks implements the config.Provider interface.

func (MachineConfig) Doc

func (_ MachineConfig) Doc() *encoder.Doc

func (*MachineConfig) Env

func (m *MachineConfig) Env() config.Env

Env implements the config.Provider interface.

func (*MachineConfig) Features

func (m *MachineConfig) Features() config.Features

Features implements the config.MachineConfig interface.

func (*MachineConfig) Files

func (m *MachineConfig) Files() ([]config.File, error)

Files implements the config.Provider interface.

func (*MachineConfig) Install

func (m *MachineConfig) Install() config.Install

Install implements the config.Provider interface.

func (*MachineConfig) Kernel added in v1.0.0

func (m *MachineConfig) Kernel() config.Kernel

Kernel implements the config.MachineConfig interface.

func (*MachineConfig) Kubelet

func (m *MachineConfig) Kubelet() config.Kubelet

Kubelet implements the config.Provider interface.

func (*MachineConfig) Logging added in v0.14.0

func (m *MachineConfig) Logging() config.Logging

Logging implements the config.MachineConfig interface.

func (*MachineConfig) Network

func (m *MachineConfig) Network() config.MachineNetwork

Network implements the config.Provider interface.

func (*MachineConfig) Pods added in v1.0.0

func (m *MachineConfig) Pods() []map[string]interface{}

Pods implements the config.Provider interface.

func (*MachineConfig) Registries

func (m *MachineConfig) Registries() config.Registries

Registries implements the config.Provider interface.

func (*MachineConfig) SeccompProfiles added in v1.2.0

func (m *MachineConfig) SeccompProfiles() []config.SeccompProfile

SeccompProfiles implements the config.Provider interface.

func (*MachineConfig) Security

func (m *MachineConfig) Security() config.Security

Security implements the config.Provider interface.

func (*MachineConfig) Server

func (m *MachineConfig) Server() string

Server implements the config.Provider interface.

func (*MachineConfig) Sysctls

func (m *MachineConfig) Sysctls() map[string]string

Sysctls implements the config.Provider interface.

func (*MachineConfig) Sysfs added in v1.0.0

func (m *MachineConfig) Sysfs() map[string]string

Sysfs implements the config.Provider interface.

func (*MachineConfig) SystemDiskEncryption

func (m *MachineConfig) SystemDiskEncryption() config.SystemDiskEncryption

SystemDiskEncryption implements the config.Provider interface.

func (*MachineConfig) Time

func (m *MachineConfig) Time() config.Time

Time implements the config.Provider interface.

func (*MachineConfig) Token

func (m *MachineConfig) Token() string

Token implements the config.Provider interface.

func (*MachineConfig) Type

func (m *MachineConfig) Type() machine.Type

Type implements the config.Provider interface.

func (*MachineConfig) Udev added in v0.14.0

func (m *MachineConfig) Udev() config.UdevConfig

Udev implements the config.MachineConfig interface.

type MachineControlPlaneConfig added in v0.14.0

type MachineControlPlaneConfig struct {
	//   description: |
	//     Controller manager machine specific configuration options.
	MachineControllerManager *MachineControllerManagerConfig `yaml:"controllerManager,omitempty"`
	//   description: |
	//     Scheduler machine specific configuration options.
	MachineScheduler *MachineSchedulerConfig `yaml:"scheduler,omitempty"`
}

MachineControlPlaneConfig machine specific configuration options.

func (*MachineControlPlaneConfig) ControllerManager added in v0.14.0

ControllerManager implements the config.Provider interface.

func (*MachineControlPlaneConfig) DeepCopy added in v0.14.0

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

func (*MachineControlPlaneConfig) DeepCopyInto added in v0.14.0

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

func (MachineControlPlaneConfig) Doc added in v0.14.0

func (*MachineControlPlaneConfig) Scheduler added in v0.14.0

Scheduler implements the config.Provider interface.

type MachineControllerManagerConfig added in v0.14.0

type MachineControllerManagerConfig struct {
	//   description: |
	//     Disable kube-controller-manager on the node.
	MachineControllerManagerDisabled *bool `yaml:"disabled,omitempty"`
}

MachineControllerManagerConfig represents the machine specific ControllerManager config values.

func (*MachineControllerManagerConfig) DeepCopy added in v0.14.0

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

func (*MachineControllerManagerConfig) DeepCopyInto added in v0.14.0

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

func (*MachineControllerManagerConfig) Disabled added in v0.14.0

func (m *MachineControllerManagerConfig) Disabled() bool

Disabled implements the config.Provider interface.

func (MachineControllerManagerConfig) Doc added in v0.14.0

type MachineDisk

type MachineDisk struct {
	//   description: The name of the disk to use.
	DeviceName string `yaml:"device,omitempty"`
	//   description: A list of partitions to create on the disk.
	DiskPartitions []*DiskPartition `yaml:"partitions,omitempty"`
}

MachineDisk represents the options available for partitioning, formatting, and mounting extra disks.

func (*MachineDisk) DeepCopy added in v0.12.0

func (in *MachineDisk) DeepCopy() *MachineDisk

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

func (*MachineDisk) DeepCopyInto added in v0.12.0

func (in *MachineDisk) DeepCopyInto(out *MachineDisk)

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

func (*MachineDisk) Device

func (d *MachineDisk) Device() string

Device implements the config.Provider interface.

func (MachineDisk) Doc

func (_ MachineDisk) Doc() *encoder.Doc

func (*MachineDisk) Partitions

func (d *MachineDisk) Partitions() []config.Partition

Partitions implements the config.Provider interface.

type MachineFile

type MachineFile struct {
	//   description: The contents of the file.
	FileContent string `yaml:"content"`
	//   description: The file's permissions in octal.
	FilePermissions FileMode `yaml:"permissions"`
	//   description: The path of the file.
	FilePath string `yaml:"path"`
	//   description: The operation to use
	//   values:
	//     - create
	//     - append
	//     - overwrite
	FileOp string `yaml:"op"`
}

MachineFile represents a file to write to disk.

func (*MachineFile) Content

func (f *MachineFile) Content() string

Content implements the config.Provider interface.

func (*MachineFile) DeepCopy added in v0.12.0

func (in *MachineFile) DeepCopy() *MachineFile

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

func (*MachineFile) DeepCopyInto added in v0.12.0

func (in *MachineFile) DeepCopyInto(out *MachineFile)

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

func (MachineFile) Doc

func (_ MachineFile) Doc() *encoder.Doc

func (*MachineFile) Op

func (f *MachineFile) Op() string

Op implements the config.Provider interface.

func (*MachineFile) Path

func (f *MachineFile) Path() string

Path implements the config.Provider interface.

func (*MachineFile) Permissions

func (f *MachineFile) Permissions() os.FileMode

Permissions implements the config.Provider interface.

type MachineSchedulerConfig added in v0.14.0

type MachineSchedulerConfig struct {
	//   description: |
	//     Disable kube-scheduler on the node.
	MachineSchedulerDisabled *bool `yaml:"disabled,omitempty"`
}

MachineSchedulerConfig represents the machine specific Scheduler config values.

func (*MachineSchedulerConfig) DeepCopy added in v0.14.0

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

func (*MachineSchedulerConfig) DeepCopyInto added in v0.14.0

func (in *MachineSchedulerConfig) DeepCopyInto(out *MachineSchedulerConfig)

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

func (*MachineSchedulerConfig) Disabled added in v0.14.0

func (m *MachineSchedulerConfig) Disabled() bool

Disabled implements the config.Provider interface.

func (MachineSchedulerConfig) Doc added in v0.14.0

type MachineSeccompProfile added in v1.2.0

type MachineSeccompProfile struct {
	//  description: |
	//    The `name` field is used to provide the file name of the seccomp profile.
	MachineSeccompProfileName string `yaml:"name"`
	// description: |
	//   The `value` field is used to provide the seccomp profile.
	MachineSeccompProfileValue Unstructured `yaml:"value"`
}

MachineSeccompProfile defines seccomp profiles for the machine.

func (*MachineSeccompProfile) DeepCopy added in v1.2.0

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

func (*MachineSeccompProfile) DeepCopyInto added in v1.2.0

func (in *MachineSeccompProfile) DeepCopyInto(out *MachineSeccompProfile)

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

func (MachineSeccompProfile) Doc added in v1.2.0

func (*MachineSeccompProfile) Name added in v1.2.0

func (m *MachineSeccompProfile) Name() string

Name implements the config.Provider interface.

func (*MachineSeccompProfile) Value added in v1.2.0

func (m *MachineSeccompProfile) Value() map[string]interface{}

Value implements the config.Provider interface.

type NetworkConfig

type NetworkConfig struct {
	//   description: |
	//     Used to statically set the hostname for the machine.
	NetworkHostname string `yaml:"hostname,omitempty"`
	//   description: |
	//     `interfaces` is used to define the network interface configuration.
	//     By default all network interfaces will attempt a DHCP discovery.
	//     This can be further tuned through this configuration parameter.
	//   examples:
	//     - value: machineNetworkConfigExample.NetworkInterfaces
	NetworkInterfaces NetworkDeviceList `yaml:"interfaces,omitempty"`
	//   description: |
	//     Used to statically set the nameservers for the machine.
	//     Defaults to `1.1.1.1` and `8.8.8.8`
	//   examples:
	//     - value: '[]string{"8.8.8.8", "1.1.1.1"}'
	NameServers []string `yaml:"nameservers,omitempty"`
	//   description: |
	//     Allows for extra entries to be added to the `/etc/hosts` file
	//   examples:
	//     - value: networkConfigExtraHostsExample
	ExtraHostEntries []*ExtraHost `yaml:"extraHostEntries,omitempty"`
	//   description: |
	//     Configures KubeSpan feature.
	//   examples:
	//     - value: networkKubeSpanExample
	NetworkKubeSpan *NetworkKubeSpan `yaml:"kubespan,omitempty"`
	//   description: |
	//     Disable generating a default search domain in /etc/resolv.conf
	//     based on the machine hostname.
	//     Defaults to `false`.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	NetworkDisableSearchDomain *bool `yaml:"disableSearchDomain,omitempty"`
}

NetworkConfig represents the machine's networking config values.

func (*NetworkConfig) DeepCopy added in v0.12.0

func (in *NetworkConfig) DeepCopy() *NetworkConfig

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

func (*NetworkConfig) DeepCopyInto added in v0.12.0

func (in *NetworkConfig) DeepCopyInto(out *NetworkConfig)

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

func (*NetworkConfig) Devices

func (n *NetworkConfig) Devices() []config.Device

Devices implements the config.Provider interface.

func (*NetworkConfig) DisableSearchDomain added in v1.1.0

func (n *NetworkConfig) DisableSearchDomain() bool

DisableSearchDomain implements the config.Provider interface.

func (NetworkConfig) Doc

func (_ NetworkConfig) Doc() *encoder.Doc

func (*NetworkConfig) ExtraHosts

func (n *NetworkConfig) ExtraHosts() []config.ExtraHost

ExtraHosts implements the config.Provider interface.

func (*NetworkConfig) Hostname

func (n *NetworkConfig) Hostname() string

Hostname implements the config.Provider interface.

func (*NetworkConfig) KubeSpan added in v0.13.0

func (n *NetworkConfig) KubeSpan() config.KubeSpan

KubeSpan implements the config.Provider interface.

func (*NetworkConfig) Resolvers

func (n *NetworkConfig) Resolvers() []string

Resolvers implements the config.Provider interface.

type NetworkConfigOption

type NetworkConfigOption func(machine.Type, *NetworkConfig) error

NetworkConfigOption generates NetworkConfig.

func WithKubeSpan added in v0.13.0

func WithKubeSpan() NetworkConfigOption

WithKubeSpan configures a KubeSpan interface.

func WithNetworkConfig

func WithNetworkConfig(c *NetworkConfig) NetworkConfigOption

WithNetworkConfig sets whole network config structure, overwrites any previous options.

func WithNetworkInterfaceCIDR

func WithNetworkInterfaceCIDR(iface, cidr string) NetworkConfigOption

WithNetworkInterfaceCIDR configures interface for static addressing.

func WithNetworkInterfaceDHCP

func WithNetworkInterfaceDHCP(iface string, enable bool) NetworkConfigOption

WithNetworkInterfaceDHCP enables DHCP for the interface.

func WithNetworkInterfaceDHCPv4

func WithNetworkInterfaceDHCPv4(iface string, enable bool) NetworkConfigOption

WithNetworkInterfaceDHCPv4 enables DHCPv4 for the interface.

func WithNetworkInterfaceDHCPv6

func WithNetworkInterfaceDHCPv6(iface string, enable bool) NetworkConfigOption

WithNetworkInterfaceDHCPv6 enables DHCPv6 for the interface.

func WithNetworkInterfaceIgnore

func WithNetworkInterfaceIgnore(iface string) NetworkConfigOption

WithNetworkInterfaceIgnore marks interface as ignored.

func WithNetworkInterfaceMTU

func WithNetworkInterfaceMTU(iface string, mtu int) NetworkConfigOption

WithNetworkInterfaceMTU configures interface MTU.

func WithNetworkInterfaceVirtualIP

func WithNetworkInterfaceVirtualIP(iface, cidr string) NetworkConfigOption

WithNetworkInterfaceVirtualIP configures interface for Virtual IP.

func WithNetworkInterfaceWireguard

func WithNetworkInterfaceWireguard(iface string, wireguardConfig *DeviceWireguardConfig) NetworkConfigOption

WithNetworkInterfaceWireguard configures interface for Wireguard.

func WithNetworkNameservers

func WithNetworkNameservers(nameservers ...string) NetworkConfigOption

WithNetworkNameservers sets global nameservers list.

type NetworkDeviceCheck

type NetworkDeviceCheck func(*Device, map[string]string) ([]string, error)

NetworkDeviceCheck defines the function type for checks.

type NetworkDeviceList added in v1.2.0

type NetworkDeviceList []*Device

NetworkDeviceList is a list of *Device structures with overridden merge process.

func (NetworkDeviceList) DeepCopy added in v1.2.0

func (in NetworkDeviceList) DeepCopy() NetworkDeviceList

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

func (NetworkDeviceList) DeepCopyInto added in v1.2.0

func (in NetworkDeviceList) DeepCopyInto(out *NetworkDeviceList)

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

func (*NetworkDeviceList) Merge added in v1.2.0

func (devices *NetworkDeviceList) Merge(other interface{}) error

Merge the network interface configuration intelligently.

type NetworkDeviceSelector added in v1.1.0

type NetworkDeviceSelector struct {
	// description: PCI, USB bus prefix, supports matching by wildcard.
	NetworkDeviceBus string `yaml:"busPath,omitempty"`
	// description: Device hardware address, supports matching by wildcard.
	NetworkDeviceHardwareAddress string `yaml:"hardwareAddr,omitempty"`
	// description: PCI ID (vendor ID, product ID), supports matching by wildcard.
	NetworkDevicePCIID string `yaml:"pciID,omitempty"`
	// description: Kernel driver, supports matching by wildcard.
	NetworkDeviceKernelDriver string `yaml:"driver,omitempty"`
}

NetworkDeviceSelector struct describes network device selector.

func (*NetworkDeviceSelector) Bus added in v1.1.0

func (s *NetworkDeviceSelector) Bus() string

Bus implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) DeepCopy added in v1.1.0

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

func (*NetworkDeviceSelector) DeepCopyInto added in v1.1.0

func (in *NetworkDeviceSelector) DeepCopyInto(out *NetworkDeviceSelector)

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

func (NetworkDeviceSelector) Doc added in v1.1.0

func (*NetworkDeviceSelector) HardwareAddress added in v1.1.0

func (s *NetworkDeviceSelector) HardwareAddress() string

HardwareAddress implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) KernelDriver added in v1.1.0

func (s *NetworkDeviceSelector) KernelDriver() string

KernelDriver implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) PCIID added in v1.1.0

func (s *NetworkDeviceSelector) PCIID() string

PCIID implements config.NetworkDeviceSelector interface.

type NetworkKubeSpan added in v0.13.0

type NetworkKubeSpan struct {
	// description: |
	//   Enable the KubeSpan feature.
	//   Cluster discovery should be enabled with .cluster.discovery.enabled for KubeSpan to be enabled.
	KubeSpanEnabled *bool `yaml:"enabled,omitempty"`
	// description: |
	//   Control whether Kubernetes pod CIDRs are announced over KubeSpan from the node.
	//   If disabled, CNI handles encapsulating pod-to-pod traffic into some node-to-node tunnel,
	//   and KubeSpan handles the node-to-node traffic.
	//   If enabled, KubeSpan will take over pod-to-pod traffic and send it over KubeSpan directly.
	//   When enabled, KubeSpan should have a way to detect complete pod CIDRs of the node which
	//   is not always the case with CNIs not relying on Kubernetes for IPAM.
	KubeSpanAdvertiseKubernetesNetworks *bool `yaml:"advertiseKubernetesNetworks,omitempty"`
	// description: |
	//   Skip sending traffic via KubeSpan if the peer connection state is not up.
	//   This provides configurable choice between connectivity and security: either traffic is always
	//   forced to go via KubeSpan (even if Wireguard peer connection is not up), or traffic can go directly
	//   to the peer if Wireguard connection can't be established.
	KubeSpanAllowDownPeerBypass *bool `yaml:"allowDownPeerBypass,omitempty"`
}

NetworkKubeSpan struct describes KubeSpan configuration.

func (*NetworkKubeSpan) AdvertiseKubernetesNetworks added in v1.2.0

func (k *NetworkKubeSpan) AdvertiseKubernetesNetworks() bool

AdvertiseKubernetesNetworks implements KubeSpan interface.

func (*NetworkKubeSpan) DeepCopy added in v0.13.0

func (in *NetworkKubeSpan) DeepCopy() *NetworkKubeSpan

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

func (*NetworkKubeSpan) DeepCopyInto added in v0.13.0

func (in *NetworkKubeSpan) DeepCopyInto(out *NetworkKubeSpan)

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

func (NetworkKubeSpan) Doc added in v0.13.0

func (_ NetworkKubeSpan) Doc() *encoder.Doc

func (*NetworkKubeSpan) Enabled added in v0.13.0

func (k *NetworkKubeSpan) Enabled() bool

Enabled implements KubeSpan interface.

func (*NetworkKubeSpan) ForceRouting added in v0.13.0

func (k *NetworkKubeSpan) ForceRouting() bool

ForceRouting implements KubeSpan interface.

type PodCheckpointer

type PodCheckpointer struct {
	//   description: |
	//     The `image` field is an override to the default pod-checkpointer image.
	PodCheckpointerImage string `yaml:"image,omitempty"`
}

PodCheckpointer represents the pod-checkpointer config values.

func (*PodCheckpointer) DeepCopy added in v0.12.0

func (in *PodCheckpointer) DeepCopy() *PodCheckpointer

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

func (*PodCheckpointer) DeepCopyInto added in v0.12.0

func (in *PodCheckpointer) DeepCopyInto(out *PodCheckpointer)

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

func (PodCheckpointer) Doc

func (_ PodCheckpointer) Doc() *encoder.Doc

type ProxyConfig

type ProxyConfig struct {
	//   description: |
	//     Disable kube-proxy deployment on cluster bootstrap.
	//   examples:
	//     - value: pointer.To(false)
	Disabled *bool `yaml:"disabled,omitempty"`
	//   description: |
	//     The container image used in the kube-proxy manifest.
	//   examples:
	//     - value: clusterProxyImageExample
	ContainerImage string `yaml:"image,omitempty"`
	//   description: |
	//     proxy mode of kube-proxy.
	//     The default is 'iptables'.
	ModeConfig string `yaml:"mode,omitempty"`
	//   description: |
	//     Extra arguments to supply to kube-proxy.
	ExtraArgsConfig map[string]string `yaml:"extraArgs,omitempty"`
}

ProxyConfig represents the kube proxy configuration options.

func (*ProxyConfig) DeepCopy added in v0.12.0

func (in *ProxyConfig) DeepCopy() *ProxyConfig

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

func (*ProxyConfig) DeepCopyInto added in v0.12.0

func (in *ProxyConfig) DeepCopyInto(out *ProxyConfig)

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

func (ProxyConfig) Doc

func (_ ProxyConfig) Doc() *encoder.Doc

func (*ProxyConfig) Enabled

func (p *ProxyConfig) Enabled() bool

Enabled implements the config.Proxy interface.

func (*ProxyConfig) ExtraArgs

func (p *ProxyConfig) ExtraArgs() map[string]string

ExtraArgs implements the config.Proxy interface.

func (*ProxyConfig) Image

func (p *ProxyConfig) Image() string

Image implements the config.Proxy interface.

func (*ProxyConfig) Mode

func (p *ProxyConfig) Mode() string

Mode implements the config.Proxy interface.

type ReadonlyProvider added in v1.0.0

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

ReadonlyProvider wraps the *v1alpha1.Config to make config read-only.

+k8s:deepcopy-gen=false

func WrapReadonly added in v1.0.0

func WrapReadonly(cfg *Config, bytes []byte) *ReadonlyProvider

WrapReadonly the v1alpha.Config providing read-only interface to it.

func (*ReadonlyProvider) Bytes added in v1.0.0

func (r *ReadonlyProvider) Bytes() ([]byte, error)

Bytes returns source YAML representation (if available) or does default encoding.

func (*ReadonlyProvider) Cluster added in v1.0.0

func (r *ReadonlyProvider) Cluster() config.ClusterConfig

Cluster implements the config.Provider interface.

func (*ReadonlyProvider) Debug added in v1.0.0

func (r *ReadonlyProvider) Debug() bool

Debug implements the config.Provider interface.

func (*ReadonlyProvider) EncodeBytes added in v1.0.0

func (r *ReadonlyProvider) EncodeBytes(encoderOptions ...encoder.Option) ([]byte, error)

EncodeBytes implements the config.Provider interface.

func (*ReadonlyProvider) EncodeString added in v1.0.0

func (r *ReadonlyProvider) EncodeString(encoderOptions ...encoder.Option) (string, error)

EncodeString implements the config.Provider interface.

func (*ReadonlyProvider) Machine added in v1.0.0

func (r *ReadonlyProvider) Machine() config.MachineConfig

Machine implements the config.Provider interface.

func (*ReadonlyProvider) Persist added in v1.0.0

func (r *ReadonlyProvider) Persist() bool

Persist implements the config.Provider interface.

func (*ReadonlyProvider) Raw added in v1.0.0

func (r *ReadonlyProvider) Raw() interface{}

Raw implements the config.Provider interface.

func (*ReadonlyProvider) Validate added in v1.0.0

func (r *ReadonlyProvider) Validate(mode config.RuntimeMode, opts ...config.ValidationOption) ([]string, error)

Validate checks configuration and returns warnings and fatal errors (as multierror).

func (*ReadonlyProvider) Version added in v1.0.0

func (r *ReadonlyProvider) Version() string

Version implements the config.Provider interface.

type RegistriesConfig

type RegistriesConfig struct {
	//   description: |
	//     Specifies mirror configuration for each registry.
	//     This setting allows to use local pull-through caching registires,
	//     air-gapped installations, etc.
	//
	//     Registry name is the first segment of image identifier, with 'docker.io'
	//     being default one.
	//   examples:
	//     - value: machineConfigRegistryMirrorsExample
	RegistryMirrors map[string]*RegistryMirrorConfig `yaml:"mirrors,omitempty"`
	//   description: |
	//     Specifies TLS & auth configuration for HTTPS image registries.
	//     Mutual TLS can be enabled with 'clientIdentity' option.
	//
	//     TLS configuration can be skipped if registry has trusted
	//     server certificate.
	//   examples:
	//     - value: machineConfigRegistryConfigExample
	RegistryConfig map[string]*RegistryConfig `yaml:"config,omitempty"`
}

RegistriesConfig represents the image pull options.

func (*RegistriesConfig) Config

func (r *RegistriesConfig) Config() map[string]config.RegistryConfig

Config implements the Registries interface.

func (*RegistriesConfig) DeepCopy added in v0.12.0

func (in *RegistriesConfig) DeepCopy() *RegistriesConfig

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

func (*RegistriesConfig) DeepCopyInto added in v0.12.0

func (in *RegistriesConfig) DeepCopyInto(out *RegistriesConfig)

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

func (RegistriesConfig) Doc

func (_ RegistriesConfig) Doc() *encoder.Doc

func (*RegistriesConfig) Mirrors

Mirrors implements the Registries interface.

type RegistryAuthConfig

type RegistryAuthConfig struct {
	//   description: |
	//     Optional registry authentication.
	//     The meaning of each field is the same with the corresponding field in .docker/config.json.
	RegistryUsername string `yaml:"username,omitempty"`
	//   description: |
	//     Optional registry authentication.
	//     The meaning of each field is the same with the corresponding field in .docker/config.json.
	RegistryPassword string `yaml:"password,omitempty"`
	//   description: |
	//     Optional registry authentication.
	//     The meaning of each field is the same with the corresponding field in .docker/config.json.
	RegistryAuth string `yaml:"auth,omitempty"`
	//   description: |
	//     Optional registry authentication.
	//     The meaning of each field is the same with the corresponding field in .docker/config.json.
	RegistryIdentityToken string `yaml:"identityToken,omitempty"`
}

RegistryAuthConfig specifies authentication configuration for a registry.

func (*RegistryAuthConfig) Auth

func (r *RegistryAuthConfig) Auth() string

Auth implements the Registries interface.

func (*RegistryAuthConfig) DeepCopy added in v0.12.0

func (in *RegistryAuthConfig) DeepCopy() *RegistryAuthConfig

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

func (*RegistryAuthConfig) DeepCopyInto added in v0.12.0

func (in *RegistryAuthConfig) DeepCopyInto(out *RegistryAuthConfig)

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

func (RegistryAuthConfig) Doc

func (_ RegistryAuthConfig) Doc() *encoder.Doc

func (*RegistryAuthConfig) IdentityToken

func (r *RegistryAuthConfig) IdentityToken() string

IdentityToken implements the Registries interface.

func (*RegistryAuthConfig) Password

func (r *RegistryAuthConfig) Password() string

Password implements the Registries interface.

func (*RegistryAuthConfig) Username

func (r *RegistryAuthConfig) Username() string

Username implements the Registries interface.

type RegistryConfig

type RegistryConfig struct {
	//   description: |
	//     The TLS configuration for the registry.
	//   examples:
	//     - value: machineConfigRegistryTLSConfigExample1
	//     - value: machineConfigRegistryTLSConfigExample2
	RegistryTLS *RegistryTLSConfig `yaml:"tls,omitempty"`
	//   description: |
	//     The auth configuration for this registry.
	//     Note: changes to the registry auth will not be picked up by the CRI containerd plugin without a reboot.
	//   examples:
	//     - value: machineConfigRegistryAuthConfigExample
	RegistryAuth *RegistryAuthConfig `yaml:"auth,omitempty"`
}

RegistryConfig specifies auth & TLS config per registry.

func (*RegistryConfig) Auth

Auth implements the Registries interface.

func (*RegistryConfig) DeepCopy added in v0.12.0

func (in *RegistryConfig) DeepCopy() *RegistryConfig

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

func (*RegistryConfig) DeepCopyInto added in v0.12.0

func (in *RegistryConfig) DeepCopyInto(out *RegistryConfig)

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

func (RegistryConfig) Doc

func (_ RegistryConfig) Doc() *encoder.Doc

func (*RegistryConfig) TLS

TLS implements the Registries interface.

type RegistryKubernetesConfig added in v0.13.0

type RegistryKubernetesConfig struct {
	// description: |
	//   Disable Kubernetes discovery registry.
	RegistryDisabled *bool `yaml:"disabled,omitempty"`
}

RegistryKubernetesConfig struct configures Kubernetes discovery registry.

func (*RegistryKubernetesConfig) DeepCopy added in v0.13.0

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

func (*RegistryKubernetesConfig) DeepCopyInto added in v0.13.0

func (in *RegistryKubernetesConfig) DeepCopyInto(out *RegistryKubernetesConfig)

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

func (RegistryKubernetesConfig) Doc added in v0.13.0

func (RegistryKubernetesConfig) Enabled added in v0.13.0

func (c RegistryKubernetesConfig) Enabled() bool

Enabled implements the config.KubernetesRegistry interface.

type RegistryMirrorConfig

type RegistryMirrorConfig struct {
	//   description: |
	//     List of endpoints (URLs) for registry mirrors to use.
	//     Endpoint configures HTTP/HTTPS access mode, host name,
	//     port and path (if path is not set, it defaults to `/v2`).
	MirrorEndpoints []string `yaml:"endpoints"`
}

RegistryMirrorConfig represents mirror configuration for a registry.

func (*RegistryMirrorConfig) DeepCopy added in v0.12.0

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

func (*RegistryMirrorConfig) DeepCopyInto added in v0.12.0

func (in *RegistryMirrorConfig) DeepCopyInto(out *RegistryMirrorConfig)

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

func (RegistryMirrorConfig) Doc

func (_ RegistryMirrorConfig) Doc() *encoder.Doc

func (*RegistryMirrorConfig) Endpoints

func (r *RegistryMirrorConfig) Endpoints() []string

Endpoints implements the config.Provider interface.

type RegistryServiceConfig added in v0.13.0

type RegistryServiceConfig struct {
	// description: |
	//   Disable external service discovery registry.
	RegistryDisabled *bool `yaml:"disabled,omitempty"`
	// description: |
	//   External service endpoint.
	// examples:
	//   - value: constants.DefaultDiscoveryServiceEndpoint
	RegistryEndpoint string `yaml:"endpoint,omitempty"`
}

RegistryServiceConfig struct configures Kubernetes discovery registry.

func (*RegistryServiceConfig) DeepCopy added in v0.13.0

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

func (*RegistryServiceConfig) DeepCopyInto added in v0.13.0

func (in *RegistryServiceConfig) DeepCopyInto(out *RegistryServiceConfig)

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

func (RegistryServiceConfig) Doc added in v0.13.0

func (RegistryServiceConfig) Enabled added in v0.13.0

func (c RegistryServiceConfig) Enabled() bool

Enabled implements the config.ServiceRegistry interface.

func (RegistryServiceConfig) Endpoint added in v0.13.0

func (c RegistryServiceConfig) Endpoint() string

Endpoint implements the config.ServiceRegistry interface.

type RegistryTLSConfig

type RegistryTLSConfig struct {
	//   description: |
	//     Enable mutual TLS authentication with the registry.
	//     Client certificate and key should be base64-encoded.
	//   examples:
	//     - value: pemEncodedCertificateExample
	TLSClientIdentity *x509.PEMEncodedCertificateAndKey `yaml:"clientIdentity,omitempty"`
	//   description: |
	//     CA registry certificate to add the list of trusted certificates.
	//     Certificate should be base64-encoded.
	TLSCA Base64Bytes `yaml:"ca,omitempty"`
	//   description: |
	//     Skip TLS server certificate verification (not recommended).
	TLSInsecureSkipVerify *bool `yaml:"insecureSkipVerify,omitempty"`
}

RegistryTLSConfig specifies TLS config for HTTPS registries.

func (*RegistryTLSConfig) CA

func (r *RegistryTLSConfig) CA() []byte

CA implements the Registries interface.

func (*RegistryTLSConfig) ClientIdentity

func (r *RegistryTLSConfig) ClientIdentity() *x509.PEMEncodedCertificateAndKey

ClientIdentity implements the Registries interface.

func (*RegistryTLSConfig) DeepCopy added in v0.12.0

func (in *RegistryTLSConfig) DeepCopy() *RegistryTLSConfig

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

func (*RegistryTLSConfig) DeepCopyInto added in v0.12.0

func (in *RegistryTLSConfig) DeepCopyInto(out *RegistryTLSConfig)

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

func (RegistryTLSConfig) Doc

func (_ RegistryTLSConfig) Doc() *encoder.Doc

func (*RegistryTLSConfig) GetTLSConfig

func (r *RegistryTLSConfig) GetTLSConfig() (*tls.Config, error)

GetTLSConfig prepares TLS configuration for connection.

func (*RegistryTLSConfig) InsecureSkipVerify

func (r *RegistryTLSConfig) InsecureSkipVerify() bool

InsecureSkipVerify implements the Registries interface.

type Route

type Route struct {
	//   description: The route's network (destination).
	RouteNetwork string `yaml:"network"`
	//   description: The route's gateway (if empty, creates link scope route).
	RouteGateway string `yaml:"gateway"`
	//   description: The route's source address (optional).
	RouteSource string `yaml:"source,omitempty"`
	//   description: The optional metric for the route.
	RouteMetric uint32 `yaml:"metric,omitempty"`
}

Route represents a network route.

func (*Route) DeepCopy added in v0.12.0

func (in *Route) DeepCopy() *Route

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

func (*Route) DeepCopyInto added in v0.12.0

func (in *Route) DeepCopyInto(out *Route)

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

func (Route) Doc

func (_ Route) Doc() *encoder.Doc

func (*Route) Gateway

func (r *Route) Gateway() string

Gateway implements the MachineNetwork interface.

func (*Route) Metric

func (r *Route) Metric() uint32

Metric implements the MachineNetwork interface.

func (*Route) Network

func (r *Route) Network() string

Network implements the MachineNetwork interface.

func (*Route) Source added in v0.12.0

func (r *Route) Source() string

Source implements the MachineNetwork interface.

type STP added in v1.2.0

type STP struct {
	//   description: Whether Spanning Tree Protocol (STP) is enabled.
	STPEnabled *bool `yaml:"enabled,omitempty"`
}

STP contains the various options for configuring the STP properties of a bridge interface.

func (*STP) DeepCopy added in v1.2.0

func (in *STP) DeepCopy() *STP

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

func (*STP) DeepCopyInto added in v1.2.0

func (in *STP) DeepCopyInto(out *STP)

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

func (STP) Doc added in v1.2.0

func (_ STP) Doc() *encoder.Doc

func (*STP) Enabled added in v1.2.0

func (s *STP) Enabled() bool

Enabled implements the config.STP interface.

type SchedulerConfig

type SchedulerConfig struct {
	//   description: |
	//     The container image used in the scheduler manifest.
	//   examples:
	//     - value: clusterSchedulerImageExample
	ContainerImage string `yaml:"image,omitempty"`
	//   description: |
	//     Extra arguments to supply to the scheduler.
	ExtraArgsConfig map[string]string `yaml:"extraArgs,omitempty"`
	//   description: |
	//     Extra volumes to mount to the scheduler static pod.
	ExtraVolumesConfig []VolumeMountConfig `yaml:"extraVolumes,omitempty"`
	//   description: |
	//     The `env` field allows for the addition of environment variables for the control plane component.
	EnvConfig Env `yaml:"env,omitempty"`
}

SchedulerConfig represents the kube scheduler configuration options.

func (*SchedulerConfig) DeepCopy added in v0.12.0

func (in *SchedulerConfig) DeepCopy() *SchedulerConfig

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

func (*SchedulerConfig) DeepCopyInto added in v0.12.0

func (in *SchedulerConfig) DeepCopyInto(out *SchedulerConfig)

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

func (SchedulerConfig) Doc

func (_ SchedulerConfig) Doc() *encoder.Doc

func (*SchedulerConfig) Env added in v1.0.0

func (s *SchedulerConfig) Env() Env

Env implements the config.Scheduler interface.

func (*SchedulerConfig) ExtraArgs

func (s *SchedulerConfig) ExtraArgs() map[string]string

ExtraArgs implements the config.Scheduler interface.

func (*SchedulerConfig) ExtraVolumes

func (s *SchedulerConfig) ExtraVolumes() []config.VolumeMount

ExtraVolumes implements the config.Scheduler interface.

func (*SchedulerConfig) Image

func (s *SchedulerConfig) Image() string

Image implements the config.Scheduler interface.

type SystemDiskEncryptionConfig

type SystemDiskEncryptionConfig struct {
	//   description: |
	//     State partition encryption.
	StatePartition *EncryptionConfig `yaml:"state,omitempty"`
	//   description: |
	//     Ephemeral partition encryption.
	EphemeralPartition *EncryptionConfig `yaml:"ephemeral,omitempty"`
}

SystemDiskEncryptionConfig specifies system disk partitions encryption settings.

func (*SystemDiskEncryptionConfig) DeepCopy added in v0.12.0

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

func (*SystemDiskEncryptionConfig) DeepCopyInto added in v0.12.0

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

func (SystemDiskEncryptionConfig) Doc

func (*SystemDiskEncryptionConfig) Get

Get implements the config.Provider interface.

type TimeConfig

type TimeConfig struct {
	//   description: |
	//     Indicates if the time service is disabled for the machine.
	//     Defaults to `false`.
	TimeDisabled *bool `yaml:"disabled,omitempty"`
	//   description: |
	//     Specifies time (NTP) servers to use for setting the system time.
	//     Defaults to `pool.ntp.org`
	TimeServers []string `yaml:"servers,omitempty"`
	//   description: |
	//     Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence.
	//     NTP sync will be still running in the background.
	//     Defaults to "infinity" (waiting forever for time sync)
	TimeBootTimeout time.Duration `yaml:"bootTimeout,omitempty"`
}

TimeConfig represents the options for configuring time on a machine.

func (*TimeConfig) BootTimeout added in v0.13.0

func (t *TimeConfig) BootTimeout() time.Duration

BootTimeout implements the config.Provider interface.

func (*TimeConfig) DeepCopy added in v0.12.0

func (in *TimeConfig) DeepCopy() *TimeConfig

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

func (*TimeConfig) DeepCopyInto added in v0.12.0

func (in *TimeConfig) DeepCopyInto(out *TimeConfig)

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

func (*TimeConfig) Disabled

func (t *TimeConfig) Disabled() bool

Disabled implements the config.Provider interface.

func (TimeConfig) Doc

func (_ TimeConfig) Doc() *encoder.Doc

func (*TimeConfig) Servers

func (t *TimeConfig) Servers() []string

Servers implements the config.Provider interface.

type UdevConfig added in v0.14.0

type UdevConfig struct {
	//   description: |
	//     List of udev rules to apply to the udev system
	UdevRules []string `yaml:"rules,omitempty"`
}

UdevConfig describes how the udev system should be configured.

func (*UdevConfig) DeepCopy added in v0.14.0

func (in *UdevConfig) DeepCopy() *UdevConfig

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

func (*UdevConfig) DeepCopyInto added in v0.14.0

func (in *UdevConfig) DeepCopyInto(out *UdevConfig)

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

func (UdevConfig) Doc added in v0.14.0

func (_ UdevConfig) Doc() *encoder.Doc

func (*UdevConfig) Rules added in v0.14.0

func (u *UdevConfig) Rules() []string

Rules implements config.Udev interface.

type Unstructured added in v1.0.0

type Unstructured struct {
	Object map[string]interface{} `yaml:",inline"`
}

Unstructured allows wrapping any map[string]interface{} into a config object.

docgen: nodoc +k8s:deepcopy-gen=true

func (*Unstructured) DeepCopy added in v1.0.0

func (in *Unstructured) DeepCopy() *Unstructured

DeepCopy performs copying of the Object contents.

func (*Unstructured) DeepCopyInto added in v1.0.0

func (in *Unstructured) DeepCopyInto(out *Unstructured)

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

type VIPEquinixMetalConfig added in v0.12.0

type VIPEquinixMetalConfig struct {
	// description: Specifies the Equinix Metal API Token.
	EquinixMetalAPIToken string `yaml:"apiToken"`
}

VIPEquinixMetalConfig contains settings for Equinix Metal VIP management.

func (*VIPEquinixMetalConfig) APIToken added in v0.12.0

func (v *VIPEquinixMetalConfig) APIToken() string

APIToken implements the config.VIPEquinixMetal interface.

func (*VIPEquinixMetalConfig) DeepCopy added in v0.12.0

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

func (*VIPEquinixMetalConfig) DeepCopyInto added in v0.12.0

func (in *VIPEquinixMetalConfig) DeepCopyInto(out *VIPEquinixMetalConfig)

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

func (VIPEquinixMetalConfig) Doc added in v0.12.0

type VIPHCloudConfig added in v0.13.0

type VIPHCloudConfig struct {
	// description: Specifies the Hetzner Cloud API Token.
	HCloudAPIToken string `yaml:"apiToken"`
}

VIPHCloudConfig contains settings for Hetzner Cloud VIP management.

func (*VIPHCloudConfig) APIToken added in v0.13.0

func (v *VIPHCloudConfig) APIToken() string

APIToken implements the config.VIPHCloud interface.

func (*VIPHCloudConfig) DeepCopy added in v0.13.0

func (in *VIPHCloudConfig) DeepCopy() *VIPHCloudConfig

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

func (*VIPHCloudConfig) DeepCopyInto added in v0.13.0

func (in *VIPHCloudConfig) DeepCopyInto(out *VIPHCloudConfig)

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

func (VIPHCloudConfig) Doc added in v0.13.0

func (_ VIPHCloudConfig) Doc() *encoder.Doc

type Vlan

type Vlan struct {
	//   description: The addresses in CIDR notation or as plain IPs to use.
	VlanAddresses []string `yaml:"addresses,omitempty"`
	// docgen:nodoc
	VlanCIDR string `yaml:"cidr,omitempty"`
	//   description: A list of routes associated with the VLAN.
	VlanRoutes []*Route `yaml:"routes"`
	//   description: Indicates if DHCP should be used.
	VlanDHCP *bool `yaml:"dhcp,omitempty"`
	//   description: The VLAN's ID.
	VlanID uint16 `yaml:"vlanId"`
	//   description: The VLAN's MTU.
	VlanMTU uint32 `yaml:"mtu,omitempty"`
	//   description: The VLAN's virtual IP address configuration.
	VlanVIP *DeviceVIPConfig `yaml:"vip,omitempty"`
	//   description: |
	//     DHCP specific options.
	//     `dhcp` *must* be set to true for these to take effect.
	VlanDHCPOptions *DHCPOptions `yaml:"dhcpOptions,omitempty"`
}

Vlan represents vlan settings for a device.

func (*Vlan) Addresses added in v0.12.0

func (v *Vlan) Addresses() []string

Addresses implements the MachineNetwork interface.

func (*Vlan) DHCP

func (v *Vlan) DHCP() bool

DHCP implements the MachineNetwork interface.

func (*Vlan) DHCPOptions added in v1.2.0

func (v *Vlan) DHCPOptions() config.DHCPOptions

DHCPOptions implements the MachineNetwork interface.

func (*Vlan) DeepCopy added in v0.12.0

func (in *Vlan) DeepCopy() *Vlan

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

func (*Vlan) DeepCopyInto added in v0.12.0

func (in *Vlan) DeepCopyInto(out *Vlan)

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

func (Vlan) Doc

func (_ Vlan) Doc() *encoder.Doc

func (*Vlan) ID

func (v *Vlan) ID() uint16

ID implements the MachineNetwork interface.

func (*Vlan) MTU added in v0.14.0

func (v *Vlan) MTU() uint32

MTU implements the MachineNetwork interface.

func (*Vlan) Routes

func (v *Vlan) Routes() []config.Route

Routes implements the MachineNetwork interface.

func (*Vlan) VIPConfig added in v0.14.0

func (v *Vlan) VIPConfig() config.VIPConfig

VIPConfig implements the MachineNetwork interface.

type VolumeMountConfig

type VolumeMountConfig struct {
	//   description: |
	//     Path on the host.
	//   examples:
	//     - value: '"/var/lib/auth"'
	VolumeHostPath string `yaml:"hostPath"`
	//   description: |
	//     Path in the container.
	//   examples:
	//     - value: '"/etc/kubernetes/auth"'
	VolumeMountPath string `yaml:"mountPath"`
	//   description: |
	//     Mount the volume read only.
	//   examples:
	//     - value: true
	VolumeReadOnly bool `yaml:"readonly,omitempty"`
}

VolumeMountConfig struct describes extra volume mount for the static pods.

func (*VolumeMountConfig) DeepCopy added in v0.12.0

func (in *VolumeMountConfig) DeepCopy() *VolumeMountConfig

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

func (*VolumeMountConfig) DeepCopyInto added in v0.12.0

func (in *VolumeMountConfig) DeepCopyInto(out *VolumeMountConfig)

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

func (VolumeMountConfig) Doc

func (_ VolumeMountConfig) Doc() *encoder.Doc

func (VolumeMountConfig) HostPath

func (v VolumeMountConfig) HostPath() string

HostPath implements the config.VolumeMount interface.

func (VolumeMountConfig) MountPath

func (v VolumeMountConfig) MountPath() string

MountPath implements the config.VolumeMount interface.

func (VolumeMountConfig) Name

func (v VolumeMountConfig) Name() string

Name implements the config.VolumeMount interface.

func (VolumeMountConfig) ReadOnly

func (v VolumeMountConfig) ReadOnly() bool

ReadOnly implements the config.VolumeMount interface.

Directories

Path Synopsis
Package generate provides Talos machine configuration generation and client config generation.
Package generate provides Talos machine configuration generation and client config generation.

Jump to

Keyboard shortcuts

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