mirror of
https://github.com/siderolabs/talos.git
synced 2025-09-28 17:21:24 +02:00
feat: support setting wake-on-lan for Ethernet
Fixes #11866 Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
This commit is contained in:
parent
94f78dbe79
commit
1fca111e24
@ -376,6 +376,18 @@ enum NethelpersVLANProtocol {
|
|||||||
VLAN_PROTOCOL8021_AD = 34984;
|
VLAN_PROTOCOL8021_AD = 34984;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||||
|
enum NethelpersWOLMode {
|
||||||
|
NETHELPERS_WOLMODE_UNSPECIFIED = 0;
|
||||||
|
WOL_MODE_PHY = 1;
|
||||||
|
WOL_MODE_UNICAST = 2;
|
||||||
|
WOL_MODE_MULTICAST = 4;
|
||||||
|
WOL_MODE_BROADCAST = 8;
|
||||||
|
WOL_MODE_MAGIC = 32;
|
||||||
|
WOL_MODE_MAGIC_SECURE = 64;
|
||||||
|
WOL_MODE_FILTER = 128;
|
||||||
|
}
|
||||||
|
|
||||||
// BlockEncryptionKeyType describes encryption key type.
|
// BlockEncryptionKeyType describes encryption key type.
|
||||||
enum BlockEncryptionKeyType {
|
enum BlockEncryptionKeyType {
|
||||||
ENCRYPTION_KEY_STATIC = 0;
|
ENCRYPTION_KEY_STATIC = 0;
|
||||||
|
@ -169,6 +169,7 @@ message EthernetSpecSpec {
|
|||||||
EthernetRingsSpec rings = 1;
|
EthernetRingsSpec rings = 1;
|
||||||
map<string, bool> features = 2;
|
map<string, bool> features = 2;
|
||||||
EthernetChannelsSpec channels = 3;
|
EthernetChannelsSpec channels = 3;
|
||||||
|
repeated talos.resource.definitions.enums.NethelpersWOLMode wake_on_lan = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthernetStatusSpec describes status of rendered secrets.
|
// EthernetStatusSpec describes status of rendered secrets.
|
||||||
@ -182,6 +183,7 @@ message EthernetStatusSpec {
|
|||||||
EthernetRingsStatus rings = 7;
|
EthernetRingsStatus rings = 7;
|
||||||
repeated EthernetFeatureStatus features = 8;
|
repeated EthernetFeatureStatus features = 8;
|
||||||
EthernetChannelsStatus channels = 9;
|
EthernetChannelsStatus channels = 9;
|
||||||
|
repeated talos.resource.definitions.enums.NethelpersWOLMode wake_on_lan = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
// HardwareAddrSpec describes spec for the link.
|
// HardwareAddrSpec describes spec for the link.
|
||||||
|
@ -66,6 +66,13 @@ The list of overridden settings is available with `talosctl get kernelparamstatu
|
|||||||
title = "Extra Binaries"
|
title = "Extra Binaries"
|
||||||
description = """\
|
description = """\
|
||||||
Talos Linux now ships with `nft` binary in the rootfs to support CNIs which shell out to `nft` command.
|
Talos Linux now ships with `nft` binary in the rootfs to support CNIs which shell out to `nft` command.
|
||||||
|
"""
|
||||||
|
|
||||||
|
[notes.ethernet-config]
|
||||||
|
title = "Ethernet Configuration"
|
||||||
|
description = """\
|
||||||
|
The Ethernet configuration now includes a `wakeOnLAN` field to enable Wake-on-LAN (WOL) support.
|
||||||
|
This field can be set to enable WOL and specify the desired WOL modes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[make_deps]
|
[make_deps]
|
||||||
|
@ -87,6 +87,10 @@ func (suite *NodeIdentitySuite) TestLoad() {
|
|||||||
func TestNodeIdentitySuite(t *testing.T) {
|
func TestNodeIdentitySuite(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.Run(t, &NodeIdentitySuite{
|
suite.Run(t, &NodeIdentitySuite{
|
||||||
DefaultSuite: ctest.DefaultSuite{
|
DefaultSuite: ctest.DefaultSuite{
|
||||||
AfterSetup: func(suite *ctest.DefaultSuite) {
|
AfterSetup: func(suite *ctest.DefaultSuite) {
|
||||||
|
@ -297,6 +297,10 @@ func (suite *AcquireSuite) injectViaDisk(cfg []byte, wait bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (suite *AcquireSuite) TestFromDisk() {
|
func (suite *AcquireSuite) TestFromDisk() {
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
suite.T().Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.presentStateVolume()
|
suite.presentStateVolume()
|
||||||
|
|
||||||
suite.triggerAcquire()
|
suite.triggerAcquire()
|
||||||
@ -319,6 +323,10 @@ func (suite *AcquireSuite) TestFromDisk() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (suite *AcquireSuite) TestFromDiskFailure() {
|
func (suite *AcquireSuite) TestFromDiskFailure() {
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
suite.T().Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.presentStateVolume()
|
suite.presentStateVolume()
|
||||||
|
|
||||||
suite.triggerAcquire()
|
suite.triggerAcquire()
|
||||||
@ -344,6 +352,10 @@ func (suite *AcquireSuite) TestFromDiskFailure() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (suite *AcquireSuite) TestFromDiskToMaintenance() {
|
func (suite *AcquireSuite) TestFromDiskToMaintenance() {
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
suite.T().Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.presentStateVolume()
|
suite.presentStateVolume()
|
||||||
|
|
||||||
suite.triggerAcquire()
|
suite.triggerAcquire()
|
||||||
|
@ -133,6 +133,10 @@ func (suite *PersistenceSuite) TestConfig() {
|
|||||||
func TestPersistenceSuite(t *testing.T) {
|
func TestPersistenceSuite(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
sideroLinkCfg1 := siderolink.NewConfigV1Alpha1()
|
sideroLinkCfg1 := siderolink.NewConfigV1Alpha1()
|
||||||
sideroLinkCfg1.APIUrlConfig.URL = must(url.Parse("https://siderolink.api/?jointoken=secret&user=alice"))
|
sideroLinkCfg1.APIUrlConfig.URL = must(url.Parse("https://siderolink.api/?jointoken=secret&user=alice"))
|
||||||
|
|
||||||
|
@ -139,6 +139,10 @@ func TestIdentitySuite(t *testing.T) {
|
|||||||
t.Skip("skipping test in FIPS mode")
|
t.Skip("skipping test in FIPS mode")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.Run(t, &IdentitySuite{
|
suite.Run(t, &IdentitySuite{
|
||||||
DefaultSuite: ctest.DefaultSuite{
|
DefaultSuite: ctest.DefaultSuite{
|
||||||
AfterSetup: func(suite *ctest.DefaultSuite) {
|
AfterSetup: func(suite *ctest.DefaultSuite) {
|
||||||
|
@ -342,5 +342,9 @@ func (suite *EtcFileConfigSuite) TearDownTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEtcFileConfigSuite(t *testing.T) {
|
func TestEtcFileConfigSuite(t *testing.T) {
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.Run(t, new(EtcFileConfigSuite))
|
suite.Run(t, new(EtcFileConfigSuite))
|
||||||
}
|
}
|
||||||
|
@ -83,6 +83,7 @@ func (ctrl *EthernetConfigController) apply(ctx context.Context, r controller.Ru
|
|||||||
spec.TypedSpec().Rings = network.EthernetRingsSpec(cfg.Rings())
|
spec.TypedSpec().Rings = network.EthernetRingsSpec(cfg.Rings())
|
||||||
spec.TypedSpec().Channels = network.EthernetChannelsSpec(cfg.Channels())
|
spec.TypedSpec().Channels = network.EthernetChannelsSpec(cfg.Channels())
|
||||||
spec.TypedSpec().Features = cfg.Features()
|
spec.TypedSpec().Features = cfg.Features()
|
||||||
|
spec.TypedSpec().WakeOnLAN = cfg.WakeOnLAN()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -17,6 +17,7 @@ import (
|
|||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
"github.com/siderolabs/talos/internal/app/machined/pkg/controllers/runtime"
|
"github.com/siderolabs/talos/internal/app/machined/pkg/controllers/runtime"
|
||||||
|
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||||
"github.com/siderolabs/talos/pkg/machinery/resources/network"
|
"github.com/siderolabs/talos/pkg/machinery/resources/network"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -153,5 +154,22 @@ func (ctrl *EthernetSpecController) apply(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if spec.TypedSpec().WakeOnLAN != nil {
|
||||||
|
var wolModes nethelpers.WOLMode
|
||||||
|
|
||||||
|
for _, mode := range spec.TypedSpec().WakeOnLAN {
|
||||||
|
wolModes |= mode
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := ethClient.SetWakeOnLAN(ethtool.WakeOnLAN{
|
||||||
|
Interface: ethtool.Interface{
|
||||||
|
Name: spec.Metadata().ID(),
|
||||||
|
},
|
||||||
|
Modes: ethtool.WOLMode(wolModes),
|
||||||
|
}); err != nil {
|
||||||
|
return fmt.Errorf("error updating wake-on-lan: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ func (ctrl *EthernetStatusController) Run(ctx context.Context, r controller.Runt
|
|||||||
|
|
||||||
// reconcile function runs for every reconciliation loop querying the ethtool state and updating resources.
|
// reconcile function runs for every reconciliation loop querying the ethtool state and updating resources.
|
||||||
//
|
//
|
||||||
//nolint:gocyclo
|
//nolint:gocyclo,cyclop
|
||||||
func (ctrl *EthernetStatusController) reconcile(
|
func (ctrl *EthernetStatusController) reconcile(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
r controller.Runtime,
|
r controller.Runtime,
|
||||||
@ -145,6 +145,11 @@ func (ctrl *EthernetStatusController) reconcile(
|
|||||||
lgger.Warn("error getting channels", zap.Error(err))
|
lgger.Warn("error getting channels", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wolMode, err := ethClient.WakeOnLAN(iface)
|
||||||
|
if err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||||
|
lgger.Warn("error getting Wake-on-LAN", zap.Error(err))
|
||||||
|
}
|
||||||
|
|
||||||
if err := safe.WriterModify(ctx, r, network.NewEthernetStatus(network.NamespaceName, iface.Name), func(res *network.EthernetStatus) error {
|
if err := safe.WriterModify(ctx, r, network.NewEthernetStatus(network.NamespaceName, iface.Name), func(res *network.EthernetStatus) error {
|
||||||
res.TypedSpec().Port = nethelpers.Port(linkInfo.Port)
|
res.TypedSpec().Port = nethelpers.Port(linkInfo.Port)
|
||||||
|
|
||||||
@ -211,6 +216,16 @@ func (ctrl *EthernetStatusController) reconcile(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
res.TypedSpec().WakeOnLAN = nil
|
||||||
|
|
||||||
|
if wolMode != nil {
|
||||||
|
for mode := nethelpers.WOLModeMin; mode <= nethelpers.WOLModeMax; mode <<= 1 {
|
||||||
|
if (nethelpers.WOLMode(wolMode.Modes) & mode) == mode {
|
||||||
|
res.TypedSpec().WakeOnLAN = append(res.TypedSpec().WakeOnLAN, mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return fmt.Errorf("error updating EthernetStatus resource: %w", err)
|
return fmt.Errorf("error updating EthernetStatus resource: %w", err)
|
||||||
|
@ -72,6 +72,10 @@ func (suite *PlatformConfigLoadSuite) TestLoadConfig() {
|
|||||||
func TestPlatformConfigLoadSuite(t *testing.T) {
|
func TestPlatformConfigLoadSuite(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.Run(t, &PlatformConfigLoadSuite{
|
suite.Run(t, &PlatformConfigLoadSuite{
|
||||||
DefaultSuite: ctest.DefaultSuite{
|
DefaultSuite: ctest.DefaultSuite{
|
||||||
Timeout: 5 * time.Second,
|
Timeout: 5 * time.Second,
|
||||||
|
@ -88,6 +88,10 @@ func (suite *PlatformConfigStoreSuite) TestStoreConfig() {
|
|||||||
func TestPlatformConfigStoreSuite(t *testing.T) {
|
func TestPlatformConfigStoreSuite(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.Run(t, &PlatformConfigStoreSuite{
|
suite.Run(t, &PlatformConfigStoreSuite{
|
||||||
DefaultSuite: ctest.DefaultSuite{
|
DefaultSuite: ctest.DefaultSuite{
|
||||||
Timeout: 5 * time.Second,
|
Timeout: 5 * time.Second,
|
||||||
|
@ -95,6 +95,10 @@ func (suite *EncryptionSaltSuite) TestLoad() {
|
|||||||
func TestEncryptionSaltSuite(t *testing.T) {
|
func TestEncryptionSaltSuite(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
if os.Geteuid() != 0 {
|
||||||
|
t.Skip("skipping test that requires root privileges")
|
||||||
|
}
|
||||||
|
|
||||||
suite.Run(t, &EncryptionSaltSuite{
|
suite.Run(t, &EncryptionSaltSuite{
|
||||||
DefaultSuite: ctest.DefaultSuite{
|
DefaultSuite: ctest.DefaultSuite{
|
||||||
AfterSetup: func(suite *ctest.DefaultSuite) {
|
AfterSetup: func(suite *ctest.DefaultSuite) {
|
||||||
|
@ -1985,6 +1985,71 @@ func (NethelpersVLANProtocol) EnumDescriptor() ([]byte, []int) {
|
|||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{29}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{29}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||||
|
type NethelpersWOLMode int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
NethelpersWOLMode_NETHELPERS_WOLMODE_UNSPECIFIED NethelpersWOLMode = 0
|
||||||
|
NethelpersWOLMode_WOL_MODE_PHY NethelpersWOLMode = 1
|
||||||
|
NethelpersWOLMode_WOL_MODE_UNICAST NethelpersWOLMode = 2
|
||||||
|
NethelpersWOLMode_WOL_MODE_MULTICAST NethelpersWOLMode = 4
|
||||||
|
NethelpersWOLMode_WOL_MODE_BROADCAST NethelpersWOLMode = 8
|
||||||
|
NethelpersWOLMode_WOL_MODE_MAGIC NethelpersWOLMode = 32
|
||||||
|
NethelpersWOLMode_WOL_MODE_MAGIC_SECURE NethelpersWOLMode = 64
|
||||||
|
NethelpersWOLMode_WOL_MODE_FILTER NethelpersWOLMode = 128
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for NethelpersWOLMode.
|
||||||
|
var (
|
||||||
|
NethelpersWOLMode_name = map[int32]string{
|
||||||
|
0: "NETHELPERS_WOLMODE_UNSPECIFIED",
|
||||||
|
1: "WOL_MODE_PHY",
|
||||||
|
2: "WOL_MODE_UNICAST",
|
||||||
|
4: "WOL_MODE_MULTICAST",
|
||||||
|
8: "WOL_MODE_BROADCAST",
|
||||||
|
32: "WOL_MODE_MAGIC",
|
||||||
|
64: "WOL_MODE_MAGIC_SECURE",
|
||||||
|
128: "WOL_MODE_FILTER",
|
||||||
|
}
|
||||||
|
NethelpersWOLMode_value = map[string]int32{
|
||||||
|
"NETHELPERS_WOLMODE_UNSPECIFIED": 0,
|
||||||
|
"WOL_MODE_PHY": 1,
|
||||||
|
"WOL_MODE_UNICAST": 2,
|
||||||
|
"WOL_MODE_MULTICAST": 4,
|
||||||
|
"WOL_MODE_BROADCAST": 8,
|
||||||
|
"WOL_MODE_MAGIC": 32,
|
||||||
|
"WOL_MODE_MAGIC_SECURE": 64,
|
||||||
|
"WOL_MODE_FILTER": 128,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x NethelpersWOLMode) Enum() *NethelpersWOLMode {
|
||||||
|
p := new(NethelpersWOLMode)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x NethelpersWOLMode) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (NethelpersWOLMode) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_resource_definitions_enums_enums_proto_enumTypes[30].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (NethelpersWOLMode) Type() protoreflect.EnumType {
|
||||||
|
return &file_resource_definitions_enums_enums_proto_enumTypes[30]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x NethelpersWOLMode) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use NethelpersWOLMode.Descriptor instead.
|
||||||
|
func (NethelpersWOLMode) EnumDescriptor() ([]byte, []int) {
|
||||||
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{30}
|
||||||
|
}
|
||||||
|
|
||||||
// BlockEncryptionKeyType describes encryption key type.
|
// BlockEncryptionKeyType describes encryption key type.
|
||||||
type BlockEncryptionKeyType int32
|
type BlockEncryptionKeyType int32
|
||||||
|
|
||||||
@ -2022,11 +2087,11 @@ func (x BlockEncryptionKeyType) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (BlockEncryptionKeyType) Descriptor() protoreflect.EnumDescriptor {
|
func (BlockEncryptionKeyType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[30].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[31].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (BlockEncryptionKeyType) Type() protoreflect.EnumType {
|
func (BlockEncryptionKeyType) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[30]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[31]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x BlockEncryptionKeyType) Number() protoreflect.EnumNumber {
|
func (x BlockEncryptionKeyType) Number() protoreflect.EnumNumber {
|
||||||
@ -2035,7 +2100,7 @@ func (x BlockEncryptionKeyType) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use BlockEncryptionKeyType.Descriptor instead.
|
// Deprecated: Use BlockEncryptionKeyType.Descriptor instead.
|
||||||
func (BlockEncryptionKeyType) EnumDescriptor() ([]byte, []int) {
|
func (BlockEncryptionKeyType) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{30}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{31}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BlockEncryptionProviderType describes encryption provider type.
|
// BlockEncryptionProviderType describes encryption provider type.
|
||||||
@ -2069,11 +2134,11 @@ func (x BlockEncryptionProviderType) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (BlockEncryptionProviderType) Descriptor() protoreflect.EnumDescriptor {
|
func (BlockEncryptionProviderType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[31].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[32].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (BlockEncryptionProviderType) Type() protoreflect.EnumType {
|
func (BlockEncryptionProviderType) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[31]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[32]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x BlockEncryptionProviderType) Number() protoreflect.EnumNumber {
|
func (x BlockEncryptionProviderType) Number() protoreflect.EnumNumber {
|
||||||
@ -2082,7 +2147,7 @@ func (x BlockEncryptionProviderType) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use BlockEncryptionProviderType.Descriptor instead.
|
// Deprecated: Use BlockEncryptionProviderType.Descriptor instead.
|
||||||
func (BlockEncryptionProviderType) EnumDescriptor() ([]byte, []int) {
|
func (BlockEncryptionProviderType) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{31}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{32}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BlockFilesystemType describes filesystem type.
|
// BlockFilesystemType describes filesystem type.
|
||||||
@ -2128,11 +2193,11 @@ func (x BlockFilesystemType) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (BlockFilesystemType) Descriptor() protoreflect.EnumDescriptor {
|
func (BlockFilesystemType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[32].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[33].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (BlockFilesystemType) Type() protoreflect.EnumType {
|
func (BlockFilesystemType) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[32]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[33]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x BlockFilesystemType) Number() protoreflect.EnumNumber {
|
func (x BlockFilesystemType) Number() protoreflect.EnumNumber {
|
||||||
@ -2141,7 +2206,7 @@ func (x BlockFilesystemType) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use BlockFilesystemType.Descriptor instead.
|
// Deprecated: Use BlockFilesystemType.Descriptor instead.
|
||||||
func (BlockFilesystemType) EnumDescriptor() ([]byte, []int) {
|
func (BlockFilesystemType) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{32}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{33}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BlockVolumePhase describes volume phase.
|
// BlockVolumePhase describes volume phase.
|
||||||
@ -2193,11 +2258,11 @@ func (x BlockVolumePhase) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (BlockVolumePhase) Descriptor() protoreflect.EnumDescriptor {
|
func (BlockVolumePhase) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[33].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[34].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (BlockVolumePhase) Type() protoreflect.EnumType {
|
func (BlockVolumePhase) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[33]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[34]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x BlockVolumePhase) Number() protoreflect.EnumNumber {
|
func (x BlockVolumePhase) Number() protoreflect.EnumNumber {
|
||||||
@ -2206,7 +2271,7 @@ func (x BlockVolumePhase) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use BlockVolumePhase.Descriptor instead.
|
// Deprecated: Use BlockVolumePhase.Descriptor instead.
|
||||||
func (BlockVolumePhase) EnumDescriptor() ([]byte, []int) {
|
func (BlockVolumePhase) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{33}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{34}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BlockVolumeType describes volume type.
|
// BlockVolumeType describes volume type.
|
||||||
@ -2252,11 +2317,11 @@ func (x BlockVolumeType) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (BlockVolumeType) Descriptor() protoreflect.EnumDescriptor {
|
func (BlockVolumeType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[34].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[35].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (BlockVolumeType) Type() protoreflect.EnumType {
|
func (BlockVolumeType) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[34]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[35]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x BlockVolumeType) Number() protoreflect.EnumNumber {
|
func (x BlockVolumeType) Number() protoreflect.EnumNumber {
|
||||||
@ -2265,7 +2330,7 @@ func (x BlockVolumeType) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use BlockVolumeType.Descriptor instead.
|
// Deprecated: Use BlockVolumeType.Descriptor instead.
|
||||||
func (BlockVolumeType) EnumDescriptor() ([]byte, []int) {
|
func (BlockVolumeType) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{34}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{35}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CriImageCacheStatus describes image cache status type.
|
// CriImageCacheStatus describes image cache status type.
|
||||||
@ -2305,11 +2370,11 @@ func (x CriImageCacheStatus) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (CriImageCacheStatus) Descriptor() protoreflect.EnumDescriptor {
|
func (CriImageCacheStatus) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[35].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[36].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (CriImageCacheStatus) Type() protoreflect.EnumType {
|
func (CriImageCacheStatus) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[35]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[36]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x CriImageCacheStatus) Number() protoreflect.EnumNumber {
|
func (x CriImageCacheStatus) Number() protoreflect.EnumNumber {
|
||||||
@ -2318,7 +2383,7 @@ func (x CriImageCacheStatus) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use CriImageCacheStatus.Descriptor instead.
|
// Deprecated: Use CriImageCacheStatus.Descriptor instead.
|
||||||
func (CriImageCacheStatus) EnumDescriptor() ([]byte, []int) {
|
func (CriImageCacheStatus) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{35}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{36}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CriImageCacheCopyStatus describes image cache copy status type.
|
// CriImageCacheCopyStatus describes image cache copy status type.
|
||||||
@ -2358,11 +2423,11 @@ func (x CriImageCacheCopyStatus) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (CriImageCacheCopyStatus) Descriptor() protoreflect.EnumDescriptor {
|
func (CriImageCacheCopyStatus) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[36].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[37].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (CriImageCacheCopyStatus) Type() protoreflect.EnumType {
|
func (CriImageCacheCopyStatus) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[36]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[37]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x CriImageCacheCopyStatus) Number() protoreflect.EnumNumber {
|
func (x CriImageCacheCopyStatus) Number() protoreflect.EnumNumber {
|
||||||
@ -2371,7 +2436,7 @@ func (x CriImageCacheCopyStatus) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use CriImageCacheCopyStatus.Descriptor instead.
|
// Deprecated: Use CriImageCacheCopyStatus.Descriptor instead.
|
||||||
func (CriImageCacheCopyStatus) EnumDescriptor() ([]byte, []int) {
|
func (CriImageCacheCopyStatus) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{36}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{37}
|
||||||
}
|
}
|
||||||
|
|
||||||
// KubespanPeerState is KubeSpan peer current state.
|
// KubespanPeerState is KubeSpan peer current state.
|
||||||
@ -2408,11 +2473,11 @@ func (x KubespanPeerState) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (KubespanPeerState) Descriptor() protoreflect.EnumDescriptor {
|
func (KubespanPeerState) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[37].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[38].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (KubespanPeerState) Type() protoreflect.EnumType {
|
func (KubespanPeerState) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[37]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[38]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x KubespanPeerState) Number() protoreflect.EnumNumber {
|
func (x KubespanPeerState) Number() protoreflect.EnumNumber {
|
||||||
@ -2421,7 +2486,7 @@ func (x KubespanPeerState) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use KubespanPeerState.Descriptor instead.
|
// Deprecated: Use KubespanPeerState.Descriptor instead.
|
||||||
func (KubespanPeerState) EnumDescriptor() ([]byte, []int) {
|
func (KubespanPeerState) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{37}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{38}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RuntimeMachineStage describes the stage of the machine boot/run process.
|
// RuntimeMachineStage describes the stage of the machine boot/run process.
|
||||||
@ -2476,11 +2541,11 @@ func (x RuntimeMachineStage) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (RuntimeMachineStage) Descriptor() protoreflect.EnumDescriptor {
|
func (RuntimeMachineStage) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[38].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[39].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (RuntimeMachineStage) Type() protoreflect.EnumType {
|
func (RuntimeMachineStage) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[38]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[39]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x RuntimeMachineStage) Number() protoreflect.EnumNumber {
|
func (x RuntimeMachineStage) Number() protoreflect.EnumNumber {
|
||||||
@ -2489,7 +2554,7 @@ func (x RuntimeMachineStage) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use RuntimeMachineStage.Descriptor instead.
|
// Deprecated: Use RuntimeMachineStage.Descriptor instead.
|
||||||
func (RuntimeMachineStage) EnumDescriptor() ([]byte, []int) {
|
func (RuntimeMachineStage) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{38}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{39}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RuntimeSELinuxState describes the current SELinux status.
|
// RuntimeSELinuxState describes the current SELinux status.
|
||||||
@ -2526,11 +2591,11 @@ func (x RuntimeSELinuxState) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (RuntimeSELinuxState) Descriptor() protoreflect.EnumDescriptor {
|
func (RuntimeSELinuxState) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[39].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[40].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (RuntimeSELinuxState) Type() protoreflect.EnumType {
|
func (RuntimeSELinuxState) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[39]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[40]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x RuntimeSELinuxState) Number() protoreflect.EnumNumber {
|
func (x RuntimeSELinuxState) Number() protoreflect.EnumNumber {
|
||||||
@ -2539,7 +2604,7 @@ func (x RuntimeSELinuxState) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use RuntimeSELinuxState.Descriptor instead.
|
// Deprecated: Use RuntimeSELinuxState.Descriptor instead.
|
||||||
func (RuntimeSELinuxState) EnumDescriptor() ([]byte, []int) {
|
func (RuntimeSELinuxState) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{39}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{40}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RuntimeFIPSState describes the current FIPS status.
|
// RuntimeFIPSState describes the current FIPS status.
|
||||||
@ -2576,11 +2641,11 @@ func (x RuntimeFIPSState) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (RuntimeFIPSState) Descriptor() protoreflect.EnumDescriptor {
|
func (RuntimeFIPSState) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[40].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[41].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (RuntimeFIPSState) Type() protoreflect.EnumType {
|
func (RuntimeFIPSState) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[40]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[41]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x RuntimeFIPSState) Number() protoreflect.EnumNumber {
|
func (x RuntimeFIPSState) Number() protoreflect.EnumNumber {
|
||||||
@ -2589,7 +2654,7 @@ func (x RuntimeFIPSState) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use RuntimeFIPSState.Descriptor instead.
|
// Deprecated: Use RuntimeFIPSState.Descriptor instead.
|
||||||
func (RuntimeFIPSState) EnumDescriptor() ([]byte, []int) {
|
func (RuntimeFIPSState) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{40}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{41}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NetworkConfigLayer describes network configuration layers, with lowest priority first.
|
// NetworkConfigLayer describes network configuration layers, with lowest priority first.
|
||||||
@ -2632,11 +2697,11 @@ func (x NetworkConfigLayer) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (NetworkConfigLayer) Descriptor() protoreflect.EnumDescriptor {
|
func (NetworkConfigLayer) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[41].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[42].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (NetworkConfigLayer) Type() protoreflect.EnumType {
|
func (NetworkConfigLayer) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[41]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[42]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x NetworkConfigLayer) Number() protoreflect.EnumNumber {
|
func (x NetworkConfigLayer) Number() protoreflect.EnumNumber {
|
||||||
@ -2645,7 +2710,7 @@ func (x NetworkConfigLayer) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use NetworkConfigLayer.Descriptor instead.
|
// Deprecated: Use NetworkConfigLayer.Descriptor instead.
|
||||||
func (NetworkConfigLayer) EnumDescriptor() ([]byte, []int) {
|
func (NetworkConfigLayer) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{41}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{42}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NetworkOperator enumerates Talos network operators.
|
// NetworkOperator enumerates Talos network operators.
|
||||||
@ -2682,11 +2747,11 @@ func (x NetworkOperator) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (NetworkOperator) Descriptor() protoreflect.EnumDescriptor {
|
func (NetworkOperator) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_resource_definitions_enums_enums_proto_enumTypes[42].Descriptor()
|
return file_resource_definitions_enums_enums_proto_enumTypes[43].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (NetworkOperator) Type() protoreflect.EnumType {
|
func (NetworkOperator) Type() protoreflect.EnumType {
|
||||||
return &file_resource_definitions_enums_enums_proto_enumTypes[42]
|
return &file_resource_definitions_enums_enums_proto_enumTypes[43]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x NetworkOperator) Number() protoreflect.EnumNumber {
|
func (x NetworkOperator) Number() protoreflect.EnumNumber {
|
||||||
@ -2695,7 +2760,7 @@ func (x NetworkOperator) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use NetworkOperator.Descriptor instead.
|
// Deprecated: Use NetworkOperator.Descriptor instead.
|
||||||
func (NetworkOperator) EnumDescriptor() ([]byte, []int) {
|
func (NetworkOperator) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{42}
|
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{43}
|
||||||
}
|
}
|
||||||
|
|
||||||
var File_resource_definitions_enums_enums_proto protoreflect.FileDescriptor
|
var File_resource_definitions_enums_enums_proto protoreflect.FileDescriptor
|
||||||
@ -2999,7 +3064,16 @@ const file_resource_definitions_enums_enums_proto_rawDesc = "" +
|
|||||||
"\x16NethelpersVLANProtocol\x12'\n" +
|
"\x16NethelpersVLANProtocol\x12'\n" +
|
||||||
"#NETHELPERS_VLANPROTOCOL_UNSPECIFIED\x10\x00\x12\x19\n" +
|
"#NETHELPERS_VLANPROTOCOL_UNSPECIFIED\x10\x00\x12\x19\n" +
|
||||||
"\x13VLAN_PROTOCOL8021_Q\x10\x80\x82\x02\x12\x1a\n" +
|
"\x13VLAN_PROTOCOL8021_Q\x10\x80\x82\x02\x12\x1a\n" +
|
||||||
"\x14VLAN_PROTOCOL8021_AD\x10\xa8\x91\x02*\x7f\n" +
|
"\x14VLAN_PROTOCOL8021_AD\x10\xa8\x91\x02*\xd4\x01\n" +
|
||||||
|
"\x11NethelpersWOLMode\x12\"\n" +
|
||||||
|
"\x1eNETHELPERS_WOLMODE_UNSPECIFIED\x10\x00\x12\x10\n" +
|
||||||
|
"\fWOL_MODE_PHY\x10\x01\x12\x14\n" +
|
||||||
|
"\x10WOL_MODE_UNICAST\x10\x02\x12\x16\n" +
|
||||||
|
"\x12WOL_MODE_MULTICAST\x10\x04\x12\x16\n" +
|
||||||
|
"\x12WOL_MODE_BROADCAST\x10\b\x12\x12\n" +
|
||||||
|
"\x0eWOL_MODE_MAGIC\x10 \x12\x19\n" +
|
||||||
|
"\x15WOL_MODE_MAGIC_SECURE\x10@\x12\x14\n" +
|
||||||
|
"\x0fWOL_MODE_FILTER\x10\x80\x01*\x7f\n" +
|
||||||
"\x16BlockEncryptionKeyType\x12\x19\n" +
|
"\x16BlockEncryptionKeyType\x12\x19\n" +
|
||||||
"\x15ENCRYPTION_KEY_STATIC\x10\x00\x12\x1a\n" +
|
"\x15ENCRYPTION_KEY_STATIC\x10\x00\x12\x1a\n" +
|
||||||
"\x16ENCRYPTION_KEY_NODE_ID\x10\x01\x12\x16\n" +
|
"\x16ENCRYPTION_KEY_NODE_ID\x10\x01\x12\x16\n" +
|
||||||
@ -3087,7 +3161,7 @@ func file_resource_definitions_enums_enums_proto_rawDescGZIP() []byte {
|
|||||||
return file_resource_definitions_enums_enums_proto_rawDescData
|
return file_resource_definitions_enums_enums_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_resource_definitions_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 43)
|
var file_resource_definitions_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 44)
|
||||||
var file_resource_definitions_enums_enums_proto_goTypes = []any{
|
var file_resource_definitions_enums_enums_proto_goTypes = []any{
|
||||||
(MachineType)(0), // 0: talos.resource.definitions.enums.MachineType
|
(MachineType)(0), // 0: talos.resource.definitions.enums.MachineType
|
||||||
(NethelpersAddressFlag)(0), // 1: talos.resource.definitions.enums.NethelpersAddressFlag
|
(NethelpersAddressFlag)(0), // 1: talos.resource.definitions.enums.NethelpersAddressFlag
|
||||||
@ -3119,19 +3193,20 @@ var file_resource_definitions_enums_enums_proto_goTypes = []any{
|
|||||||
(NethelpersRoutingTable)(0), // 27: talos.resource.definitions.enums.NethelpersRoutingTable
|
(NethelpersRoutingTable)(0), // 27: talos.resource.definitions.enums.NethelpersRoutingTable
|
||||||
(NethelpersScope)(0), // 28: talos.resource.definitions.enums.NethelpersScope
|
(NethelpersScope)(0), // 28: talos.resource.definitions.enums.NethelpersScope
|
||||||
(NethelpersVLANProtocol)(0), // 29: talos.resource.definitions.enums.NethelpersVLANProtocol
|
(NethelpersVLANProtocol)(0), // 29: talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||||
(BlockEncryptionKeyType)(0), // 30: talos.resource.definitions.enums.BlockEncryptionKeyType
|
(NethelpersWOLMode)(0), // 30: talos.resource.definitions.enums.NethelpersWOLMode
|
||||||
(BlockEncryptionProviderType)(0), // 31: talos.resource.definitions.enums.BlockEncryptionProviderType
|
(BlockEncryptionKeyType)(0), // 31: talos.resource.definitions.enums.BlockEncryptionKeyType
|
||||||
(BlockFilesystemType)(0), // 32: talos.resource.definitions.enums.BlockFilesystemType
|
(BlockEncryptionProviderType)(0), // 32: talos.resource.definitions.enums.BlockEncryptionProviderType
|
||||||
(BlockVolumePhase)(0), // 33: talos.resource.definitions.enums.BlockVolumePhase
|
(BlockFilesystemType)(0), // 33: talos.resource.definitions.enums.BlockFilesystemType
|
||||||
(BlockVolumeType)(0), // 34: talos.resource.definitions.enums.BlockVolumeType
|
(BlockVolumePhase)(0), // 34: talos.resource.definitions.enums.BlockVolumePhase
|
||||||
(CriImageCacheStatus)(0), // 35: talos.resource.definitions.enums.CriImageCacheStatus
|
(BlockVolumeType)(0), // 35: talos.resource.definitions.enums.BlockVolumeType
|
||||||
(CriImageCacheCopyStatus)(0), // 36: talos.resource.definitions.enums.CriImageCacheCopyStatus
|
(CriImageCacheStatus)(0), // 36: talos.resource.definitions.enums.CriImageCacheStatus
|
||||||
(KubespanPeerState)(0), // 37: talos.resource.definitions.enums.KubespanPeerState
|
(CriImageCacheCopyStatus)(0), // 37: talos.resource.definitions.enums.CriImageCacheCopyStatus
|
||||||
(RuntimeMachineStage)(0), // 38: talos.resource.definitions.enums.RuntimeMachineStage
|
(KubespanPeerState)(0), // 38: talos.resource.definitions.enums.KubespanPeerState
|
||||||
(RuntimeSELinuxState)(0), // 39: talos.resource.definitions.enums.RuntimeSELinuxState
|
(RuntimeMachineStage)(0), // 39: talos.resource.definitions.enums.RuntimeMachineStage
|
||||||
(RuntimeFIPSState)(0), // 40: talos.resource.definitions.enums.RuntimeFIPSState
|
(RuntimeSELinuxState)(0), // 40: talos.resource.definitions.enums.RuntimeSELinuxState
|
||||||
(NetworkConfigLayer)(0), // 41: talos.resource.definitions.enums.NetworkConfigLayer
|
(RuntimeFIPSState)(0), // 41: talos.resource.definitions.enums.RuntimeFIPSState
|
||||||
(NetworkOperator)(0), // 42: talos.resource.definitions.enums.NetworkOperator
|
(NetworkConfigLayer)(0), // 42: talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
|
(NetworkOperator)(0), // 43: talos.resource.definitions.enums.NetworkOperator
|
||||||
}
|
}
|
||||||
var file_resource_definitions_enums_enums_proto_depIdxs = []int32{
|
var file_resource_definitions_enums_enums_proto_depIdxs = []int32{
|
||||||
0, // [0:0] is the sub-list for method output_type
|
0, // [0:0] is the sub-list for method output_type
|
||||||
@ -3151,7 +3226,7 @@ func file_resource_definitions_enums_enums_proto_init() {
|
|||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_resource_definitions_enums_enums_proto_rawDesc), len(file_resource_definitions_enums_enums_proto_rawDesc)),
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_resource_definitions_enums_enums_proto_rawDesc), len(file_resource_definitions_enums_enums_proto_rawDesc)),
|
||||||
NumEnums: 43,
|
NumEnums: 44,
|
||||||
NumMessages: 0,
|
NumMessages: 0,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
|
@ -1336,10 +1336,11 @@ func (x *EthernetRingsStatus) GetTcpDataSplit() bool {
|
|||||||
|
|
||||||
// EthernetSpecSpec describes config of Ethernet link.
|
// EthernetSpecSpec describes config of Ethernet link.
|
||||||
type EthernetSpecSpec struct {
|
type EthernetSpecSpec struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
Rings *EthernetRingsSpec `protobuf:"bytes,1,opt,name=rings,proto3" json:"rings,omitempty"`
|
Rings *EthernetRingsSpec `protobuf:"bytes,1,opt,name=rings,proto3" json:"rings,omitempty"`
|
||||||
Features map[string]bool `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
Features map[string]bool `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
||||||
Channels *EthernetChannelsSpec `protobuf:"bytes,3,opt,name=channels,proto3" json:"channels,omitempty"`
|
Channels *EthernetChannelsSpec `protobuf:"bytes,3,opt,name=channels,proto3" json:"channels,omitempty"`
|
||||||
|
WakeOnLan []enums.NethelpersWOLMode `protobuf:"varint,4,rep,packed,name=wake_on_lan,json=wakeOnLan,proto3,enum=talos.resource.definitions.enums.NethelpersWOLMode" json:"wake_on_lan,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
}
|
}
|
||||||
@ -1395,18 +1396,26 @@ func (x *EthernetSpecSpec) GetChannels() *EthernetChannelsSpec {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *EthernetSpecSpec) GetWakeOnLan() []enums.NethelpersWOLMode {
|
||||||
|
if x != nil {
|
||||||
|
return x.WakeOnLan
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// EthernetStatusSpec describes status of rendered secrets.
|
// EthernetStatusSpec describes status of rendered secrets.
|
||||||
type EthernetStatusSpec struct {
|
type EthernetStatusSpec struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
LinkState bool `protobuf:"varint,1,opt,name=link_state,json=linkState,proto3" json:"link_state,omitempty"`
|
LinkState bool `protobuf:"varint,1,opt,name=link_state,json=linkState,proto3" json:"link_state,omitempty"`
|
||||||
SpeedMegabits int64 `protobuf:"varint,2,opt,name=speed_megabits,json=speedMegabits,proto3" json:"speed_megabits,omitempty"`
|
SpeedMegabits int64 `protobuf:"varint,2,opt,name=speed_megabits,json=speedMegabits,proto3" json:"speed_megabits,omitempty"`
|
||||||
Port enums.NethelpersPort `protobuf:"varint,3,opt,name=port,proto3,enum=talos.resource.definitions.enums.NethelpersPort" json:"port,omitempty"`
|
Port enums.NethelpersPort `protobuf:"varint,3,opt,name=port,proto3,enum=talos.resource.definitions.enums.NethelpersPort" json:"port,omitempty"`
|
||||||
Duplex enums.NethelpersDuplex `protobuf:"varint,4,opt,name=duplex,proto3,enum=talos.resource.definitions.enums.NethelpersDuplex" json:"duplex,omitempty"`
|
Duplex enums.NethelpersDuplex `protobuf:"varint,4,opt,name=duplex,proto3,enum=talos.resource.definitions.enums.NethelpersDuplex" json:"duplex,omitempty"`
|
||||||
OurModes []string `protobuf:"bytes,5,rep,name=our_modes,json=ourModes,proto3" json:"our_modes,omitempty"`
|
OurModes []string `protobuf:"bytes,5,rep,name=our_modes,json=ourModes,proto3" json:"our_modes,omitempty"`
|
||||||
PeerModes []string `protobuf:"bytes,6,rep,name=peer_modes,json=peerModes,proto3" json:"peer_modes,omitempty"`
|
PeerModes []string `protobuf:"bytes,6,rep,name=peer_modes,json=peerModes,proto3" json:"peer_modes,omitempty"`
|
||||||
Rings *EthernetRingsStatus `protobuf:"bytes,7,opt,name=rings,proto3" json:"rings,omitempty"`
|
Rings *EthernetRingsStatus `protobuf:"bytes,7,opt,name=rings,proto3" json:"rings,omitempty"`
|
||||||
Features []*EthernetFeatureStatus `protobuf:"bytes,8,rep,name=features,proto3" json:"features,omitempty"`
|
Features []*EthernetFeatureStatus `protobuf:"bytes,8,rep,name=features,proto3" json:"features,omitempty"`
|
||||||
Channels *EthernetChannelsStatus `protobuf:"bytes,9,opt,name=channels,proto3" json:"channels,omitempty"`
|
Channels *EthernetChannelsStatus `protobuf:"bytes,9,opt,name=channels,proto3" json:"channels,omitempty"`
|
||||||
|
WakeOnLan []enums.NethelpersWOLMode `protobuf:"varint,10,rep,packed,name=wake_on_lan,json=wakeOnLan,proto3,enum=talos.resource.definitions.enums.NethelpersWOLMode" json:"wake_on_lan,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
}
|
}
|
||||||
@ -1504,6 +1513,13 @@ func (x *EthernetStatusSpec) GetChannels() *EthernetChannelsStatus {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *EthernetStatusSpec) GetWakeOnLan() []enums.NethelpersWOLMode {
|
||||||
|
if x != nil {
|
||||||
|
return x.WakeOnLan
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// HardwareAddrSpec describes spec for the link.
|
// HardwareAddrSpec describes spec for the link.
|
||||||
type HardwareAddrSpec struct {
|
type HardwareAddrSpec struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
@ -4646,14 +4662,15 @@ const file_resource_definitions_network_network_proto_rawDesc = "" +
|
|||||||
"\atx_push\x18\f \x01(\bR\x06txPush\x12\x17\n" +
|
"\atx_push\x18\f \x01(\bR\x06txPush\x12\x17\n" +
|
||||||
"\arx_push\x18\r \x01(\bR\x06rxPush\x12%\n" +
|
"\arx_push\x18\r \x01(\bR\x06rxPush\x12%\n" +
|
||||||
"\x0ftx_push_buf_len\x18\x0e \x01(\rR\ftxPushBufLen\x12$\n" +
|
"\x0ftx_push_buf_len\x18\x0e \x01(\rR\ftxPushBufLen\x12$\n" +
|
||||||
"\x0etcp_data_split\x18\x0f \x01(\bR\ftcpDataSplit\"\xd2\x02\n" +
|
"\x0etcp_data_split\x18\x0f \x01(\bR\ftcpDataSplit\"\xa7\x03\n" +
|
||||||
"\x10EthernetSpecSpec\x12K\n" +
|
"\x10EthernetSpecSpec\x12K\n" +
|
||||||
"\x05rings\x18\x01 \x01(\v25.talos.resource.definitions.network.EthernetRingsSpecR\x05rings\x12^\n" +
|
"\x05rings\x18\x01 \x01(\v25.talos.resource.definitions.network.EthernetRingsSpecR\x05rings\x12^\n" +
|
||||||
"\bfeatures\x18\x02 \x03(\v2B.talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntryR\bfeatures\x12T\n" +
|
"\bfeatures\x18\x02 \x03(\v2B.talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntryR\bfeatures\x12T\n" +
|
||||||
"\bchannels\x18\x03 \x01(\v28.talos.resource.definitions.network.EthernetChannelsSpecR\bchannels\x1a;\n" +
|
"\bchannels\x18\x03 \x01(\v28.talos.resource.definitions.network.EthernetChannelsSpecR\bchannels\x12S\n" +
|
||||||
|
"\vwake_on_lan\x18\x04 \x03(\x0e23.talos.resource.definitions.enums.NethelpersWOLModeR\twakeOnLan\x1a;\n" +
|
||||||
"\rFeaturesEntry\x12\x10\n" +
|
"\rFeaturesEntry\x12\x10\n" +
|
||||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||||
"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\xa6\x04\n" +
|
"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\xfb\x04\n" +
|
||||||
"\x12EthernetStatusSpec\x12\x1d\n" +
|
"\x12EthernetStatusSpec\x12\x1d\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"link_state\x18\x01 \x01(\bR\tlinkState\x12%\n" +
|
"link_state\x18\x01 \x01(\bR\tlinkState\x12%\n" +
|
||||||
@ -4665,7 +4682,9 @@ const file_resource_definitions_network_network_proto_rawDesc = "" +
|
|||||||
"peer_modes\x18\x06 \x03(\tR\tpeerModes\x12M\n" +
|
"peer_modes\x18\x06 \x03(\tR\tpeerModes\x12M\n" +
|
||||||
"\x05rings\x18\a \x01(\v27.talos.resource.definitions.network.EthernetRingsStatusR\x05rings\x12U\n" +
|
"\x05rings\x18\a \x01(\v27.talos.resource.definitions.network.EthernetRingsStatusR\x05rings\x12U\n" +
|
||||||
"\bfeatures\x18\b \x03(\v29.talos.resource.definitions.network.EthernetFeatureStatusR\bfeatures\x12V\n" +
|
"\bfeatures\x18\b \x03(\v29.talos.resource.definitions.network.EthernetFeatureStatusR\bfeatures\x12V\n" +
|
||||||
"\bchannels\x18\t \x01(\v2:.talos.resource.definitions.network.EthernetChannelsStatusR\bchannels\"K\n" +
|
"\bchannels\x18\t \x01(\v2:.talos.resource.definitions.network.EthernetChannelsStatusR\bchannels\x12S\n" +
|
||||||
|
"\vwake_on_lan\x18\n" +
|
||||||
|
" \x03(\x0e23.talos.resource.definitions.enums.NethelpersWOLModeR\twakeOnLan\"K\n" +
|
||||||
"\x10HardwareAddrSpec\x12\x12\n" +
|
"\x10HardwareAddrSpec\x12\x12\n" +
|
||||||
"\x04name\x18\x01 \x01(\tR\x04name\x12#\n" +
|
"\x04name\x18\x01 \x01(\tR\x04name\x12#\n" +
|
||||||
"\rhardware_addr\x18\x02 \x01(\fR\fhardwareAddr\"\xe5\x01\n" +
|
"\rhardware_addr\x18\x02 \x01(\fR\fhardwareAddr\"\xe5\x01\n" +
|
||||||
@ -5018,26 +5037,27 @@ var file_resource_definitions_network_network_proto_goTypes = []any{
|
|||||||
(enums.NethelpersPrimaryReselect)(0), // 69: talos.resource.definitions.enums.NethelpersPrimaryReselect
|
(enums.NethelpersPrimaryReselect)(0), // 69: talos.resource.definitions.enums.NethelpersPrimaryReselect
|
||||||
(enums.NethelpersFailOverMAC)(0), // 70: talos.resource.definitions.enums.NethelpersFailOverMAC
|
(enums.NethelpersFailOverMAC)(0), // 70: talos.resource.definitions.enums.NethelpersFailOverMAC
|
||||||
(enums.NethelpersADSelect)(0), // 71: talos.resource.definitions.enums.NethelpersADSelect
|
(enums.NethelpersADSelect)(0), // 71: talos.resource.definitions.enums.NethelpersADSelect
|
||||||
(enums.NethelpersPort)(0), // 72: talos.resource.definitions.enums.NethelpersPort
|
(enums.NethelpersWOLMode)(0), // 72: talos.resource.definitions.enums.NethelpersWOLMode
|
||||||
(enums.NethelpersDuplex)(0), // 73: talos.resource.definitions.enums.NethelpersDuplex
|
(enums.NethelpersPort)(0), // 73: talos.resource.definitions.enums.NethelpersPort
|
||||||
(*common.NetIPPort)(nil), // 74: common.NetIPPort
|
(enums.NethelpersDuplex)(0), // 74: talos.resource.definitions.enums.NethelpersDuplex
|
||||||
(enums.NethelpersLinkType)(0), // 75: talos.resource.definitions.enums.NethelpersLinkType
|
(*common.NetIPPort)(nil), // 75: common.NetIPPort
|
||||||
(enums.NethelpersOperationalState)(0), // 76: talos.resource.definitions.enums.NethelpersOperationalState
|
(enums.NethelpersLinkType)(0), // 76: talos.resource.definitions.enums.NethelpersLinkType
|
||||||
(enums.NethelpersNfTablesChainHook)(0), // 77: talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
(enums.NethelpersOperationalState)(0), // 77: talos.resource.definitions.enums.NethelpersOperationalState
|
||||||
(enums.NethelpersNfTablesChainPriority)(0), // 78: talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
(enums.NethelpersNfTablesChainHook)(0), // 78: talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
||||||
(enums.NethelpersNfTablesVerdict)(0), // 79: talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
(enums.NethelpersNfTablesChainPriority)(0), // 79: talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
||||||
(enums.NethelpersConntrackState)(0), // 80: talos.resource.definitions.enums.NethelpersConntrackState
|
(enums.NethelpersNfTablesVerdict)(0), // 80: talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||||
(enums.NethelpersICMPType)(0), // 81: talos.resource.definitions.enums.NethelpersICMPType
|
(enums.NethelpersConntrackState)(0), // 81: talos.resource.definitions.enums.NethelpersConntrackState
|
||||||
(enums.NethelpersMatchOperator)(0), // 82: talos.resource.definitions.enums.NethelpersMatchOperator
|
(enums.NethelpersICMPType)(0), // 82: talos.resource.definitions.enums.NethelpersICMPType
|
||||||
(enums.NethelpersProtocol)(0), // 83: talos.resource.definitions.enums.NethelpersProtocol
|
(enums.NethelpersMatchOperator)(0), // 83: talos.resource.definitions.enums.NethelpersMatchOperator
|
||||||
(enums.NethelpersAddressSortAlgorithm)(0), // 84: talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
(enums.NethelpersProtocol)(0), // 84: talos.resource.definitions.enums.NethelpersProtocol
|
||||||
(enums.NetworkOperator)(0), // 85: talos.resource.definitions.enums.NetworkOperator
|
(enums.NethelpersAddressSortAlgorithm)(0), // 85: talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||||
(*runtime.PlatformMetadataSpec)(nil), // 86: talos.resource.definitions.runtime.PlatformMetadataSpec
|
(enums.NetworkOperator)(0), // 86: talos.resource.definitions.enums.NetworkOperator
|
||||||
(*durationpb.Duration)(nil), // 87: google.protobuf.Duration
|
(*runtime.PlatformMetadataSpec)(nil), // 87: talos.resource.definitions.runtime.PlatformMetadataSpec
|
||||||
(enums.NethelpersRoutingTable)(0), // 88: talos.resource.definitions.enums.NethelpersRoutingTable
|
(*durationpb.Duration)(nil), // 88: google.protobuf.Duration
|
||||||
(enums.NethelpersRouteType)(0), // 89: talos.resource.definitions.enums.NethelpersRouteType
|
(enums.NethelpersRoutingTable)(0), // 89: talos.resource.definitions.enums.NethelpersRoutingTable
|
||||||
(enums.NethelpersRouteProtocol)(0), // 90: talos.resource.definitions.enums.NethelpersRouteProtocol
|
(enums.NethelpersRouteType)(0), // 90: talos.resource.definitions.enums.NethelpersRouteType
|
||||||
(enums.NethelpersVLANProtocol)(0), // 91: talos.resource.definitions.enums.NethelpersVLANProtocol
|
(enums.NethelpersRouteProtocol)(0), // 91: talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||||
|
(enums.NethelpersVLANProtocol)(0), // 92: talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||||
}
|
}
|
||||||
var file_resource_definitions_network_network_proto_depIdxs = []int32{
|
var file_resource_definitions_network_network_proto_depIdxs = []int32{
|
||||||
59, // 0: talos.resource.definitions.network.AddressSpecSpec.address:type_name -> common.NetIPPrefix
|
59, // 0: talos.resource.definitions.network.AddressSpecSpec.address:type_name -> common.NetIPPrefix
|
||||||
@ -5064,112 +5084,114 @@ var file_resource_definitions_network_network_proto_depIdxs = []int32{
|
|||||||
13, // 21: talos.resource.definitions.network.EthernetSpecSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsSpec
|
13, // 21: talos.resource.definitions.network.EthernetSpecSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsSpec
|
||||||
58, // 22: talos.resource.definitions.network.EthernetSpecSpec.features:type_name -> talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntry
|
58, // 22: talos.resource.definitions.network.EthernetSpecSpec.features:type_name -> talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntry
|
||||||
10, // 23: talos.resource.definitions.network.EthernetSpecSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsSpec
|
10, // 23: talos.resource.definitions.network.EthernetSpecSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsSpec
|
||||||
72, // 24: talos.resource.definitions.network.EthernetStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
72, // 24: talos.resource.definitions.network.EthernetSpecSpec.wake_on_lan:type_name -> talos.resource.definitions.enums.NethelpersWOLMode
|
||||||
73, // 25: talos.resource.definitions.network.EthernetStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
73, // 25: talos.resource.definitions.network.EthernetStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
||||||
14, // 26: talos.resource.definitions.network.EthernetStatusSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsStatus
|
74, // 26: talos.resource.definitions.network.EthernetStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
||||||
12, // 27: talos.resource.definitions.network.EthernetStatusSpec.features:type_name -> talos.resource.definitions.network.EthernetFeatureStatus
|
14, // 27: talos.resource.definitions.network.EthernetStatusSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsStatus
|
||||||
11, // 28: talos.resource.definitions.network.EthernetStatusSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsStatus
|
12, // 28: talos.resource.definitions.network.EthernetStatusSpec.features:type_name -> talos.resource.definitions.network.EthernetFeatureStatus
|
||||||
74, // 29: talos.resource.definitions.network.HostDNSConfigSpec.listen_addresses:type_name -> common.NetIPPort
|
11, // 29: talos.resource.definitions.network.EthernetStatusSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsStatus
|
||||||
63, // 30: talos.resource.definitions.network.HostDNSConfigSpec.service_host_dns_address:type_name -> common.NetIP
|
72, // 30: talos.resource.definitions.network.EthernetStatusSpec.wake_on_lan:type_name -> talos.resource.definitions.enums.NethelpersWOLMode
|
||||||
62, // 31: talos.resource.definitions.network.HostnameSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
75, // 31: talos.resource.definitions.network.HostDNSConfigSpec.listen_addresses:type_name -> common.NetIPPort
|
||||||
75, // 32: talos.resource.definitions.network.LinkSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
63, // 32: talos.resource.definitions.network.HostDNSConfigSpec.service_host_dns_address:type_name -> common.NetIP
|
||||||
3, // 33: talos.resource.definitions.network.LinkSpecSpec.bond_slave:type_name -> talos.resource.definitions.network.BondSlave
|
62, // 33: talos.resource.definitions.network.HostnameSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
5, // 34: talos.resource.definitions.network.LinkSpecSpec.bridge_slave:type_name -> talos.resource.definitions.network.BridgeSlave
|
76, // 34: talos.resource.definitions.network.LinkSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
||||||
55, // 35: talos.resource.definitions.network.LinkSpecSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
3, // 35: talos.resource.definitions.network.LinkSpecSpec.bond_slave:type_name -> talos.resource.definitions.network.BondSlave
|
||||||
2, // 36: talos.resource.definitions.network.LinkSpecSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
5, // 36: talos.resource.definitions.network.LinkSpecSpec.bridge_slave:type_name -> talos.resource.definitions.network.BridgeSlave
|
||||||
4, // 37: talos.resource.definitions.network.LinkSpecSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
55, // 37: talos.resource.definitions.network.LinkSpecSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
||||||
57, // 38: talos.resource.definitions.network.LinkSpecSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
2, // 38: talos.resource.definitions.network.LinkSpecSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
||||||
62, // 39: talos.resource.definitions.network.LinkSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
4, // 39: talos.resource.definitions.network.LinkSpecSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
||||||
75, // 40: talos.resource.definitions.network.LinkStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
57, // 40: talos.resource.definitions.network.LinkSpecSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
||||||
76, // 41: talos.resource.definitions.network.LinkStatusSpec.operational_state:type_name -> talos.resource.definitions.enums.NethelpersOperationalState
|
62, // 41: talos.resource.definitions.network.LinkSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
72, // 42: talos.resource.definitions.network.LinkStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
76, // 42: talos.resource.definitions.network.LinkStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
||||||
73, // 43: talos.resource.definitions.network.LinkStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
77, // 43: talos.resource.definitions.network.LinkStatusSpec.operational_state:type_name -> talos.resource.definitions.enums.NethelpersOperationalState
|
||||||
55, // 44: talos.resource.definitions.network.LinkStatusSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
73, // 44: talos.resource.definitions.network.LinkStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
||||||
4, // 45: talos.resource.definitions.network.LinkStatusSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
74, // 45: talos.resource.definitions.network.LinkStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
||||||
2, // 46: talos.resource.definitions.network.LinkStatusSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
55, // 46: talos.resource.definitions.network.LinkStatusSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
||||||
57, // 47: talos.resource.definitions.network.LinkStatusSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
4, // 47: talos.resource.definitions.network.LinkStatusSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
||||||
59, // 48: talos.resource.definitions.network.NfTablesAddressMatch.include_subnets:type_name -> common.NetIPPrefix
|
2, // 48: talos.resource.definitions.network.LinkStatusSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
||||||
59, // 49: talos.resource.definitions.network.NfTablesAddressMatch.exclude_subnets:type_name -> common.NetIPPrefix
|
57, // 49: talos.resource.definitions.network.LinkStatusSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
||||||
77, // 50: talos.resource.definitions.network.NfTablesChainSpec.hook:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
59, // 50: talos.resource.definitions.network.NfTablesAddressMatch.include_subnets:type_name -> common.NetIPPrefix
|
||||||
78, // 51: talos.resource.definitions.network.NfTablesChainSpec.priority:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
59, // 51: talos.resource.definitions.network.NfTablesAddressMatch.exclude_subnets:type_name -> common.NetIPPrefix
|
||||||
34, // 52: talos.resource.definitions.network.NfTablesChainSpec.rules:type_name -> talos.resource.definitions.network.NfTablesRule
|
78, // 52: talos.resource.definitions.network.NfTablesChainSpec.hook:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
||||||
79, // 53: talos.resource.definitions.network.NfTablesChainSpec.policy:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
79, // 53: talos.resource.definitions.network.NfTablesChainSpec.priority:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
||||||
80, // 54: talos.resource.definitions.network.NfTablesConntrackStateMatch.states:type_name -> talos.resource.definitions.enums.NethelpersConntrackState
|
34, // 54: talos.resource.definitions.network.NfTablesChainSpec.rules:type_name -> talos.resource.definitions.network.NfTablesRule
|
||||||
81, // 55: talos.resource.definitions.network.NfTablesICMPTypeMatch.types:type_name -> talos.resource.definitions.enums.NethelpersICMPType
|
80, // 55: talos.resource.definitions.network.NfTablesChainSpec.policy:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||||
82, // 56: talos.resource.definitions.network.NfTablesIfNameMatch.operator:type_name -> talos.resource.definitions.enums.NethelpersMatchOperator
|
81, // 56: talos.resource.definitions.network.NfTablesConntrackStateMatch.states:type_name -> talos.resource.definitions.enums.NethelpersConntrackState
|
||||||
83, // 57: talos.resource.definitions.network.NfTablesLayer4Match.protocol:type_name -> talos.resource.definitions.enums.NethelpersProtocol
|
82, // 57: talos.resource.definitions.network.NfTablesICMPTypeMatch.types:type_name -> talos.resource.definitions.enums.NethelpersICMPType
|
||||||
33, // 58: talos.resource.definitions.network.NfTablesLayer4Match.match_source_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
83, // 58: talos.resource.definitions.network.NfTablesIfNameMatch.operator:type_name -> talos.resource.definitions.enums.NethelpersMatchOperator
|
||||||
33, // 59: talos.resource.definitions.network.NfTablesLayer4Match.match_destination_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
84, // 59: talos.resource.definitions.network.NfTablesLayer4Match.protocol:type_name -> talos.resource.definitions.enums.NethelpersProtocol
|
||||||
28, // 60: talos.resource.definitions.network.NfTablesLayer4Match.match_icmp_type:type_name -> talos.resource.definitions.network.NfTablesICMPTypeMatch
|
33, // 60: talos.resource.definitions.network.NfTablesLayer4Match.match_source_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
||||||
40, // 61: talos.resource.definitions.network.NfTablesPortMatch.ranges:type_name -> talos.resource.definitions.network.PortRange
|
33, // 61: talos.resource.definitions.network.NfTablesLayer4Match.match_destination_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
||||||
29, // 62: talos.resource.definitions.network.NfTablesRule.match_o_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
28, // 62: talos.resource.definitions.network.NfTablesLayer4Match.match_icmp_type:type_name -> talos.resource.definitions.network.NfTablesICMPTypeMatch
|
||||||
79, // 63: talos.resource.definitions.network.NfTablesRule.verdict:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
40, // 63: talos.resource.definitions.network.NfTablesPortMatch.ranges:type_name -> talos.resource.definitions.network.PortRange
|
||||||
32, // 64: talos.resource.definitions.network.NfTablesRule.match_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
29, // 64: talos.resource.definitions.network.NfTablesRule.match_o_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
||||||
32, // 65: talos.resource.definitions.network.NfTablesRule.set_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
80, // 65: talos.resource.definitions.network.NfTablesRule.verdict:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||||
24, // 66: talos.resource.definitions.network.NfTablesRule.match_source_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
32, // 66: talos.resource.definitions.network.NfTablesRule.match_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
||||||
24, // 67: talos.resource.definitions.network.NfTablesRule.match_destination_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
32, // 67: talos.resource.definitions.network.NfTablesRule.set_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
||||||
30, // 68: talos.resource.definitions.network.NfTablesRule.match_layer4:type_name -> talos.resource.definitions.network.NfTablesLayer4Match
|
24, // 68: talos.resource.definitions.network.NfTablesRule.match_source_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
||||||
29, // 69: talos.resource.definitions.network.NfTablesRule.match_i_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
24, // 69: talos.resource.definitions.network.NfTablesRule.match_destination_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
||||||
26, // 70: talos.resource.definitions.network.NfTablesRule.clamp_mss:type_name -> talos.resource.definitions.network.NfTablesClampMSS
|
30, // 70: talos.resource.definitions.network.NfTablesRule.match_layer4:type_name -> talos.resource.definitions.network.NfTablesLayer4Match
|
||||||
31, // 71: talos.resource.definitions.network.NfTablesRule.match_limit:type_name -> talos.resource.definitions.network.NfTablesLimitMatch
|
29, // 71: talos.resource.definitions.network.NfTablesRule.match_i_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
||||||
27, // 72: talos.resource.definitions.network.NfTablesRule.match_conntrack_state:type_name -> talos.resource.definitions.network.NfTablesConntrackStateMatch
|
26, // 72: talos.resource.definitions.network.NfTablesRule.clamp_mss:type_name -> talos.resource.definitions.network.NfTablesClampMSS
|
||||||
59, // 73: talos.resource.definitions.network.NodeAddressFilterSpec.include_subnets:type_name -> common.NetIPPrefix
|
31, // 73: talos.resource.definitions.network.NfTablesRule.match_limit:type_name -> talos.resource.definitions.network.NfTablesLimitMatch
|
||||||
59, // 74: talos.resource.definitions.network.NodeAddressFilterSpec.exclude_subnets:type_name -> common.NetIPPrefix
|
27, // 74: talos.resource.definitions.network.NfTablesRule.match_conntrack_state:type_name -> talos.resource.definitions.network.NfTablesConntrackStateMatch
|
||||||
84, // 75: talos.resource.definitions.network.NodeAddressSortAlgorithmSpec.algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
59, // 75: talos.resource.definitions.network.NodeAddressFilterSpec.include_subnets:type_name -> common.NetIPPrefix
|
||||||
59, // 76: talos.resource.definitions.network.NodeAddressSpec.addresses:type_name -> common.NetIPPrefix
|
59, // 76: talos.resource.definitions.network.NodeAddressFilterSpec.exclude_subnets:type_name -> common.NetIPPrefix
|
||||||
84, // 77: talos.resource.definitions.network.NodeAddressSpec.sort_algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
85, // 77: talos.resource.definitions.network.NodeAddressSortAlgorithmSpec.algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||||
85, // 78: talos.resource.definitions.network.OperatorSpecSpec.operator:type_name -> talos.resource.definitions.enums.NetworkOperator
|
59, // 78: talos.resource.definitions.network.NodeAddressSpec.addresses:type_name -> common.NetIPPrefix
|
||||||
7, // 79: talos.resource.definitions.network.OperatorSpecSpec.dhcp4:type_name -> talos.resource.definitions.network.DHCP4OperatorSpec
|
85, // 79: talos.resource.definitions.network.NodeAddressSpec.sort_algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||||
8, // 80: talos.resource.definitions.network.OperatorSpecSpec.dhcp6:type_name -> talos.resource.definitions.network.DHCP6OperatorSpec
|
86, // 80: talos.resource.definitions.network.OperatorSpecSpec.operator:type_name -> talos.resource.definitions.enums.NetworkOperator
|
||||||
54, // 81: talos.resource.definitions.network.OperatorSpecSpec.vip:type_name -> talos.resource.definitions.network.VIPOperatorSpec
|
7, // 81: talos.resource.definitions.network.OperatorSpecSpec.dhcp4:type_name -> talos.resource.definitions.network.DHCP4OperatorSpec
|
||||||
62, // 82: talos.resource.definitions.network.OperatorSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
8, // 82: talos.resource.definitions.network.OperatorSpecSpec.dhcp6:type_name -> talos.resource.definitions.network.DHCP6OperatorSpec
|
||||||
0, // 83: talos.resource.definitions.network.PlatformConfigSpec.addresses:type_name -> talos.resource.definitions.network.AddressSpecSpec
|
54, // 83: talos.resource.definitions.network.OperatorSpecSpec.vip:type_name -> talos.resource.definitions.network.VIPOperatorSpec
|
||||||
22, // 84: talos.resource.definitions.network.PlatformConfigSpec.links:type_name -> talos.resource.definitions.network.LinkSpecSpec
|
62, // 84: talos.resource.definitions.network.OperatorSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
45, // 85: talos.resource.definitions.network.PlatformConfigSpec.routes:type_name -> talos.resource.definitions.network.RouteSpecSpec
|
0, // 85: talos.resource.definitions.network.PlatformConfigSpec.addresses:type_name -> talos.resource.definitions.network.AddressSpecSpec
|
||||||
19, // 86: talos.resource.definitions.network.PlatformConfigSpec.hostnames:type_name -> talos.resource.definitions.network.HostnameSpecSpec
|
22, // 86: talos.resource.definitions.network.PlatformConfigSpec.links:type_name -> talos.resource.definitions.network.LinkSpecSpec
|
||||||
43, // 87: talos.resource.definitions.network.PlatformConfigSpec.resolvers:type_name -> talos.resource.definitions.network.ResolverSpecSpec
|
45, // 87: talos.resource.definitions.network.PlatformConfigSpec.routes:type_name -> talos.resource.definitions.network.RouteSpecSpec
|
||||||
50, // 88: talos.resource.definitions.network.PlatformConfigSpec.time_servers:type_name -> talos.resource.definitions.network.TimeServerSpecSpec
|
19, // 88: talos.resource.definitions.network.PlatformConfigSpec.hostnames:type_name -> talos.resource.definitions.network.HostnameSpecSpec
|
||||||
38, // 89: talos.resource.definitions.network.PlatformConfigSpec.operators:type_name -> talos.resource.definitions.network.OperatorSpecSpec
|
43, // 89: talos.resource.definitions.network.PlatformConfigSpec.resolvers:type_name -> talos.resource.definitions.network.ResolverSpecSpec
|
||||||
63, // 90: talos.resource.definitions.network.PlatformConfigSpec.external_ips:type_name -> common.NetIP
|
50, // 90: talos.resource.definitions.network.PlatformConfigSpec.time_servers:type_name -> talos.resource.definitions.network.TimeServerSpecSpec
|
||||||
41, // 91: talos.resource.definitions.network.PlatformConfigSpec.probes:type_name -> talos.resource.definitions.network.ProbeSpecSpec
|
38, // 91: talos.resource.definitions.network.PlatformConfigSpec.operators:type_name -> talos.resource.definitions.network.OperatorSpecSpec
|
||||||
86, // 92: talos.resource.definitions.network.PlatformConfigSpec.metadata:type_name -> talos.resource.definitions.runtime.PlatformMetadataSpec
|
63, // 92: talos.resource.definitions.network.PlatformConfigSpec.external_ips:type_name -> common.NetIP
|
||||||
87, // 93: talos.resource.definitions.network.ProbeSpecSpec.interval:type_name -> google.protobuf.Duration
|
41, // 93: talos.resource.definitions.network.PlatformConfigSpec.probes:type_name -> talos.resource.definitions.network.ProbeSpecSpec
|
||||||
49, // 94: talos.resource.definitions.network.ProbeSpecSpec.tcp:type_name -> talos.resource.definitions.network.TCPProbeSpec
|
87, // 94: talos.resource.definitions.network.PlatformConfigSpec.metadata:type_name -> talos.resource.definitions.runtime.PlatformMetadataSpec
|
||||||
62, // 95: talos.resource.definitions.network.ProbeSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
88, // 95: talos.resource.definitions.network.ProbeSpecSpec.interval:type_name -> google.protobuf.Duration
|
||||||
63, // 96: talos.resource.definitions.network.ResolverSpecSpec.dns_servers:type_name -> common.NetIP
|
49, // 96: talos.resource.definitions.network.ProbeSpecSpec.tcp:type_name -> talos.resource.definitions.network.TCPProbeSpec
|
||||||
62, // 97: talos.resource.definitions.network.ResolverSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
62, // 97: talos.resource.definitions.network.ProbeSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
63, // 98: talos.resource.definitions.network.ResolverStatusSpec.dns_servers:type_name -> common.NetIP
|
63, // 98: talos.resource.definitions.network.ResolverSpecSpec.dns_servers:type_name -> common.NetIP
|
||||||
60, // 99: talos.resource.definitions.network.RouteSpecSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
62, // 99: talos.resource.definitions.network.ResolverSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
59, // 100: talos.resource.definitions.network.RouteSpecSpec.destination:type_name -> common.NetIPPrefix
|
63, // 100: talos.resource.definitions.network.ResolverStatusSpec.dns_servers:type_name -> common.NetIP
|
||||||
63, // 101: talos.resource.definitions.network.RouteSpecSpec.source:type_name -> common.NetIP
|
60, // 101: talos.resource.definitions.network.RouteSpecSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
||||||
63, // 102: talos.resource.definitions.network.RouteSpecSpec.gateway:type_name -> common.NetIP
|
59, // 102: talos.resource.definitions.network.RouteSpecSpec.destination:type_name -> common.NetIPPrefix
|
||||||
88, // 103: talos.resource.definitions.network.RouteSpecSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
63, // 103: talos.resource.definitions.network.RouteSpecSpec.source:type_name -> common.NetIP
|
||||||
61, // 104: talos.resource.definitions.network.RouteSpecSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
63, // 104: talos.resource.definitions.network.RouteSpecSpec.gateway:type_name -> common.NetIP
|
||||||
89, // 105: talos.resource.definitions.network.RouteSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
89, // 105: talos.resource.definitions.network.RouteSpecSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
||||||
90, // 106: talos.resource.definitions.network.RouteSpecSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
61, // 106: talos.resource.definitions.network.RouteSpecSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
||||||
62, // 107: talos.resource.definitions.network.RouteSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
90, // 107: talos.resource.definitions.network.RouteSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
||||||
60, // 108: talos.resource.definitions.network.RouteStatusSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
91, // 108: talos.resource.definitions.network.RouteSpecSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||||
59, // 109: talos.resource.definitions.network.RouteStatusSpec.destination:type_name -> common.NetIPPrefix
|
62, // 109: talos.resource.definitions.network.RouteSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
63, // 110: talos.resource.definitions.network.RouteStatusSpec.source:type_name -> common.NetIP
|
60, // 110: talos.resource.definitions.network.RouteStatusSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
||||||
63, // 111: talos.resource.definitions.network.RouteStatusSpec.gateway:type_name -> common.NetIP
|
59, // 111: talos.resource.definitions.network.RouteStatusSpec.destination:type_name -> common.NetIPPrefix
|
||||||
88, // 112: talos.resource.definitions.network.RouteStatusSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
63, // 112: talos.resource.definitions.network.RouteStatusSpec.source:type_name -> common.NetIP
|
||||||
61, // 113: talos.resource.definitions.network.RouteStatusSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
63, // 113: talos.resource.definitions.network.RouteStatusSpec.gateway:type_name -> common.NetIP
|
||||||
89, // 114: talos.resource.definitions.network.RouteStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
89, // 114: talos.resource.definitions.network.RouteStatusSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
||||||
90, // 115: talos.resource.definitions.network.RouteStatusSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
61, // 115: talos.resource.definitions.network.RouteStatusSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
||||||
87, // 116: talos.resource.definitions.network.TCPProbeSpec.timeout:type_name -> google.protobuf.Duration
|
90, // 116: talos.resource.definitions.network.RouteStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
||||||
62, // 117: talos.resource.definitions.network.TimeServerSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
91, // 117: talos.resource.definitions.network.RouteStatusSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||||
63, // 118: talos.resource.definitions.network.VIPOperatorSpec.ip:type_name -> common.NetIP
|
88, // 118: talos.resource.definitions.network.TCPProbeSpec.timeout:type_name -> google.protobuf.Duration
|
||||||
52, // 119: talos.resource.definitions.network.VIPOperatorSpec.equinix_metal:type_name -> talos.resource.definitions.network.VIPEquinixMetalSpec
|
62, // 119: talos.resource.definitions.network.TimeServerSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||||
53, // 120: talos.resource.definitions.network.VIPOperatorSpec.h_cloud:type_name -> talos.resource.definitions.network.VIPHCloudSpec
|
63, // 120: talos.resource.definitions.network.VIPOperatorSpec.ip:type_name -> common.NetIP
|
||||||
91, // 121: talos.resource.definitions.network.VLANSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersVLANProtocol
|
52, // 121: talos.resource.definitions.network.VIPOperatorSpec.equinix_metal:type_name -> talos.resource.definitions.network.VIPEquinixMetalSpec
|
||||||
87, // 122: talos.resource.definitions.network.WireguardPeer.persistent_keepalive_interval:type_name -> google.protobuf.Duration
|
53, // 122: talos.resource.definitions.network.VIPOperatorSpec.h_cloud:type_name -> talos.resource.definitions.network.VIPHCloudSpec
|
||||||
59, // 123: talos.resource.definitions.network.WireguardPeer.allowed_ips:type_name -> common.NetIPPrefix
|
92, // 123: talos.resource.definitions.network.VLANSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||||
56, // 124: talos.resource.definitions.network.WireguardSpec.peers:type_name -> talos.resource.definitions.network.WireguardPeer
|
88, // 124: talos.resource.definitions.network.WireguardPeer.persistent_keepalive_interval:type_name -> google.protobuf.Duration
|
||||||
125, // [125:125] is the sub-list for method output_type
|
59, // 125: talos.resource.definitions.network.WireguardPeer.allowed_ips:type_name -> common.NetIPPrefix
|
||||||
125, // [125:125] is the sub-list for method input_type
|
56, // 126: talos.resource.definitions.network.WireguardSpec.peers:type_name -> talos.resource.definitions.network.WireguardPeer
|
||||||
125, // [125:125] is the sub-list for extension type_name
|
127, // [127:127] is the sub-list for method output_type
|
||||||
125, // [125:125] is the sub-list for extension extendee
|
127, // [127:127] is the sub-list for method input_type
|
||||||
0, // [0:125] is the sub-list for field type_name
|
127, // [127:127] is the sub-list for extension type_name
|
||||||
|
127, // [127:127] is the sub-list for extension extendee
|
||||||
|
0, // [0:127] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_resource_definitions_network_network_proto_init() }
|
func init() { file_resource_definitions_network_network_proto_init() }
|
||||||
|
@ -1228,6 +1228,27 @@ func (m *EthernetSpecSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
|
|||||||
i -= len(m.unknownFields)
|
i -= len(m.unknownFields)
|
||||||
copy(dAtA[i:], m.unknownFields)
|
copy(dAtA[i:], m.unknownFields)
|
||||||
}
|
}
|
||||||
|
if len(m.WakeOnLan) > 0 {
|
||||||
|
var pksize2 int
|
||||||
|
for _, num := range m.WakeOnLan {
|
||||||
|
pksize2 += protohelpers.SizeOfVarint(uint64(num))
|
||||||
|
}
|
||||||
|
i -= pksize2
|
||||||
|
j1 := i
|
||||||
|
for _, num1 := range m.WakeOnLan {
|
||||||
|
num := uint64(num1)
|
||||||
|
for num >= 1<<7 {
|
||||||
|
dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
|
||||||
|
num >>= 7
|
||||||
|
j1++
|
||||||
|
}
|
||||||
|
dAtA[j1] = uint8(num)
|
||||||
|
j1++
|
||||||
|
}
|
||||||
|
i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
|
||||||
|
i--
|
||||||
|
dAtA[i] = 0x22
|
||||||
|
}
|
||||||
if m.Channels != nil {
|
if m.Channels != nil {
|
||||||
size, err := m.Channels.MarshalToSizedBufferVT(dAtA[:i])
|
size, err := m.Channels.MarshalToSizedBufferVT(dAtA[:i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -1303,6 +1324,27 @@ func (m *EthernetStatusSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
|
|||||||
i -= len(m.unknownFields)
|
i -= len(m.unknownFields)
|
||||||
copy(dAtA[i:], m.unknownFields)
|
copy(dAtA[i:], m.unknownFields)
|
||||||
}
|
}
|
||||||
|
if len(m.WakeOnLan) > 0 {
|
||||||
|
var pksize2 int
|
||||||
|
for _, num := range m.WakeOnLan {
|
||||||
|
pksize2 += protohelpers.SizeOfVarint(uint64(num))
|
||||||
|
}
|
||||||
|
i -= pksize2
|
||||||
|
j1 := i
|
||||||
|
for _, num1 := range m.WakeOnLan {
|
||||||
|
num := uint64(num1)
|
||||||
|
for num >= 1<<7 {
|
||||||
|
dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
|
||||||
|
num >>= 7
|
||||||
|
j1++
|
||||||
|
}
|
||||||
|
dAtA[j1] = uint8(num)
|
||||||
|
j1++
|
||||||
|
}
|
||||||
|
i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
|
||||||
|
i--
|
||||||
|
dAtA[i] = 0x52
|
||||||
|
}
|
||||||
if m.Channels != nil {
|
if m.Channels != nil {
|
||||||
size, err := m.Channels.MarshalToSizedBufferVT(dAtA[:i])
|
size, err := m.Channels.MarshalToSizedBufferVT(dAtA[:i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -4994,6 +5036,13 @@ func (m *EthernetSpecSpec) SizeVT() (n int) {
|
|||||||
l = m.Channels.SizeVT()
|
l = m.Channels.SizeVT()
|
||||||
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
|
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
|
||||||
}
|
}
|
||||||
|
if len(m.WakeOnLan) > 0 {
|
||||||
|
l = 0
|
||||||
|
for _, e := range m.WakeOnLan {
|
||||||
|
l += protohelpers.SizeOfVarint(uint64(e))
|
||||||
|
}
|
||||||
|
n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l
|
||||||
|
}
|
||||||
n += len(m.unknownFields)
|
n += len(m.unknownFields)
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
@ -5042,6 +5091,13 @@ func (m *EthernetStatusSpec) SizeVT() (n int) {
|
|||||||
l = m.Channels.SizeVT()
|
l = m.Channels.SizeVT()
|
||||||
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
|
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
|
||||||
}
|
}
|
||||||
|
if len(m.WakeOnLan) > 0 {
|
||||||
|
l = 0
|
||||||
|
for _, e := range m.WakeOnLan {
|
||||||
|
l += protohelpers.SizeOfVarint(uint64(e))
|
||||||
|
}
|
||||||
|
n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l
|
||||||
|
}
|
||||||
n += len(m.unknownFields)
|
n += len(m.unknownFields)
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
@ -9316,6 +9372,75 @@ func (m *EthernetSpecSpec) UnmarshalVT(dAtA []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
|
case 4:
|
||||||
|
if wireType == 0 {
|
||||||
|
var v enums.NethelpersWOLMode
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return protohelpers.ErrIntOverflow
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||||
|
} else if wireType == 2 {
|
||||||
|
var packedLen int
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return protohelpers.ErrIntOverflow
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
packedLen |= int(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if packedLen < 0 {
|
||||||
|
return protohelpers.ErrInvalidLength
|
||||||
|
}
|
||||||
|
postIndex := iNdEx + packedLen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return protohelpers.ErrInvalidLength
|
||||||
|
}
|
||||||
|
if postIndex > l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
var elementCount int
|
||||||
|
if elementCount != 0 && len(m.WakeOnLan) == 0 {
|
||||||
|
m.WakeOnLan = make([]enums.NethelpersWOLMode, 0, elementCount)
|
||||||
|
}
|
||||||
|
for iNdEx < postIndex {
|
||||||
|
var v enums.NethelpersWOLMode
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return protohelpers.ErrIntOverflow
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field WakeOnLan", wireType)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
|
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
|
||||||
@ -9614,6 +9739,75 @@ func (m *EthernetStatusSpec) UnmarshalVT(dAtA []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
|
case 10:
|
||||||
|
if wireType == 0 {
|
||||||
|
var v enums.NethelpersWOLMode
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return protohelpers.ErrIntOverflow
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||||
|
} else if wireType == 2 {
|
||||||
|
var packedLen int
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return protohelpers.ErrIntOverflow
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
packedLen |= int(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if packedLen < 0 {
|
||||||
|
return protohelpers.ErrInvalidLength
|
||||||
|
}
|
||||||
|
postIndex := iNdEx + packedLen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return protohelpers.ErrInvalidLength
|
||||||
|
}
|
||||||
|
if postIndex > l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
var elementCount int
|
||||||
|
if elementCount != 0 && len(m.WakeOnLan) == 0 {
|
||||||
|
m.WakeOnLan = make([]enums.NethelpersWOLMode, 0, elementCount)
|
||||||
|
}
|
||||||
|
for iNdEx < postIndex {
|
||||||
|
var v enums.NethelpersWOLMode
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return protohelpers.ErrIntOverflow
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field WakeOnLan", wireType)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
|
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
|
||||||
|
@ -71,6 +71,7 @@ type EthernetConfig interface {
|
|||||||
Rings() EthernetRingsConfig
|
Rings() EthernetRingsConfig
|
||||||
Channels() EthernetChannelsConfig
|
Channels() EthernetChannelsConfig
|
||||||
Features() map[string]bool
|
Features() map[string]bool
|
||||||
|
WakeOnLAN() []nethelpers.WOLMode
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthernetRingsConfig defines a configuration for Ethernet link rings.
|
// EthernetRingsConfig defines a configuration for Ethernet link rings.
|
||||||
|
@ -849,6 +849,16 @@
|
|||||||
"description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n",
|
"description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n",
|
||||||
"markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
"markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
||||||
"x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n"
|
"x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||||
|
},
|
||||||
|
"wakeOnLan": {
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"type": "array",
|
||||||
|
"title": "wakeOnLan",
|
||||||
|
"description": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to ethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt; command.\n",
|
||||||
|
"markdownDescription": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s \u003clink\u003e wol \u003coptions\u003e` command.",
|
||||||
|
"x-intellij-html-description": "\u003cp\u003eWake-on-LAN modes to enable.\u003c/p\u003e\n\n\u003cp\u003eIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt;\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
|
@ -101,6 +101,10 @@ func (o *EthernetConfigV1Alpha1) DeepCopy() *EthernetConfigV1Alpha1 {
|
|||||||
*cp.ChannelsConfig.Combined = *o.ChannelsConfig.Combined
|
*cp.ChannelsConfig.Combined = *o.ChannelsConfig.Combined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if o.WakeOnLANConfig != nil {
|
||||||
|
cp.WakeOnLANConfig = make([]nethelpers.WOLMode, len(o.WakeOnLANConfig))
|
||||||
|
copy(cp.WakeOnLANConfig, o.WakeOnLANConfig)
|
||||||
|
}
|
||||||
return &cp
|
return &cp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/siderolabs/talos/pkg/machinery/config/internal/registry"
|
"github.com/siderolabs/talos/pkg/machinery/config/internal/registry"
|
||||||
"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
|
"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
|
||||||
"github.com/siderolabs/talos/pkg/machinery/config/validation"
|
"github.com/siderolabs/talos/pkg/machinery/config/validation"
|
||||||
|
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EthernetKind is a Ethernet config document kind.
|
// EthernetKind is a Ethernet config document kind.
|
||||||
@ -69,6 +70,30 @@ type EthernetConfigV1Alpha1 struct {
|
|||||||
//
|
//
|
||||||
// This is similar to `ethtool -L` command.
|
// This is similar to `ethtool -L` command.
|
||||||
ChannelsConfig *EthernetChannelsConfig `yaml:"channels,omitempty"`
|
ChannelsConfig *EthernetChannelsConfig `yaml:"channels,omitempty"`
|
||||||
|
// description: |
|
||||||
|
// Wake-on-LAN modes to enable.
|
||||||
|
//
|
||||||
|
// If this field is omitted, Wake-on-LAN configuration is not changed.
|
||||||
|
// An empty list disables Wake-on-LAN.
|
||||||
|
//
|
||||||
|
// This is similar to `ethtool -s <link> wol <options>` command.
|
||||||
|
// values:
|
||||||
|
// - "phy"
|
||||||
|
// - "unicast"
|
||||||
|
// - "multicast"
|
||||||
|
// - "broadcast"
|
||||||
|
// - "arp"
|
||||||
|
// - "magic"
|
||||||
|
// - "magicsecure"
|
||||||
|
// - "filter"
|
||||||
|
// schema:
|
||||||
|
// type: array
|
||||||
|
// items:
|
||||||
|
// type: string
|
||||||
|
// examples:
|
||||||
|
// - value: >
|
||||||
|
// []nethelpers.WOLMode{nethelpers.WOLModeUnicast, nethelpers.WOLModeMagic}
|
||||||
|
WakeOnLANConfig []nethelpers.WOLMode `yaml:"wakeOnLan,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthernetRingsConfig is a configuration for Ethernet link rings.
|
// EthernetRingsConfig is a configuration for Ethernet link rings.
|
||||||
@ -172,6 +197,11 @@ func (s *EthernetConfigV1Alpha1) Features() map[string]bool {
|
|||||||
return s.FeaturesConfig
|
return s.FeaturesConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WakeOnLAN implements config.EthernetConfig interface.
|
||||||
|
func (s *EthernetConfigV1Alpha1) WakeOnLAN() []nethelpers.WOLMode {
|
||||||
|
return s.WakeOnLANConfig
|
||||||
|
}
|
||||||
|
|
||||||
// Validate implements config.Validator interface.
|
// Validate implements config.Validator interface.
|
||||||
func (s *EthernetConfigV1Alpha1) Validate(validation.RuntimeMode, ...validation.Option) ([]string, error) {
|
func (s *EthernetConfigV1Alpha1) Validate(validation.RuntimeMode, ...validation.Option) ([]string, error) {
|
||||||
if s.MetaName == "" {
|
if s.MetaName == "" {
|
||||||
|
@ -16,6 +16,7 @@ import (
|
|||||||
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
|
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
|
||||||
"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
|
"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
|
||||||
"github.com/siderolabs/talos/pkg/machinery/config/types/network"
|
"github.com/siderolabs/talos/pkg/machinery/config/types/network"
|
||||||
|
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:embed testdata/ethernetconfig.yaml
|
//go:embed testdata/ethernetconfig.yaml
|
||||||
@ -34,6 +35,10 @@ func TestEthernetConfigMarshalStability(t *testing.T) {
|
|||||||
cfg.ChannelsConfig = &network.EthernetChannelsConfig{
|
cfg.ChannelsConfig = &network.EthernetChannelsConfig{
|
||||||
Combined: pointer.To[uint32](1),
|
Combined: pointer.To[uint32](1),
|
||||||
}
|
}
|
||||||
|
cfg.WakeOnLANConfig = []nethelpers.WOLMode{
|
||||||
|
nethelpers.WOLModeUnicast,
|
||||||
|
nethelpers.WOLModeMulticast,
|
||||||
|
}
|
||||||
|
|
||||||
marshaled, err := encoder.NewEncoder(cfg, encoder.WithComments(encoder.CommentsDisabled)).Encode()
|
marshaled, err := encoder.NewEncoder(cfg, encoder.WithComments(encoder.CommentsDisabled)).Encode()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -67,6 +72,10 @@ func TestEthernetConfigUnmarshal(t *testing.T) {
|
|||||||
ChannelsConfig: &network.EthernetChannelsConfig{
|
ChannelsConfig: &network.EthernetChannelsConfig{
|
||||||
Combined: pointer.To[uint32](1),
|
Combined: pointer.To[uint32](1),
|
||||||
},
|
},
|
||||||
|
WakeOnLANConfig: []nethelpers.WOLMode{
|
||||||
|
nethelpers.WOLModeUnicast,
|
||||||
|
nethelpers.WOLModeMulticast,
|
||||||
|
},
|
||||||
}, docs[0])
|
}, docs[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"net/netip"
|
"net/netip"
|
||||||
|
|
||||||
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
|
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
|
||||||
|
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (DefaultActionConfigV1Alpha1) Doc() *encoder.Doc {
|
func (DefaultActionConfigV1Alpha1) Doc() *encoder.Doc {
|
||||||
@ -72,11 +73,30 @@ func (EthernetConfigV1Alpha1) Doc() *encoder.Doc {
|
|||||||
Description: "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
Description: "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
||||||
Comments: [3]string{"" /* encoder.HeadComment */, "Configuration for Ethernet link channels." /* encoder.LineComment */, "" /* encoder.FootComment */},
|
Comments: [3]string{"" /* encoder.HeadComment */, "Configuration for Ethernet link channels." /* encoder.LineComment */, "" /* encoder.FootComment */},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "wakeOnLan",
|
||||||
|
Type: "[]WOLMode",
|
||||||
|
Note: "",
|
||||||
|
Description: "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s <link> wol <options>` command.",
|
||||||
|
Comments: [3]string{"" /* encoder.HeadComment */, "Wake-on-LAN modes to enable." /* encoder.LineComment */, "" /* encoder.FootComment */},
|
||||||
|
Values: []string{
|
||||||
|
"phy",
|
||||||
|
"unicast",
|
||||||
|
"multicast",
|
||||||
|
"broadcast",
|
||||||
|
"arp",
|
||||||
|
"magic",
|
||||||
|
"magicsecure",
|
||||||
|
"filter",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
doc.AddExample("", exampleEthernetConfigV1Alpha1())
|
doc.AddExample("", exampleEthernetConfigV1Alpha1())
|
||||||
|
|
||||||
|
doc.Fields[5].AddExample("", []nethelpers.WOLMode{nethelpers.WOLModeUnicast, nethelpers.WOLModeMagic})
|
||||||
|
|
||||||
return doc
|
return doc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,3 +7,6 @@ rings:
|
|||||||
rx: 16
|
rx: 16
|
||||||
channels:
|
channels:
|
||||||
combined: 1
|
combined: 1
|
||||||
|
wakeOnLan:
|
||||||
|
- unicast
|
||||||
|
- multicast
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Code generated by "enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol -linecomment -text"; DO NOT EDIT.
|
// Code generated by "enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol,WOLMode -linecomment -text"; DO NOT EDIT.
|
||||||
|
|
||||||
package nethelpers
|
package nethelpers
|
||||||
|
|
||||||
@ -3499,3 +3499,136 @@ func (i *VLANProtocol) UnmarshalText(text []byte) error {
|
|||||||
*i, err = VLANProtocolString(string(text))
|
*i, err = VLANProtocolString(string(text))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_WOLModeName_0 = "phyunicast"
|
||||||
|
_WOLModeLowerName_0 = "phyunicast"
|
||||||
|
_WOLModeName_1 = "multicast"
|
||||||
|
_WOLModeLowerName_1 = "multicast"
|
||||||
|
_WOLModeName_2 = "broadcast"
|
||||||
|
_WOLModeLowerName_2 = "broadcast"
|
||||||
|
_WOLModeName_3 = "magic"
|
||||||
|
_WOLModeLowerName_3 = "magic"
|
||||||
|
_WOLModeName_4 = "magicsecure"
|
||||||
|
_WOLModeLowerName_4 = "magicsecure"
|
||||||
|
_WOLModeName_5 = "filter"
|
||||||
|
_WOLModeLowerName_5 = "filter"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
_WOLModeIndex_0 = [...]uint8{0, 3, 10}
|
||||||
|
_WOLModeIndex_1 = [...]uint8{0, 9}
|
||||||
|
_WOLModeIndex_2 = [...]uint8{0, 9}
|
||||||
|
_WOLModeIndex_3 = [...]uint8{0, 5}
|
||||||
|
_WOLModeIndex_4 = [...]uint8{0, 11}
|
||||||
|
_WOLModeIndex_5 = [...]uint8{0, 6}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (i WOLMode) String() string {
|
||||||
|
switch {
|
||||||
|
case 1 <= i && i <= 2:
|
||||||
|
i -= 1
|
||||||
|
return _WOLModeName_0[_WOLModeIndex_0[i]:_WOLModeIndex_0[i+1]]
|
||||||
|
case i == 4:
|
||||||
|
return _WOLModeName_1
|
||||||
|
case i == 8:
|
||||||
|
return _WOLModeName_2
|
||||||
|
case i == 32:
|
||||||
|
return _WOLModeName_3
|
||||||
|
case i == 64:
|
||||||
|
return _WOLModeName_4
|
||||||
|
case i == 128:
|
||||||
|
return _WOLModeName_5
|
||||||
|
default:
|
||||||
|
return fmt.Sprintf("WOLMode(%d)", i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// An "invalid array index" compiler error signifies that the constant values have changed.
|
||||||
|
// Re-run the stringer command to generate them again.
|
||||||
|
func _WOLModeNoOp() {
|
||||||
|
var x [1]struct{}
|
||||||
|
_ = x[WOLModePhy-(1)]
|
||||||
|
_ = x[WOLModeUnicast-(2)]
|
||||||
|
_ = x[WOLModeMulticast-(4)]
|
||||||
|
_ = x[WOLModeBroadcast-(8)]
|
||||||
|
_ = x[WOLModeMagic-(32)]
|
||||||
|
_ = x[WOLModeMagicSecure-(64)]
|
||||||
|
_ = x[WOLModeFilter-(128)]
|
||||||
|
}
|
||||||
|
|
||||||
|
var _WOLModeValues = []WOLMode{WOLModePhy, WOLModeUnicast, WOLModeMulticast, WOLModeBroadcast, WOLModeMagic, WOLModeMagicSecure, WOLModeFilter}
|
||||||
|
|
||||||
|
var _WOLModeNameToValueMap = map[string]WOLMode{
|
||||||
|
_WOLModeName_0[0:3]: WOLModePhy,
|
||||||
|
_WOLModeLowerName_0[0:3]: WOLModePhy,
|
||||||
|
_WOLModeName_0[3:10]: WOLModeUnicast,
|
||||||
|
_WOLModeLowerName_0[3:10]: WOLModeUnicast,
|
||||||
|
_WOLModeName_1[0:9]: WOLModeMulticast,
|
||||||
|
_WOLModeLowerName_1[0:9]: WOLModeMulticast,
|
||||||
|
_WOLModeName_2[0:9]: WOLModeBroadcast,
|
||||||
|
_WOLModeLowerName_2[0:9]: WOLModeBroadcast,
|
||||||
|
_WOLModeName_3[0:5]: WOLModeMagic,
|
||||||
|
_WOLModeLowerName_3[0:5]: WOLModeMagic,
|
||||||
|
_WOLModeName_4[0:11]: WOLModeMagicSecure,
|
||||||
|
_WOLModeLowerName_4[0:11]: WOLModeMagicSecure,
|
||||||
|
_WOLModeName_5[0:6]: WOLModeFilter,
|
||||||
|
_WOLModeLowerName_5[0:6]: WOLModeFilter,
|
||||||
|
}
|
||||||
|
|
||||||
|
var _WOLModeNames = []string{
|
||||||
|
_WOLModeName_0[0:3],
|
||||||
|
_WOLModeName_0[3:10],
|
||||||
|
_WOLModeName_1[0:9],
|
||||||
|
_WOLModeName_2[0:9],
|
||||||
|
_WOLModeName_3[0:5],
|
||||||
|
_WOLModeName_4[0:11],
|
||||||
|
_WOLModeName_5[0:6],
|
||||||
|
}
|
||||||
|
|
||||||
|
// WOLModeString retrieves an enum value from the enum constants string name.
|
||||||
|
// Throws an error if the param is not part of the enum.
|
||||||
|
func WOLModeString(s string) (WOLMode, error) {
|
||||||
|
if val, ok := _WOLModeNameToValueMap[s]; ok {
|
||||||
|
return val, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if val, ok := _WOLModeNameToValueMap[strings.ToLower(s)]; ok {
|
||||||
|
return val, nil
|
||||||
|
}
|
||||||
|
return 0, fmt.Errorf("%s does not belong to WOLMode values", s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WOLModeValues returns all values of the enum
|
||||||
|
func WOLModeValues() []WOLMode {
|
||||||
|
return _WOLModeValues
|
||||||
|
}
|
||||||
|
|
||||||
|
// WOLModeStrings returns a slice of all String values of the enum
|
||||||
|
func WOLModeStrings() []string {
|
||||||
|
strs := make([]string, len(_WOLModeNames))
|
||||||
|
copy(strs, _WOLModeNames)
|
||||||
|
return strs
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsAWOLMode returns "true" if the value is listed in the enum definition. "false" otherwise
|
||||||
|
func (i WOLMode) IsAWOLMode() bool {
|
||||||
|
for _, v := range _WOLModeValues {
|
||||||
|
if i == v {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalText implements the encoding.TextMarshaler interface for WOLMode
|
||||||
|
func (i WOLMode) MarshalText() ([]byte, error) {
|
||||||
|
return []byte(i.String()), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalText implements the encoding.TextUnmarshaler interface for WOLMode
|
||||||
|
func (i *WOLMode) UnmarshalText(text []byte) error {
|
||||||
|
var err error
|
||||||
|
*i, err = WOLModeString(string(text))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
@ -5,5 +5,5 @@
|
|||||||
// Package nethelpers provides types and type wrappers to support network resources.
|
// Package nethelpers provides types and type wrappers to support network resources.
|
||||||
package nethelpers
|
package nethelpers
|
||||||
|
|
||||||
//go:generate go tool github.com/dmarkham/enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol -linecomment -text
|
//go:generate go tool github.com/dmarkham/enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol,WOLMode -linecomment -text
|
||||||
//go:generate go tool github.com/dmarkham/enumer -type=FailOverMAC -linecomment
|
//go:generate go tool github.com/dmarkham/enumer -type=FailOverMAC -linecomment
|
||||||
|
29
pkg/machinery/nethelpers/wol.go
Normal file
29
pkg/machinery/nethelpers/wol.go
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package nethelpers
|
||||||
|
|
||||||
|
import "github.com/mdlayher/ethtool"
|
||||||
|
|
||||||
|
// WOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||||
|
type WOLMode int
|
||||||
|
|
||||||
|
// Constants copied from ethtool to provide Stringer interface.
|
||||||
|
//
|
||||||
|
//structprotogen:gen_enum
|
||||||
|
const (
|
||||||
|
WOLModePhy WOLMode = WOLMode(ethtool.PHY) // phy
|
||||||
|
WOLModeUnicast WOLMode = WOLMode(ethtool.Unicast) // unicast
|
||||||
|
WOLModeMulticast WOLMode = WOLMode(ethtool.Multicast) // multicast
|
||||||
|
WOLModeBroadcast WOLMode = WOLMode(ethtool.Broadcast) // broadcast
|
||||||
|
WOLModeMagic WOLMode = WOLMode(ethtool.Magic) // magic
|
||||||
|
WOLModeMagicSecure WOLMode = WOLMode(ethtool.MagicSecure) // magicsecure
|
||||||
|
WOLModeFilter WOLMode = WOLMode(ethtool.Filter) // filter
|
||||||
|
)
|
||||||
|
|
||||||
|
// WOLModeMin is the minimum valid WOLMode.
|
||||||
|
const WOLModeMin = WOLModePhy
|
||||||
|
|
||||||
|
// WOLModeMax is the maximum valid WOLMode.
|
||||||
|
const WOLModeMax = WOLModeFilter
|
@ -95,6 +95,10 @@ func (o EthernetSpecSpec) DeepCopy() EthernetSpecSpec {
|
|||||||
cp.Channels.Combined = new(uint32)
|
cp.Channels.Combined = new(uint32)
|
||||||
*cp.Channels.Combined = *o.Channels.Combined
|
*cp.Channels.Combined = *o.Channels.Combined
|
||||||
}
|
}
|
||||||
|
if o.WakeOnLAN != nil {
|
||||||
|
cp.WakeOnLAN = make([]nethelpers.WOLMode, len(o.WakeOnLAN))
|
||||||
|
copy(cp.WakeOnLAN, o.WakeOnLAN)
|
||||||
|
}
|
||||||
return cp
|
return cp
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,6 +221,10 @@ func (o EthernetStatusSpec) DeepCopy() EthernetStatusSpec {
|
|||||||
*cp.Channels.Combined = *o.Channels.Combined
|
*cp.Channels.Combined = *o.Channels.Combined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if o.WakeOnLAN != nil {
|
||||||
|
cp.WakeOnLAN = make([]nethelpers.WOLMode, len(o.WakeOnLAN))
|
||||||
|
copy(cp.WakeOnLAN, o.WakeOnLAN)
|
||||||
|
}
|
||||||
return cp
|
return cp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/cosi-project/runtime/pkg/resource/protobuf"
|
"github.com/cosi-project/runtime/pkg/resource/protobuf"
|
||||||
"github.com/cosi-project/runtime/pkg/resource/typed"
|
"github.com/cosi-project/runtime/pkg/resource/typed"
|
||||||
|
|
||||||
|
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||||
"github.com/siderolabs/talos/pkg/machinery/proto"
|
"github.com/siderolabs/talos/pkg/machinery/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -23,9 +24,10 @@ type EthernetSpec = typed.Resource[EthernetSpecSpec, EthernetSpecExtension]
|
|||||||
//
|
//
|
||||||
//gotagsrewrite:gen
|
//gotagsrewrite:gen
|
||||||
type EthernetSpecSpec struct {
|
type EthernetSpecSpec struct {
|
||||||
Rings EthernetRingsSpec `yaml:"rings,omitempty" protobuf:"1"`
|
Rings EthernetRingsSpec `yaml:"rings,omitempty" protobuf:"1"`
|
||||||
Features map[string]bool `yaml:"features,omitempty" protobuf:"2"`
|
Features map[string]bool `yaml:"features,omitempty" protobuf:"2"`
|
||||||
Channels EthernetChannelsSpec `yaml:"channels,omitempty" protobuf:"3"`
|
Channels EthernetChannelsSpec `yaml:"channels,omitempty" protobuf:"3"`
|
||||||
|
WakeOnLAN []nethelpers.WOLMode `yaml:"wakeOnLan,omitempty" protobuf:"4"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthernetRingsSpec describes config of Ethernet rings.
|
// EthernetRingsSpec describes config of Ethernet rings.
|
||||||
|
@ -34,6 +34,7 @@ type EthernetStatusSpec struct {
|
|||||||
Rings *EthernetRingsStatus `yaml:"rings,omitempty" protobuf:"7"`
|
Rings *EthernetRingsStatus `yaml:"rings,omitempty" protobuf:"7"`
|
||||||
Features EthernetFeatureStatusList `yaml:"features,omitempty" protobuf:"8"`
|
Features EthernetFeatureStatusList `yaml:"features,omitempty" protobuf:"8"`
|
||||||
Channels *EthernetChannelsStatus `yaml:"channels,omitempty" protobuf:"9"`
|
Channels *EthernetChannelsStatus `yaml:"channels,omitempty" protobuf:"9"`
|
||||||
|
WakeOnLAN []nethelpers.WOLMode `yaml:"wakeOnLAN,omitempty" protobuf:"10"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthernetFeatureStatusList is a list of EthernetFeatureStatus.
|
// EthernetFeatureStatusList is a list of EthernetFeatureStatus.
|
||||||
|
@ -120,7 +120,7 @@ func launchVM(config *LaunchConfig) error {
|
|||||||
"-netdev", getNetdevParams(config.Network, "net0"),
|
"-netdev", getNetdevParams(config.Network, "net0"),
|
||||||
"-device", fmt.Sprintf("virtio-net-pci,netdev=net0,mac=%s", config.VMMac),
|
"-device", fmt.Sprintf("virtio-net-pci,netdev=net0,mac=%s", config.VMMac),
|
||||||
// TODO: uncomment the following line to get another eth interface not connected to anything
|
// TODO: uncomment the following line to get another eth interface not connected to anything
|
||||||
// "-nic", "tap,model=virtio-net-pci",
|
// "-nic", "tap,model=e1000,script=no,downscript=no",
|
||||||
"-device", "virtio-rng-pci",
|
"-device", "virtio-rng-pci",
|
||||||
"-device", "virtio-balloon,deflate-on-oom=on",
|
"-device", "virtio-balloon,deflate-on-oom=on",
|
||||||
"-monitor", fmt.Sprintf("unix:%s,server,nowait", config.MonitorPath),
|
"-monitor", fmt.Sprintf("unix:%s,server,nowait", config.MonitorPath),
|
||||||
|
@ -288,6 +288,7 @@ description: Talos gRPC API reference.
|
|||||||
- [NethelpersRoutingTable](#talos.resource.definitions.enums.NethelpersRoutingTable)
|
- [NethelpersRoutingTable](#talos.resource.definitions.enums.NethelpersRoutingTable)
|
||||||
- [NethelpersScope](#talos.resource.definitions.enums.NethelpersScope)
|
- [NethelpersScope](#talos.resource.definitions.enums.NethelpersScope)
|
||||||
- [NethelpersVLANProtocol](#talos.resource.definitions.enums.NethelpersVLANProtocol)
|
- [NethelpersVLANProtocol](#talos.resource.definitions.enums.NethelpersVLANProtocol)
|
||||||
|
- [NethelpersWOLMode](#talos.resource.definitions.enums.NethelpersWOLMode)
|
||||||
- [NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer)
|
- [NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer)
|
||||||
- [NetworkOperator](#talos.resource.definitions.enums.NetworkOperator)
|
- [NetworkOperator](#talos.resource.definitions.enums.NetworkOperator)
|
||||||
- [RuntimeFIPSState](#talos.resource.definitions.enums.RuntimeFIPSState)
|
- [RuntimeFIPSState](#talos.resource.definitions.enums.RuntimeFIPSState)
|
||||||
@ -5120,6 +5121,24 @@ NethelpersVLANProtocol is a VLAN protocol.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="talos.resource.definitions.enums.NethelpersWOLMode"></a>
|
||||||
|
|
||||||
|
### NethelpersWOLMode
|
||||||
|
NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||||
|
|
||||||
|
| Name | Number | Description |
|
||||||
|
| ---- | ------ | ----------- |
|
||||||
|
| NETHELPERS_WOLMODE_UNSPECIFIED | 0 | |
|
||||||
|
| WOL_MODE_PHY | 1 | |
|
||||||
|
| WOL_MODE_UNICAST | 2 | |
|
||||||
|
| WOL_MODE_MULTICAST | 4 | |
|
||||||
|
| WOL_MODE_BROADCAST | 8 | |
|
||||||
|
| WOL_MODE_MAGIC | 32 | |
|
||||||
|
| WOL_MODE_MAGIC_SECURE | 64 | |
|
||||||
|
| WOL_MODE_FILTER | 128 | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="talos.resource.definitions.enums.NetworkConfigLayer"></a>
|
<a name="talos.resource.definitions.enums.NetworkConfigLayer"></a>
|
||||||
|
|
||||||
### NetworkConfigLayer
|
### NetworkConfigLayer
|
||||||
@ -8266,6 +8285,7 @@ EthernetSpecSpec describes config of Ethernet link.
|
|||||||
| rings | [EthernetRingsSpec](#talos.resource.definitions.network.EthernetRingsSpec) | | |
|
| rings | [EthernetRingsSpec](#talos.resource.definitions.network.EthernetRingsSpec) | | |
|
||||||
| features | [EthernetSpecSpec.FeaturesEntry](#talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntry) | repeated | |
|
| features | [EthernetSpecSpec.FeaturesEntry](#talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntry) | repeated | |
|
||||||
| channels | [EthernetChannelsSpec](#talos.resource.definitions.network.EthernetChannelsSpec) | | |
|
| channels | [EthernetChannelsSpec](#talos.resource.definitions.network.EthernetChannelsSpec) | | |
|
||||||
|
| wake_on_lan | [talos.resource.definitions.enums.NethelpersWOLMode](#talos.resource.definitions.enums.NethelpersWOLMode) | repeated | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -8305,6 +8325,7 @@ EthernetStatusSpec describes status of rendered secrets.
|
|||||||
| rings | [EthernetRingsStatus](#talos.resource.definitions.network.EthernetRingsStatus) | | |
|
| rings | [EthernetRingsStatus](#talos.resource.definitions.network.EthernetRingsStatus) | | |
|
||||||
| features | [EthernetFeatureStatus](#talos.resource.definitions.network.EthernetFeatureStatus) | repeated | |
|
| features | [EthernetFeatureStatus](#talos.resource.definitions.network.EthernetFeatureStatus) | repeated | |
|
||||||
| channels | [EthernetChannelsStatus](#talos.resource.definitions.network.EthernetChannelsStatus) | | |
|
| channels | [EthernetChannelsStatus](#talos.resource.definitions.network.EthernetChannelsStatus) | | |
|
||||||
|
| wake_on_lan | [talos.resource.definitions.enums.NethelpersWOLMode](#talos.resource.definitions.enums.NethelpersWOLMode) | repeated | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,6 +26,11 @@ rings:
|
|||||||
# Configuration for Ethernet link channels.
|
# Configuration for Ethernet link channels.
|
||||||
channels:
|
channels:
|
||||||
rx: 4 # Number of RX channels.
|
rx: 4 # Number of RX channels.
|
||||||
|
|
||||||
|
# # Wake-on-LAN modes to enable.
|
||||||
|
# wakeOnLan:
|
||||||
|
# - unicast
|
||||||
|
# - magic
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
|
|
||||||
@ -35,6 +40,11 @@ channels:
|
|||||||
|`features` |map[string]bool |Configuration for Ethernet features.<br><br>Set of features available and whether they can be enabled or disabled is driver specific.<br>Use `talosctl get ethernetstatus <link> -o yaml` to get the list of available features and<br>their current status. | |
|
|`features` |map[string]bool |Configuration for Ethernet features.<br><br>Set of features available and whether they can be enabled or disabled is driver specific.<br>Use `talosctl get ethernetstatus <link> -o yaml` to get the list of available features and<br>their current status. | |
|
||||||
|`rings` |<a href="#EthernetConfig.rings">EthernetRingsConfig</a> |Configuration for Ethernet link rings.<br><br>This is similar to `ethtool -G` command. | |
|
|`rings` |<a href="#EthernetConfig.rings">EthernetRingsConfig</a> |Configuration for Ethernet link rings.<br><br>This is similar to `ethtool -G` command. | |
|
||||||
|`channels` |<a href="#EthernetConfig.channels">EthernetChannelsConfig</a> |Configuration for Ethernet link channels.<br><br>This is similar to `ethtool -L` command. | |
|
|`channels` |<a href="#EthernetConfig.channels">EthernetChannelsConfig</a> |Configuration for Ethernet link channels.<br><br>This is similar to `ethtool -L` command. | |
|
||||||
|
|`wakeOnLan` |[]WOLMode |Wake-on-LAN modes to enable.<br><br>If this field is omitted, Wake-on-LAN configuration is not changed.<br>An empty list disables Wake-on-LAN.<br><br>This is similar to `ethtool -s <link> wol <options>` command. <details><summary>Show example(s)</summary>{{< highlight yaml >}}
|
||||||
|
wakeOnLan:
|
||||||
|
- unicast
|
||||||
|
- magic
|
||||||
|
{{< /highlight >}}</details> |`phy`<br />`unicast`<br />`multicast`<br />`broadcast`<br />`arp`<br />`magic`<br />`magicsecure`<br />`filter`<br /> |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -849,6 +849,16 @@
|
|||||||
"description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n",
|
"description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n",
|
||||||
"markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
"markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
||||||
"x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n"
|
"x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||||
|
},
|
||||||
|
"wakeOnLan": {
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"type": "array",
|
||||||
|
"title": "wakeOnLan",
|
||||||
|
"description": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to ethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt; command.\n",
|
||||||
|
"markdownDescription": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s \u003clink\u003e wol \u003coptions\u003e` command.",
|
||||||
|
"x-intellij-html-description": "\u003cp\u003eWake-on-LAN modes to enable.\u003c/p\u003e\n\n\u003cp\u003eIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt;\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user