chore: generate comments for fields in resource proto

Update structprotogen to put comments from Go structs into generated
.proto files.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
This commit is contained in:
Andrey Smirnov 2026-04-22 15:18:37 +04:00
parent 149592fa59
commit 25e2f37e2b
No known key found for this signature in database
GPG Key ID: 322C6F63F594CE7C
31 changed files with 992 additions and 557 deletions

View File

@ -15,16 +15,24 @@ message DeviceSpec {
int64 minor = 3;
string partition_name = 4;
int64 partition_number = 5;
// Generation is bumped every time the device might have changed and might need to be re-probed.
int64 generation = 6;
string device_path = 7;
// Parent (if set) specifies the parent device ID.
string parent = 8;
// Secondaries (if set) specifies the secondary device IDs.
//
// E.g. for a LVM volume secondary is a list of blockdevices that the volume consists of.
repeated string secondaries = 9;
}
// DiscoveredVolumeSpec is the spec for DiscoveredVolumes resource.
message DiscoveredVolumeSpec {
// Overall size of the probed device (in bytes).
uint64 size = 1;
// Sector size of the device (in bytes).
uint64 sector_size = 2;
// Optimal I/O size for the device (in bytes).
uint64 io_size = 3;
string name = 4;
string uuid = 5;
@ -42,6 +50,7 @@ message DiscoveredVolumeSpec {
string dev_path = 17;
string parent_dev_path = 18;
string pretty_size = 19;
// Offset of the partition/volume inside Parent device (in bytes).
uint64 offset = 20;
}
@ -78,6 +87,10 @@ message DiskSpec {
bool cdrom = 13;
string dev_path = 14;
string pretty_size = 15;
// SecondaryDisks (if set) specifies the secondary disk IDs.
//
// E.g. if the blockdevice secondary is vda5, the secondary disk will be set as vda.
// This allows to map secondaries between disks ignoring the partitions.
repeated string secondary_disks = 16;
string uuid = 17;
repeated string symlinks = 18;
@ -87,11 +100,16 @@ message DiskSpec {
message EncryptionKey {
int64 slot = 1;
talos.resource.definitions.enums.BlockEncryptionKeyType type = 2;
// Only for Type == "static":
bytes static_passphrase = 3;
// Only for Type == "kms":
string kms_endpoint = 4;
// Only for Type == "tpm":
bool tpm_check_secureboot_status_on_enroll = 5;
bool lock_to_state = 6;
// Only for Type == "tpm":
repeated int64 tpmpc_rs = 7;
// Only for Type == "tpm":
repeated int64 tpm_pub_key_pc_rs = 8;
}
@ -107,13 +125,17 @@ message EncryptionSpec {
// FilesystemSpec is the spec for volume filesystem.
message FilesystemSpec {
// Filesystem type.
talos.resource.definitions.enums.BlockFilesystemType type = 1;
// Filesystem label.
string label = 2;
}
// LocatorSpec is the spec for volume locator.
message LocatorSpec {
// Match is a volume locator match expression.
google.api.expr.v1alpha1.CheckedExpr match = 1;
// DiskMatch is a disk locator match expression.
google.api.expr.v1alpha1.CheckedExpr disk_match = 2;
}
@ -131,15 +153,25 @@ message MountRequestSpec {
// MountSpec is the spec for volume mount.
message MountSpec {
// Mount path for the volume.
string target_path = 1;
// SELinux label for the volume.
string selinux_label = 2;
// Enable project quota (xfs) for the volume.
bool project_quota_support = 3;
// Parent mount request ID.
string parent_id = 4;
// FileMode is the file mode for the mount target.
uint32 file_mode = 5;
// UID is the user ID for the mount target.
int64 uid = 6;
// GID is the group ID for the mount target.
int64 gid = 7;
// RecursiveRelabel is the recursive relabel/chown flag for the mount target.
bool recursive_relabel = 8;
// BindTarget is an optional path on the host to bind-mount the volume onto.
string bind_target = 9;
// Parameters are additional filesystem mount options used when mounting the volume.
repeated ParameterSpec parameters = 10;
}
@ -157,28 +189,45 @@ message MountStatusSpec {
// ParameterSpec is a mount parameter.
message ParameterSpec {
// Type of the parameter.
talos.resource.definitions.enums.BlockFSParameterType type = 1;
// Name of the parameter.
string name = 2;
// String value of the parameter.
string string = 3;
// Binary value of the parameter.
bytes binary = 5;
}
// PartitionSpec is the spec for volume partitioning.
message PartitionSpec {
// Partition minimum size in bytes.
uint64 min_size = 1;
// Partition maximum size in bytes, if not set, grows to the maximum size.
uint64 max_size = 2;
// Grow the partition automatically to the maximum size.
bool grow = 3;
// Label for the partition.
string label = 4;
// Partition type UUID.
string type_uuid = 5;
// Partition maximum size (relative), if not set, grows to the maximum size.
uint64 relative_max_size = 6;
// NegativeMaxSize indicates that MaxSize or RelativeMaxSize represents space to be left free on the device rather than space to consume.
bool negative_max_size = 7;
}
// ProvisioningSpec is the spec for volume provisioning.
message ProvisioningSpec {
// DiskSelector selects a disk for the volume.
DiskSelector disk_selector = 1;
// PartitionSpec describes how to provision the volume (partition type).
PartitionSpec partition_spec = 2;
// Provisioning wave for the volume.
//
// Waves are processed sequentially - the volumes in the wave are only provisioned after the previous wave is done.
int64 wave = 3;
// FilesystemSpec describes how to provision the volume (filesystem type).
FilesystemSpec filesystem_spec = 4;
}
@ -195,7 +244,9 @@ message SwapStatusSpec {
// SymlinkProvisioningSpec is the spec for volume symlink.
message SymlinkProvisioningSpec {
// Symlink target path for the volume.
string symlink_target_path = 1;
// Force symlink creation.
bool force = 2;
}
@ -224,12 +275,19 @@ message UserDiskConfigStatusSpec {
// VolumeConfigSpec is the spec for VolumeConfig resource.
message VolumeConfigSpec {
// Parent volume ID, if set no operations on the volume continue until the parent volume is ready.
string parent_id = 1;
// Volume type.
talos.resource.definitions.enums.BlockVolumeType type = 2;
// Provisioning configuration (how to provision a volume).
ProvisioningSpec provisioning = 3;
// How to find a volume.
LocatorSpec locator = 4;
// Mount options for the volume.
MountSpec mount = 5;
// Encryption configuration (how to encrypt a volume).
EncryptionSpec encryption = 6;
// Symlink options for the volume.
SymlinkProvisioningSpec symlink = 7;
}
@ -257,26 +315,38 @@ message VolumeMountStatusSpec {
// VolumeStatusSpec is the spec for VolumeStatus resource.
message VolumeStatusSpec {
talos.resource.definitions.enums.BlockVolumePhase phase = 1;
// Location is the path to the block device (raw).
string location = 2;
string error_message = 3;
string uuid = 4;
string partition_uuid = 5;
talos.resource.definitions.enums.BlockVolumePhase pre_fail_phase = 6;
// ParentLocation (if present) is the location of the parent block device for partitions.
string parent_location = 7;
int64 partition_index = 8;
uint64 size = 9;
// Filesystem is the filesystem type.
talos.resource.definitions.enums.BlockFilesystemType filesystem = 10;
// MountLocation is the location to be mounted, might be different from location.
string mount_location = 11;
// EncryptionProvider is the provider of the encryption which was used to unlock the volume.
talos.resource.definitions.enums.BlockEncryptionProviderType encryption_provider = 12;
string pretty_size = 13;
// EncryptionFailedSyncs is the list of failed syncs for the volume (per key/provider).
repeated string encryption_failed_syncs = 14;
// MountSpec is the mount specification.
MountSpec mount_spec = 15;
talos.resource.definitions.enums.BlockVolumeType type = 16;
// ConfiguredEncryptionKeys is the list of configured encryption keys for the volume.
repeated string configured_encryption_keys = 17;
// Symlink is the symlink specification.
SymlinkProvisioningSpec symlink_spec = 18;
string parent_id = 19;
// EncryptionLockedToState indicates if the encryption is locked to STATE partition
bool encryption_locked_to_state = 20;
// EncryptionSlot indicates the currently used encryption slot used for decryption.
int64 encryption_slot = 21;
// TPMEncryptionOptions is the options for TPM-based encryption.
TPMEncryptionOptionsInfo tpm_encryption_options = 22;
}

View File

@ -41,6 +41,8 @@ message ControlPlane {
// Note: IdentitySpec is persisted on disk in the STATE partition,
// so YAML serialization should be kept backwards compatible.
message IdentitySpec {
// NodeID is a random value which is persisted across reboots,
// but it gets reset on wipe.
string node_id = 1;
}

View File

@ -47,7 +47,9 @@ message ProcessorSpec {
string socket = 1;
string manufacturer = 2;
string product_name = 3;
// MaxSpeed is in megahertz (MHz).
uint32 max_speed = 4;
// BootSpeed is in megahertz (MHz).
uint32 boot_speed = 5;
uint32 status = 6;
string serial_number = 7;

View File

@ -173,6 +173,9 @@ message KubeletConfigSpec {
// KubeletKubeconfigSpec describes the current kubelet kubeconfig file.
message KubeletKubeconfigSpec {
// Hash is a content digest of the kubeconfig file. It changes whenever the
// file contents change, which is the signal consumers use to rebuild their
// Kubernetes clients.
string hash = 1;
}

View File

@ -14,12 +14,19 @@ message ConfigSpec {
bool enabled = 1;
string cluster_id = 2;
string shared_secret = 3;
// Force routing via KubeSpan even if the peer connection is not up.
bool force_routing = 4;
// Advertise Kubernetes pod networks or skip it completely.
bool advertise_kubernetes_networks = 5;
// Force kubeSpan MTU size.
uint32 mtu = 6;
// If not empty, filter advertised endpoints using the list of CIDRs.
repeated string endpoint_filters = 7;
// Harvest endpoints from the peer statuses.
bool harvest_extra_endpoints = 8;
// Extra endpoints to announce.
repeated common.NetIPPort extra_endpoints = 9;
// If not empty, filter advertised networks using the list of CIDRs.
repeated common.NetIPPrefix exclude_advertised_networks = 10;
}
@ -34,8 +41,10 @@ message EndpointSpec {
// Note: IdentitySpec is persisted on disk in the STATE partition,
// so YAML serialization should be kept backwards compatible.
message IdentitySpec {
// Address of the node on the Wireguard network.
common.NetIPPrefix address = 1;
common.NetIPPrefix subnet = 2;
// Public and private Wireguard keys.
string private_key = 3;
string public_key = 4;
}
@ -50,12 +59,18 @@ message PeerSpecSpec {
// PeerStatusSpec describes PeerStatus state.
message PeerStatusSpec {
// Active endpoint as seen by the Wireguard.
common.NetIPPort endpoint = 1;
// Label derived from the peer spec.
string label = 2;
// Calculated state.
talos.resource.definitions.enums.KubespanPeerState state = 3;
// Tx/Rx bytes.
int64 receive_bytes = 4;
int64 transmit_bytes = 5;
// Handshake.
google.protobuf.Timestamp last_handshake_time = 6;
// Endpoint selection input.
common.NetIPPort last_used_endpoint = 7;
google.protobuf.Timestamp last_endpoint_change = 8;
}

View File

@ -39,39 +39,74 @@ message AddressStatusSpec {
// BondMasterSpec describes bond settings if Kind == "bond".
message BondMasterSpec {
// Mode specifies the bonding policy
talos.resource.definitions.enums.NethelpersBondMode mode = 1;
// HashPolicy selects the transmit hash policy to use for slave selection.
talos.resource.definitions.enums.NethelpersBondXmitHashPolicy hash_policy = 2;
// LACPRate specifies the rate at which LACPDU frames are sent.
talos.resource.definitions.enums.NethelpersLACPRate lacp_rate = 3;
// ARPValidate specifies whether or not ARP probes and replies should be validated.
talos.resource.definitions.enums.NethelpersARPValidate arp_validate = 4;
// ARPAllTargets specifies whether ARP probes should be sent to any or all targets.
talos.resource.definitions.enums.NethelpersARPAllTargets arp_all_targets = 5;
// PrimaryIndex is a device index specifying which slave is the primary device.
uint32 primary_index = 6;
// PrimaryReselect specifies the policy under which the primary slave should be reselected.
talos.resource.definitions.enums.NethelpersPrimaryReselect primary_reselect = 7;
// FailOverMac whether active-backup mode should set all slaves to the same MAC address at enslavement, when enabled, or perform special handling.
talos.resource.definitions.enums.NethelpersFailOverMAC fail_over_mac = 8;
// ADSelect specifies the aggregate selection policy for 802.3ad.
talos.resource.definitions.enums.NethelpersADSelect ad_select = 9;
// MIIMon is the link monitoring frequency in milliseconds.
uint32 mii_mon = 10;
// UpDelay is the time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.
uint32 up_delay = 11;
// DownDelay is the time, in milliseconds, to wait before disabling a slave after a link failure has been detected.
uint32 down_delay = 12;
// ARPInterval is the ARP link monitoring frequency in milliseconds.
uint32 arp_interval = 13;
// ResendIGMP specifies the number of times IGMP packets should be resent.
uint32 resend_igmp = 14;
// MinLinks specifies the minimum number of active links to assert carrier.
uint32 min_links = 15;
// LPInterval specifies the number of seconds between instances where the bonding driver sends learning packets to each slave's peer switch.
uint32 lp_interval = 16;
// PacketsPerSlave specifies the number of packets to transmit through a slave before moving to the next one.
uint32 packets_per_slave = 17;
// NumPeerNotif specifies the number of peer notifications
// (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements) to be issued after a failover event.
uint32 num_peer_notif = 18;
// TLBDynamicLB specifies if dynamic shuffling of flows is enabled in tlb or alb mode.
uint32 tlb_dynamic_lb = 19;
// AllSlavesActive specifies that duplicate frames (received on inactive ports) should be dropped (0) or delivered (1).
uint32 all_slaves_active = 20;
// UseCarrier specifies whether or not miimon should use MII or ETHTOOL.
bool use_carrier = 21;
// ADActorSysPrio is the actor system priority for 802.3ad.
uint32 ad_actor_sys_prio = 22;
// ADUserPortKey is the user port key (upper 10 bits) for 802.3ad.
uint32 ad_user_port_key = 23;
// PeerNotifyDelay is the delay, in milliseconds, between each peer notification.
uint32 peer_notify_delay = 24;
// ARPIPTargets is the list of IP addresses to use for ARP link monitoring when ARPInterval is set.
//
// Maximum of 16 targets are supported.
repeated common.NetIP arpip_targets = 25;
// NSIP6Targets is the list of IPv6 addresses to use for NS link monitoring when ARPInterval is set.
//
// Maximum of 16 targets are supported.
repeated common.NetIP nsip6_targets = 26;
// ADLACPActive specifies whether to send LACPDU frames periodically.
talos.resource.definitions.enums.NethelpersADLACPActive adlacp_active = 27;
// MissedMax is the number of arp_interval monitor checks that must fail in order for an interface to be marked down by the ARP monitor.
uint32 missed_max = 28;
}
// BondSlave contains a bond's master name and slave index.
message BondSlave {
// MasterName indicates master link for enslaved bonded interfaces.
string master_name = 1;
// SlaveIndex indicates a slave's position in bond.
int64 slave_index = 2;
}
@ -83,6 +118,7 @@ message BridgeMasterSpec {
// BridgeSlave contains the name of the master bridge of a bridged interface
message BridgeSlave {
// MasterName indicates master link for enslaved bridged interfaces.
string master_name = 1;
}
@ -126,10 +162,12 @@ message EthernetChannelsSpec {
// EthernetChannelsStatus describes status of Ethernet channels.
message EthernetChannelsStatus {
// Read-only settings.
uint32 rx_max = 1;
uint32 tx_max = 2;
uint32 other_max = 3;
uint32 combined_max = 4;
// Current settings (read-write).
uint32 rx = 5;
uint32 tx = 6;
uint32 other = 7;
@ -158,11 +196,13 @@ message EthernetRingsSpec {
// EthernetRingsStatus describes status of Ethernet rings.
message EthernetRingsStatus {
// Read-only settings.
uint32 rx_max = 1;
uint32 rx_mini_max = 2;
uint32 rx_jumbo_max = 3;
uint32 tx_max = 4;
uint32 tx_push_buf_len_max = 5;
// Current settings (read-write).
uint32 rx = 6;
uint32 rx_mini = 7;
uint32 rx_jumbo = 8;
@ -199,7 +239,9 @@ message EthernetStatusSpec {
// HardwareAddrSpec describes spec for the link.
message HardwareAddrSpec {
// Name defines link name
string name = 1;
// Hardware address
bytes hardware_addr = 2;
}
@ -236,23 +278,38 @@ message LinkRefreshSpec {
// LinkSpecSpec describes spec for the link.
message LinkSpecSpec {
// Name defines link name
string name = 1;
// Logical describes if the interface should be created on the fly if it doesn't exist.
bool logical = 2;
// If Up is true, bring interface up, otherwise bring interface down.
//
// TODO: make *bool ?
bool up = 3;
// Interface MTU (always applies).
uint32 mtu = 4;
// Kind and Type are only required for Logical interfaces.
string kind = 5;
talos.resource.definitions.enums.NethelpersLinkType type = 6;
// ParentName indicates link parent for VLAN interfaces.
string parent_name = 7;
// BondSlave contains bond slave configuration for interfaces enslaved to a bond.
BondSlave bond_slave = 8;
// BridgeSlave carries bridge slave details for bridged interfaces.
BridgeSlave bridge_slave = 9;
// These structures are present depending on "Kind" for Logical interfaces.
VLANSpec vlan = 10;
BondMasterSpec bond_master = 11;
BridgeMasterSpec bridge_master = 12;
WireguardSpec wireguard = 13;
// Configuration layer.
talos.resource.definitions.enums.NetworkConfigLayer config_layer = 14;
// Override hardware (MAC) address (if supported).
bytes hardware_address = 15;
// Multicast indicates whether the multicast flag should be set on the interface to the value.
bool multicast = 16;
VRFMasterSpec vrf_master = 17;
// VRFSlave carries VRF slave details for interfaces in a VRF.
VRFSlave vrf_slave = 18;
}
@ -279,15 +336,18 @@ message LinkStatusSpec {
string vendor_id = 19;
string product = 20;
string vendor = 21;
// Fields coming from ethtool API.
bool link_state = 22;
int64 speed_megabits = 23;
talos.resource.definitions.enums.NethelpersPort port = 24;
talos.resource.definitions.enums.NethelpersDuplex duplex = 25;
// Following fields are only populated with respective Kind.
VLANSpec vlan = 26;
BridgeMasterSpec bridge_master = 27;
BondMasterSpec bond_master = 28;
WireguardSpec wireguard = 29;
bytes permanent_addr = 30;
// Fields coming from rtnetlink API.
string alias = 31;
repeated string alt_names = 32;
VRFMasterSpec vrf_master = 33;
@ -383,7 +443,9 @@ message NfTablesRule {
// NodeAddressFilterSpec describes a filter for NodeAddresses.
message NodeAddressFilterSpec {
// Address is skipped if it doesn't match any of the includeSubnets (if includeSubnets is not empty).
repeated common.NetIPPrefix include_subnets = 1;
// Address is skipped if it matches any of the excludeSubnets.
repeated common.NetIPPrefix exclude_subnets = 2;
}
@ -436,15 +498,21 @@ message PortRange {
// ProbeSpecSpec describes the Probe.
message ProbeSpecSpec {
// Interval between the probes.
google.protobuf.Duration interval = 1;
// FailureThreshold is the number of consecutive failures for the probe to be considered failed after having succeeded.
int64 failure_threshold = 2;
// One of the probe types should be specified, for now it's only TCP.
TCPProbeSpec tcp = 3;
// Configuration layer.
talos.resource.definitions.enums.NetworkConfigLayer config_layer = 4;
}
// ProbeStatusSpec describes the Probe.
message ProbeStatusSpec {
// Success of the check.
bool success = 1;
// Last error of the probe.
string last_error = 2;
}
@ -539,7 +607,9 @@ message StatusSpec {
// TCPProbeSpec describes the TCP Probe.
message TCPProbeSpec {
// Endpoint to probe: host:port.
string endpoint = 1;
// Timeout for the probe.
google.protobuf.Duration timeout = 2;
}
@ -580,7 +650,9 @@ message VIPOperatorSpec {
// VLANSpec describes VLAN settings if Kind == "vlan".
message VLANSpec {
// VID is the vlan ID.
uint32 vid = 1;
// Protocol is the vlan protocol.
talos.resource.definitions.enums.NethelpersVLANProtocol protocol = 2;
}
@ -605,7 +677,9 @@ message WireguardPeer {
// WireguardSpec describes Wireguard settings if Kind == "wireguard".
message WireguardSpec {
// PrivateKey is used to configure the link, present only in the LinkSpec.
string private_key = 1;
// PublicKey is only used in LinkStatus to show the link status.
string public_key = 2;
int64 listen_port = 3;
int64 firewall_mark = 4;

View File

@ -24,12 +24,15 @@ message BootedEntrySpec {
// DevicesStatusSpec is the spec for devices status.
message DevicesStatusSpec {
// Devices are settled down and ready to be used.
bool ready = 1;
}
// DiagnosticSpec is the spec for devices status.
message DiagnosticSpec {
// Short message describing the problem.
string message = 1;
// Details about the problem.
repeated string details = 2;
}
@ -181,7 +184,9 @@ message SecurityStateSpec {
// ServicePIDSpec is the spec for the service PID.
message ServicePIDSpec {
// PID is the host PID of the service.
int32 pid = 1;
// MountNamespace is the mount namespace of the service.
string mount_namespace = 2;
}

View File

@ -12,6 +12,7 @@ message APICertsSpec {
common.PEMEncodedCertificateAndKey client = 2;
common.PEMEncodedCertificateAndKey server = 3;
repeated common.PEMEncodedCertificate accepted_c_as = 4;
// Skip verifying client certificate, to be used only with the maintenance mode operations.
bool skip_verifying_client_cert = 5;
}
@ -52,6 +53,7 @@ message KubeletSpec {
message KubernetesCertsSpec {
string scheduler_kubeconfig = 4;
string controller_manager_kubeconfig = 5;
// Admin-level kubeconfig with access through the localhost endpoint and cluster endpoints.
string localhost_admin_kubeconfig = 6;
string admin_kubeconfig = 7;
}

View File

@ -9,28 +9,39 @@ import "google/protobuf/timestamp.proto";
// ImageKeylessVerifierSpec represents a signature verification provider.
message ImageKeylessVerifierSpec {
// Issuer is the OIDC issuer URL.
string issuer = 1;
// Subject is the expected subject.
string subject = 2;
// SubjectRegex is a regex pattern for subject matching.
string subject_regex = 3;
}
// ImagePublicKeyVerifierSpec represents a signature verification provider with static public key.
message ImagePublicKeyVerifierSpec {
// Certificate is a public certificate in PEM format accepted for image signature verification.
string certificate = 1;
}
// ImageVerificationRuleSpec represents a verification rule.
message ImageVerificationRuleSpec {
// ImagePattern is the image name pattern.
string image_pattern = 2;
// Skip is the action for matching images.
bool skip = 3;
// Deny is the action for matching images.
bool deny = 4;
// KeylessVerifier is the keyless verifier configuration to use.
ImageKeylessVerifierSpec keyless_verifier = 5;
// PublicKeyVerifier is the public key verifier configuration to use.
ImagePublicKeyVerifierSpec public_key_verifier = 6;
}
// TUFTrustedRootSpec represents a sigstore's TUF trusted root information.
message TUFTrustedRootSpec {
// LastRefreshTime is the last time the trusted root was refreshed.
google.protobuf.Timestamp last_refresh_time = 1;
// JSONData is the trusted root data in JSON format.
string json_data = 2;
}

View File

@ -18,17 +18,26 @@ message ConfigSpec {
// StatusSpec describes Siderolink status.
message StatusSpec {
// Host is the Siderolink target host.
string host = 1;
// Connected is the status of the Siderolink GRPC connection.
bool connected = 2;
// LinkName is the name of the interface used for the Siderolink tunnel.
string link_name = 3;
// GRPCTunnel is true if the Wireguard-over-GRPC tunnel is being used.
bool grpc_tunnel = 4;
}
// TunnelSpec describes Siderolink GRPC Tunnel configuration.
message TunnelSpec {
// APIEndpoint is the Siderolink WireGuard over GRPC endpoint.
string api_endpoint = 1;
// LinkName is the name to use for WireGuard tunnel.
string link_name = 2;
// MTU is the maximum transmission unit for the tunnel.
int64 mtu = 3;
// NodeAddress is the virtual address of our node. It's used to identify our node in the WireGuard GRPC streamer.
// It's not the address of the actual WireGuard interface.
common.NetIPPort node_address = 4;
}

View File

@ -21,8 +21,11 @@ message AdjtimeStatusSpec {
// StatusSpec describes time sync state.
message StatusSpec {
// Synced indicates whether time is in sync.
bool synced = 1;
// Epoch is incremented every time clock jumps more than 15min.
int64 epoch = 2;
// SyncDisabled indicates if time sync is disabled.
bool sync_disabled = 3;
}

View File

@ -33,12 +33,17 @@ type DeviceSpec struct {
Minor int64 `protobuf:"varint,3,opt,name=minor,proto3" json:"minor,omitempty"`
PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"`
PartitionNumber int64 `protobuf:"varint,5,opt,name=partition_number,json=partitionNumber,proto3" json:"partition_number,omitempty"`
Generation int64 `protobuf:"varint,6,opt,name=generation,proto3" json:"generation,omitempty"`
DevicePath string `protobuf:"bytes,7,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
Parent string `protobuf:"bytes,8,opt,name=parent,proto3" json:"parent,omitempty"`
Secondaries []string `protobuf:"bytes,9,rep,name=secondaries,proto3" json:"secondaries,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
// Generation is bumped every time the device might have changed and might need to be re-probed.
Generation int64 `protobuf:"varint,6,opt,name=generation,proto3" json:"generation,omitempty"`
DevicePath string `protobuf:"bytes,7,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
// Parent (if set) specifies the parent device ID.
Parent string `protobuf:"bytes,8,opt,name=parent,proto3" json:"parent,omitempty"`
// Secondaries (if set) specifies the secondary device IDs.
//
// E.g. for a LVM volume secondary is a list of blockdevices that the volume consists of.
Secondaries []string `protobuf:"bytes,9,rep,name=secondaries,proto3" json:"secondaries,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeviceSpec) Reset() {
@ -136,29 +141,33 @@ func (x *DeviceSpec) GetSecondaries() []string {
// DiscoveredVolumeSpec is the spec for DiscoveredVolumes resource.
type DiscoveredVolumeSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"`
SectorSize uint64 `protobuf:"varint,2,opt,name=sector_size,json=sectorSize,proto3" json:"sector_size,omitempty"`
IoSize uint64 `protobuf:"varint,3,opt,name=io_size,json=ioSize,proto3" json:"io_size,omitempty"`
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
Uuid string `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"`
Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"`
BlockSize uint32 `protobuf:"varint,7,opt,name=block_size,json=blockSize,proto3" json:"block_size,omitempty"`
FilesystemBlockSize uint32 `protobuf:"varint,8,opt,name=filesystem_block_size,json=filesystemBlockSize,proto3" json:"filesystem_block_size,omitempty"`
ProbedSize uint64 `protobuf:"varint,9,opt,name=probed_size,json=probedSize,proto3" json:"probed_size,omitempty"`
PartitionUuid string `protobuf:"bytes,10,opt,name=partition_uuid,json=partitionUuid,proto3" json:"partition_uuid,omitempty"`
PartitionType string `protobuf:"bytes,11,opt,name=partition_type,json=partitionType,proto3" json:"partition_type,omitempty"`
PartitionLabel string `protobuf:"bytes,12,opt,name=partition_label,json=partitionLabel,proto3" json:"partition_label,omitempty"`
PartitionIndex uint64 `protobuf:"varint,13,opt,name=partition_index,json=partitionIndex,proto3" json:"partition_index,omitempty"`
Type string `protobuf:"bytes,14,opt,name=type,proto3" json:"type,omitempty"`
DevicePath string `protobuf:"bytes,15,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
Parent string `protobuf:"bytes,16,opt,name=parent,proto3" json:"parent,omitempty"`
DevPath string `protobuf:"bytes,17,opt,name=dev_path,json=devPath,proto3" json:"dev_path,omitempty"`
ParentDevPath string `protobuf:"bytes,18,opt,name=parent_dev_path,json=parentDevPath,proto3" json:"parent_dev_path,omitempty"`
PrettySize string `protobuf:"bytes,19,opt,name=pretty_size,json=prettySize,proto3" json:"pretty_size,omitempty"`
Offset uint64 `protobuf:"varint,20,opt,name=offset,proto3" json:"offset,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Overall size of the probed device (in bytes).
Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"`
// Sector size of the device (in bytes).
SectorSize uint64 `protobuf:"varint,2,opt,name=sector_size,json=sectorSize,proto3" json:"sector_size,omitempty"`
// Optimal I/O size for the device (in bytes).
IoSize uint64 `protobuf:"varint,3,opt,name=io_size,json=ioSize,proto3" json:"io_size,omitempty"`
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
Uuid string `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"`
Label string `protobuf:"bytes,6,opt,name=label,proto3" json:"label,omitempty"`
BlockSize uint32 `protobuf:"varint,7,opt,name=block_size,json=blockSize,proto3" json:"block_size,omitempty"`
FilesystemBlockSize uint32 `protobuf:"varint,8,opt,name=filesystem_block_size,json=filesystemBlockSize,proto3" json:"filesystem_block_size,omitempty"`
ProbedSize uint64 `protobuf:"varint,9,opt,name=probed_size,json=probedSize,proto3" json:"probed_size,omitempty"`
PartitionUuid string `protobuf:"bytes,10,opt,name=partition_uuid,json=partitionUuid,proto3" json:"partition_uuid,omitempty"`
PartitionType string `protobuf:"bytes,11,opt,name=partition_type,json=partitionType,proto3" json:"partition_type,omitempty"`
PartitionLabel string `protobuf:"bytes,12,opt,name=partition_label,json=partitionLabel,proto3" json:"partition_label,omitempty"`
PartitionIndex uint64 `protobuf:"varint,13,opt,name=partition_index,json=partitionIndex,proto3" json:"partition_index,omitempty"`
Type string `protobuf:"bytes,14,opt,name=type,proto3" json:"type,omitempty"`
DevicePath string `protobuf:"bytes,15,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
Parent string `protobuf:"bytes,16,opt,name=parent,proto3" json:"parent,omitempty"`
DevPath string `protobuf:"bytes,17,opt,name=dev_path,json=devPath,proto3" json:"dev_path,omitempty"`
ParentDevPath string `protobuf:"bytes,18,opt,name=parent_dev_path,json=parentDevPath,proto3" json:"parent_dev_path,omitempty"`
PrettySize string `protobuf:"bytes,19,opt,name=pretty_size,json=prettySize,proto3" json:"pretty_size,omitempty"`
// Offset of the partition/volume inside Parent device (in bytes).
Offset uint64 `protobuf:"varint,20,opt,name=offset,proto3" json:"offset,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DiscoveredVolumeSpec) Reset() {
@ -476,25 +485,29 @@ func (x *DiskSelector) GetExternal() string {
// DiskSpec is the spec for Disks status.
type DiskSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"`
IoSize uint64 `protobuf:"varint,2,opt,name=io_size,json=ioSize,proto3" json:"io_size,omitempty"`
SectorSize uint64 `protobuf:"varint,3,opt,name=sector_size,json=sectorSize,proto3" json:"sector_size,omitempty"`
Readonly bool `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"`
Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"`
Serial string `protobuf:"bytes,6,opt,name=serial,proto3" json:"serial,omitempty"`
Modalias string `protobuf:"bytes,7,opt,name=modalias,proto3" json:"modalias,omitempty"`
Wwid string `protobuf:"bytes,8,opt,name=wwid,proto3" json:"wwid,omitempty"`
BusPath string `protobuf:"bytes,9,opt,name=bus_path,json=busPath,proto3" json:"bus_path,omitempty"`
SubSystem string `protobuf:"bytes,10,opt,name=sub_system,json=subSystem,proto3" json:"sub_system,omitempty"`
Transport string `protobuf:"bytes,11,opt,name=transport,proto3" json:"transport,omitempty"`
Rotational bool `protobuf:"varint,12,opt,name=rotational,proto3" json:"rotational,omitempty"`
Cdrom bool `protobuf:"varint,13,opt,name=cdrom,proto3" json:"cdrom,omitempty"`
DevPath string `protobuf:"bytes,14,opt,name=dev_path,json=devPath,proto3" json:"dev_path,omitempty"`
PrettySize string `protobuf:"bytes,15,opt,name=pretty_size,json=prettySize,proto3" json:"pretty_size,omitempty"`
SecondaryDisks []string `protobuf:"bytes,16,rep,name=secondary_disks,json=secondaryDisks,proto3" json:"secondary_disks,omitempty"`
Uuid string `protobuf:"bytes,17,opt,name=uuid,proto3" json:"uuid,omitempty"`
Symlinks []string `protobuf:"bytes,18,rep,name=symlinks,proto3" json:"symlinks,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"`
IoSize uint64 `protobuf:"varint,2,opt,name=io_size,json=ioSize,proto3" json:"io_size,omitempty"`
SectorSize uint64 `protobuf:"varint,3,opt,name=sector_size,json=sectorSize,proto3" json:"sector_size,omitempty"`
Readonly bool `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"`
Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"`
Serial string `protobuf:"bytes,6,opt,name=serial,proto3" json:"serial,omitempty"`
Modalias string `protobuf:"bytes,7,opt,name=modalias,proto3" json:"modalias,omitempty"`
Wwid string `protobuf:"bytes,8,opt,name=wwid,proto3" json:"wwid,omitempty"`
BusPath string `protobuf:"bytes,9,opt,name=bus_path,json=busPath,proto3" json:"bus_path,omitempty"`
SubSystem string `protobuf:"bytes,10,opt,name=sub_system,json=subSystem,proto3" json:"sub_system,omitempty"`
Transport string `protobuf:"bytes,11,opt,name=transport,proto3" json:"transport,omitempty"`
Rotational bool `protobuf:"varint,12,opt,name=rotational,proto3" json:"rotational,omitempty"`
Cdrom bool `protobuf:"varint,13,opt,name=cdrom,proto3" json:"cdrom,omitempty"`
DevPath string `protobuf:"bytes,14,opt,name=dev_path,json=devPath,proto3" json:"dev_path,omitempty"`
PrettySize string `protobuf:"bytes,15,opt,name=pretty_size,json=prettySize,proto3" json:"pretty_size,omitempty"`
// SecondaryDisks (if set) specifies the secondary disk IDs.
//
// E.g. if the blockdevice secondary is vda5, the secondary disk will be set as vda.
// This allows to map secondaries between disks ignoring the partitions.
SecondaryDisks []string `protobuf:"bytes,16,rep,name=secondary_disks,json=secondaryDisks,proto3" json:"secondary_disks,omitempty"`
Uuid string `protobuf:"bytes,17,opt,name=uuid,proto3" json:"uuid,omitempty"`
Symlinks []string `protobuf:"bytes,18,rep,name=symlinks,proto3" json:"symlinks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -657,17 +670,22 @@ func (x *DiskSpec) GetSymlinks() []string {
// EncryptionKey is the spec for volume encryption key.
type EncryptionKey struct {
state protoimpl.MessageState `protogen:"open.v1"`
Slot int64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"`
Type enums.BlockEncryptionKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockEncryptionKeyType" json:"type,omitempty"`
StaticPassphrase []byte `protobuf:"bytes,3,opt,name=static_passphrase,json=staticPassphrase,proto3" json:"static_passphrase,omitempty"`
KmsEndpoint string `protobuf:"bytes,4,opt,name=kms_endpoint,json=kmsEndpoint,proto3" json:"kms_endpoint,omitempty"`
TpmCheckSecurebootStatusOnEnroll bool `protobuf:"varint,5,opt,name=tpm_check_secureboot_status_on_enroll,json=tpmCheckSecurebootStatusOnEnroll,proto3" json:"tpm_check_secureboot_status_on_enroll,omitempty"`
LockToState bool `protobuf:"varint,6,opt,name=lock_to_state,json=lockToState,proto3" json:"lock_to_state,omitempty"`
TpmpcRs []int64 `protobuf:"varint,7,rep,packed,name=tpmpc_rs,json=tpmpcRs,proto3" json:"tpmpc_rs,omitempty"`
TpmPubKeyPcRs []int64 `protobuf:"varint,8,rep,packed,name=tpm_pub_key_pc_rs,json=tpmPubKeyPcRs,proto3" json:"tpm_pub_key_pc_rs,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
Slot int64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"`
Type enums.BlockEncryptionKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockEncryptionKeyType" json:"type,omitempty"`
// Only for Type == "static":
StaticPassphrase []byte `protobuf:"bytes,3,opt,name=static_passphrase,json=staticPassphrase,proto3" json:"static_passphrase,omitempty"`
// Only for Type == "kms":
KmsEndpoint string `protobuf:"bytes,4,opt,name=kms_endpoint,json=kmsEndpoint,proto3" json:"kms_endpoint,omitempty"`
// Only for Type == "tpm":
TpmCheckSecurebootStatusOnEnroll bool `protobuf:"varint,5,opt,name=tpm_check_secureboot_status_on_enroll,json=tpmCheckSecurebootStatusOnEnroll,proto3" json:"tpm_check_secureboot_status_on_enroll,omitempty"`
LockToState bool `protobuf:"varint,6,opt,name=lock_to_state,json=lockToState,proto3" json:"lock_to_state,omitempty"`
// Only for Type == "tpm":
TpmpcRs []int64 `protobuf:"varint,7,rep,packed,name=tpmpc_rs,json=tpmpcRs,proto3" json:"tpmpc_rs,omitempty"`
// Only for Type == "tpm":
TpmPubKeyPcRs []int64 `protobuf:"varint,8,rep,packed,name=tpm_pub_key_pc_rs,json=tpmPubKeyPcRs,proto3" json:"tpm_pub_key_pc_rs,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EncryptionKey) Reset() {
@ -843,9 +861,11 @@ func (x *EncryptionSpec) GetPerfOptions() []string {
// FilesystemSpec is the spec for volume filesystem.
type FilesystemSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type enums.BlockFilesystemType `protobuf:"varint,1,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockFilesystemType" json:"type,omitempty"`
Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Filesystem type.
Type enums.BlockFilesystemType `protobuf:"varint,1,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockFilesystemType" json:"type,omitempty"`
// Filesystem label.
Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -896,9 +916,11 @@ func (x *FilesystemSpec) GetLabel() string {
// LocatorSpec is the spec for volume locator.
type LocatorSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Match *v1alpha1.CheckedExpr `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
DiskMatch *v1alpha1.CheckedExpr `protobuf:"bytes,2,opt,name=disk_match,json=diskMatch,proto3" json:"disk_match,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Match is a volume locator match expression.
Match *v1alpha1.CheckedExpr `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
// DiskMatch is a disk locator match expression.
DiskMatch *v1alpha1.CheckedExpr `protobuf:"bytes,2,opt,name=disk_match,json=diskMatch,proto3" json:"disk_match,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1050,19 +1072,29 @@ func (x *MountRequestSpec) GetSecure() bool {
// MountSpec is the spec for volume mount.
type MountSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
TargetPath string `protobuf:"bytes,1,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"`
SelinuxLabel string `protobuf:"bytes,2,opt,name=selinux_label,json=selinuxLabel,proto3" json:"selinux_label,omitempty"`
ProjectQuotaSupport bool `protobuf:"varint,3,opt,name=project_quota_support,json=projectQuotaSupport,proto3" json:"project_quota_support,omitempty"`
ParentId string `protobuf:"bytes,4,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
FileMode uint32 `protobuf:"varint,5,opt,name=file_mode,json=fileMode,proto3" json:"file_mode,omitempty"`
Uid int64 `protobuf:"varint,6,opt,name=uid,proto3" json:"uid,omitempty"`
Gid int64 `protobuf:"varint,7,opt,name=gid,proto3" json:"gid,omitempty"`
RecursiveRelabel bool `protobuf:"varint,8,opt,name=recursive_relabel,json=recursiveRelabel,proto3" json:"recursive_relabel,omitempty"`
BindTarget string `protobuf:"bytes,9,opt,name=bind_target,json=bindTarget,proto3" json:"bind_target,omitempty"`
Parameters []*ParameterSpec `protobuf:"bytes,10,rep,name=parameters,proto3" json:"parameters,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Mount path for the volume.
TargetPath string `protobuf:"bytes,1,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"`
// SELinux label for the volume.
SelinuxLabel string `protobuf:"bytes,2,opt,name=selinux_label,json=selinuxLabel,proto3" json:"selinux_label,omitempty"`
// Enable project quota (xfs) for the volume.
ProjectQuotaSupport bool `protobuf:"varint,3,opt,name=project_quota_support,json=projectQuotaSupport,proto3" json:"project_quota_support,omitempty"`
// Parent mount request ID.
ParentId string `protobuf:"bytes,4,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
// FileMode is the file mode for the mount target.
FileMode uint32 `protobuf:"varint,5,opt,name=file_mode,json=fileMode,proto3" json:"file_mode,omitempty"`
// UID is the user ID for the mount target.
Uid int64 `protobuf:"varint,6,opt,name=uid,proto3" json:"uid,omitempty"`
// GID is the group ID for the mount target.
Gid int64 `protobuf:"varint,7,opt,name=gid,proto3" json:"gid,omitempty"`
// RecursiveRelabel is the recursive relabel/chown flag for the mount target.
RecursiveRelabel bool `protobuf:"varint,8,opt,name=recursive_relabel,json=recursiveRelabel,proto3" json:"recursive_relabel,omitempty"`
// BindTarget is an optional path on the host to bind-mount the volume onto.
BindTarget string `protobuf:"bytes,9,opt,name=bind_target,json=bindTarget,proto3" json:"bind_target,omitempty"`
// Parameters are additional filesystem mount options used when mounting the volume.
Parameters []*ParameterSpec `protobuf:"bytes,10,rep,name=parameters,proto3" json:"parameters,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MountSpec) Reset() {
@ -1268,11 +1300,15 @@ func (x *MountStatusSpec) GetDetached() bool {
// ParameterSpec is a mount parameter.
type ParameterSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type enums.BlockFSParameterType `protobuf:"varint,1,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockFSParameterType" json:"type,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
String_ string `protobuf:"bytes,3,opt,name=string,proto3" json:"string,omitempty"`
Binary []byte `protobuf:"bytes,5,opt,name=binary,proto3" json:"binary,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Type of the parameter.
Type enums.BlockFSParameterType `protobuf:"varint,1,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockFSParameterType" json:"type,omitempty"`
// Name of the parameter.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// String value of the parameter.
String_ string `protobuf:"bytes,3,opt,name=string,proto3" json:"string,omitempty"`
// Binary value of the parameter.
Binary []byte `protobuf:"bytes,5,opt,name=binary,proto3" json:"binary,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1337,14 +1373,21 @@ func (x *ParameterSpec) GetBinary() []byte {
// PartitionSpec is the spec for volume partitioning.
type PartitionSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
MinSize uint64 `protobuf:"varint,1,opt,name=min_size,json=minSize,proto3" json:"min_size,omitempty"`
MaxSize uint64 `protobuf:"varint,2,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"`
Grow bool `protobuf:"varint,3,opt,name=grow,proto3" json:"grow,omitempty"`
Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"`
TypeUuid string `protobuf:"bytes,5,opt,name=type_uuid,json=typeUuid,proto3" json:"type_uuid,omitempty"`
RelativeMaxSize uint64 `protobuf:"varint,6,opt,name=relative_max_size,json=relativeMaxSize,proto3" json:"relative_max_size,omitempty"`
NegativeMaxSize bool `protobuf:"varint,7,opt,name=negative_max_size,json=negativeMaxSize,proto3" json:"negative_max_size,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Partition minimum size in bytes.
MinSize uint64 `protobuf:"varint,1,opt,name=min_size,json=minSize,proto3" json:"min_size,omitempty"`
// Partition maximum size in bytes, if not set, grows to the maximum size.
MaxSize uint64 `protobuf:"varint,2,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"`
// Grow the partition automatically to the maximum size.
Grow bool `protobuf:"varint,3,opt,name=grow,proto3" json:"grow,omitempty"`
// Label for the partition.
Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"`
// Partition type UUID.
TypeUuid string `protobuf:"bytes,5,opt,name=type_uuid,json=typeUuid,proto3" json:"type_uuid,omitempty"`
// Partition maximum size (relative), if not set, grows to the maximum size.
RelativeMaxSize uint64 `protobuf:"varint,6,opt,name=relative_max_size,json=relativeMaxSize,proto3" json:"relative_max_size,omitempty"`
// NegativeMaxSize indicates that MaxSize or RelativeMaxSize represents space to be left free on the device rather than space to consume.
NegativeMaxSize bool `protobuf:"varint,7,opt,name=negative_max_size,json=negativeMaxSize,proto3" json:"negative_max_size,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1430,11 +1473,17 @@ func (x *PartitionSpec) GetNegativeMaxSize() bool {
// ProvisioningSpec is the spec for volume provisioning.
type ProvisioningSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
DiskSelector *DiskSelector `protobuf:"bytes,1,opt,name=disk_selector,json=diskSelector,proto3" json:"disk_selector,omitempty"`
PartitionSpec *PartitionSpec `protobuf:"bytes,2,opt,name=partition_spec,json=partitionSpec,proto3" json:"partition_spec,omitempty"`
Wave int64 `protobuf:"varint,3,opt,name=wave,proto3" json:"wave,omitempty"`
FilesystemSpec *FilesystemSpec `protobuf:"bytes,4,opt,name=filesystem_spec,json=filesystemSpec,proto3" json:"filesystem_spec,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// DiskSelector selects a disk for the volume.
DiskSelector *DiskSelector `protobuf:"bytes,1,opt,name=disk_selector,json=diskSelector,proto3" json:"disk_selector,omitempty"`
// PartitionSpec describes how to provision the volume (partition type).
PartitionSpec *PartitionSpec `protobuf:"bytes,2,opt,name=partition_spec,json=partitionSpec,proto3" json:"partition_spec,omitempty"`
// Provisioning wave for the volume.
//
// Waves are processed sequentially - the volumes in the wave are only provisioned after the previous wave is done.
Wave int64 `protobuf:"varint,3,opt,name=wave,proto3" json:"wave,omitempty"`
// FilesystemSpec describes how to provision the volume (filesystem type).
FilesystemSpec *FilesystemSpec `protobuf:"bytes,4,opt,name=filesystem_spec,json=filesystemSpec,proto3" json:"filesystem_spec,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1592,11 +1641,13 @@ func (x *SwapStatusSpec) GetType() string {
// SymlinkProvisioningSpec is the spec for volume symlink.
type SymlinkProvisioningSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
SymlinkTargetPath string `protobuf:"bytes,1,opt,name=symlink_target_path,json=symlinkTargetPath,proto3" json:"symlink_target_path,omitempty"`
Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Symlink target path for the volume.
SymlinkTargetPath string `protobuf:"bytes,1,opt,name=symlink_target_path,json=symlinkTargetPath,proto3" json:"symlink_target_path,omitempty"`
// Force symlink creation.
Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SymlinkProvisioningSpec) Reset() {
@ -1849,13 +1900,20 @@ func (x *UserDiskConfigStatusSpec) GetTornDown() bool {
// VolumeConfigSpec is the spec for VolumeConfig resource.
type VolumeConfigSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
ParentId string `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
Type enums.BlockVolumeType `protobuf:"varint,2,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockVolumeType" json:"type,omitempty"`
Provisioning *ProvisioningSpec `protobuf:"bytes,3,opt,name=provisioning,proto3" json:"provisioning,omitempty"`
Locator *LocatorSpec `protobuf:"bytes,4,opt,name=locator,proto3" json:"locator,omitempty"`
Mount *MountSpec `protobuf:"bytes,5,opt,name=mount,proto3" json:"mount,omitempty"`
Encryption *EncryptionSpec `protobuf:"bytes,6,opt,name=encryption,proto3" json:"encryption,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Parent volume ID, if set no operations on the volume continue until the parent volume is ready.
ParentId string `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
// Volume type.
Type enums.BlockVolumeType `protobuf:"varint,2,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockVolumeType" json:"type,omitempty"`
// Provisioning configuration (how to provision a volume).
Provisioning *ProvisioningSpec `protobuf:"bytes,3,opt,name=provisioning,proto3" json:"provisioning,omitempty"`
// How to find a volume.
Locator *LocatorSpec `protobuf:"bytes,4,opt,name=locator,proto3" json:"locator,omitempty"`
// Mount options for the volume.
Mount *MountSpec `protobuf:"bytes,5,opt,name=mount,proto3" json:"mount,omitempty"`
// Encryption configuration (how to encrypt a volume).
Encryption *EncryptionSpec `protobuf:"bytes,6,opt,name=encryption,proto3" json:"encryption,omitempty"`
// Symlink options for the volume.
Symlink *SymlinkProvisioningSpec `protobuf:"bytes,7,opt,name=symlink,proto3" json:"symlink,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
@ -2120,31 +2178,43 @@ func (x *VolumeMountStatusSpec) GetSecure() bool {
// VolumeStatusSpec is the spec for VolumeStatus resource.
type VolumeStatusSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Phase enums.BlockVolumePhase `protobuf:"varint,1,opt,name=phase,proto3,enum=talos.resource.definitions.enums.BlockVolumePhase" json:"phase,omitempty"`
Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
Uuid string `protobuf:"bytes,4,opt,name=uuid,proto3" json:"uuid,omitempty"`
PartitionUuid string `protobuf:"bytes,5,opt,name=partition_uuid,json=partitionUuid,proto3" json:"partition_uuid,omitempty"`
PreFailPhase enums.BlockVolumePhase `protobuf:"varint,6,opt,name=pre_fail_phase,json=preFailPhase,proto3,enum=talos.resource.definitions.enums.BlockVolumePhase" json:"pre_fail_phase,omitempty"`
ParentLocation string `protobuf:"bytes,7,opt,name=parent_location,json=parentLocation,proto3" json:"parent_location,omitempty"`
PartitionIndex int64 `protobuf:"varint,8,opt,name=partition_index,json=partitionIndex,proto3" json:"partition_index,omitempty"`
Size uint64 `protobuf:"varint,9,opt,name=size,proto3" json:"size,omitempty"`
Filesystem enums.BlockFilesystemType `protobuf:"varint,10,opt,name=filesystem,proto3,enum=talos.resource.definitions.enums.BlockFilesystemType" json:"filesystem,omitempty"`
MountLocation string `protobuf:"bytes,11,opt,name=mount_location,json=mountLocation,proto3" json:"mount_location,omitempty"`
EncryptionProvider enums.BlockEncryptionProviderType `protobuf:"varint,12,opt,name=encryption_provider,json=encryptionProvider,proto3,enum=talos.resource.definitions.enums.BlockEncryptionProviderType" json:"encryption_provider,omitempty"`
PrettySize string `protobuf:"bytes,13,opt,name=pretty_size,json=prettySize,proto3" json:"pretty_size,omitempty"`
EncryptionFailedSyncs []string `protobuf:"bytes,14,rep,name=encryption_failed_syncs,json=encryptionFailedSyncs,proto3" json:"encryption_failed_syncs,omitempty"`
MountSpec *MountSpec `protobuf:"bytes,15,opt,name=mount_spec,json=mountSpec,proto3" json:"mount_spec,omitempty"`
Type enums.BlockVolumeType `protobuf:"varint,16,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockVolumeType" json:"type,omitempty"`
ConfiguredEncryptionKeys []string `protobuf:"bytes,17,rep,name=configured_encryption_keys,json=configuredEncryptionKeys,proto3" json:"configured_encryption_keys,omitempty"`
SymlinkSpec *SymlinkProvisioningSpec `protobuf:"bytes,18,opt,name=symlink_spec,json=symlinkSpec,proto3" json:"symlink_spec,omitempty"`
ParentId string `protobuf:"bytes,19,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
EncryptionLockedToState bool `protobuf:"varint,20,opt,name=encryption_locked_to_state,json=encryptionLockedToState,proto3" json:"encryption_locked_to_state,omitempty"`
EncryptionSlot int64 `protobuf:"varint,21,opt,name=encryption_slot,json=encryptionSlot,proto3" json:"encryption_slot,omitempty"`
TpmEncryptionOptions *TPMEncryptionOptionsInfo `protobuf:"bytes,22,opt,name=tpm_encryption_options,json=tpmEncryptionOptions,proto3" json:"tpm_encryption_options,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
Phase enums.BlockVolumePhase `protobuf:"varint,1,opt,name=phase,proto3,enum=talos.resource.definitions.enums.BlockVolumePhase" json:"phase,omitempty"`
// Location is the path to the block device (raw).
Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
Uuid string `protobuf:"bytes,4,opt,name=uuid,proto3" json:"uuid,omitempty"`
PartitionUuid string `protobuf:"bytes,5,opt,name=partition_uuid,json=partitionUuid,proto3" json:"partition_uuid,omitempty"`
PreFailPhase enums.BlockVolumePhase `protobuf:"varint,6,opt,name=pre_fail_phase,json=preFailPhase,proto3,enum=talos.resource.definitions.enums.BlockVolumePhase" json:"pre_fail_phase,omitempty"`
// ParentLocation (if present) is the location of the parent block device for partitions.
ParentLocation string `protobuf:"bytes,7,opt,name=parent_location,json=parentLocation,proto3" json:"parent_location,omitempty"`
PartitionIndex int64 `protobuf:"varint,8,opt,name=partition_index,json=partitionIndex,proto3" json:"partition_index,omitempty"`
Size uint64 `protobuf:"varint,9,opt,name=size,proto3" json:"size,omitempty"`
// Filesystem is the filesystem type.
Filesystem enums.BlockFilesystemType `protobuf:"varint,10,opt,name=filesystem,proto3,enum=talos.resource.definitions.enums.BlockFilesystemType" json:"filesystem,omitempty"`
// MountLocation is the location to be mounted, might be different from location.
MountLocation string `protobuf:"bytes,11,opt,name=mount_location,json=mountLocation,proto3" json:"mount_location,omitempty"`
// EncryptionProvider is the provider of the encryption which was used to unlock the volume.
EncryptionProvider enums.BlockEncryptionProviderType `protobuf:"varint,12,opt,name=encryption_provider,json=encryptionProvider,proto3,enum=talos.resource.definitions.enums.BlockEncryptionProviderType" json:"encryption_provider,omitempty"`
PrettySize string `protobuf:"bytes,13,opt,name=pretty_size,json=prettySize,proto3" json:"pretty_size,omitempty"`
// EncryptionFailedSyncs is the list of failed syncs for the volume (per key/provider).
EncryptionFailedSyncs []string `protobuf:"bytes,14,rep,name=encryption_failed_syncs,json=encryptionFailedSyncs,proto3" json:"encryption_failed_syncs,omitempty"`
// MountSpec is the mount specification.
MountSpec *MountSpec `protobuf:"bytes,15,opt,name=mount_spec,json=mountSpec,proto3" json:"mount_spec,omitempty"`
Type enums.BlockVolumeType `protobuf:"varint,16,opt,name=type,proto3,enum=talos.resource.definitions.enums.BlockVolumeType" json:"type,omitempty"`
// ConfiguredEncryptionKeys is the list of configured encryption keys for the volume.
ConfiguredEncryptionKeys []string `protobuf:"bytes,17,rep,name=configured_encryption_keys,json=configuredEncryptionKeys,proto3" json:"configured_encryption_keys,omitempty"`
// Symlink is the symlink specification.
SymlinkSpec *SymlinkProvisioningSpec `protobuf:"bytes,18,opt,name=symlink_spec,json=symlinkSpec,proto3" json:"symlink_spec,omitempty"`
ParentId string `protobuf:"bytes,19,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
// EncryptionLockedToState indicates if the encryption is locked to STATE partition
EncryptionLockedToState bool `protobuf:"varint,20,opt,name=encryption_locked_to_state,json=encryptionLockedToState,proto3" json:"encryption_locked_to_state,omitempty"`
// EncryptionSlot indicates the currently used encryption slot used for decryption.
EncryptionSlot int64 `protobuf:"varint,21,opt,name=encryption_slot,json=encryptionSlot,proto3" json:"encryption_slot,omitempty"`
// TPMEncryptionOptions is the options for TPM-based encryption.
TpmEncryptionOptions *TPMEncryptionOptionsInfo `protobuf:"bytes,22,opt,name=tpm_encryption_options,json=tpmEncryptionOptions,proto3" json:"tpm_encryption_options,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeStatusSpec) Reset() {

View File

@ -269,8 +269,10 @@ func (x *ControlPlane) GetApiServerPort() int64 {
// Note: IdentitySpec is persisted on disk in the STATE partition,
// so YAML serialization should be kept backwards compatible.
type IdentitySpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// NodeID is a random value which is persisted across reboots,
// but it gets reset on wipe.
NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -340,19 +340,21 @@ func (x *PCIDriverRebindStatusSpec) GetTargetDriver() string {
// ProcessorSpec represents a single processor.
type ProcessorSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Socket string `protobuf:"bytes,1,opt,name=socket,proto3" json:"socket,omitempty"`
Manufacturer string `protobuf:"bytes,2,opt,name=manufacturer,proto3" json:"manufacturer,omitempty"`
ProductName string `protobuf:"bytes,3,opt,name=product_name,json=productName,proto3" json:"product_name,omitempty"`
MaxSpeed uint32 `protobuf:"varint,4,opt,name=max_speed,json=maxSpeed,proto3" json:"max_speed,omitempty"`
BootSpeed uint32 `protobuf:"varint,5,opt,name=boot_speed,json=bootSpeed,proto3" json:"boot_speed,omitempty"`
Status uint32 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"`
SerialNumber string `protobuf:"bytes,7,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
AssetTag string `protobuf:"bytes,8,opt,name=asset_tag,json=assetTag,proto3" json:"asset_tag,omitempty"`
PartNumber string `protobuf:"bytes,9,opt,name=part_number,json=partNumber,proto3" json:"part_number,omitempty"`
CoreCount uint32 `protobuf:"varint,10,opt,name=core_count,json=coreCount,proto3" json:"core_count,omitempty"`
CoreEnabled uint32 `protobuf:"varint,11,opt,name=core_enabled,json=coreEnabled,proto3" json:"core_enabled,omitempty"`
ThreadCount uint32 `protobuf:"varint,12,opt,name=thread_count,json=threadCount,proto3" json:"thread_count,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
Socket string `protobuf:"bytes,1,opt,name=socket,proto3" json:"socket,omitempty"`
Manufacturer string `protobuf:"bytes,2,opt,name=manufacturer,proto3" json:"manufacturer,omitempty"`
ProductName string `protobuf:"bytes,3,opt,name=product_name,json=productName,proto3" json:"product_name,omitempty"`
// MaxSpeed is in megahertz (MHz).
MaxSpeed uint32 `protobuf:"varint,4,opt,name=max_speed,json=maxSpeed,proto3" json:"max_speed,omitempty"`
// BootSpeed is in megahertz (MHz).
BootSpeed uint32 `protobuf:"varint,5,opt,name=boot_speed,json=bootSpeed,proto3" json:"boot_speed,omitempty"`
Status uint32 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"`
SerialNumber string `protobuf:"bytes,7,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
AssetTag string `protobuf:"bytes,8,opt,name=asset_tag,json=assetTag,proto3" json:"asset_tag,omitempty"`
PartNumber string `protobuf:"bytes,9,opt,name=part_number,json=partNumber,proto3" json:"part_number,omitempty"`
CoreCount uint32 `protobuf:"varint,10,opt,name=core_count,json=coreCount,proto3" json:"core_count,omitempty"`
CoreEnabled uint32 `protobuf:"varint,11,opt,name=core_enabled,json=coreEnabled,proto3" json:"core_enabled,omitempty"`
ThreadCount uint32 `protobuf:"varint,12,opt,name=thread_count,json=threadCount,proto3" json:"thread_count,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -1419,8 +1419,11 @@ func (x *KubeletConfigSpec) GetExtraArgs() map[string]*ArgValues {
// KubeletKubeconfigSpec describes the current kubelet kubeconfig file.
type KubeletKubeconfigSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Hash is a content digest of the kubeconfig file. It changes whenever the
// file contents change, which is the signal consumers use to rebuild their
// Kubernetes clients.
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -28,19 +28,26 @@ const (
// ConfigSpec describes KubeSpan configuration..
type ConfigSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
SharedSecret string `protobuf:"bytes,3,opt,name=shared_secret,json=sharedSecret,proto3" json:"shared_secret,omitempty"`
ForceRouting bool `protobuf:"varint,4,opt,name=force_routing,json=forceRouting,proto3" json:"force_routing,omitempty"`
AdvertiseKubernetesNetworks bool `protobuf:"varint,5,opt,name=advertise_kubernetes_networks,json=advertiseKubernetesNetworks,proto3" json:"advertise_kubernetes_networks,omitempty"`
Mtu uint32 `protobuf:"varint,6,opt,name=mtu,proto3" json:"mtu,omitempty"`
EndpointFilters []string `protobuf:"bytes,7,rep,name=endpoint_filters,json=endpointFilters,proto3" json:"endpoint_filters,omitempty"`
HarvestExtraEndpoints bool `protobuf:"varint,8,opt,name=harvest_extra_endpoints,json=harvestExtraEndpoints,proto3" json:"harvest_extra_endpoints,omitempty"`
ExtraEndpoints []*common.NetIPPort `protobuf:"bytes,9,rep,name=extra_endpoints,json=extraEndpoints,proto3" json:"extra_endpoints,omitempty"`
ExcludeAdvertisedNetworks []*common.NetIPPrefix `protobuf:"bytes,10,rep,name=exclude_advertised_networks,json=excludeAdvertisedNetworks,proto3" json:"exclude_advertised_networks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
SharedSecret string `protobuf:"bytes,3,opt,name=shared_secret,json=sharedSecret,proto3" json:"shared_secret,omitempty"`
// Force routing via KubeSpan even if the peer connection is not up.
ForceRouting bool `protobuf:"varint,4,opt,name=force_routing,json=forceRouting,proto3" json:"force_routing,omitempty"`
// Advertise Kubernetes pod networks or skip it completely.
AdvertiseKubernetesNetworks bool `protobuf:"varint,5,opt,name=advertise_kubernetes_networks,json=advertiseKubernetesNetworks,proto3" json:"advertise_kubernetes_networks,omitempty"`
// Force kubeSpan MTU size.
Mtu uint32 `protobuf:"varint,6,opt,name=mtu,proto3" json:"mtu,omitempty"`
// If not empty, filter advertised endpoints using the list of CIDRs.
EndpointFilters []string `protobuf:"bytes,7,rep,name=endpoint_filters,json=endpointFilters,proto3" json:"endpoint_filters,omitempty"`
// Harvest endpoints from the peer statuses.
HarvestExtraEndpoints bool `protobuf:"varint,8,opt,name=harvest_extra_endpoints,json=harvestExtraEndpoints,proto3" json:"harvest_extra_endpoints,omitempty"`
// Extra endpoints to announce.
ExtraEndpoints []*common.NetIPPort `protobuf:"bytes,9,rep,name=extra_endpoints,json=extraEndpoints,proto3" json:"extra_endpoints,omitempty"`
// If not empty, filter advertised networks using the list of CIDRs.
ExcludeAdvertisedNetworks []*common.NetIPPrefix `protobuf:"bytes,10,rep,name=exclude_advertised_networks,json=excludeAdvertisedNetworks,proto3" json:"exclude_advertised_networks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ConfigSpec) Reset() {
@ -201,11 +208,13 @@ func (x *EndpointSpec) GetEndpoint() *common.NetIPPort {
// Note: IdentitySpec is persisted on disk in the STATE partition,
// so YAML serialization should be kept backwards compatible.
type IdentitySpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Address *common.NetIPPrefix `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Subnet *common.NetIPPrefix `protobuf:"bytes,2,opt,name=subnet,proto3" json:"subnet,omitempty"`
PrivateKey string `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
PublicKey string `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Address of the node on the Wireguard network.
Address *common.NetIPPrefix `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Subnet *common.NetIPPrefix `protobuf:"bytes,2,opt,name=subnet,proto3" json:"subnet,omitempty"`
// Public and private Wireguard keys.
PrivateKey string `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
PublicKey string `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -339,15 +348,21 @@ func (x *PeerSpecSpec) GetLabel() string {
// PeerStatusSpec describes PeerStatus state.
type PeerStatusSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Endpoint *common.NetIPPort `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
State enums.KubespanPeerState `protobuf:"varint,3,opt,name=state,proto3,enum=talos.resource.definitions.enums.KubespanPeerState" json:"state,omitempty"`
ReceiveBytes int64 `protobuf:"varint,4,opt,name=receive_bytes,json=receiveBytes,proto3" json:"receive_bytes,omitempty"`
TransmitBytes int64 `protobuf:"varint,5,opt,name=transmit_bytes,json=transmitBytes,proto3" json:"transmit_bytes,omitempty"`
LastHandshakeTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=last_handshake_time,json=lastHandshakeTime,proto3" json:"last_handshake_time,omitempty"`
LastUsedEndpoint *common.NetIPPort `protobuf:"bytes,7,opt,name=last_used_endpoint,json=lastUsedEndpoint,proto3" json:"last_used_endpoint,omitempty"`
LastEndpointChange *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_endpoint_change,json=lastEndpointChange,proto3" json:"last_endpoint_change,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Active endpoint as seen by the Wireguard.
Endpoint *common.NetIPPort `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
// Label derived from the peer spec.
Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
// Calculated state.
State enums.KubespanPeerState `protobuf:"varint,3,opt,name=state,proto3,enum=talos.resource.definitions.enums.KubespanPeerState" json:"state,omitempty"`
// Tx/Rx bytes.
ReceiveBytes int64 `protobuf:"varint,4,opt,name=receive_bytes,json=receiveBytes,proto3" json:"receive_bytes,omitempty"`
TransmitBytes int64 `protobuf:"varint,5,opt,name=transmit_bytes,json=transmitBytes,proto3" json:"transmit_bytes,omitempty"`
// Handshake.
LastHandshakeTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=last_handshake_time,json=lastHandshakeTime,proto3" json:"last_handshake_time,omitempty"`
// Endpoint selection input.
LastUsedEndpoint *common.NetIPPort `protobuf:"bytes,7,opt,name=last_used_endpoint,json=lastUsedEndpoint,proto3" json:"last_used_endpoint,omitempty"`
LastEndpointChange *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_endpoint_change,json=lastEndpointChange,proto3" json:"last_endpoint_change,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -255,37 +255,70 @@ func (x *AddressStatusSpec) GetPriority() uint32 {
// BondMasterSpec describes bond settings if Kind == "bond".
type BondMasterSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Mode enums.NethelpersBondMode `protobuf:"varint,1,opt,name=mode,proto3,enum=talos.resource.definitions.enums.NethelpersBondMode" json:"mode,omitempty"`
HashPolicy enums.NethelpersBondXmitHashPolicy `protobuf:"varint,2,opt,name=hash_policy,json=hashPolicy,proto3,enum=talos.resource.definitions.enums.NethelpersBondXmitHashPolicy" json:"hash_policy,omitempty"`
LacpRate enums.NethelpersLACPRate `protobuf:"varint,3,opt,name=lacp_rate,json=lacpRate,proto3,enum=talos.resource.definitions.enums.NethelpersLACPRate" json:"lacp_rate,omitempty"`
ArpValidate enums.NethelpersARPValidate `protobuf:"varint,4,opt,name=arp_validate,json=arpValidate,proto3,enum=talos.resource.definitions.enums.NethelpersARPValidate" json:"arp_validate,omitempty"`
ArpAllTargets enums.NethelpersARPAllTargets `protobuf:"varint,5,opt,name=arp_all_targets,json=arpAllTargets,proto3,enum=talos.resource.definitions.enums.NethelpersARPAllTargets" json:"arp_all_targets,omitempty"`
PrimaryIndex uint32 `protobuf:"varint,6,opt,name=primary_index,json=primaryIndex,proto3" json:"primary_index,omitempty"`
PrimaryReselect enums.NethelpersPrimaryReselect `protobuf:"varint,7,opt,name=primary_reselect,json=primaryReselect,proto3,enum=talos.resource.definitions.enums.NethelpersPrimaryReselect" json:"primary_reselect,omitempty"`
FailOverMac enums.NethelpersFailOverMAC `protobuf:"varint,8,opt,name=fail_over_mac,json=failOverMac,proto3,enum=talos.resource.definitions.enums.NethelpersFailOverMAC" json:"fail_over_mac,omitempty"`
AdSelect enums.NethelpersADSelect `protobuf:"varint,9,opt,name=ad_select,json=adSelect,proto3,enum=talos.resource.definitions.enums.NethelpersADSelect" json:"ad_select,omitempty"`
MiiMon uint32 `protobuf:"varint,10,opt,name=mii_mon,json=miiMon,proto3" json:"mii_mon,omitempty"`
UpDelay uint32 `protobuf:"varint,11,opt,name=up_delay,json=upDelay,proto3" json:"up_delay,omitempty"`
DownDelay uint32 `protobuf:"varint,12,opt,name=down_delay,json=downDelay,proto3" json:"down_delay,omitempty"`
ArpInterval uint32 `protobuf:"varint,13,opt,name=arp_interval,json=arpInterval,proto3" json:"arp_interval,omitempty"`
ResendIgmp uint32 `protobuf:"varint,14,opt,name=resend_igmp,json=resendIgmp,proto3" json:"resend_igmp,omitempty"`
MinLinks uint32 `protobuf:"varint,15,opt,name=min_links,json=minLinks,proto3" json:"min_links,omitempty"`
LpInterval uint32 `protobuf:"varint,16,opt,name=lp_interval,json=lpInterval,proto3" json:"lp_interval,omitempty"`
PacketsPerSlave uint32 `protobuf:"varint,17,opt,name=packets_per_slave,json=packetsPerSlave,proto3" json:"packets_per_slave,omitempty"`
NumPeerNotif uint32 `protobuf:"varint,18,opt,name=num_peer_notif,json=numPeerNotif,proto3" json:"num_peer_notif,omitempty"`
TlbDynamicLb uint32 `protobuf:"varint,19,opt,name=tlb_dynamic_lb,json=tlbDynamicLb,proto3" json:"tlb_dynamic_lb,omitempty"`
AllSlavesActive uint32 `protobuf:"varint,20,opt,name=all_slaves_active,json=allSlavesActive,proto3" json:"all_slaves_active,omitempty"`
UseCarrier bool `protobuf:"varint,21,opt,name=use_carrier,json=useCarrier,proto3" json:"use_carrier,omitempty"`
AdActorSysPrio uint32 `protobuf:"varint,22,opt,name=ad_actor_sys_prio,json=adActorSysPrio,proto3" json:"ad_actor_sys_prio,omitempty"`
AdUserPortKey uint32 `protobuf:"varint,23,opt,name=ad_user_port_key,json=adUserPortKey,proto3" json:"ad_user_port_key,omitempty"`
PeerNotifyDelay uint32 `protobuf:"varint,24,opt,name=peer_notify_delay,json=peerNotifyDelay,proto3" json:"peer_notify_delay,omitempty"`
ArpipTargets []*common.NetIP `protobuf:"bytes,25,rep,name=arpip_targets,json=arpipTargets,proto3" json:"arpip_targets,omitempty"`
Nsip6Targets []*common.NetIP `protobuf:"bytes,26,rep,name=nsip6_targets,json=nsip6Targets,proto3" json:"nsip6_targets,omitempty"`
AdlacpActive enums.NethelpersADLACPActive `protobuf:"varint,27,opt,name=adlacp_active,json=adlacpActive,proto3,enum=talos.resource.definitions.enums.NethelpersADLACPActive" json:"adlacp_active,omitempty"`
MissedMax uint32 `protobuf:"varint,28,opt,name=missed_max,json=missedMax,proto3" json:"missed_max,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Mode specifies the bonding policy
Mode enums.NethelpersBondMode `protobuf:"varint,1,opt,name=mode,proto3,enum=talos.resource.definitions.enums.NethelpersBondMode" json:"mode,omitempty"`
// HashPolicy selects the transmit hash policy to use for slave selection.
HashPolicy enums.NethelpersBondXmitHashPolicy `protobuf:"varint,2,opt,name=hash_policy,json=hashPolicy,proto3,enum=talos.resource.definitions.enums.NethelpersBondXmitHashPolicy" json:"hash_policy,omitempty"`
// LACPRate specifies the rate at which LACPDU frames are sent.
LacpRate enums.NethelpersLACPRate `protobuf:"varint,3,opt,name=lacp_rate,json=lacpRate,proto3,enum=talos.resource.definitions.enums.NethelpersLACPRate" json:"lacp_rate,omitempty"`
// ARPValidate specifies whether or not ARP probes and replies should be validated.
ArpValidate enums.NethelpersARPValidate `protobuf:"varint,4,opt,name=arp_validate,json=arpValidate,proto3,enum=talos.resource.definitions.enums.NethelpersARPValidate" json:"arp_validate,omitempty"`
// ARPAllTargets specifies whether ARP probes should be sent to any or all targets.
ArpAllTargets enums.NethelpersARPAllTargets `protobuf:"varint,5,opt,name=arp_all_targets,json=arpAllTargets,proto3,enum=talos.resource.definitions.enums.NethelpersARPAllTargets" json:"arp_all_targets,omitempty"`
// PrimaryIndex is a device index specifying which slave is the primary device.
PrimaryIndex uint32 `protobuf:"varint,6,opt,name=primary_index,json=primaryIndex,proto3" json:"primary_index,omitempty"`
// PrimaryReselect specifies the policy under which the primary slave should be reselected.
PrimaryReselect enums.NethelpersPrimaryReselect `protobuf:"varint,7,opt,name=primary_reselect,json=primaryReselect,proto3,enum=talos.resource.definitions.enums.NethelpersPrimaryReselect" json:"primary_reselect,omitempty"`
// FailOverMac whether active-backup mode should set all slaves to the same MAC address at enslavement, when enabled, or perform special handling.
FailOverMac enums.NethelpersFailOverMAC `protobuf:"varint,8,opt,name=fail_over_mac,json=failOverMac,proto3,enum=talos.resource.definitions.enums.NethelpersFailOverMAC" json:"fail_over_mac,omitempty"`
// ADSelect specifies the aggregate selection policy for 802.3ad.
AdSelect enums.NethelpersADSelect `protobuf:"varint,9,opt,name=ad_select,json=adSelect,proto3,enum=talos.resource.definitions.enums.NethelpersADSelect" json:"ad_select,omitempty"`
// MIIMon is the link monitoring frequency in milliseconds.
MiiMon uint32 `protobuf:"varint,10,opt,name=mii_mon,json=miiMon,proto3" json:"mii_mon,omitempty"`
// UpDelay is the time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.
UpDelay uint32 `protobuf:"varint,11,opt,name=up_delay,json=upDelay,proto3" json:"up_delay,omitempty"`
// DownDelay is the time, in milliseconds, to wait before disabling a slave after a link failure has been detected.
DownDelay uint32 `protobuf:"varint,12,opt,name=down_delay,json=downDelay,proto3" json:"down_delay,omitempty"`
// ARPInterval is the ARP link monitoring frequency in milliseconds.
ArpInterval uint32 `protobuf:"varint,13,opt,name=arp_interval,json=arpInterval,proto3" json:"arp_interval,omitempty"`
// ResendIGMP specifies the number of times IGMP packets should be resent.
ResendIgmp uint32 `protobuf:"varint,14,opt,name=resend_igmp,json=resendIgmp,proto3" json:"resend_igmp,omitempty"`
// MinLinks specifies the minimum number of active links to assert carrier.
MinLinks uint32 `protobuf:"varint,15,opt,name=min_links,json=minLinks,proto3" json:"min_links,omitempty"`
// LPInterval specifies the number of seconds between instances where the bonding driver sends learning packets to each slave's peer switch.
LpInterval uint32 `protobuf:"varint,16,opt,name=lp_interval,json=lpInterval,proto3" json:"lp_interval,omitempty"`
// PacketsPerSlave specifies the number of packets to transmit through a slave before moving to the next one.
PacketsPerSlave uint32 `protobuf:"varint,17,opt,name=packets_per_slave,json=packetsPerSlave,proto3" json:"packets_per_slave,omitempty"`
// NumPeerNotif specifies the number of peer notifications
// (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements) to be issued after a failover event.
NumPeerNotif uint32 `protobuf:"varint,18,opt,name=num_peer_notif,json=numPeerNotif,proto3" json:"num_peer_notif,omitempty"`
// TLBDynamicLB specifies if dynamic shuffling of flows is enabled in tlb or alb mode.
TlbDynamicLb uint32 `protobuf:"varint,19,opt,name=tlb_dynamic_lb,json=tlbDynamicLb,proto3" json:"tlb_dynamic_lb,omitempty"`
// AllSlavesActive specifies that duplicate frames (received on inactive ports) should be dropped (0) or delivered (1).
AllSlavesActive uint32 `protobuf:"varint,20,opt,name=all_slaves_active,json=allSlavesActive,proto3" json:"all_slaves_active,omitempty"`
// UseCarrier specifies whether or not miimon should use MII or ETHTOOL.
UseCarrier bool `protobuf:"varint,21,opt,name=use_carrier,json=useCarrier,proto3" json:"use_carrier,omitempty"`
// ADActorSysPrio is the actor system priority for 802.3ad.
AdActorSysPrio uint32 `protobuf:"varint,22,opt,name=ad_actor_sys_prio,json=adActorSysPrio,proto3" json:"ad_actor_sys_prio,omitempty"`
// ADUserPortKey is the user port key (upper 10 bits) for 802.3ad.
AdUserPortKey uint32 `protobuf:"varint,23,opt,name=ad_user_port_key,json=adUserPortKey,proto3" json:"ad_user_port_key,omitempty"`
// PeerNotifyDelay is the delay, in milliseconds, between each peer notification.
PeerNotifyDelay uint32 `protobuf:"varint,24,opt,name=peer_notify_delay,json=peerNotifyDelay,proto3" json:"peer_notify_delay,omitempty"`
// ARPIPTargets is the list of IP addresses to use for ARP link monitoring when ARPInterval is set.
//
// Maximum of 16 targets are supported.
ArpipTargets []*common.NetIP `protobuf:"bytes,25,rep,name=arpip_targets,json=arpipTargets,proto3" json:"arpip_targets,omitempty"`
// NSIP6Targets is the list of IPv6 addresses to use for NS link monitoring when ARPInterval is set.
//
// Maximum of 16 targets are supported.
Nsip6Targets []*common.NetIP `protobuf:"bytes,26,rep,name=nsip6_targets,json=nsip6Targets,proto3" json:"nsip6_targets,omitempty"`
// ADLACPActive specifies whether to send LACPDU frames periodically.
AdlacpActive enums.NethelpersADLACPActive `protobuf:"varint,27,opt,name=adlacp_active,json=adlacpActive,proto3,enum=talos.resource.definitions.enums.NethelpersADLACPActive" json:"adlacp_active,omitempty"`
// MissedMax is the number of arp_interval monitor checks that must fail in order for an interface to be marked down by the ARP monitor.
MissedMax uint32 `protobuf:"varint,28,opt,name=missed_max,json=missedMax,proto3" json:"missed_max,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BondMasterSpec) Reset() {
@ -516,9 +549,11 @@ func (x *BondMasterSpec) GetMissedMax() uint32 {
// BondSlave contains a bond's master name and slave index.
type BondSlave struct {
state protoimpl.MessageState `protogen:"open.v1"`
MasterName string `protobuf:"bytes,1,opt,name=master_name,json=masterName,proto3" json:"master_name,omitempty"`
SlaveIndex int64 `protobuf:"varint,2,opt,name=slave_index,json=slaveIndex,proto3" json:"slave_index,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// MasterName indicates master link for enslaved bonded interfaces.
MasterName string `protobuf:"bytes,1,opt,name=master_name,json=masterName,proto3" json:"master_name,omitempty"`
// SlaveIndex indicates a slave's position in bond.
SlaveIndex int64 `protobuf:"varint,2,opt,name=slave_index,json=slaveIndex,proto3" json:"slave_index,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -622,8 +657,9 @@ func (x *BridgeMasterSpec) GetVlan() *BridgeVLANSpec {
// BridgeSlave contains the name of the master bridge of a bridged interface
type BridgeSlave struct {
state protoimpl.MessageState `protogen:"open.v1"`
MasterName string `protobuf:"bytes,1,opt,name=master_name,json=masterName,proto3" json:"master_name,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// MasterName indicates master link for enslaved bridged interfaces.
MasterName string `protobuf:"bytes,1,opt,name=master_name,json=masterName,proto3" json:"master_name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1001,15 +1037,17 @@ func (x *EthernetChannelsSpec) GetCombined() uint32 {
// EthernetChannelsStatus describes status of Ethernet channels.
type EthernetChannelsStatus struct {
state protoimpl.MessageState `protogen:"open.v1"`
RxMax uint32 `protobuf:"varint,1,opt,name=rx_max,json=rxMax,proto3" json:"rx_max,omitempty"`
TxMax uint32 `protobuf:"varint,2,opt,name=tx_max,json=txMax,proto3" json:"tx_max,omitempty"`
OtherMax uint32 `protobuf:"varint,3,opt,name=other_max,json=otherMax,proto3" json:"other_max,omitempty"`
CombinedMax uint32 `protobuf:"varint,4,opt,name=combined_max,json=combinedMax,proto3" json:"combined_max,omitempty"`
Rx uint32 `protobuf:"varint,5,opt,name=rx,proto3" json:"rx,omitempty"`
Tx uint32 `protobuf:"varint,6,opt,name=tx,proto3" json:"tx,omitempty"`
Other uint32 `protobuf:"varint,7,opt,name=other,proto3" json:"other,omitempty"`
Combined uint32 `protobuf:"varint,8,opt,name=combined,proto3" json:"combined,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Read-only settings.
RxMax uint32 `protobuf:"varint,1,opt,name=rx_max,json=rxMax,proto3" json:"rx_max,omitempty"`
TxMax uint32 `protobuf:"varint,2,opt,name=tx_max,json=txMax,proto3" json:"tx_max,omitempty"`
OtherMax uint32 `protobuf:"varint,3,opt,name=other_max,json=otherMax,proto3" json:"other_max,omitempty"`
CombinedMax uint32 `protobuf:"varint,4,opt,name=combined_max,json=combinedMax,proto3" json:"combined_max,omitempty"`
// Current settings (read-write).
Rx uint32 `protobuf:"varint,5,opt,name=rx,proto3" json:"rx,omitempty"`
Tx uint32 `protobuf:"varint,6,opt,name=tx,proto3" json:"tx,omitempty"`
Other uint32 `protobuf:"varint,7,opt,name=other,proto3" json:"other,omitempty"`
Combined uint32 `protobuf:"varint,8,opt,name=combined,proto3" json:"combined,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1272,24 +1310,26 @@ func (x *EthernetRingsSpec) GetTcpDataSplit() bool {
// EthernetRingsStatus describes status of Ethernet rings.
type EthernetRingsStatus struct {
state protoimpl.MessageState `protogen:"open.v1"`
RxMax uint32 `protobuf:"varint,1,opt,name=rx_max,json=rxMax,proto3" json:"rx_max,omitempty"`
RxMiniMax uint32 `protobuf:"varint,2,opt,name=rx_mini_max,json=rxMiniMax,proto3" json:"rx_mini_max,omitempty"`
RxJumboMax uint32 `protobuf:"varint,3,opt,name=rx_jumbo_max,json=rxJumboMax,proto3" json:"rx_jumbo_max,omitempty"`
TxMax uint32 `protobuf:"varint,4,opt,name=tx_max,json=txMax,proto3" json:"tx_max,omitempty"`
TxPushBufLenMax uint32 `protobuf:"varint,5,opt,name=tx_push_buf_len_max,json=txPushBufLenMax,proto3" json:"tx_push_buf_len_max,omitempty"`
Rx uint32 `protobuf:"varint,6,opt,name=rx,proto3" json:"rx,omitempty"`
RxMini uint32 `protobuf:"varint,7,opt,name=rx_mini,json=rxMini,proto3" json:"rx_mini,omitempty"`
RxJumbo uint32 `protobuf:"varint,8,opt,name=rx_jumbo,json=rxJumbo,proto3" json:"rx_jumbo,omitempty"`
Tx uint32 `protobuf:"varint,9,opt,name=tx,proto3" json:"tx,omitempty"`
RxBufLen uint32 `protobuf:"varint,10,opt,name=rx_buf_len,json=rxBufLen,proto3" json:"rx_buf_len,omitempty"`
CqeSize uint32 `protobuf:"varint,11,opt,name=cqe_size,json=cqeSize,proto3" json:"cqe_size,omitempty"`
TxPush bool `protobuf:"varint,12,opt,name=tx_push,json=txPush,proto3" json:"tx_push,omitempty"`
RxPush bool `protobuf:"varint,13,opt,name=rx_push,json=rxPush,proto3" json:"rx_push,omitempty"`
TxPushBufLen uint32 `protobuf:"varint,14,opt,name=tx_push_buf_len,json=txPushBufLen,proto3" json:"tx_push_buf_len,omitempty"`
TcpDataSplit bool `protobuf:"varint,15,opt,name=tcp_data_split,json=tcpDataSplit,proto3" json:"tcp_data_split,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Read-only settings.
RxMax uint32 `protobuf:"varint,1,opt,name=rx_max,json=rxMax,proto3" json:"rx_max,omitempty"`
RxMiniMax uint32 `protobuf:"varint,2,opt,name=rx_mini_max,json=rxMiniMax,proto3" json:"rx_mini_max,omitempty"`
RxJumboMax uint32 `protobuf:"varint,3,opt,name=rx_jumbo_max,json=rxJumboMax,proto3" json:"rx_jumbo_max,omitempty"`
TxMax uint32 `protobuf:"varint,4,opt,name=tx_max,json=txMax,proto3" json:"tx_max,omitempty"`
TxPushBufLenMax uint32 `protobuf:"varint,5,opt,name=tx_push_buf_len_max,json=txPushBufLenMax,proto3" json:"tx_push_buf_len_max,omitempty"`
// Current settings (read-write).
Rx uint32 `protobuf:"varint,6,opt,name=rx,proto3" json:"rx,omitempty"`
RxMini uint32 `protobuf:"varint,7,opt,name=rx_mini,json=rxMini,proto3" json:"rx_mini,omitempty"`
RxJumbo uint32 `protobuf:"varint,8,opt,name=rx_jumbo,json=rxJumbo,proto3" json:"rx_jumbo,omitempty"`
Tx uint32 `protobuf:"varint,9,opt,name=tx,proto3" json:"tx,omitempty"`
RxBufLen uint32 `protobuf:"varint,10,opt,name=rx_buf_len,json=rxBufLen,proto3" json:"rx_buf_len,omitempty"`
CqeSize uint32 `protobuf:"varint,11,opt,name=cqe_size,json=cqeSize,proto3" json:"cqe_size,omitempty"`
TxPush bool `protobuf:"varint,12,opt,name=tx_push,json=txPush,proto3" json:"tx_push,omitempty"`
RxPush bool `protobuf:"varint,13,opt,name=rx_push,json=rxPush,proto3" json:"rx_push,omitempty"`
TxPushBufLen uint32 `protobuf:"varint,14,opt,name=tx_push_buf_len,json=txPushBufLen,proto3" json:"tx_push_buf_len,omitempty"`
TcpDataSplit bool `protobuf:"varint,15,opt,name=tcp_data_split,json=tcpDataSplit,proto3" json:"tcp_data_split,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EthernetRingsStatus) Reset() {
@ -1615,9 +1655,11 @@ func (x *EthernetStatusSpec) GetWakeOnLan() []enums.NethelpersWOLMode {
// HardwareAddrSpec describes spec for the link.
type HardwareAddrSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
HardwareAddr []byte `protobuf:"bytes,2,opt,name=hardware_addr,json=hardwareAddr,proto3" json:"hardware_addr,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Name defines link name
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Hardware address
HardwareAddr []byte `protobuf:"bytes,2,opt,name=hardware_addr,json=hardwareAddr,proto3" json:"hardware_addr,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1941,27 +1983,42 @@ func (x *LinkRefreshSpec) GetGeneration() int64 {
// LinkSpecSpec describes spec for the link.
type LinkSpecSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Logical bool `protobuf:"varint,2,opt,name=logical,proto3" json:"logical,omitempty"`
Up bool `protobuf:"varint,3,opt,name=up,proto3" json:"up,omitempty"`
Mtu uint32 `protobuf:"varint,4,opt,name=mtu,proto3" json:"mtu,omitempty"`
Kind string `protobuf:"bytes,5,opt,name=kind,proto3" json:"kind,omitempty"`
Type enums.NethelpersLinkType `protobuf:"varint,6,opt,name=type,proto3,enum=talos.resource.definitions.enums.NethelpersLinkType" json:"type,omitempty"`
ParentName string `protobuf:"bytes,7,opt,name=parent_name,json=parentName,proto3" json:"parent_name,omitempty"`
BondSlave *BondSlave `protobuf:"bytes,8,opt,name=bond_slave,json=bondSlave,proto3" json:"bond_slave,omitempty"`
BridgeSlave *BridgeSlave `protobuf:"bytes,9,opt,name=bridge_slave,json=bridgeSlave,proto3" json:"bridge_slave,omitempty"`
Vlan *VLANSpec `protobuf:"bytes,10,opt,name=vlan,proto3" json:"vlan,omitempty"`
BondMaster *BondMasterSpec `protobuf:"bytes,11,opt,name=bond_master,json=bondMaster,proto3" json:"bond_master,omitempty"`
BridgeMaster *BridgeMasterSpec `protobuf:"bytes,12,opt,name=bridge_master,json=bridgeMaster,proto3" json:"bridge_master,omitempty"`
Wireguard *WireguardSpec `protobuf:"bytes,13,opt,name=wireguard,proto3" json:"wireguard,omitempty"`
ConfigLayer enums.NetworkConfigLayer `protobuf:"varint,14,opt,name=config_layer,json=configLayer,proto3,enum=talos.resource.definitions.enums.NetworkConfigLayer" json:"config_layer,omitempty"`
HardwareAddress []byte `protobuf:"bytes,15,opt,name=hardware_address,json=hardwareAddress,proto3" json:"hardware_address,omitempty"`
Multicast bool `protobuf:"varint,16,opt,name=multicast,proto3" json:"multicast,omitempty"`
VrfMaster *VRFMasterSpec `protobuf:"bytes,17,opt,name=vrf_master,json=vrfMaster,proto3" json:"vrf_master,omitempty"`
VrfSlave *VRFSlave `protobuf:"bytes,18,opt,name=vrf_slave,json=vrfSlave,proto3" json:"vrf_slave,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Name defines link name
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Logical describes if the interface should be created on the fly if it doesn't exist.
Logical bool `protobuf:"varint,2,opt,name=logical,proto3" json:"logical,omitempty"`
// If Up is true, bring interface up, otherwise bring interface down.
//
// TODO: make *bool ?
Up bool `protobuf:"varint,3,opt,name=up,proto3" json:"up,omitempty"`
// Interface MTU (always applies).
Mtu uint32 `protobuf:"varint,4,opt,name=mtu,proto3" json:"mtu,omitempty"`
// Kind and Type are only required for Logical interfaces.
Kind string `protobuf:"bytes,5,opt,name=kind,proto3" json:"kind,omitempty"`
Type enums.NethelpersLinkType `protobuf:"varint,6,opt,name=type,proto3,enum=talos.resource.definitions.enums.NethelpersLinkType" json:"type,omitempty"`
// ParentName indicates link parent for VLAN interfaces.
ParentName string `protobuf:"bytes,7,opt,name=parent_name,json=parentName,proto3" json:"parent_name,omitempty"`
// BondSlave contains bond slave configuration for interfaces enslaved to a bond.
BondSlave *BondSlave `protobuf:"bytes,8,opt,name=bond_slave,json=bondSlave,proto3" json:"bond_slave,omitempty"`
// BridgeSlave carries bridge slave details for bridged interfaces.
BridgeSlave *BridgeSlave `protobuf:"bytes,9,opt,name=bridge_slave,json=bridgeSlave,proto3" json:"bridge_slave,omitempty"`
// These structures are present depending on "Kind" for Logical interfaces.
Vlan *VLANSpec `protobuf:"bytes,10,opt,name=vlan,proto3" json:"vlan,omitempty"`
BondMaster *BondMasterSpec `protobuf:"bytes,11,opt,name=bond_master,json=bondMaster,proto3" json:"bond_master,omitempty"`
BridgeMaster *BridgeMasterSpec `protobuf:"bytes,12,opt,name=bridge_master,json=bridgeMaster,proto3" json:"bridge_master,omitempty"`
Wireguard *WireguardSpec `protobuf:"bytes,13,opt,name=wireguard,proto3" json:"wireguard,omitempty"`
// Configuration layer.
ConfigLayer enums.NetworkConfigLayer `protobuf:"varint,14,opt,name=config_layer,json=configLayer,proto3,enum=talos.resource.definitions.enums.NetworkConfigLayer" json:"config_layer,omitempty"`
// Override hardware (MAC) address (if supported).
HardwareAddress []byte `protobuf:"bytes,15,opt,name=hardware_address,json=hardwareAddress,proto3" json:"hardware_address,omitempty"`
// Multicast indicates whether the multicast flag should be set on the interface to the value.
Multicast bool `protobuf:"varint,16,opt,name=multicast,proto3" json:"multicast,omitempty"`
VrfMaster *VRFMasterSpec `protobuf:"bytes,17,opt,name=vrf_master,json=vrfMaster,proto3" json:"vrf_master,omitempty"`
// VRFSlave carries VRF slave details for interfaces in a VRF.
VrfSlave *VRFSlave `protobuf:"bytes,18,opt,name=vrf_slave,json=vrfSlave,proto3" json:"vrf_slave,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LinkSpecSpec) Reset() {
@ -2144,20 +2201,23 @@ type LinkStatusSpec struct {
VendorId string `protobuf:"bytes,19,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
Product string `protobuf:"bytes,20,opt,name=product,proto3" json:"product,omitempty"`
Vendor string `protobuf:"bytes,21,opt,name=vendor,proto3" json:"vendor,omitempty"`
LinkState bool `protobuf:"varint,22,opt,name=link_state,json=linkState,proto3" json:"link_state,omitempty"`
SpeedMegabits int64 `protobuf:"varint,23,opt,name=speed_megabits,json=speedMegabits,proto3" json:"speed_megabits,omitempty"`
Port enums.NethelpersPort `protobuf:"varint,24,opt,name=port,proto3,enum=talos.resource.definitions.enums.NethelpersPort" json:"port,omitempty"`
Duplex enums.NethelpersDuplex `protobuf:"varint,25,opt,name=duplex,proto3,enum=talos.resource.definitions.enums.NethelpersDuplex" json:"duplex,omitempty"`
Vlan *VLANSpec `protobuf:"bytes,26,opt,name=vlan,proto3" json:"vlan,omitempty"`
BridgeMaster *BridgeMasterSpec `protobuf:"bytes,27,opt,name=bridge_master,json=bridgeMaster,proto3" json:"bridge_master,omitempty"`
BondMaster *BondMasterSpec `protobuf:"bytes,28,opt,name=bond_master,json=bondMaster,proto3" json:"bond_master,omitempty"`
Wireguard *WireguardSpec `protobuf:"bytes,29,opt,name=wireguard,proto3" json:"wireguard,omitempty"`
PermanentAddr []byte `protobuf:"bytes,30,opt,name=permanent_addr,json=permanentAddr,proto3" json:"permanent_addr,omitempty"`
Alias string `protobuf:"bytes,31,opt,name=alias,proto3" json:"alias,omitempty"`
AltNames []string `protobuf:"bytes,32,rep,name=alt_names,json=altNames,proto3" json:"alt_names,omitempty"`
VrfMaster *VRFMasterSpec `protobuf:"bytes,33,opt,name=vrf_master,json=vrfMaster,proto3" json:"vrf_master,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
// Fields coming from ethtool API.
LinkState bool `protobuf:"varint,22,opt,name=link_state,json=linkState,proto3" json:"link_state,omitempty"`
SpeedMegabits int64 `protobuf:"varint,23,opt,name=speed_megabits,json=speedMegabits,proto3" json:"speed_megabits,omitempty"`
Port enums.NethelpersPort `protobuf:"varint,24,opt,name=port,proto3,enum=talos.resource.definitions.enums.NethelpersPort" json:"port,omitempty"`
Duplex enums.NethelpersDuplex `protobuf:"varint,25,opt,name=duplex,proto3,enum=talos.resource.definitions.enums.NethelpersDuplex" json:"duplex,omitempty"`
// Following fields are only populated with respective Kind.
Vlan *VLANSpec `protobuf:"bytes,26,opt,name=vlan,proto3" json:"vlan,omitempty"`
BridgeMaster *BridgeMasterSpec `protobuf:"bytes,27,opt,name=bridge_master,json=bridgeMaster,proto3" json:"bridge_master,omitempty"`
BondMaster *BondMasterSpec `protobuf:"bytes,28,opt,name=bond_master,json=bondMaster,proto3" json:"bond_master,omitempty"`
Wireguard *WireguardSpec `protobuf:"bytes,29,opt,name=wireguard,proto3" json:"wireguard,omitempty"`
PermanentAddr []byte `protobuf:"bytes,30,opt,name=permanent_addr,json=permanentAddr,proto3" json:"permanent_addr,omitempty"`
// Fields coming from rtnetlink API.
Alias string `protobuf:"bytes,31,opt,name=alias,proto3" json:"alias,omitempty"`
AltNames []string `protobuf:"bytes,32,rep,name=alt_names,json=altNames,proto3" json:"alt_names,omitempty"`
VrfMaster *VRFMasterSpec `protobuf:"bytes,33,opt,name=vrf_master,json=vrfMaster,proto3" json:"vrf_master,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LinkStatusSpec) Reset() {
@ -3112,9 +3172,11 @@ func (x *NfTablesRule) GetAnonCounter() bool {
// NodeAddressFilterSpec describes a filter for NodeAddresses.
type NodeAddressFilterSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
IncludeSubnets []*common.NetIPPrefix `protobuf:"bytes,1,rep,name=include_subnets,json=includeSubnets,proto3" json:"include_subnets,omitempty"`
ExcludeSubnets []*common.NetIPPrefix `protobuf:"bytes,2,rep,name=exclude_subnets,json=excludeSubnets,proto3" json:"exclude_subnets,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Address is skipped if it doesn't match any of the includeSubnets (if includeSubnets is not empty).
IncludeSubnets []*common.NetIPPrefix `protobuf:"bytes,1,rep,name=include_subnets,json=includeSubnets,proto3" json:"include_subnets,omitempty"`
// Address is skipped if it matches any of the excludeSubnets.
ExcludeSubnets []*common.NetIPPrefix `protobuf:"bytes,2,rep,name=exclude_subnets,json=excludeSubnets,proto3" json:"exclude_subnets,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -3531,13 +3593,17 @@ func (x *PortRange) GetHi() uint32 {
// ProbeSpecSpec describes the Probe.
type ProbeSpecSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Interval *durationpb.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"`
FailureThreshold int64 `protobuf:"varint,2,opt,name=failure_threshold,json=failureThreshold,proto3" json:"failure_threshold,omitempty"`
Tcp *TCPProbeSpec `protobuf:"bytes,3,opt,name=tcp,proto3" json:"tcp,omitempty"`
ConfigLayer enums.NetworkConfigLayer `protobuf:"varint,4,opt,name=config_layer,json=configLayer,proto3,enum=talos.resource.definitions.enums.NetworkConfigLayer" json:"config_layer,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
// Interval between the probes.
Interval *durationpb.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"`
// FailureThreshold is the number of consecutive failures for the probe to be considered failed after having succeeded.
FailureThreshold int64 `protobuf:"varint,2,opt,name=failure_threshold,json=failureThreshold,proto3" json:"failure_threshold,omitempty"`
// One of the probe types should be specified, for now it's only TCP.
Tcp *TCPProbeSpec `protobuf:"bytes,3,opt,name=tcp,proto3" json:"tcp,omitempty"`
// Configuration layer.
ConfigLayer enums.NetworkConfigLayer `protobuf:"varint,4,opt,name=config_layer,json=configLayer,proto3,enum=talos.resource.definitions.enums.NetworkConfigLayer" json:"config_layer,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ProbeSpecSpec) Reset() {
@ -3600,9 +3666,11 @@ func (x *ProbeSpecSpec) GetConfigLayer() enums.NetworkConfigLayer {
// ProbeStatusSpec describes the Probe.
type ProbeStatusSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
LastError string `protobuf:"bytes,2,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Success of the check.
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
// Last error of the probe.
LastError string `protobuf:"bytes,2,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -4405,9 +4473,11 @@ func (x *StatusSpec) GetEtcFilesReady() bool {
// TCPProbeSpec describes the TCP Probe.
type TCPProbeSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
Timeout *durationpb.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Endpoint to probe: host:port.
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
// Timeout for the probe.
Timeout *durationpb.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -4763,8 +4833,10 @@ func (x *VIPOperatorSpec) GetHCloud() *VIPHCloudSpec {
// VLANSpec describes VLAN settings if Kind == "vlan".
type VLANSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Vid uint32 `protobuf:"varint,1,opt,name=vid,proto3" json:"vid,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// VID is the vlan ID.
Vid uint32 `protobuf:"varint,1,opt,name=vid,proto3" json:"vid,omitempty"`
// Protocol is the vlan protocol.
Protocol enums.NethelpersVLANProtocol `protobuf:"varint,2,opt,name=protocol,proto3,enum=talos.resource.definitions.enums.NethelpersVLANProtocol" json:"protocol,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
@ -4983,12 +5055,14 @@ func (x *WireguardPeer) GetAllowedIps() []*common.NetIPPrefix {
// WireguardSpec describes Wireguard settings if Kind == "wireguard".
type WireguardSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
PrivateKey string `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
ListenPort int64 `protobuf:"varint,3,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
FirewallMark int64 `protobuf:"varint,4,opt,name=firewall_mark,json=firewallMark,proto3" json:"firewall_mark,omitempty"`
Peers []*WireguardPeer `protobuf:"bytes,5,rep,name=peers,proto3" json:"peers,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// PrivateKey is used to configure the link, present only in the LinkSpec.
PrivateKey string `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
// PublicKey is only used in LinkStatus to show the link status.
PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
ListenPort int64 `protobuf:"varint,3,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
FirewallMark int64 `protobuf:"varint,4,opt,name=firewall_mark,json=firewallMark,proto3" json:"firewall_mark,omitempty"`
Peers []*WireguardPeer `protobuf:"bytes,5,rep,name=peers,proto3" json:"peers,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -142,8 +142,9 @@ func (x *BootedEntrySpec) GetBootedEntry() string {
// DevicesStatusSpec is the spec for devices status.
type DevicesStatusSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Devices are settled down and ready to be used.
Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -187,9 +188,11 @@ func (x *DevicesStatusSpec) GetReady() bool {
// DiagnosticSpec is the spec for devices status.
type DiagnosticSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
Details []string `protobuf:"bytes,2,rep,name=details,proto3" json:"details,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Short message describing the problem.
Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
// Details about the problem.
Details []string `protobuf:"bytes,2,rep,name=details,proto3" json:"details,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1513,9 +1516,11 @@ func (x *SecurityStateSpec) GetModuleSignatureEnforced() bool {
// ServicePIDSpec is the spec for the service PID.
type ServicePIDSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Pid int32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
MountNamespace string `protobuf:"bytes,2,opt,name=mount_namespace,json=mountNamespace,proto3" json:"mount_namespace,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// PID is the host PID of the service.
Pid int32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
// MountNamespace is the mount namespace of the service.
MountNamespace string `protobuf:"bytes,2,opt,name=mount_namespace,json=mountNamespace,proto3" json:"mount_namespace,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -26,11 +26,12 @@ const (
// APICertsSpec describes etcd certs secrets.
type APICertsSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Client *common.PEMEncodedCertificateAndKey `protobuf:"bytes,2,opt,name=client,proto3" json:"client,omitempty"`
Server *common.PEMEncodedCertificateAndKey `protobuf:"bytes,3,opt,name=server,proto3" json:"server,omitempty"`
AcceptedCAs []*common.PEMEncodedCertificate `protobuf:"bytes,4,rep,name=accepted_c_as,json=acceptedCAs,proto3" json:"accepted_c_as,omitempty"`
SkipVerifyingClientCert bool `protobuf:"varint,5,opt,name=skip_verifying_client_cert,json=skipVerifyingClientCert,proto3" json:"skip_verifying_client_cert,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
Client *common.PEMEncodedCertificateAndKey `protobuf:"bytes,2,opt,name=client,proto3" json:"client,omitempty"`
Server *common.PEMEncodedCertificateAndKey `protobuf:"bytes,3,opt,name=server,proto3" json:"server,omitempty"`
AcceptedCAs []*common.PEMEncodedCertificate `protobuf:"bytes,4,rep,name=accepted_c_as,json=acceptedCAs,proto3" json:"accepted_c_as,omitempty"`
// Skip verifying client certificate, to be used only with the maintenance mode operations.
SkipVerifyingClientCert bool `protobuf:"varint,5,opt,name=skip_verifying_client_cert,json=skipVerifyingClientCert,proto3" json:"skip_verifying_client_cert,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -387,10 +388,11 @@ type KubernetesCertsSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
SchedulerKubeconfig string `protobuf:"bytes,4,opt,name=scheduler_kubeconfig,json=schedulerKubeconfig,proto3" json:"scheduler_kubeconfig,omitempty"`
ControllerManagerKubeconfig string `protobuf:"bytes,5,opt,name=controller_manager_kubeconfig,json=controllerManagerKubeconfig,proto3" json:"controller_manager_kubeconfig,omitempty"`
LocalhostAdminKubeconfig string `protobuf:"bytes,6,opt,name=localhost_admin_kubeconfig,json=localhostAdminKubeconfig,proto3" json:"localhost_admin_kubeconfig,omitempty"`
AdminKubeconfig string `protobuf:"bytes,7,opt,name=admin_kubeconfig,json=adminKubeconfig,proto3" json:"admin_kubeconfig,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
// Admin-level kubeconfig with access through the localhost endpoint and cluster endpoints.
LocalhostAdminKubeconfig string `protobuf:"bytes,6,opt,name=localhost_admin_kubeconfig,json=localhostAdminKubeconfig,proto3" json:"localhost_admin_kubeconfig,omitempty"`
AdminKubeconfig string `protobuf:"bytes,7,opt,name=admin_kubeconfig,json=adminKubeconfig,proto3" json:"admin_kubeconfig,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KubernetesCertsSpec) Reset() {

View File

@ -25,10 +25,13 @@ const (
// ImageKeylessVerifierSpec represents a signature verification provider.
type ImageKeylessVerifierSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
SubjectRegex string `protobuf:"bytes,3,opt,name=subject_regex,json=subjectRegex,proto3" json:"subject_regex,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Issuer is the OIDC issuer URL.
Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
// Subject is the expected subject.
Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
// SubjectRegex is a regex pattern for subject matching.
SubjectRegex string `protobuf:"bytes,3,opt,name=subject_regex,json=subjectRegex,proto3" json:"subject_regex,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -86,8 +89,9 @@ func (x *ImageKeylessVerifierSpec) GetSubjectRegex() string {
// ImagePublicKeyVerifierSpec represents a signature verification provider with static public key.
type ImagePublicKeyVerifierSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Certificate string `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Certificate is a public certificate in PEM format accepted for image signature verification.
Certificate string `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -131,11 +135,16 @@ func (x *ImagePublicKeyVerifierSpec) GetCertificate() string {
// ImageVerificationRuleSpec represents a verification rule.
type ImageVerificationRuleSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
ImagePattern string `protobuf:"bytes,2,opt,name=image_pattern,json=imagePattern,proto3" json:"image_pattern,omitempty"`
Skip bool `protobuf:"varint,3,opt,name=skip,proto3" json:"skip,omitempty"`
Deny bool `protobuf:"varint,4,opt,name=deny,proto3" json:"deny,omitempty"`
KeylessVerifier *ImageKeylessVerifierSpec `protobuf:"bytes,5,opt,name=keyless_verifier,json=keylessVerifier,proto3" json:"keyless_verifier,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// ImagePattern is the image name pattern.
ImagePattern string `protobuf:"bytes,2,opt,name=image_pattern,json=imagePattern,proto3" json:"image_pattern,omitempty"`
// Skip is the action for matching images.
Skip bool `protobuf:"varint,3,opt,name=skip,proto3" json:"skip,omitempty"`
// Deny is the action for matching images.
Deny bool `protobuf:"varint,4,opt,name=deny,proto3" json:"deny,omitempty"`
// KeylessVerifier is the keyless verifier configuration to use.
KeylessVerifier *ImageKeylessVerifierSpec `protobuf:"bytes,5,opt,name=keyless_verifier,json=keylessVerifier,proto3" json:"keyless_verifier,omitempty"`
// PublicKeyVerifier is the public key verifier configuration to use.
PublicKeyVerifier *ImagePublicKeyVerifierSpec `protobuf:"bytes,6,opt,name=public_key_verifier,json=publicKeyVerifier,proto3" json:"public_key_verifier,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
@ -208,11 +217,13 @@ func (x *ImageVerificationRuleSpec) GetPublicKeyVerifier() *ImagePublicKeyVerifi
// TUFTrustedRootSpec represents a sigstore's TUF trusted root information.
type TUFTrustedRootSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
state protoimpl.MessageState `protogen:"open.v1"`
// LastRefreshTime is the last time the trusted root was refreshed.
LastRefreshTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=last_refresh_time,json=lastRefreshTime,proto3" json:"last_refresh_time,omitempty"`
JsonData string `protobuf:"bytes,2,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
// JSONData is the trusted root data in JSON format.
JsonData string `protobuf:"bytes,2,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TUFTrustedRootSpec) Reset() {

View File

@ -103,11 +103,15 @@ func (x *ConfigSpec) GetTunnel() bool {
// StatusSpec describes Siderolink status.
type StatusSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
Connected bool `protobuf:"varint,2,opt,name=connected,proto3" json:"connected,omitempty"`
LinkName string `protobuf:"bytes,3,opt,name=link_name,json=linkName,proto3" json:"link_name,omitempty"`
GrpcTunnel bool `protobuf:"varint,4,opt,name=grpc_tunnel,json=grpcTunnel,proto3" json:"grpc_tunnel,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Host is the Siderolink target host.
Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
// Connected is the status of the Siderolink GRPC connection.
Connected bool `protobuf:"varint,2,opt,name=connected,proto3" json:"connected,omitempty"`
// LinkName is the name of the interface used for the Siderolink tunnel.
LinkName string `protobuf:"bytes,3,opt,name=link_name,json=linkName,proto3" json:"link_name,omitempty"`
// GRPCTunnel is true if the Wireguard-over-GRPC tunnel is being used.
GrpcTunnel bool `protobuf:"varint,4,opt,name=grpc_tunnel,json=grpcTunnel,proto3" json:"grpc_tunnel,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -172,11 +176,16 @@ func (x *StatusSpec) GetGrpcTunnel() bool {
// TunnelSpec describes Siderolink GRPC Tunnel configuration.
type TunnelSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
ApiEndpoint string `protobuf:"bytes,1,opt,name=api_endpoint,json=apiEndpoint,proto3" json:"api_endpoint,omitempty"`
LinkName string `protobuf:"bytes,2,opt,name=link_name,json=linkName,proto3" json:"link_name,omitempty"`
Mtu int64 `protobuf:"varint,3,opt,name=mtu,proto3" json:"mtu,omitempty"`
NodeAddress *common.NetIPPort `protobuf:"bytes,4,opt,name=node_address,json=nodeAddress,proto3" json:"node_address,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// APIEndpoint is the Siderolink WireGuard over GRPC endpoint.
ApiEndpoint string `protobuf:"bytes,1,opt,name=api_endpoint,json=apiEndpoint,proto3" json:"api_endpoint,omitempty"`
// LinkName is the name to use for WireGuard tunnel.
LinkName string `protobuf:"bytes,2,opt,name=link_name,json=linkName,proto3" json:"link_name,omitempty"`
// MTU is the maximum transmission unit for the tunnel.
Mtu int64 `protobuf:"varint,3,opt,name=mtu,proto3" json:"mtu,omitempty"`
// NodeAddress is the virtual address of our node. It's used to identify our node in the WireGuard GRPC streamer.
// It's not the address of the actual WireGuard interface.
NodeAddress *common.NetIPPort `protobuf:"bytes,4,opt,name=node_address,json=nodeAddress,proto3" json:"node_address,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -126,10 +126,13 @@ func (x *AdjtimeStatusSpec) GetState() string {
// StatusSpec describes time sync state.
type StatusSpec struct {
state protoimpl.MessageState `protogen:"open.v1"`
Synced bool `protobuf:"varint,1,opt,name=synced,proto3" json:"synced,omitempty"`
Epoch int64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
SyncDisabled bool `protobuf:"varint,3,opt,name=sync_disabled,json=syncDisabled,proto3" json:"sync_disabled,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
// Synced indicates whether time is in sync.
Synced bool `protobuf:"varint,1,opt,name=synced,proto3" json:"synced,omitempty"`
// Epoch is incremented every time clock jumps more than 15min.
Epoch int64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
// SyncDisabled indicates if time sync is disabled.
SyncDisabled bool `protobuf:"varint,3,opt,name=sync_disabled,json=syncDisabled,proto3" json:"sync_disabled,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}

View File

@ -49,7 +49,7 @@ type VolumeStatusSpec struct {
// EncryptionProvider is the provider of the encryption which was used to unlock the volume.
EncryptionProvider EncryptionProviderType `yaml:"encryptionProvider,omitempty" protobuf:"12"`
// EncryptionFailedSyncs is the list of failed syncs for the volume (per key/provider)/
// EncryptionFailedSyncs is the list of failed syncs for the volume (per key/provider).
EncryptionFailedSyncs []string `yaml:"encryptionFailedSyncs,omitempty" protobuf:"14"`
// ConfiguredEncryptionKeys is the list of configured encryption keys for the volume.
ConfiguredEncryptionKeys []string `yaml:"configuredEncryptionKeys,omitempty" protobuf:"17"`

View File

@ -26,9 +26,9 @@ type ProcessorSpec struct {
Socket string `yaml:"socket,omitempty" protobuf:"1"`
Manufacturer string `yaml:"manufacturer,omitempty" protobuf:"2"`
ProductName string `yaml:"productName,omitempty" protobuf:"3"`
// MaxSpeed is in megahertz (Mhz)
// MaxSpeed is in megahertz (MHz).
MaxSpeed uint32 `yaml:"maxSpeedMhz,omitempty" protobuf:"4"`
// Speed is in megahertz (Mhz)
// BootSpeed is in megahertz (MHz).
BootSpeed uint32 `yaml:"bootSpeedMhz,omitempty" protobuf:"5"`
Status uint32 `yaml:"status,omitempty" protobuf:"6"`
SerialNumber string `yaml:"serialNumber,omitempty" protobuf:"7"`

View File

@ -50,13 +50,13 @@ type LinkSpecSpec struct {
// ParentName indicates link parent for VLAN interfaces.
ParentName string `yaml:"parentName,omitempty" protobuf:"7"`
// MasterName indicates master link for enslaved bonded interfaces.
// BondSlave contains bond slave configuration for interfaces enslaved to a bond.
BondSlave BondSlave `yaml:",omitempty,inline" protobuf:"8"`
// BridgeSlave indicates master link for bridged interfaces.
// BridgeSlave carries bridge slave details for bridged interfaces.
BridgeSlave BridgeSlave `yaml:"bridgeSlave,omitempty" protobuf:"9"`
// VRFSlave indicates master link for interfaces in a vrf
// VRFSlave carries VRF slave details for interfaces in a VRF.
VRFSlave VRFSlave `yaml:"vrfSlave,omitempty" protobuf:"18"`
// These structures are present depending on "Kind" for Logical interfaces.

View File

@ -27,7 +27,7 @@ type NodeAddressFilter = typed.Resource[NodeAddressFilterSpec, NodeAddressFilter
type NodeAddressFilterSpec struct {
// Address is skipped if it doesn't match any of the includeSubnets (if includeSubnets is not empty).
IncludeSubnets []netip.Prefix `yaml:"includeSubnets" protobuf:"1"`
// Address is skipped if it matches any of the includeSubnets.
// Address is skipped if it matches any of the excludeSubnets.
ExcludeSubnets []netip.Prefix `yaml:"excludeSubnets" protobuf:"2"`
}

View File

@ -206,8 +206,14 @@ func formatComments(comment *ast.CommentGroup) []string {
return result
}
// Fields represents a struct field and its protobuf number.
type Fields map[string]int
// Fields represents a struct field and its protobuf metadata.
type Fields map[string]FieldInfo
// FieldInfo contains the protobuf number and doc comments for a struct field.
type FieldInfo struct {
Num int
Comments []string
}
// getStructFieldsWithTags returns all fields of the given struct with their tags.
func getStructFieldsWithTags(structDecl *ast.TypeSpec) Fields {
@ -242,7 +248,29 @@ func getStructFieldsWithTags(structDecl *ast.TypeSpec) Fields {
panic(fmt.Errorf("invalid protobuf tag: field '%s', tag '%s': %w", name, tagValue, err))
}
result[name.Name] = num
result[name.Name] = FieldInfo{
Num: num,
Comments: fieldComments(field),
}
}
}
return result
}
// fieldComments collects doc and trailing line comments attached to a struct field.
func fieldComments(field *ast.Field) []string {
var result []string
if field.Doc != nil {
for _, c := range field.Doc.List {
result = append(result, c.Text)
}
}
if field.Comment != nil {
for _, c := range field.Comment.List {
result = append(result, c.Text)
}
}

View File

@ -44,8 +44,6 @@ func main() {
}
}
// TODO(DmitriyMV): get comments for fields
//nolint:gocyclo
func run(pkgPath, dst string) error {
loadedPkgs, err := loader.LoadPackages(pkgPath)

View File

@ -173,7 +173,8 @@ type protoField struct {
typ string
num int
goType string
goType string
comments []string
}
func protoFieldCmp(left, right protoField) int {
@ -196,10 +197,18 @@ func protoFieldCmp(left, right protoField) int {
}
func (pf protoField) WriteDebug(w io.Writer) {
for _, comment := range pf.comments {
fmt.Fprintf(w, "%s\n ", comment)
}
fmt.Fprintf(w, "%s %s = %d; // %s \n", pf.typ, ToSnakeCase(pf.name), pf.num, pf.goType)
}
func (pf protoField) Format(w io.Writer) {
for _, comment := range pf.comments {
fmt.Fprintf(w, "%s\n ", comment)
}
fmt.Fprintf(w, "%s %s = %d;\n", pf.typ, ToSnakeCase(pf.name), pf.num)
}
@ -236,10 +245,11 @@ func PrepareProtoData(pkgsTypes slices.Sorted[*types.Type], constants consts.Con
}
sliceutil.AddIfNotFound(def.Fields(), protoField{
name: field.Name,
typ: typeName,
num: field.Num,
goType: field.TypeData.Type().String(),
name: field.Name,
typ: typeName,
num: field.Num,
goType: field.TypeData.Type().String(),
comments: field.Comments,
})
continue
@ -260,10 +270,11 @@ func PrepareProtoData(pkgsTypes slices.Sorted[*types.Type], constants consts.Con
}
sliceutil.AddIfNotFound(def.Fields(), protoField{
name: field.Name,
typ: typeName,
num: field.Num,
goType: field.TypeData.Type().String(),
name: field.Name,
typ: typeName,
num: field.Num,
goType: field.TypeData.Type().String(),
comments: field.Comments,
})
continue
@ -294,10 +305,11 @@ func PrepareProtoData(pkgsTypes slices.Sorted[*types.Type], constants consts.Con
}
sliceutil.AddIfNotFound(def.Fields(), protoField{
name: field.Name,
typ: typeName,
num: field.Num,
goType: field.TypeData.Type().String(),
name: field.Name,
typ: typeName,
num: field.Num,
goType: field.TypeData.Type().String(),
comments: field.Comments,
})
continue
@ -335,10 +347,11 @@ func PrepareProtoData(pkgsTypes slices.Sorted[*types.Type], constants consts.Con
}
sliceutil.AddIfNotFound(def.Fields(), protoField{
name: field.Name,
typ: typText,
num: field.Num,
goType: field.TypeData.Type().String(),
name: field.Name,
typ: typText,
num: field.Num,
goType: field.TypeData.Type().String(),
comments: field.Comments,
})
continue

View File

@ -104,10 +104,11 @@ func pkgTypeCmp(left, right *Type) int {
return strings.Compare(left.Name, right.Name)
}
// FieldData is a struct which contains field name, proto num and type data.
// FieldData is a struct which contains field name, proto num, doc comments and type data.
type FieldData struct {
Name string
Num int
Comments []string
TypeData *types.Var
}
@ -146,9 +147,12 @@ func ParseDeclsData(sortedPkgs slices.Sorted[*PkgDecl], taggedStructs ast.Tagged
Comments: taggedStruct.Comments,
})
fieldInfo := taggedStruct.Fields[field.Name()]
v.Fields().Add(FieldData{
Name: field.Name(),
Num: taggedStruct.Fields[field.Name()],
Num: fieldInfo.Num,
Comments: fieldInfo.Comments,
TypeData: field,
})
}

View File

@ -6093,10 +6093,10 @@ DeviceSpec is the spec for devices status.
| minor | [int64](#int64) | | |
| partition_name | [string](#string) | | |
| partition_number | [int64](#int64) | | |
| generation | [int64](#int64) | | |
| generation | [int64](#int64) | | Generation is bumped every time the device might have changed and might need to be re-probed. |
| device_path | [string](#string) | | |
| parent | [string](#string) | | |
| secondaries | [string](#string) | repeated | |
| parent | [string](#string) | | Parent (if set) specifies the parent device ID. |
| secondaries | [string](#string) | repeated | Secondaries (if set) specifies the secondary device IDs.<br><br>E.g. for a LVM volume secondary is a list of blockdevices that the volume consists of. |
@ -6111,9 +6111,9 @@ DiscoveredVolumeSpec is the spec for DiscoveredVolumes resource.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| size | [uint64](#uint64) | | |
| sector_size | [uint64](#uint64) | | |
| io_size | [uint64](#uint64) | | |
| size | [uint64](#uint64) | | Overall size of the probed device (in bytes). |
| sector_size | [uint64](#uint64) | | Sector size of the device (in bytes). |
| io_size | [uint64](#uint64) | | Optimal I/O size for the device (in bytes). |
| name | [string](#string) | | |
| uuid | [string](#string) | | |
| label | [string](#string) | | |
@ -6130,7 +6130,7 @@ DiscoveredVolumeSpec is the spec for DiscoveredVolumes resource.
| dev_path | [string](#string) | | |
| parent_dev_path | [string](#string) | | |
| pretty_size | [string](#string) | | |
| offset | [uint64](#uint64) | | |
| offset | [uint64](#uint64) | | Offset of the partition/volume inside Parent device (in bytes). |
@ -6206,7 +6206,7 @@ DiskSpec is the spec for Disks status.
| cdrom | [bool](#bool) | | |
| dev_path | [string](#string) | | |
| pretty_size | [string](#string) | | |
| secondary_disks | [string](#string) | repeated | |
| secondary_disks | [string](#string) | repeated | SecondaryDisks (if set) specifies the secondary disk IDs.<br><br>E.g. if the blockdevice secondary is vda5, the secondary disk will be set as vda. This allows to map secondaries between disks ignoring the partitions. |
| uuid | [string](#string) | | |
| symlinks | [string](#string) | repeated | |
@ -6225,12 +6225,12 @@ EncryptionKey is the spec for volume encryption key.
| ----- | ---- | ----- | ----------- |
| slot | [int64](#int64) | | |
| type | [talos.resource.definitions.enums.BlockEncryptionKeyType](#talos.resource.definitions.enums.BlockEncryptionKeyType) | | |
| static_passphrase | [bytes](#bytes) | | |
| kms_endpoint | [string](#string) | | |
| tpm_check_secureboot_status_on_enroll | [bool](#bool) | | |
| static_passphrase | [bytes](#bytes) | | Only for Type == "static": |
| kms_endpoint | [string](#string) | | Only for Type == "kms": |
| tpm_check_secureboot_status_on_enroll | [bool](#bool) | | Only for Type == "tpm": |
| lock_to_state | [bool](#bool) | | |
| tpmpc_rs | [int64](#int64) | repeated | |
| tpm_pub_key_pc_rs | [int64](#int64) | repeated | |
| tpmpc_rs | [int64](#int64) | repeated | Only for Type == "tpm": |
| tpm_pub_key_pc_rs | [int64](#int64) | repeated | Only for Type == "tpm": |
@ -6265,8 +6265,8 @@ FilesystemSpec is the spec for volume filesystem.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| type | [talos.resource.definitions.enums.BlockFilesystemType](#talos.resource.definitions.enums.BlockFilesystemType) | | |
| label | [string](#string) | | |
| type | [talos.resource.definitions.enums.BlockFilesystemType](#talos.resource.definitions.enums.BlockFilesystemType) | | Filesystem type. |
| label | [string](#string) | | Filesystem label. |
@ -6281,8 +6281,8 @@ LocatorSpec is the spec for volume locator.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| match | [google.api.expr.v1alpha1.CheckedExpr](#google.api.expr.v1alpha1.CheckedExpr) | | |
| disk_match | [google.api.expr.v1alpha1.CheckedExpr](#google.api.expr.v1alpha1.CheckedExpr) | | |
| match | [google.api.expr.v1alpha1.CheckedExpr](#google.api.expr.v1alpha1.CheckedExpr) | | Match is a volume locator match expression. |
| disk_match | [google.api.expr.v1alpha1.CheckedExpr](#google.api.expr.v1alpha1.CheckedExpr) | | DiskMatch is a disk locator match expression. |
@ -6319,16 +6319,16 @@ MountSpec is the spec for volume mount.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| target_path | [string](#string) | | |
| selinux_label | [string](#string) | | |
| project_quota_support | [bool](#bool) | | |
| parent_id | [string](#string) | | |
| file_mode | [uint32](#uint32) | | |
| uid | [int64](#int64) | | |
| gid | [int64](#int64) | | |
| recursive_relabel | [bool](#bool) | | |
| bind_target | [string](#string) | | |
| parameters | [ParameterSpec](#talos.resource.definitions.block.ParameterSpec) | repeated | |
| target_path | [string](#string) | | Mount path for the volume. |
| selinux_label | [string](#string) | | SELinux label for the volume. |
| project_quota_support | [bool](#bool) | | Enable project quota (xfs) for the volume. |
| parent_id | [string](#string) | | Parent mount request ID. |
| file_mode | [uint32](#uint32) | | FileMode is the file mode for the mount target. |
| uid | [int64](#int64) | | UID is the user ID for the mount target. |
| gid | [int64](#int64) | | GID is the group ID for the mount target. |
| recursive_relabel | [bool](#bool) | | RecursiveRelabel is the recursive relabel/chown flag for the mount target. |
| bind_target | [string](#string) | | BindTarget is an optional path on the host to bind-mount the volume onto. |
| parameters | [ParameterSpec](#talos.resource.definitions.block.ParameterSpec) | repeated | Parameters are additional filesystem mount options used when mounting the volume. |
@ -6365,10 +6365,10 @@ ParameterSpec is a mount parameter.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| type | [talos.resource.definitions.enums.BlockFSParameterType](#talos.resource.definitions.enums.BlockFSParameterType) | | |
| name | [string](#string) | | |
| string | [string](#string) | | |
| binary | [bytes](#bytes) | | |
| type | [talos.resource.definitions.enums.BlockFSParameterType](#talos.resource.definitions.enums.BlockFSParameterType) | | Type of the parameter. |
| name | [string](#string) | | Name of the parameter. |
| string | [string](#string) | | String value of the parameter. |
| binary | [bytes](#bytes) | | Binary value of the parameter. |
@ -6383,13 +6383,13 @@ PartitionSpec is the spec for volume partitioning.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| min_size | [uint64](#uint64) | | |
| max_size | [uint64](#uint64) | | |
| grow | [bool](#bool) | | |
| label | [string](#string) | | |
| type_uuid | [string](#string) | | |
| relative_max_size | [uint64](#uint64) | | |
| negative_max_size | [bool](#bool) | | |
| min_size | [uint64](#uint64) | | Partition minimum size in bytes. |
| max_size | [uint64](#uint64) | | Partition maximum size in bytes, if not set, grows to the maximum size. |
| grow | [bool](#bool) | | Grow the partition automatically to the maximum size. |
| label | [string](#string) | | Label for the partition. |
| type_uuid | [string](#string) | | Partition type UUID. |
| relative_max_size | [uint64](#uint64) | | Partition maximum size (relative), if not set, grows to the maximum size. |
| negative_max_size | [bool](#bool) | | NegativeMaxSize indicates that MaxSize or RelativeMaxSize represents space to be left free on the device rather than space to consume. |
@ -6404,10 +6404,10 @@ ProvisioningSpec is the spec for volume provisioning.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| disk_selector | [DiskSelector](#talos.resource.definitions.block.DiskSelector) | | |
| partition_spec | [PartitionSpec](#talos.resource.definitions.block.PartitionSpec) | | |
| wave | [int64](#int64) | | |
| filesystem_spec | [FilesystemSpec](#talos.resource.definitions.block.FilesystemSpec) | | |
| disk_selector | [DiskSelector](#talos.resource.definitions.block.DiskSelector) | | DiskSelector selects a disk for the volume. |
| partition_spec | [PartitionSpec](#talos.resource.definitions.block.PartitionSpec) | | PartitionSpec describes how to provision the volume (partition type). |
| wave | [int64](#int64) | | Provisioning wave for the volume.<br><br>Waves are processed sequentially - the volumes in the wave are only provisioned after the previous wave is done. |
| filesystem_spec | [FilesystemSpec](#talos.resource.definitions.block.FilesystemSpec) | | FilesystemSpec describes how to provision the volume (filesystem type). |
@ -6443,8 +6443,8 @@ SymlinkProvisioningSpec is the spec for volume symlink.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| symlink_target_path | [string](#string) | | |
| force | [bool](#bool) | | |
| symlink_target_path | [string](#string) | | Symlink target path for the volume. |
| force | [bool](#bool) | | Force symlink creation. |
@ -6522,13 +6522,13 @@ VolumeConfigSpec is the spec for VolumeConfig resource.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| parent_id | [string](#string) | | |
| type | [talos.resource.definitions.enums.BlockVolumeType](#talos.resource.definitions.enums.BlockVolumeType) | | |
| provisioning | [ProvisioningSpec](#talos.resource.definitions.block.ProvisioningSpec) | | |
| locator | [LocatorSpec](#talos.resource.definitions.block.LocatorSpec) | | |
| mount | [MountSpec](#talos.resource.definitions.block.MountSpec) | | |
| encryption | [EncryptionSpec](#talos.resource.definitions.block.EncryptionSpec) | | |
| symlink | [SymlinkProvisioningSpec](#talos.resource.definitions.block.SymlinkProvisioningSpec) | | |
| parent_id | [string](#string) | | Parent volume ID, if set no operations on the volume continue until the parent volume is ready. |
| type | [talos.resource.definitions.enums.BlockVolumeType](#talos.resource.definitions.enums.BlockVolumeType) | | Volume type. |
| provisioning | [ProvisioningSpec](#talos.resource.definitions.block.ProvisioningSpec) | | Provisioning configuration (how to provision a volume). |
| locator | [LocatorSpec](#talos.resource.definitions.block.LocatorSpec) | | How to find a volume. |
| mount | [MountSpec](#talos.resource.definitions.block.MountSpec) | | Mount options for the volume. |
| encryption | [EncryptionSpec](#talos.resource.definitions.block.EncryptionSpec) | | Encryption configuration (how to encrypt a volume). |
| symlink | [SymlinkProvisioningSpec](#talos.resource.definitions.block.SymlinkProvisioningSpec) | | Symlink options for the volume. |
@ -6585,27 +6585,27 @@ VolumeStatusSpec is the spec for VolumeStatus resource.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| phase | [talos.resource.definitions.enums.BlockVolumePhase](#talos.resource.definitions.enums.BlockVolumePhase) | | |
| location | [string](#string) | | |
| location | [string](#string) | | Location is the path to the block device (raw). |
| error_message | [string](#string) | | |
| uuid | [string](#string) | | |
| partition_uuid | [string](#string) | | |
| pre_fail_phase | [talos.resource.definitions.enums.BlockVolumePhase](#talos.resource.definitions.enums.BlockVolumePhase) | | |
| parent_location | [string](#string) | | |
| parent_location | [string](#string) | | ParentLocation (if present) is the location of the parent block device for partitions. |
| partition_index | [int64](#int64) | | |
| size | [uint64](#uint64) | | |
| filesystem | [talos.resource.definitions.enums.BlockFilesystemType](#talos.resource.definitions.enums.BlockFilesystemType) | | |
| mount_location | [string](#string) | | |
| encryption_provider | [talos.resource.definitions.enums.BlockEncryptionProviderType](#talos.resource.definitions.enums.BlockEncryptionProviderType) | | |
| filesystem | [talos.resource.definitions.enums.BlockFilesystemType](#talos.resource.definitions.enums.BlockFilesystemType) | | Filesystem is the filesystem type. |
| mount_location | [string](#string) | | MountLocation is the location to be mounted, might be different from location. |
| encryption_provider | [talos.resource.definitions.enums.BlockEncryptionProviderType](#talos.resource.definitions.enums.BlockEncryptionProviderType) | | EncryptionProvider is the provider of the encryption which was used to unlock the volume. |
| pretty_size | [string](#string) | | |
| encryption_failed_syncs | [string](#string) | repeated | |
| mount_spec | [MountSpec](#talos.resource.definitions.block.MountSpec) | | |
| encryption_failed_syncs | [string](#string) | repeated | EncryptionFailedSyncs is the list of failed syncs for the volume (per key/provider). |
| mount_spec | [MountSpec](#talos.resource.definitions.block.MountSpec) | | MountSpec is the mount specification. |
| type | [talos.resource.definitions.enums.BlockVolumeType](#talos.resource.definitions.enums.BlockVolumeType) | | |
| configured_encryption_keys | [string](#string) | repeated | |
| symlink_spec | [SymlinkProvisioningSpec](#talos.resource.definitions.block.SymlinkProvisioningSpec) | | |
| configured_encryption_keys | [string](#string) | repeated | ConfiguredEncryptionKeys is the list of configured encryption keys for the volume. |
| symlink_spec | [SymlinkProvisioningSpec](#talos.resource.definitions.block.SymlinkProvisioningSpec) | | Symlink is the symlink specification. |
| parent_id | [string](#string) | | |
| encryption_locked_to_state | [bool](#bool) | | |
| encryption_slot | [int64](#int64) | | |
| tpm_encryption_options | [TPMEncryptionOptionsInfo](#talos.resource.definitions.block.TPMEncryptionOptionsInfo) | | |
| encryption_locked_to_state | [bool](#bool) | | EncryptionLockedToState indicates if the encryption is locked to STATE partition |
| encryption_slot | [int64](#int64) | | EncryptionSlot indicates the currently used encryption slot used for decryption. |
| tpm_encryption_options | [TPMEncryptionOptionsInfo](#talos.resource.definitions.block.TPMEncryptionOptionsInfo) | | TPMEncryptionOptions is the options for TPM-based encryption. |
@ -6721,7 +6721,7 @@ so YAML serialization should be kept backwards compatible.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| node_id | [string](#string) | | |
| node_id | [string](#string) | | NodeID is a random value which is persisted across reboots, but it gets reset on wipe. |
@ -7332,8 +7332,8 @@ ProcessorSpec represents a single processor.
| socket | [string](#string) | | |
| manufacturer | [string](#string) | | |
| product_name | [string](#string) | | |
| max_speed | [uint32](#uint32) | | |
| boot_speed | [uint32](#uint32) | | |
| max_speed | [uint32](#uint32) | | MaxSpeed is in megahertz (MHz). |
| boot_speed | [uint32](#uint32) | | BootSpeed is in megahertz (MHz). |
| status | [uint32](#uint32) | | |
| serial_number | [string](#string) | | |
| asset_tag | [string](#string) | | |
@ -7893,7 +7893,7 @@ KubeletKubeconfigSpec describes the current kubelet kubeconfig file.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| hash | [string](#string) | | |
| hash | [string](#string) | | Hash is a content digest of the kubeconfig file. It changes whenever the file contents change, which is the signal consumers use to rebuild their Kubernetes clients. |
@ -8336,13 +8336,13 @@ ConfigSpec describes KubeSpan configuration..
| enabled | [bool](#bool) | | |
| cluster_id | [string](#string) | | |
| shared_secret | [string](#string) | | |
| force_routing | [bool](#bool) | | |
| advertise_kubernetes_networks | [bool](#bool) | | |
| mtu | [uint32](#uint32) | | |
| endpoint_filters | [string](#string) | repeated | |
| harvest_extra_endpoints | [bool](#bool) | | |
| extra_endpoints | [common.NetIPPort](#common.NetIPPort) | repeated | |
| exclude_advertised_networks | [common.NetIPPrefix](#common.NetIPPrefix) | repeated | |
| force_routing | [bool](#bool) | | Force routing via KubeSpan even if the peer connection is not up. |
| advertise_kubernetes_networks | [bool](#bool) | | Advertise Kubernetes pod networks or skip it completely. |
| mtu | [uint32](#uint32) | | Force kubeSpan MTU size. |
| endpoint_filters | [string](#string) | repeated | If not empty, filter advertised endpoints using the list of CIDRs. |
| harvest_extra_endpoints | [bool](#bool) | | Harvest endpoints from the peer statuses. |
| extra_endpoints | [common.NetIPPort](#common.NetIPPort) | repeated | Extra endpoints to announce. |
| exclude_advertised_networks | [common.NetIPPrefix](#common.NetIPPrefix) | repeated | If not empty, filter advertised networks using the list of CIDRs. |
@ -8376,9 +8376,9 @@ so YAML serialization should be kept backwards compatible.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| address | [common.NetIPPrefix](#common.NetIPPrefix) | | |
| address | [common.NetIPPrefix](#common.NetIPPrefix) | | Address of the node on the Wireguard network. |
| subnet | [common.NetIPPrefix](#common.NetIPPrefix) | | |
| private_key | [string](#string) | | |
| private_key | [string](#string) | | Public and private Wireguard keys. |
| public_key | [string](#string) | | |
@ -8412,13 +8412,13 @@ PeerStatusSpec describes PeerStatus state.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| endpoint | [common.NetIPPort](#common.NetIPPort) | | |
| label | [string](#string) | | |
| state | [talos.resource.definitions.enums.KubespanPeerState](#talos.resource.definitions.enums.KubespanPeerState) | | |
| receive_bytes | [int64](#int64) | | |
| endpoint | [common.NetIPPort](#common.NetIPPort) | | Active endpoint as seen by the Wireguard. |
| label | [string](#string) | | Label derived from the peer spec. |
| state | [talos.resource.definitions.enums.KubespanPeerState](#talos.resource.definitions.enums.KubespanPeerState) | | Calculated state. |
| receive_bytes | [int64](#int64) | | Tx/Rx bytes. |
| transmit_bytes | [int64](#int64) | | |
| last_handshake_time | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | |
| last_used_endpoint | [common.NetIPPort](#common.NetIPPort) | | |
| last_handshake_time | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | Handshake. |
| last_used_endpoint | [common.NetIPPort](#common.NetIPPort) | | Endpoint selection input. |
| last_endpoint_change | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | |
@ -8483,7 +8483,7 @@ DevicesStatusSpec is the spec for devices status.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| ready | [bool](#bool) | | |
| ready | [bool](#bool) | | Devices are settled down and ready to be used. |
@ -8498,8 +8498,8 @@ DiagnosticSpec is the spec for devices status.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| message | [string](#string) | | |
| details | [string](#string) | repeated | |
| message | [string](#string) | | Short message describing the problem. |
| details | [string](#string) | repeated | Details about the problem. |
@ -8886,8 +8886,8 @@ ServicePIDSpec is the spec for the service PID.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| pid | [int32](#int32) | | |
| mount_namespace | [string](#string) | | |
| pid | [int32](#int32) | | PID is the host PID of the service. |
| mount_namespace | [string](#string) | | MountNamespace is the mount namespace of the service. |
@ -9045,34 +9045,34 @@ BondMasterSpec describes bond settings if Kind == "bond".
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| mode | [talos.resource.definitions.enums.NethelpersBondMode](#talos.resource.definitions.enums.NethelpersBondMode) | | |
| hash_policy | [talos.resource.definitions.enums.NethelpersBondXmitHashPolicy](#talos.resource.definitions.enums.NethelpersBondXmitHashPolicy) | | |
| lacp_rate | [talos.resource.definitions.enums.NethelpersLACPRate](#talos.resource.definitions.enums.NethelpersLACPRate) | | |
| arp_validate | [talos.resource.definitions.enums.NethelpersARPValidate](#talos.resource.definitions.enums.NethelpersARPValidate) | | |
| arp_all_targets | [talos.resource.definitions.enums.NethelpersARPAllTargets](#talos.resource.definitions.enums.NethelpersARPAllTargets) | | |
| primary_index | [uint32](#uint32) | | |
| primary_reselect | [talos.resource.definitions.enums.NethelpersPrimaryReselect](#talos.resource.definitions.enums.NethelpersPrimaryReselect) | | |
| fail_over_mac | [talos.resource.definitions.enums.NethelpersFailOverMAC](#talos.resource.definitions.enums.NethelpersFailOverMAC) | | |
| ad_select | [talos.resource.definitions.enums.NethelpersADSelect](#talos.resource.definitions.enums.NethelpersADSelect) | | |
| mii_mon | [uint32](#uint32) | | |
| up_delay | [uint32](#uint32) | | |
| down_delay | [uint32](#uint32) | | |
| arp_interval | [uint32](#uint32) | | |
| resend_igmp | [uint32](#uint32) | | |
| min_links | [uint32](#uint32) | | |
| lp_interval | [uint32](#uint32) | | |
| packets_per_slave | [uint32](#uint32) | | |
| num_peer_notif | [uint32](#uint32) | | |
| tlb_dynamic_lb | [uint32](#uint32) | | |
| all_slaves_active | [uint32](#uint32) | | |
| use_carrier | [bool](#bool) | | |
| ad_actor_sys_prio | [uint32](#uint32) | | |
| ad_user_port_key | [uint32](#uint32) | | |
| peer_notify_delay | [uint32](#uint32) | | |
| arpip_targets | [common.NetIP](#common.NetIP) | repeated | |
| nsip6_targets | [common.NetIP](#common.NetIP) | repeated | |
| adlacp_active | [talos.resource.definitions.enums.NethelpersADLACPActive](#talos.resource.definitions.enums.NethelpersADLACPActive) | | |
| missed_max | [uint32](#uint32) | | |
| mode | [talos.resource.definitions.enums.NethelpersBondMode](#talos.resource.definitions.enums.NethelpersBondMode) | | Mode specifies the bonding policy |
| hash_policy | [talos.resource.definitions.enums.NethelpersBondXmitHashPolicy](#talos.resource.definitions.enums.NethelpersBondXmitHashPolicy) | | HashPolicy selects the transmit hash policy to use for slave selection. |
| lacp_rate | [talos.resource.definitions.enums.NethelpersLACPRate](#talos.resource.definitions.enums.NethelpersLACPRate) | | LACPRate specifies the rate at which LACPDU frames are sent. |
| arp_validate | [talos.resource.definitions.enums.NethelpersARPValidate](#talos.resource.definitions.enums.NethelpersARPValidate) | | ARPValidate specifies whether or not ARP probes and replies should be validated. |
| arp_all_targets | [talos.resource.definitions.enums.NethelpersARPAllTargets](#talos.resource.definitions.enums.NethelpersARPAllTargets) | | ARPAllTargets specifies whether ARP probes should be sent to any or all targets. |
| primary_index | [uint32](#uint32) | | PrimaryIndex is a device index specifying which slave is the primary device. |
| primary_reselect | [talos.resource.definitions.enums.NethelpersPrimaryReselect](#talos.resource.definitions.enums.NethelpersPrimaryReselect) | | PrimaryReselect specifies the policy under which the primary slave should be reselected. |
| fail_over_mac | [talos.resource.definitions.enums.NethelpersFailOverMAC](#talos.resource.definitions.enums.NethelpersFailOverMAC) | | FailOverMac whether active-backup mode should set all slaves to the same MAC address at enslavement, when enabled, or perform special handling. |
| ad_select | [talos.resource.definitions.enums.NethelpersADSelect](#talos.resource.definitions.enums.NethelpersADSelect) | | ADSelect specifies the aggregate selection policy for 802.3ad. |
| mii_mon | [uint32](#uint32) | | MIIMon is the link monitoring frequency in milliseconds. |
| up_delay | [uint32](#uint32) | | UpDelay is the time, in milliseconds, to wait before enabling a slave after a link recovery has been detected. |
| down_delay | [uint32](#uint32) | | DownDelay is the time, in milliseconds, to wait before disabling a slave after a link failure has been detected. |
| arp_interval | [uint32](#uint32) | | ARPInterval is the ARP link monitoring frequency in milliseconds. |
| resend_igmp | [uint32](#uint32) | | ResendIGMP specifies the number of times IGMP packets should be resent. |
| min_links | [uint32](#uint32) | | MinLinks specifies the minimum number of active links to assert carrier. |
| lp_interval | [uint32](#uint32) | | LPInterval specifies the number of seconds between instances where the bonding driver sends learning packets to each slave's peer switch. |
| packets_per_slave | [uint32](#uint32) | | PacketsPerSlave specifies the number of packets to transmit through a slave before moving to the next one. |
| num_peer_notif | [uint32](#uint32) | | NumPeerNotif specifies the number of peer notifications (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements) to be issued after a failover event. |
| tlb_dynamic_lb | [uint32](#uint32) | | TLBDynamicLB specifies if dynamic shuffling of flows is enabled in tlb or alb mode. |
| all_slaves_active | [uint32](#uint32) | | AllSlavesActive specifies that duplicate frames (received on inactive ports) should be dropped (0) or delivered (1). |
| use_carrier | [bool](#bool) | | UseCarrier specifies whether or not miimon should use MII or ETHTOOL. |
| ad_actor_sys_prio | [uint32](#uint32) | | ADActorSysPrio is the actor system priority for 802.3ad. |
| ad_user_port_key | [uint32](#uint32) | | ADUserPortKey is the user port key (upper 10 bits) for 802.3ad. |
| peer_notify_delay | [uint32](#uint32) | | PeerNotifyDelay is the delay, in milliseconds, between each peer notification. |
| arpip_targets | [common.NetIP](#common.NetIP) | repeated | ARPIPTargets is the list of IP addresses to use for ARP link monitoring when ARPInterval is set.<br><br>Maximum of 16 targets are supported. |
| nsip6_targets | [common.NetIP](#common.NetIP) | repeated | NSIP6Targets is the list of IPv6 addresses to use for NS link monitoring when ARPInterval is set.<br><br>Maximum of 16 targets are supported. |
| adlacp_active | [talos.resource.definitions.enums.NethelpersADLACPActive](#talos.resource.definitions.enums.NethelpersADLACPActive) | | ADLACPActive specifies whether to send LACPDU frames periodically. |
| missed_max | [uint32](#uint32) | | MissedMax is the number of arp_interval monitor checks that must fail in order for an interface to be marked down by the ARP monitor. |
@ -9087,8 +9087,8 @@ BondSlave contains a bond's master name and slave index.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| master_name | [string](#string) | | |
| slave_index | [int64](#int64) | | |
| master_name | [string](#string) | | MasterName indicates master link for enslaved bonded interfaces. |
| slave_index | [int64](#int64) | | SlaveIndex indicates a slave's position in bond. |
@ -9119,7 +9119,7 @@ BridgeSlave contains the name of the master bridge of a bridged interface
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| master_name | [string](#string) | | |
| master_name | [string](#string) | | MasterName indicates master link for enslaved bridged interfaces. |
@ -9232,11 +9232,11 @@ EthernetChannelsStatus describes status of Ethernet channels.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| rx_max | [uint32](#uint32) | | |
| rx_max | [uint32](#uint32) | | Read-only settings. |
| tx_max | [uint32](#uint32) | | |
| other_max | [uint32](#uint32) | | |
| combined_max | [uint32](#uint32) | | |
| rx | [uint32](#uint32) | | |
| rx | [uint32](#uint32) | | Current settings (read-write). |
| tx | [uint32](#uint32) | | |
| other | [uint32](#uint32) | | |
| combined | [uint32](#uint32) | | |
@ -9294,12 +9294,12 @@ EthernetRingsStatus describes status of Ethernet rings.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| rx_max | [uint32](#uint32) | | |
| rx_max | [uint32](#uint32) | | Read-only settings. |
| rx_mini_max | [uint32](#uint32) | | |
| rx_jumbo_max | [uint32](#uint32) | | |
| tx_max | [uint32](#uint32) | | |
| tx_push_buf_len_max | [uint32](#uint32) | | |
| rx | [uint32](#uint32) | | |
| rx | [uint32](#uint32) | | Current settings (read-write). |
| rx_mini | [uint32](#uint32) | | |
| rx_jumbo | [uint32](#uint32) | | |
| tx | [uint32](#uint32) | | |
@ -9381,8 +9381,8 @@ HardwareAddrSpec describes spec for the link.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| hardware_addr | [bytes](#bytes) | | |
| name | [string](#string) | | Name defines link name |
| hardware_addr | [bytes](#bytes) | | Hardware address |
@ -9478,24 +9478,24 @@ LinkSpecSpec describes spec for the link.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| logical | [bool](#bool) | | |
| up | [bool](#bool) | | |
| mtu | [uint32](#uint32) | | |
| kind | [string](#string) | | |
| name | [string](#string) | | Name defines link name |
| logical | [bool](#bool) | | Logical describes if the interface should be created on the fly if it doesn't exist. |
| up | [bool](#bool) | | If Up is true, bring interface up, otherwise bring interface down.<br><br>TODO: make *bool ? |
| mtu | [uint32](#uint32) | | Interface MTU (always applies). |
| kind | [string](#string) | | Kind and Type are only required for Logical interfaces. |
| type | [talos.resource.definitions.enums.NethelpersLinkType](#talos.resource.definitions.enums.NethelpersLinkType) | | |
| parent_name | [string](#string) | | |
| bond_slave | [BondSlave](#talos.resource.definitions.network.BondSlave) | | |
| bridge_slave | [BridgeSlave](#talos.resource.definitions.network.BridgeSlave) | | |
| vlan | [VLANSpec](#talos.resource.definitions.network.VLANSpec) | | |
| parent_name | [string](#string) | | ParentName indicates link parent for VLAN interfaces. |
| bond_slave | [BondSlave](#talos.resource.definitions.network.BondSlave) | | BondSlave contains bond slave configuration for interfaces enslaved to a bond. |
| bridge_slave | [BridgeSlave](#talos.resource.definitions.network.BridgeSlave) | | BridgeSlave carries bridge slave details for bridged interfaces. |
| vlan | [VLANSpec](#talos.resource.definitions.network.VLANSpec) | | These structures are present depending on "Kind" for Logical interfaces. |
| bond_master | [BondMasterSpec](#talos.resource.definitions.network.BondMasterSpec) | | |
| bridge_master | [BridgeMasterSpec](#talos.resource.definitions.network.BridgeMasterSpec) | | |
| wireguard | [WireguardSpec](#talos.resource.definitions.network.WireguardSpec) | | |
| config_layer | [talos.resource.definitions.enums.NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer) | | |
| hardware_address | [bytes](#bytes) | | |
| multicast | [bool](#bool) | | |
| config_layer | [talos.resource.definitions.enums.NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer) | | Configuration layer. |
| hardware_address | [bytes](#bytes) | | Override hardware (MAC) address (if supported). |
| multicast | [bool](#bool) | | Multicast indicates whether the multicast flag should be set on the interface to the value. |
| vrf_master | [VRFMasterSpec](#talos.resource.definitions.network.VRFMasterSpec) | | |
| vrf_slave | [VRFSlave](#talos.resource.definitions.network.VRFSlave) | | |
| vrf_slave | [VRFSlave](#talos.resource.definitions.network.VRFSlave) | | VRFSlave carries VRF slave details for interfaces in a VRF. |
@ -9531,16 +9531,16 @@ LinkStatusSpec describes status of rendered secrets.
| vendor_id | [string](#string) | | |
| product | [string](#string) | | |
| vendor | [string](#string) | | |
| link_state | [bool](#bool) | | |
| link_state | [bool](#bool) | | Fields coming from ethtool API. |
| speed_megabits | [int64](#int64) | | |
| port | [talos.resource.definitions.enums.NethelpersPort](#talos.resource.definitions.enums.NethelpersPort) | | |
| duplex | [talos.resource.definitions.enums.NethelpersDuplex](#talos.resource.definitions.enums.NethelpersDuplex) | | |
| vlan | [VLANSpec](#talos.resource.definitions.network.VLANSpec) | | |
| vlan | [VLANSpec](#talos.resource.definitions.network.VLANSpec) | | Following fields are only populated with respective Kind. |
| bridge_master | [BridgeMasterSpec](#talos.resource.definitions.network.BridgeMasterSpec) | | |
| bond_master | [BondMasterSpec](#talos.resource.definitions.network.BondMasterSpec) | | |
| wireguard | [WireguardSpec](#talos.resource.definitions.network.WireguardSpec) | | |
| permanent_addr | [bytes](#bytes) | | |
| alias | [string](#string) | | |
| alias | [string](#string) | | Fields coming from rtnetlink API. |
| alt_names | [string](#string) | repeated | |
| vrf_master | [VRFMasterSpec](#talos.resource.definitions.network.VRFMasterSpec) | | |
@ -9755,8 +9755,8 @@ NodeAddressFilterSpec describes a filter for NodeAddresses.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| include_subnets | [common.NetIPPrefix](#common.NetIPPrefix) | repeated | |
| exclude_subnets | [common.NetIPPrefix](#common.NetIPPrefix) | repeated | |
| include_subnets | [common.NetIPPrefix](#common.NetIPPrefix) | repeated | Address is skipped if it doesn't match any of the includeSubnets (if includeSubnets is not empty). |
| exclude_subnets | [common.NetIPPrefix](#common.NetIPPrefix) | repeated | Address is skipped if it matches any of the excludeSubnets. |
@ -9868,10 +9868,10 @@ ProbeSpecSpec describes the Probe.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| interval | [google.protobuf.Duration](#google.protobuf.Duration) | | |
| failure_threshold | [int64](#int64) | | |
| tcp | [TCPProbeSpec](#talos.resource.definitions.network.TCPProbeSpec) | | |
| config_layer | [talos.resource.definitions.enums.NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer) | | |
| interval | [google.protobuf.Duration](#google.protobuf.Duration) | | Interval between the probes. |
| failure_threshold | [int64](#int64) | | FailureThreshold is the number of consecutive failures for the probe to be considered failed after having succeeded. |
| tcp | [TCPProbeSpec](#talos.resource.definitions.network.TCPProbeSpec) | | One of the probe types should be specified, for now it's only TCP. |
| config_layer | [talos.resource.definitions.enums.NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer) | | Configuration layer. |
@ -9886,8 +9886,8 @@ ProbeStatusSpec describes the Probe.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| success | [bool](#bool) | | |
| last_error | [string](#string) | | |
| success | [bool](#bool) | | Success of the check. |
| last_error | [string](#string) | | Last error of the probe. |
@ -10071,8 +10071,8 @@ TCPProbeSpec describes the TCP Probe.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| endpoint | [string](#string) | | |
| timeout | [google.protobuf.Duration](#google.protobuf.Duration) | | |
| endpoint | [string](#string) | | Endpoint to probe: host:port. |
| timeout | [google.protobuf.Duration](#google.protobuf.Duration) | | Timeout for the probe. |
@ -10172,8 +10172,8 @@ VLANSpec describes VLAN settings if Kind == "vlan".
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| vid | [uint32](#uint32) | | |
| protocol | [talos.resource.definitions.enums.NethelpersVLANProtocol](#talos.resource.definitions.enums.NethelpersVLANProtocol) | | |
| vid | [uint32](#uint32) | | VID is the vlan ID. |
| protocol | [talos.resource.definitions.enums.NethelpersVLANProtocol](#talos.resource.definitions.enums.NethelpersVLANProtocol) | | Protocol is the vlan protocol. |
@ -10237,8 +10237,8 @@ WireguardSpec describes Wireguard settings if Kind == "wireguard".
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| private_key | [string](#string) | | |
| public_key | [string](#string) | | |
| private_key | [string](#string) | | PrivateKey is used to configure the link, present only in the LinkSpec. |
| public_key | [string](#string) | | PublicKey is only used in LinkStatus to show the link status. |
| listen_port | [int64](#int64) | | |
| firewall_mark | [int64](#int64) | | |
| peers | [WireguardPeer](#talos.resource.definitions.network.WireguardPeer) | repeated | |
@ -10399,7 +10399,7 @@ APICertsSpec describes etcd certs secrets.
| client | [common.PEMEncodedCertificateAndKey](#common.PEMEncodedCertificateAndKey) | | |
| server | [common.PEMEncodedCertificateAndKey](#common.PEMEncodedCertificateAndKey) | | |
| accepted_c_as | [common.PEMEncodedCertificate](#common.PEMEncodedCertificate) | repeated | |
| skip_verifying_client_cert | [bool](#bool) | | |
| skip_verifying_client_cert | [bool](#bool) | | Skip verifying client certificate, to be used only with the maintenance mode operations. |
@ -10499,7 +10499,7 @@ KubernetesCertsSpec describes generated Kubernetes certificates.
| ----- | ---- | ----- | ----------- |
| scheduler_kubeconfig | [string](#string) | | |
| controller_manager_kubeconfig | [string](#string) | | |
| localhost_admin_kubeconfig | [string](#string) | | |
| localhost_admin_kubeconfig | [string](#string) | | Admin-level kubeconfig with access through the localhost endpoint and cluster endpoints. |
| admin_kubeconfig | [string](#string) | | |
@ -10626,9 +10626,9 @@ ImageKeylessVerifierSpec represents a signature verification provider.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| issuer | [string](#string) | | |
| subject | [string](#string) | | |
| subject_regex | [string](#string) | | |
| issuer | [string](#string) | | Issuer is the OIDC issuer URL. |
| subject | [string](#string) | | Subject is the expected subject. |
| subject_regex | [string](#string) | | SubjectRegex is a regex pattern for subject matching. |
@ -10643,7 +10643,7 @@ ImagePublicKeyVerifierSpec represents a signature verification provider with sta
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| certificate | [string](#string) | | |
| certificate | [string](#string) | | Certificate is a public certificate in PEM format accepted for image signature verification. |
@ -10658,11 +10658,11 @@ ImageVerificationRuleSpec represents a verification rule.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| image_pattern | [string](#string) | | |
| skip | [bool](#bool) | | |
| deny | [bool](#bool) | | |
| keyless_verifier | [ImageKeylessVerifierSpec](#talos.resource.definitions.security.ImageKeylessVerifierSpec) | | |
| public_key_verifier | [ImagePublicKeyVerifierSpec](#talos.resource.definitions.security.ImagePublicKeyVerifierSpec) | | |
| image_pattern | [string](#string) | | ImagePattern is the image name pattern. |
| skip | [bool](#bool) | | Skip is the action for matching images. |
| deny | [bool](#bool) | | Deny is the action for matching images. |
| keyless_verifier | [ImageKeylessVerifierSpec](#talos.resource.definitions.security.ImageKeylessVerifierSpec) | | KeylessVerifier is the keyless verifier configuration to use. |
| public_key_verifier | [ImagePublicKeyVerifierSpec](#talos.resource.definitions.security.ImagePublicKeyVerifierSpec) | | PublicKeyVerifier is the public key verifier configuration to use. |
@ -10677,8 +10677,8 @@ TUFTrustedRootSpec represents a sigstore's TUF trusted root information.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| last_refresh_time | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | |
| json_data | [string](#string) | | |
| last_refresh_time | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | LastRefreshTime is the last time the trusted root was refreshed. |
| json_data | [string](#string) | | JSONData is the trusted root data in JSON format. |
@ -10728,10 +10728,10 @@ StatusSpec describes Siderolink status.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| host | [string](#string) | | |
| connected | [bool](#bool) | | |
| link_name | [string](#string) | | |
| grpc_tunnel | [bool](#bool) | | |
| host | [string](#string) | | Host is the Siderolink target host. |
| connected | [bool](#bool) | | Connected is the status of the Siderolink GRPC connection. |
| link_name | [string](#string) | | LinkName is the name of the interface used for the Siderolink tunnel. |
| grpc_tunnel | [bool](#bool) | | GRPCTunnel is true if the Wireguard-over-GRPC tunnel is being used. |
@ -10746,10 +10746,10 @@ TunnelSpec describes Siderolink GRPC Tunnel configuration.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| api_endpoint | [string](#string) | | |
| link_name | [string](#string) | | |
| mtu | [int64](#int64) | | |
| node_address | [common.NetIPPort](#common.NetIPPort) | | |
| api_endpoint | [string](#string) | | APIEndpoint is the Siderolink WireGuard over GRPC endpoint. |
| link_name | [string](#string) | | LinkName is the name to use for WireGuard tunnel. |
| mtu | [int64](#int64) | | MTU is the maximum transmission unit for the tunnel. |
| node_address | [common.NetIPPort](#common.NetIPPort) | | NodeAddress is the virtual address of our node. It's used to identify our node in the WireGuard GRPC streamer. It's not the address of the actual WireGuard interface. |
@ -10802,9 +10802,9 @@ StatusSpec describes time sync state.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| synced | [bool](#bool) | | |
| epoch | [int64](#int64) | | |
| sync_disabled | [bool](#bool) | | |
| synced | [bool](#bool) | | Synced indicates whether time is in sync. |
| epoch | [int64](#int64) | | Epoch is incremented every time clock jumps more than 15min. |
| sync_disabled | [bool](#bool) | | SyncDisabled indicates if time sync is disabled. |