v1alpha1

package
v1.7.1 Latest Latest
Warning

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

Go to latest
Published: May 1, 2024 License: MPL-2.0 Imports: 38 Imported by: 5

Documentation

Overview

Package v1alpha1 contains definition of the `v1alpha1` configuration document.

Even though the machine configuration in Talos Linux is multi-document, at the moment this configuration document contains most of the configuration options.

It is expected that new configuration options will be added as new documents, and existing ones migrated to their own documents.

Index

Constants

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

Variables

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")
)
View Source
var APIServerDefaultAuditPolicy = Unstructured{
	Object: map[string]interface{}{
		"apiVersion": "audit.k8s.io/v1",
		"kind":       "Policy",
		"rules": []interface{}{
			map[string]interface{}{
				"level": "Metadata",
			},
		},
	},
}

APIServerDefaultAuditPolicy is the default kube-apiserver audit policy.

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 GetFileDoc added in v1.6.0

func GetFileDoc() *encoder.FileDoc

GetFileDoc 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.
	//   schema:
	//     type: object
	//     patternProperties:
	//       ".*":
	//         type: string
	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"`
	//   description: |
	//     Configure the API server audit policy.
	//   examples:
	//     - value: APIServerDefaultAuditPolicy
	//   schema:
	//     type: object
	AuditPolicyConfig Unstructured `yaml:"auditPolicy,omitempty" merge:"replace"`
	//   description: |
	//     Configure the API server resources.
	//   schema:
	//     type: object
	ResourcesConfig *ResourcesConfig `yaml:"resources,omitempty"`
}

APIServerConfig represents the kube apiserver configuration options.

func (*APIServerConfig) AdmissionControl

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

AdmissionControl implements the config.APIServer interface.

func (*APIServerConfig) AuditPolicy

func (a *APIServerConfig) AuditPolicy() map[string]interface{}

AuditPolicy implements the config.APIServer interface.

func (*APIServerConfig) DeepCopy

func (in *APIServerConfig) DeepCopy() *APIServerConfig

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

func (*APIServerConfig) DeepCopyInto

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

func (a *APIServerConfig) DisablePodSecurityPolicy() bool

DisablePodSecurityPolicy implements the config.APIServer interface.

func (APIServerConfig) Doc

func (APIServerConfig) Doc() *encoder.Doc

func (*APIServerConfig) Env

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.

func (*APIServerConfig) Resources added in v1.5.0

func (a *APIServerConfig) Resources() config.Resources

Resources implements the config.Resources interface.

func (*APIServerConfig) Validate added in v1.5.0

func (a *APIServerConfig) Validate() error

Validate performs config validation.

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).
	//   schema:
	//     type: string
	//     pattern: ^[-+]?(((\d+(\.\d*)?|\d*(\.\d+)+)([nuµm]?s|m|h))|0)+$
	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) CertOrganization added in v1.4.0

func (a *AdminKubeconfigConfig) CertOrganization() string

CertOrganization implements the config.Provider interface.

func (*AdminKubeconfigConfig) CommonName

func (a *AdminKubeconfigConfig) CommonName() string

CommonName implements the config.Provider interface.

func (*AdminKubeconfigConfig) DeepCopy

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

func (*AdminKubeconfigConfig) DeepCopyInto

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

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.
	//   schema:
	//     type: object
	PluginConfiguration Unstructured `yaml:"configuration"`
}

AdmissionPluginConfig represents the API server admission plugin configuration.

func (*AdmissionPluginConfig) Configuration

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

Configuration implements the config.AdmissionPlugin interface.

func (*AdmissionPluginConfig) DeepCopy

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

func (*AdmissionPluginConfig) DeepCopyInto

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

func (*AdmissionPluginConfig) Name

func (a *AdmissionPluginConfig) Name() string

Name implements the config.AdmissionPlugin interface.

type AdmissionPluginConfigList

type AdmissionPluginConfigList []*AdmissionPluginConfig

AdmissionPluginConfigList represents the admission plugin configuration list.

func (AdmissionPluginConfigList) DeepCopy

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

func (AdmissionPluginConfigList) DeepCopyInto

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

func (*AdmissionPluginConfigList) Merge

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

func (in Base64Bytes) DeepCopy() Base64Bytes

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

func (Base64Bytes) DeepCopyInto

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: |
	//     Picks a network device using the selector.
	//     Mutually exclusive with `interfaces`.
	//     Supports partial match using wildcard syntax.
	//   examples:
	//     - name: select a device with bus prefix 00:*, a device with mac address matching `*:f0:ab` and `virtio` kernel driver.
	//       value: networkDeviceSelectorExamples()
	BondDeviceSelectors []NetworkDeviceSelector `yaml:"deviceSelectors,omitempty"`
	//   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

func (in *Bond) DeepCopy() *Bond

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

func (*Bond) DeepCopyInto

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) Selectors added in v1.4.0

func (b *Bond) Selectors() []config.NetworkDeviceSelector

Selectors implements the Bond 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

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

func (in *Bridge) DeepCopy() *Bridge

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

func (*Bridge) DeepCopyInto

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

func (Bridge) Doc() *encoder.Doc

func (*Bridge) Interfaces

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

Interfaces implements the config.Bridge interface.

func (*Bridge) STP

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"`
	//   description: |
	//		Flannel configuration options.
	CNIFlannel *FlannelCNIConfig `yaml:"flannel,omitempty"`
}

CNIConfig represents the CNI configuration options.

func (*CNIConfig) DeepCopy

func (in *CNIConfig) DeepCopy() *CNIConfig

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

func (*CNIConfig) DeepCopyInto

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) Flannel added in v1.6.0

func (c *CNIConfig) Flannel() config.FlannelCNI

Flannel implements the config.CNI interface.

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: |
	//     A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
	//     Enables encryption with AESCBC.
	//   examples:
	//     - name: Decryption secret example (do not use in production!).
	//       value: '"z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM="'
	ClusterAESCBCEncryptionSecret string `yaml:"aescbcEncryptionSecret,omitempty"`
	//   description: |
	//     A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
	//     Enables encryption with secretbox.
	//     Secretbox has precedence over AESCBC.
	//   examples:
	//     - name: Decryption secret example (do not use in production!).
	//       value: '"z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM="'
	ClusterSecretboxEncryptionSecret string `yaml:"secretboxEncryptionSecret,omitempty"`
	//   description: |
	//     The base64 encoded root certificate authority used by Kubernetes.
	//   examples:
	//     - name: ClusterCA example.
	//       value: pemEncodedCertificateExample()
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	//       key:
	//         type: string
	ClusterCA *x509.PEMEncodedCertificateAndKey `yaml:"ca,omitempty"`
	//   description: |
	//     The list of base64 encoded accepted certificate authorities used by Kubernetes.
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	ClusterAcceptedCAs []*x509.PEMEncodedCertificate `yaml:"acceptedCAs,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()
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	//       key:
	//         type: string
	ClusterAggregatorCA *x509.PEMEncodedCertificateAndKey `yaml:"aggregatorCA,omitempty"`
	//   description: |
	//     The base64 encoded private key for service account token generation.
	//   examples:
	//     - name: AggregatorCA example.
	//       value: pemEncodedKeyExample()
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       key:
	//         type: string
	//         additionalProperties: false
	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()
	//   schema:
	//     type: array
	//     items:
	//       $ref: "#/$defs/v1alpha1.ClusterInlineManifest"
	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
	//   examples:
	//     - value: true
	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() ([]netip.Addr, error)

APIServerIPs implements the config.ClusterNetwork interface.

func (*ClusterConfig) AcceptedCAs added in v1.7.0

func (c *ClusterConfig) AcceptedCAs() []*x509.PEMEncodedCertificate

AcceptedCAs implements the config.ClusterConfig 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) 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) 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() ([]netip.Addr, error)

DNSServiceIPs implements the config.ClusterNetwork interface.

func (*ClusterConfig) DeepCopy

func (in *ClusterConfig) DeepCopy() *ClusterConfig

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

func (*ClusterConfig) DeepCopyInto

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

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) IssuingCA added in v1.7.0

IssuingCA 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

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

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

func (c *ClusterConfig) SecretboxEncryptionSecret() string

SecretboxEncryptionSecret implements the config.ClusterConfig interface.

func (*ClusterConfig) ServiceAccount

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

ServiceAccount implements the config.ClusterConfig interface.

func (*ClusterConfig) ServiceCIDRs

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(isControlPlane bool) error

Validate validates the config.

type ClusterDiscoveryConfig

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

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

func (*ClusterDiscoveryConfig) DeepCopyInto

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

func (*ClusterDiscoveryConfig) Enabled

func (c *ClusterDiscoveryConfig) Enabled() bool

Enabled implements the config.ClusterDiscovery interface.

func (*ClusterDiscoveryConfig) Registries

Registries implements the config.ClusterDiscovery interface.

func (*ClusterDiscoveryConfig) Validate

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

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

func (*ClusterInlineManifest) DeepCopyInto

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

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

func (ClusterInlineManifests) DeepCopyInto

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) UnmarshalYAML added in v1.6.0

func (manifests *ClusterInlineManifests) UnmarshalYAML(value *yaml.Node) error

UnmarshalYAML implements yaml.Unmarshaler.

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

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

func (*ClusterNetworkConfig) DeepCopyInto

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

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"`
	// docgen:nodoc
	//
	// Deprecated: Not supported anymore.
	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.Config Talos machine configuration document.

examples:
   - value: configExample()
schemaRoot: true

func (*Config) APIVersion added in v1.5.0

func (c *Config) APIVersion() string

APIVersion returns the API version of the document.

func (*Config) Clone added in v1.5.0

func (c *Config) Clone() config.Document

Clone implements config.Document 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

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

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) Kind added in v1.5.0

func (c *Config) Kind() string

Kind returns the kind of the document.

func (*Config) Machine

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

Machine implements the config.Provider interface.

func (*Config) Redact added in v1.5.0

func (c *Config) Redact(replacement string)

Redact implements the config.SecretDocument interface.

func (*Config) Validate

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

Validate 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()
	//   schema:
	//     type: string
	//     format: uri
	//     pattern: "^https://"
	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

func (in *ControlPlaneConfig) DeepCopy() *ControlPlaneConfig

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

func (*ControlPlaneConfig) DeepCopyInto

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

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.
	//   schema:
	//     type: object
	//     patternProperties:
	//       ".*":
	//         type: string
	EnvConfig Env `yaml:"env,omitempty"`
	//   description: |
	//     Configure the controller manager resources.
	//   schema:
	//     type: object
	ResourcesConfig *ResourcesConfig `yaml:"resources,omitempty"`
}

ControllerManagerConfig represents the kube controller manager configuration options.

func (*ControllerManagerConfig) DeepCopy

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

func (*ControllerManagerConfig) DeepCopyInto

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

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.

func (*ControllerManagerConfig) Resources added in v1.5.0

func (c *ControllerManagerConfig) Resources() config.Resources

Resources implements the config.Resources interface.

func (*ControllerManagerConfig) Validate added in v1.5.0

func (c *ControllerManagerConfig) Validate() error

Validate performs config validation.

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

func (in *CoreDNS) DeepCopy() *CoreDNS

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

func (*CoreDNS) DeepCopyInto

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

func (d *DHCPOptions) DUIDv6() string

DUIDv6 implements the DHCPOptions interface.

func (*DHCPOptions) DeepCopy

func (in *DHCPOptions) DeepCopy() *DHCPOptions

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

func (*DHCPOptions) DeepCopyInto

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: '"enp0s3"'
	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 VlanList `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,omitempty"`
	//   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

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

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

func (in *Device) DeepCopy() *Device

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

func (*Device) DeepCopyInto

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

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

func (in *DeviceVIPConfig) DeepCopy() *DeviceVIPConfig

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

func (*DeviceVIPConfig) DeepCopyInto

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

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

EquinixMetal implements the config.VIPConfig interface.

func (*DeviceVIPConfig) HCloud

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

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

func (*DeviceWireguardConfig) DeepCopyInto

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).
	//   schema:
	//     type: string
	//     pattern: ^[-+]?(((\d+(\.\d*)?|\d*(\.\d+)+)([nuµm]?s|m|h))|0)+$
	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

func (in *DeviceWireguardPeer) DeepCopy() *DeviceWireguardPeer

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

func (*DeviceWireguardPeer) DeepCopyInto

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

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

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

func (*DiscoveryRegistriesConfig) DeepCopyInto

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

func (DiscoveryRegistriesConfig) Doc

func (DiscoveryRegistriesConfig) Kubernetes

Kubernetes implements the config.DiscoveryRegistries interface.

func (DiscoveryRegistriesConfig) Service

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
	//   schema:
	//     type: integer
	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

func (in *DiskPartition) DeepCopy() *DiskPartition

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

func (*DiskPartition) DeepCopyInto

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

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

func (in *EncryptionConfig) DeepCopy() *EncryptionConfig

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

func (*EncryptionConfig) DeepCopyInto

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

func (e *EncryptionConfig) KeySize() uint

KeySize implements the config.Provider interface.

func (*EncryptionConfig) Keys

Keys implements the config.Provider interface.

func (*EncryptionConfig) Options

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

Options implements the config.Provider interface.

func (*EncryptionConfig) Provider added in v1.5.0

func (e *EncryptionConfig) Provider() string

Provider 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: >
	//     KMS managed encryption key.
	//   examples:
	//     - value: kmsKeyExample()
	KeyKMS *EncryptionKeyKMS `yaml:"kms,omitempty"`
	//   description: >
	//     Key slot number for LUKS2 encryption.
	KeySlot int `yaml:"slot"`
	//   description: >
	//     Enable TPM based disk encryption.
	KeyTPM *EncryptionKeyTPM `yaml:"tpm,omitempty"`
}

EncryptionKey represents configuration for disk encryption key.

func (*EncryptionKey) DeepCopy

func (in *EncryptionKey) DeepCopy() *EncryptionKey

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

func (*EncryptionKey) DeepCopyInto

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) KMS added in v1.5.0

KMS implements the config.Provider interface.

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.

func (*EncryptionKey) TPM added in v1.5.0

TPM implements the config.Provider interface.

type EncryptionKeyKMS added in v1.5.0

type EncryptionKeyKMS struct {
	//   description: >
	//     KMS endpoint to Seal/Unseal the key.
	KMSEndpoint string `yaml:"endpoint"`
}

EncryptionKeyKMS represents a key that is generated and then sealed/unsealed by the KMS server.

func (*EncryptionKeyKMS) DeepCopy added in v1.5.0

func (in *EncryptionKeyKMS) DeepCopy() *EncryptionKeyKMS

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

func (*EncryptionKeyKMS) DeepCopyInto added in v1.5.0

func (in *EncryptionKeyKMS) DeepCopyInto(out *EncryptionKeyKMS)

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

func (EncryptionKeyKMS) Doc added in v1.5.0

func (EncryptionKeyKMS) Doc() *encoder.Doc

func (*EncryptionKeyKMS) Endpoint added in v1.5.0

func (e *EncryptionKeyKMS) Endpoint() string

Endpoint implements the config.Provider interface.

func (*EncryptionKeyKMS) String added in v1.6.0

func (e *EncryptionKeyKMS) String() string

String implements the config.Provider interface.

type EncryptionKeyNodeID

type EncryptionKeyNodeID struct{}

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

func (*EncryptionKeyNodeID) DeepCopy

func (in *EncryptionKeyNodeID) DeepCopy() *EncryptionKeyNodeID

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

func (*EncryptionKeyNodeID) DeepCopyInto

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) String added in v1.6.0

func (e *EncryptionKeyNodeID) String() string

String implements the config.Provider interface.

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

func (in *EncryptionKeyStatic) DeepCopy() *EncryptionKeyStatic

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

func (*EncryptionKeyStatic) DeepCopyInto

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

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

Key implements the config.Provider interface.

func (*EncryptionKeyStatic) String added in v1.6.0

func (e *EncryptionKeyStatic) String() string

String implements the config.Provider interface.

type EncryptionKeyTPM added in v1.5.0

type EncryptionKeyTPM struct{}

EncryptionKeyTPM represents a key that is generated and then sealed/unsealed by the TPM.

func (*EncryptionKeyTPM) DeepCopy added in v1.5.0

func (in *EncryptionKeyTPM) DeepCopy() *EncryptionKeyTPM

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

func (*EncryptionKeyTPM) DeepCopyInto added in v1.5.0

func (in *EncryptionKeyTPM) DeepCopyInto(out *EncryptionKeyTPM)

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

func (EncryptionKeyTPM) Doc added in v1.5.0

func (EncryptionKeyTPM) Doc() *encoder.Doc

func (*EncryptionKeyTPM) String added in v1.6.0

func (e *EncryptionKeyTPM) String() string

String 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

func (e *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

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()
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	//       key:
	//         type: string
	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

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

AdvertisedSubnets implements the config.Etcd interface.

func (*EtcdConfig) CA

CA implements the config.Etcd interface.

func (*EtcdConfig) DeepCopy

func (in *EtcdConfig) DeepCopy() *EtcdConfig

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

func (*EtcdConfig) DeepCopyInto

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

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

ListenSubnets implements the config.Etcd interface.

func (*EtcdConfig) Validate

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

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

func (*ExternalCloudProviderConfig) DeepCopyInto

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

func (in *ExtraHost) DeepCopy() *ExtraHost

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

func (*ExtraHost) DeepCopyInto

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

type ExtraMount struct {
	//   description: |
	//     Destination is the absolute path where the mount will be placed in the container.
	Destination string `yaml:"destination"`
	//   description: |
	//     Type specifies the mount kind.
	Type string `yaml:"type,omitempty"`
	//   description: |
	//     Source specifies the source path of the mount.
	Source string `yaml:"source,omitempty"`
	//   description: |
	//     Options are fstab style mount options.
	Options []string `yaml:"options,omitempty"`

	//   description: |
	//     UID/GID mappings used for changing file owners w/o calling chown, fs should support it.
	//
	//     Every mount point could have its own mapping.
	UIDMappings []LinuxIDMapping `yaml:"uidMappings,omitempty"`
	//   description: |
	//     UID/GID mappings used for changing file owners w/o calling chown, fs should support it.
	//
	//     Every mount point could have its own mapping.
	GIDMappings []LinuxIDMapping `yaml:"gidMappings,omitempty"`
}

ExtraMount wraps OCI Mount specification.

func (*ExtraMount) DeepCopy

func (in *ExtraMount) DeepCopy() *ExtraMount

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

func (*ExtraMount) DeepCopyInto

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

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"`
	//   description: |
	//     Enable checks for extended key usage of client certificates in apid.
	ApidCheckExtKeyUsage *bool `yaml:"apidCheckExtKeyUsage,omitempty"`
	//   description: |
	//     Enable XFS project quota support for EPHEMERAL partition and user disks.
	//     Also enables kubelet tracking of ephemeral disk usage in the kubelet via quota.
	DiskQuotaSupport *bool `yaml:"diskQuotaSupport,omitempty"`
	//   description: |
	//     KubePrism - local proxy/load balancer on defined port that will distribute
	//     requests to all API servers in the cluster.
	KubePrismSupport *KubePrism `yaml:"kubePrism,omitempty"`
	//   description: |
	//     Configures host DNS caching resolver.
	HostDNSSupport *HostDNSConfig `yaml:"hostDNS,omitempty"`
}

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

func (*FeaturesConfig) ApidCheckExtKeyUsageEnabled

func (f *FeaturesConfig) ApidCheckExtKeyUsageEnabled() bool

ApidCheckExtKeyUsageEnabled implements config.Features interface.

func (*FeaturesConfig) DeepCopy

func (in *FeaturesConfig) DeepCopy() *FeaturesConfig

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

func (*FeaturesConfig) DeepCopyInto

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) DiskQuotaSupportEnabled added in v1.5.0

func (f *FeaturesConfig) DiskQuotaSupportEnabled() bool

DiskQuotaSupportEnabled implements config.Features interface.

func (FeaturesConfig) Doc

func (FeaturesConfig) Doc() *encoder.Doc

func (*FeaturesConfig) HostDNS added in v1.7.0

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

HostDNS implements config.Features interface.

func (*FeaturesConfig) KubePrism added in v1.5.0

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

KubePrism implements config.Features interface.

func (*FeaturesConfig) KubernetesTalosAPIAccess

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

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 FlannelCNIConfig added in v1.6.0

type FlannelCNIConfig struct {
	//   description: |
	//     Extra arguments for 'flanneld'.
	//   examples:
	//     - value: >
	//         []string{"--iface-can-reach=192.168.1.1"}
	FlanneldExtraArgs []string `yaml:"extraArgs,omitempty"`
}

FlannelCNIConfig represents the Flannel CNI configuration options.

func (*FlannelCNIConfig) DeepCopy added in v1.6.0

func (in *FlannelCNIConfig) DeepCopy() *FlannelCNIConfig

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

func (*FlannelCNIConfig) DeepCopyInto added in v1.6.0

func (in *FlannelCNIConfig) DeepCopyInto(out *FlannelCNIConfig)

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

func (FlannelCNIConfig) Doc added in v1.6.0

func (FlannelCNIConfig) Doc() *encoder.Doc

func (*FlannelCNIConfig) ExtraArgs added in v1.6.0

func (c *FlannelCNIConfig) ExtraArgs() []string

ExtraArgs implements the config.FlannelCNI interface.

type HostDNSConfig added in v1.7.0

type HostDNSConfig struct {
	//   description: |
	//     Enable host DNS caching resolver.
	HostDNSEnabled *bool `yaml:"enabled,omitempty"`
	//   description: |
	//     Use the host DNS resolver as upstream for Kubernetes CoreDNS pods.
	//
	//     When enabled, CoreDNS pods use host DNS server as the upstream DNS (instead of
	//     using configured upstream DNS resolvers directly).
	HostDNSForwardKubeDNSToHost *bool `yaml:"forwardKubeDNSToHost,omitempty"`
	//   description: |
	//     Resolve member hostnames using the host DNS resolver.
	//
	//     When enabled, cluster member hostnames and node names are resolved using the host DNS resolver.
	//     This requires service discovery to be enabled.
	HostDNSResolveMemberNames *bool `yaml:"resolveMemberNames,omitempty"`
}

HostDNSConfig describes the configuration for the host DNS resolver.

func (*HostDNSConfig) DeepCopy added in v1.7.0

func (in *HostDNSConfig) DeepCopy() *HostDNSConfig

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

func (*HostDNSConfig) DeepCopyInto added in v1.7.0

func (in *HostDNSConfig) DeepCopyInto(out *HostDNSConfig)

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

func (HostDNSConfig) Doc added in v1.7.0

func (HostDNSConfig) Doc() *encoder.Doc

func (*HostDNSConfig) Enabled added in v1.7.0

func (h *HostDNSConfig) Enabled() bool

Enabled implements config.HostDNS.

func (*HostDNSConfig) ForwardKubeDNSToHost added in v1.7.0

func (h *HostDNSConfig) ForwardKubeDNSToHost() bool

ForwardKubeDNSToHost implements config.HostDNS.

func (*HostDNSConfig) ResolveMemberNames added in v1.7.0

func (h *HostDNSConfig) ResolveMemberNames() bool

ResolveMemberNames implements config.HostDNS.

type IfaceSelector added in v1.5.0

type IfaceSelector struct {
	Name     *string
	Selector *NetworkDeviceSelector
}

IfaceSelector is a helper type to select network interface.

It might either to select interface by name or by selector.

func IfaceByName added in v1.5.0

func IfaceByName(name string) IfaceSelector

IfaceByName selects interface by name.

func IfaceBySelector added in v1.5.0

func IfaceBySelector(selector NetworkDeviceSelector) IfaceSelector

IfaceBySelector selects interface by selector.

func (*IfaceSelector) DeepCopy added in v1.5.0

func (in *IfaceSelector) DeepCopy() *IfaceSelector

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

func (*IfaceSelector) DeepCopyInto added in v1.5.0

func (in *IfaceSelector) DeepCopyInto(out *IfaceSelector)

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

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.
	//     Existing kernel args can be removed by prefixing the argument with a `-`.
	//     For example `-console` removes all `console=<value>` arguments, whereas `-console=tty0` removes the `console=tty0` default argument.
	//   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"`
	// docgen:nodoc
	//
	// Deprecated: It never worked.
	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

func (in *InstallConfig) DeepCopy() *InstallConfig

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

func (*InstallConfig) DeepCopyInto

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

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

func (*InstallConfig) 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

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: machineInstallDiskSizeMatcherExamples0()
	//     - name: Select a disk which size is greater than 1TB.
	//       value: machineInstallDiskSizeMatcherExamples1()
	//     - name: Select a disk which size is less or equal than 2TB.
	//       value: machineInstallDiskSizeMatcherExamples2()
	//   schema:
	//     type: string
	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

func (in *InstallDiskSelector) DeepCopy() *InstallDiskSelector

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

func (*InstallDiskSelector) DeepCopyInto

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

type InstallDiskSizeMatchData

type InstallDiskSizeMatchData struct {
	Op   string
	Size uint64
}

InstallDiskSizeMatchData contains data for comparison - Op and Size.

func (*InstallDiskSizeMatchData) Compare

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

Compare is the method to compare disk size.

func (*InstallDiskSizeMatchData) DeepCopy

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

func (*InstallDiskSizeMatchData) DeepCopyInto

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

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

func (*InstallDiskSizeMatcher) DeepCopyInto

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 unmarshaler for `InstallDiskType`.

type InstallExtensionConfig

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

InstallExtensionConfig represents a configuration for a system extension.

func (*InstallExtensionConfig) DeepCopy

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

func (*InstallExtensionConfig) DeepCopyInto

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

func (InstallExtensionConfig) Image

func (i InstallExtensionConfig) Image() string

Image implements the config.Provider interface.

type KernelConfig

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

KernelConfig struct configures Talos Linux kernel.

func (*KernelConfig) DeepCopy

func (in *KernelConfig) DeepCopy() *KernelConfig

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

func (*KernelConfig) DeepCopyInto

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

func (KernelConfig) Doc() *encoder.Doc

func (*KernelConfig) Modules

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

Modules implements config.Kernel interface.

type KernelModuleConfig

type KernelModuleConfig struct {
	// description: |
	//   Module name.
	ModuleName string `yaml:"name"`
	// description: |
	//   Module parameters, changes applied after reboot.
	ModuleParameters []string `yaml:"parameters,omitempty"`
}

KernelModuleConfig struct configures Linux kernel modules to load.

func (*KernelModuleConfig) DeepCopy

func (in *KernelModuleConfig) DeepCopy() *KernelModuleConfig

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

func (*KernelModuleConfig) DeepCopyInto

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

func (*KernelModuleConfig) Name

func (kmc *KernelModuleConfig) Name() string

Name implements config.KernelModule interface.

func (*KernelModuleConfig) Parameters

func (kmc *KernelModuleConfig) Parameters() []string

Parameters implements config.KernelModule interface.

type KubePrism added in v1.5.0

type KubePrism struct {
	//   description: |
	//     Enable KubePrism support - will start local load balancing proxy.
	ServerEnabled *bool `yaml:"enabled,omitempty"`
	//   description: |
	//     KubePrism port.
	ServerPort int `yaml:"port,omitempty"`
}

KubePrism describes the configuration for the KubePrism load balancer.

func (*KubePrism) DeepCopy added in v1.5.0

func (in *KubePrism) DeepCopy() *KubePrism

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

func (*KubePrism) DeepCopyInto added in v1.5.0

func (in *KubePrism) DeepCopyInto(out *KubePrism)

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

func (KubePrism) Doc added in v1.5.0

func (KubePrism) Doc() *encoder.Doc

func (*KubePrism) Enabled added in v1.5.0

func (a *KubePrism) Enabled() bool

Enabled implements config.KubePrism.

func (*KubePrism) Port added in v1.5.0

func (a *KubePrism) Port() int

Port implements config.KubePrism.

type KubeSpanFilters

type KubeSpanFilters struct {
	// description: |
	//   Filter node addresses which will be advertised as KubeSpan endpoints for peer-to-peer Wireguard connections.
	//
	//   By default, all addresses are advertised, and KubeSpan cycles through all endpoints until it finds one that works.
	//
	//   Default value: no filtering.
	// examples:
	//   - name: Exclude addresses in 192.168.0.0/16 subnet.
	//     value: '[]string{"0.0.0.0/0", "!192.168.0.0/16", "::/0"}'
	KubeSpanFiltersEndpoints []string `yaml:"endpoints,omitempty"`
}

KubeSpanFilters struct describes KubeSpan advanced network addresses filtering.

func (*KubeSpanFilters) DeepCopy

func (in *KubeSpanFilters) DeepCopy() *KubeSpanFilters

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

func (*KubeSpanFilters) DeepCopyInto

func (in *KubeSpanFilters) DeepCopyInto(out *KubeSpanFilters)

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

func (KubeSpanFilters) Doc

func (KubeSpanFilters) Doc() *encoder.Doc

func (*KubeSpanFilters) Endpoints

func (k *KubeSpanFilters) Endpoints() []string

Endpoints implements the config.KubeSpanFilters 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()
	//   schema:
	//     type: object
	KubeletExtraConfig Unstructured `yaml:"extraConfig,omitempty"`
	//  description: |
	//   The `KubeletCredentialProviderConfig` field is used to provide kubelet credential configuration.
	//  examples:
	//    - value: kubeletCredentialProviderConfigExample()
	//  schema:
	//    type: object
	KubeletCredentialProviderConfig Unstructured `yaml:"credentialProviderConfig,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"`
	//   description: |
	//     The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.
	//     It's recommended to configure static pods with the "pods" key instead.
	//   values:
	//     - true
	//     - yes
	//     - false
	//     - no
	KubeletDisableManifestsDirectory *bool `yaml:"disableManifestsDirectory,omitempty"`
}

KubeletConfig represents the kubelet config values.

func (*KubeletConfig) ClusterDNS

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

ClusterDNS implements the config.Provider interface.

func (*KubeletConfig) CredentialProviderConfig added in v1.6.0

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

CredentialProviderConfig implements the config.Provider interface.

func (*KubeletConfig) DeepCopy

func (in *KubeletConfig) DeepCopy() *KubeletConfig

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

func (*KubeletConfig) DeepCopyInto

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

func (k *KubeletConfig) DefaultRuntimeSeccompProfileEnabled() bool

DefaultRuntimeSeccompProfileEnabled implements the config.Provider interface.

func (*KubeletConfig) DisableManifestsDirectory

func (k *KubeletConfig) DisableManifestsDirectory() bool

DisableManifestsDirectory implements the KubeletConfig 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

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

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

func (k *KubeletConfig) SkipNodeRegistration() bool

SkipNodeRegistration implements the config.Provider interface.

func (*KubeletConfig) Validate

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

Validate kubelet configuration.

type KubeletNodeIPConfig

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

func (in *KubeletNodeIPConfig) DeepCopy() *KubeletNodeIPConfig

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

func (*KubeletNodeIPConfig) DeepCopyInto

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

func (*KubeletNodeIPConfig) ValidSubnets

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

ValidSubnets implements the config.Provider interface.

type KubernetesTalosAPIAccessConfig

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

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

AllowedKubernetesNamespaces implements config.KubernetesTalosAPIAccess.

func (*KubernetesTalosAPIAccessConfig) AllowedRoles

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

AllowedRoles implements config.KubernetesTalosAPIAccess.

func (*KubernetesTalosAPIAccessConfig) DeepCopy

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

func (*KubernetesTalosAPIAccessConfig) DeepCopyInto

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

func (KubernetesTalosAPIAccessConfig) Doc

func (*KubernetesTalosAPIAccessConfig) Enabled

func (c *KubernetesTalosAPIAccessConfig) Enabled() bool

Enabled implements config.KubernetesTalosAPIAccess.

type LinuxIDMapping added in v1.6.0

type LinuxIDMapping struct {
	//   description: |
	//     ContainerID is the starting UID/GID in the container.
	ContainerID uint32 `yaml:"containerID"`
	//   description: |
	//     HostID is the starting UID/GID on the host to be mapped to 'ContainerID'.
	HostID uint32 `yaml:"hostID"`
	//   description: |
	//     Size is the number of IDs to be mapped.
	Size uint32 `yaml:"size"`
}

LinuxIDMapping represents the Linux ID mapping.

func (*LinuxIDMapping) DeepCopy added in v1.6.0

func (in *LinuxIDMapping) DeepCopy() *LinuxIDMapping

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

func (*LinuxIDMapping) DeepCopyInto added in v1.6.0

func (in *LinuxIDMapping) DeepCopyInto(out *LinuxIDMapping)

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

func (LinuxIDMapping) Doc added in v1.6.0

func (LinuxIDMapping) Doc() *encoder.Doc

type LoggingConfig

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

LoggingConfig struct configures Talos logging.

func (*LoggingConfig) DeepCopy

func (in *LoggingConfig) DeepCopy() *LoggingConfig

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

func (*LoggingConfig) DeepCopyInto

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

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

Destinations implements config.Logging interface.

func (LoggingConfig) Doc

func (LoggingConfig) Doc() *encoder.Doc

func (*LoggingConfig) Validate

func (lc *LoggingConfig) Validate() error

Validate checks logging configuration for errors.

type LoggingDestination

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"`
	// description: |
	//   Extra tags (key-value) pairs to attach to every log message sent.
	LoggingExtraTags map[string]string `yaml:"extraTags,omitempty"`
}

LoggingDestination struct configures Talos logging destination.

func (*LoggingDestination) DeepCopy

func (in *LoggingDestination) DeepCopy() *LoggingDestination

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

func (*LoggingDestination) DeepCopyInto

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

func (LoggingDestination) Endpoint

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

Endpoint implements config.LoggingDestination interface.

func (LoggingDestination) ExtraTags added in v1.7.0

func (ld LoggingDestination) ExtraTags() map[string]string

ExtraTags implements config.LoggingDestination interface.

func (LoggingDestination) Format

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
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	//       key:
	//         type: string
	MachineCA *x509.PEMEncodedCertificateAndKey `yaml:"ca,omitempty"`
	//   description: |
	//     The certificates issued by certificate authorities are accepted in addition to issuing 'ca'.
	//     It is composed of a base64 encoded `crt“.
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	MachineAcceptedCAs []*x509.PEMEncodedCertificate `yaml:"acceptedCAs,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()
	//   schema:
	//     type: array
	//     items:
	//       type: object
	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 formatting is done only once, if and only if no existing XFS 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.
	//
	//     Note that this configuration section gets silently ignored by Talos images that are considered pre-installed.
	//     To make sure Talos installs according to the provided configuration, Talos should be booted with ISO or PXE-booted.
	//   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: machineEnvExamples0()
	//     - value: machineEnvExamples1()
	//     - value: machineEnvExamples2()
	//   schema:
	//     type: object
	//     patternProperties:
	//       ".*":
	//         type: string
	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 a non-default registry,
	//     which might be a local registry or a 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`](https://docs.docker.com/engine/api/v1.41/#section/Authentication).
	//
	//     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"`
	//  description: |
	//    Configures the node labels for the machine.
	//
	//    Note: In the default Kubernetes configuration, worker nodes are restricted to set
	//    labels with some prefixes (see [NodeRestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin).
	//  examples:
	//    - name: node labels example.
	//      value: 'map[string]string{"exampleLabel": "exampleLabelValue"}'
	MachineNodeLabels map[string]string `yaml:"nodeLabels,omitempty"`
	//  description: |
	//    Configures the node taints for the machine. Effect is optional.
	//
	//    Note: In the default Kubernetes configuration, worker nodes are not allowed to
	//    modify the taints (see [NodeRestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin).
	//  examples:
	//    - name: node taints example.
	//      value: 'map[string]string{"exampleTaint": "exampleTaintValue:NoSchedule"}'
	MachineNodeTaints map[string]string `yaml:"nodeTaints,omitempty"`
}

MachineConfig represents the machine-specific config values.

examples:
   - value: machineConfigExample()

func (*MachineConfig) AcceptedCAs added in v1.7.0

func (m *MachineConfig) AcceptedCAs() []*x509.PEMEncodedCertificate

AcceptedCAs implements the config.Provider interface.

func (*MachineConfig) CertSANs

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

CertSANs implements the config.Provider interface.

func (*MachineConfig) Controlplane

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

Controlplane implements the config.Provider interface.

func (*MachineConfig) DeepCopy

func (in *MachineConfig) DeepCopy() *MachineConfig

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

func (*MachineConfig) DeepCopyInto

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) IssuingCA added in v1.7.0

IssuingCA implements the config.Provider interface.

func (*MachineConfig) Kernel

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

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

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

NodeLabels implements the config.Provider interface.

func (*MachineConfig) NodeTaints added in v1.6.0

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

NodeTaints implements the config.Provider interface.

func (*MachineConfig) Pods

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

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

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

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

Udev implements the config.MachineConfig interface.

type MachineControlPlaneConfig

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

ControllerManager implements the config.Provider interface.

func (*MachineControlPlaneConfig) DeepCopy

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

func (*MachineControlPlaneConfig) DeepCopyInto

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

func (MachineControlPlaneConfig) Doc

func (*MachineControlPlaneConfig) Scheduler

Scheduler implements the config.Provider interface.

type MachineControllerManagerConfig

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

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

func (*MachineControllerManagerConfig) DeepCopyInto

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

func (*MachineControllerManagerConfig) Disabled

func (m *MachineControllerManagerConfig) Disabled() bool

Disabled implements the config.Provider interface.

func (MachineControllerManagerConfig) Doc

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

func (in *MachineDisk) DeepCopy() *MachineDisk

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

func (*MachineDisk) DeepCopyInto

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.
	//   schema:
	//     type: integer
	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

func (in *MachineFile) DeepCopy() *MachineFile

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

func (*MachineFile) DeepCopyInto

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

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

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

func (*MachineSchedulerConfig) DeepCopyInto

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

func (m *MachineSchedulerConfig) Disabled() bool

Disabled implements the config.Provider interface.

func (MachineSchedulerConfig) Doc

type MachineSeccompProfile

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.
	// schema:
	//   type: object
	MachineSeccompProfileValue Unstructured `yaml:"value"`
}

MachineSeccompProfile defines seccomp profiles for the machine.

func (*MachineSeccompProfile) DeepCopy

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

func (*MachineSeccompProfile) DeepCopyInto

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

func (*MachineSeccompProfile) Name

func (m *MachineSeccompProfile) Name() string

Name implements the config.Provider interface.

func (*MachineSeccompProfile) Value

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

func (in *NetworkConfig) DeepCopy() *NetworkConfig

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

func (*NetworkConfig) DeepCopyInto

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

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

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

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 IfaceSelector, cidr string) NetworkConfigOption

WithNetworkInterfaceCIDR configures interface for static addressing.

func WithNetworkInterfaceDHCP

func WithNetworkInterfaceDHCP(iface IfaceSelector, enable bool) NetworkConfigOption

WithNetworkInterfaceDHCP enables DHCP for the interface.

func WithNetworkInterfaceDHCPv4

func WithNetworkInterfaceDHCPv4(iface IfaceSelector, enable bool) NetworkConfigOption

WithNetworkInterfaceDHCPv4 enables DHCPv4 for the interface.

func WithNetworkInterfaceDHCPv6

func WithNetworkInterfaceDHCPv6(iface IfaceSelector, enable bool) NetworkConfigOption

WithNetworkInterfaceDHCPv6 enables DHCPv6 for the interface.

func WithNetworkInterfaceIgnore

func WithNetworkInterfaceIgnore(iface IfaceSelector) NetworkConfigOption

WithNetworkInterfaceIgnore marks interface as ignored.

func WithNetworkInterfaceMTU

func WithNetworkInterfaceMTU(iface IfaceSelector, mtu int) NetworkConfigOption

WithNetworkInterfaceMTU configures interface MTU.

func WithNetworkInterfaceVirtualIP

func WithNetworkInterfaceVirtualIP(iface IfaceSelector, cidr string) NetworkConfigOption

WithNetworkInterfaceVirtualIP configures interface for Virtual IP.

func WithNetworkInterfaceWireguard

func WithNetworkInterfaceWireguard(iface IfaceSelector, 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

type NetworkDeviceList []*Device

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

func (NetworkDeviceList) DeepCopy

func (in NetworkDeviceList) DeepCopy() NetworkDeviceList

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

func (NetworkDeviceList) DeepCopyInto

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

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

Merge the network interface configuration intelligently.

type NetworkDeviceSelector

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"`
	// description: Select only physical devices.
	NetworkDevicePhysical *bool `yaml:"physical,omitempty"`
}

NetworkDeviceSelector struct describes network device selector.

func (*NetworkDeviceSelector) Bus

func (s *NetworkDeviceSelector) Bus() string

Bus implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) DeepCopy

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

func (*NetworkDeviceSelector) DeepCopyInto

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

func (*NetworkDeviceSelector) HardwareAddress

func (s *NetworkDeviceSelector) HardwareAddress() string

HardwareAddress implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) KernelDriver

func (s *NetworkDeviceSelector) KernelDriver() string

KernelDriver implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) PCIID

func (s *NetworkDeviceSelector) PCIID() string

PCIID implements config.NetworkDeviceSelector interface.

func (*NetworkDeviceSelector) Physical added in v1.7.0

func (s *NetworkDeviceSelector) Physical() *bool

Physical implements config.NetworkDeviceSelector interface.

type NetworkKubeSpan

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"`
	// description: |
	//   KubeSpan can collect and publish extra endpoints for each member of the cluster
	//   based on Wireguard endpoint information for each peer.
	//   This feature is disabled by default, don't enable it
	//   with high number of peers (>50) in the KubeSpan network (performance issues).
	KubeSpanHarvestExtraEndpoints *bool `yaml:"harvestExtraEndpoints,omitempty"`
	// description: |
	//   KubeSpan link MTU size.
	//   Default value is 1420.
	KubeSpanMTU *uint32 `yaml:"mtu,omitempty"`
	// description: |
	//   KubeSpan advanced filtering of network addresses .
	//
	//   Settings in this section are optional, and settings apply only to the node.
	KubeSpanFilters *KubeSpanFilters `yaml:"filters,omitempty"`
}

NetworkKubeSpan struct describes KubeSpan configuration.

func (*NetworkKubeSpan) AdvertiseKubernetesNetworks

func (k *NetworkKubeSpan) AdvertiseKubernetesNetworks() bool

AdvertiseKubernetesNetworks implements KubeSpan interface.

func (*NetworkKubeSpan) DeepCopy

func (in *NetworkKubeSpan) DeepCopy() *NetworkKubeSpan

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

func (*NetworkKubeSpan) DeepCopyInto

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

func (NetworkKubeSpan) Doc() *encoder.Doc

func (*NetworkKubeSpan) Enabled

func (k *NetworkKubeSpan) Enabled() bool

Enabled implements KubeSpan interface.

func (*NetworkKubeSpan) Filters

func (k *NetworkKubeSpan) Filters() config.KubeSpanFilters

Filters implements the KubeSpan interface.

func (*NetworkKubeSpan) ForceRouting

func (k *NetworkKubeSpan) ForceRouting() bool

ForceRouting implements KubeSpan interface.

func (*NetworkKubeSpan) HarvestExtraEndpoints added in v1.6.0

func (k *NetworkKubeSpan) HarvestExtraEndpoints() bool

HarvestExtraEndpoints implements KubeSpan interface.

func (*NetworkKubeSpan) MTU

func (k *NetworkKubeSpan) MTU() uint32

MTU implements the 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

func (in *PodCheckpointer) DeepCopy() *PodCheckpointer

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

func (*PodCheckpointer) DeepCopyInto

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

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

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

func (in *ProxyConfig) DeepCopy() *ProxyConfig

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

func (*ProxyConfig) DeepCopyInto

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 RegistriesConfig

type RegistriesConfig struct {
	//   description: |
	//     Specifies mirror configuration for each registry host namespace.
	//     This setting allows to configure local pull-through caching registires,
	//     air-gapped installations, etc.
	//
	//     For example, when pulling an image with the reference `example.com:123/image:v1`,
	//     the `example.com:123` key will be used to lookup the mirror configuration.
	//
	//     Optionally the `*` key can be used to configure a fallback mirror.
	//
	//     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.
	//
	//     The full hostname and port (if not using a default port 443)
	//     should be used as the key.
	//     The fallback key `*` can't be used for TLS configuration.
	//
	//     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

func (in *RegistriesConfig) DeepCopy() *RegistriesConfig

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

func (*RegistriesConfig) DeepCopyInto

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`](https://docs.docker.com/engine/api/v1.41/#section/Authentication).
	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`](https://docs.docker.com/engine/api/v1.41/#section/Authentication).
	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`](https://docs.docker.com/engine/api/v1.41/#section/Authentication).
	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`](https://docs.docker.com/engine/api/v1.41/#section/Authentication).
	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

func (in *RegistryAuthConfig) DeepCopy() *RegistryAuthConfig

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

func (*RegistryAuthConfig) DeepCopyInto

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

func (in *RegistryConfig) DeepCopy() *RegistryConfig

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

func (*RegistryConfig) DeepCopyInto

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

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

RegistryKubernetesConfig struct configures Kubernetes discovery registry.

func (*RegistryKubernetesConfig) DeepCopy

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

func (*RegistryKubernetesConfig) DeepCopyInto

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

func (RegistryKubernetesConfig) Enabled

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"`
	//   description: |
	//     Use the exact path specified for the endpoint (don't append /v2/).
	//     This setting is often required for setting up multiple mirrors
	//     on a single instance of a registry.
	MirrorOverridePath *bool `yaml:"overridePath,omitempty"`
}

RegistryMirrorConfig represents mirror configuration for a registry.

func (*RegistryMirrorConfig) DeepCopy

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

func (*RegistryMirrorConfig) DeepCopyInto

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

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

Endpoints implements the config.Provider interface.

func (*RegistryMirrorConfig) OverridePath

func (r *RegistryMirrorConfig) OverridePath() bool

OverridePath implements the Registries interface.

type RegistryServiceConfig

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

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

func (*RegistryServiceConfig) DeepCopyInto

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

func (RegistryServiceConfig) Enabled

func (c RegistryServiceConfig) Enabled() bool

Enabled implements the config.ServiceRegistry interface.

func (RegistryServiceConfig) Endpoint

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()
	//   schema:
	//     type: object
	//     additionalProperties: false
	//     properties:
	//       crt:
	//         type: string
	//       key:
	//         type: string
	TLSClientIdentity *x509.PEMEncodedCertificateAndKey `yaml:"clientIdentity,omitempty"`
	//   description: |
	//     CA registry certificate to add the list of trusted certificates.
	//     Certificate should be base64-encoded.
	//   schema:
	//     type: string
	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

func (in *RegistryTLSConfig) DeepCopy() *RegistryTLSConfig

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

func (*RegistryTLSConfig) DeepCopyInto

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 ResourcesConfig added in v1.5.0

type ResourcesConfig struct {
	//   description: |
	//     Requests configures the reserved cpu/memory resources.
	//   examples:
	//     - name: resources requests.
	//       value: resourcesConfigRequestsExample()
	//   schema:
	//     type: object
	Requests Unstructured `yaml:"requests,omitempty"`
	//   description: |
	//     Limits configures the maximum cpu/memory resources a container can use.
	//   examples:
	//     - name: resources requests.
	//       value: resourcesConfigLimitsExample()
	//   schema:
	//     type: object
	Limits Unstructured `yaml:"limits,omitempty"`
}

ResourcesConfig represents the pod resources.

func (*ResourcesConfig) CPULimits added in v1.5.0

func (r *ResourcesConfig) CPULimits() string

CPULimits implements the config.Resources interface.

func (*ResourcesConfig) CPURequests added in v1.5.0

func (r *ResourcesConfig) CPURequests() string

CPURequests implements the config.Resources interface.

func (*ResourcesConfig) DeepCopy added in v1.5.0

func (in *ResourcesConfig) DeepCopy() *ResourcesConfig

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

func (*ResourcesConfig) DeepCopyInto added in v1.5.0

func (in *ResourcesConfig) DeepCopyInto(out *ResourcesConfig)

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

func (ResourcesConfig) Doc added in v1.5.0

func (ResourcesConfig) Doc() *encoder.Doc

func (*ResourcesConfig) MemoryLimits added in v1.5.0

func (r *ResourcesConfig) MemoryLimits() string

MemoryLimits implements the config.Resources interface.

func (*ResourcesConfig) MemoryRequests added in v1.5.0

func (r *ResourcesConfig) MemoryRequests() string

MemoryRequests implements the config.Resources interface.

func (*ResourcesConfig) Validate added in v1.5.0

func (r *ResourcesConfig) Validate() error

Validate performs config validation.

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"`
	//   description: The optional MTU for the route.
	RouteMTU uint32 `yaml:"mtu,omitempty"`
}

Route represents a network route.

func (*Route) DeepCopy

func (in *Route) DeepCopy() *Route

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

func (*Route) DeepCopyInto

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

func (r *Route) MTU() uint32

MTU 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

func (r *Route) Source() string

Source implements the MachineNetwork interface.

type STP

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

func (in *STP) DeepCopy() *STP

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

func (*STP) DeepCopyInto

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

func (STP) Doc() *encoder.Doc

func (*STP) Enabled

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.
	//   schema:
	//     type: object
	//     patternProperties:
	//       ".*":
	//         type: string
	EnvConfig Env `yaml:"env,omitempty"`
	//   description: |
	//     Configure the scheduler resources.
	//   schema:
	//     type: object
	ResourcesConfig *ResourcesConfig `yaml:"resources,omitempty"`
	//   description: |
	//     Specify custom kube-scheduler configuration.
	//   schema:
	//     type: object
	SchedulerConfig Unstructured `yaml:"config,omitempty"`
}

SchedulerConfig represents the kube scheduler configuration options.

func (*SchedulerConfig) Config added in v1.6.0

func (s *SchedulerConfig) Config() map[string]any

Config implements the config.Scheduler interface.

func (*SchedulerConfig) DeepCopy

func (in *SchedulerConfig) DeepCopy() *SchedulerConfig

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

func (*SchedulerConfig) DeepCopyInto

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

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.

func (*SchedulerConfig) Resources added in v1.5.0

func (s *SchedulerConfig) Resources() config.Resources

Resources implements the config.Resources interface.

func (*SchedulerConfig) Validate added in v1.5.0

func (s *SchedulerConfig) Validate() error

Validate performs config validation.

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

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

func (*SystemDiskEncryptionConfig) DeepCopyInto

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 `time.cloudflare.com`.
	//
	//	   Talos can also sync to the PTP time source (e.g provided by the hypervisor),
	//     provide the path to the PTP device as "/dev/ptp0" or "/dev/ptp_kvm".
	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)
	//   schema:
	//     type: string
	//     pattern: ^[-+]?(((\d+(\.\d*)?|\d*(\.\d+)+)([nuµm]?s|m|h))|0)+$
	TimeBootTimeout time.Duration `yaml:"bootTimeout,omitempty"`
}

TimeConfig represents the options for configuring time on a machine.

func (*TimeConfig) BootTimeout

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

BootTimeout implements the config.Provider interface.

func (*TimeConfig) DeepCopy

func (in *TimeConfig) DeepCopy() *TimeConfig

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

func (*TimeConfig) DeepCopyInto

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

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

func (in *UdevConfig) DeepCopy() *UdevConfig

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

func (*UdevConfig) DeepCopyInto

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

func (UdevConfig) Doc() *encoder.Doc

func (*UdevConfig) Rules

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

Rules implements config.Udev interface.

type Unstructured

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

func (in *Unstructured) DeepCopy() *Unstructured

DeepCopy performs copying of the Object contents.

func (*Unstructured) DeepCopyInto

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

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

func (v *VIPEquinixMetalConfig) APIToken() string

APIToken implements the config.VIPEquinixMetal interface.

func (*VIPEquinixMetalConfig) DeepCopy

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

func (*VIPEquinixMetalConfig) DeepCopyInto

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

type VIPHCloudConfig

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

func (v *VIPHCloudConfig) APIToken() string

APIToken implements the config.VIPHCloud interface.

func (*VIPHCloudConfig) DeepCopy

func (in *VIPHCloudConfig) DeepCopy() *VIPHCloudConfig

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

func (*VIPHCloudConfig) DeepCopyInto

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

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

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

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

DHCPOptions implements the MachineNetwork interface.

func (*Vlan) DeepCopy

func (in *Vlan) DeepCopy() *Vlan

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

func (*Vlan) DeepCopyInto

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

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

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

VIPConfig implements the MachineNetwork interface.

type VlanList added in v1.4.0

type VlanList []*Vlan

VlanList is a list of *Vlan structures with overridden merge process.

func (VlanList) DeepCopy added in v1.4.0

func (in VlanList) DeepCopy() VlanList

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

func (VlanList) DeepCopyInto added in v1.4.0

func (in VlanList) DeepCopyInto(out *VlanList)

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

func (*VlanList) Merge added in v1.4.0

func (vlans *VlanList) Merge(other interface{}) error

Merge the network interface configuration intelligently.

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

func (in *VolumeMountConfig) DeepCopy() *VolumeMountConfig

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

func (*VolumeMountConfig) DeepCopyInto

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.

Jump to

Keyboard shortcuts

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