talos/pkg/provision/provision.go
Andrey Smirnov bab484a405
feat: use stable network interface names
Use `udevd` rules to create stable interface names.

Link controllers should wait for `udevd` to settle down, otherwise link
rename will fail (interface should not be UP).

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-06-01 21:29:12 +04:00

33 lines
1.0 KiB
Go

// 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 provision provides abstract definitions for Talos cluster provisioners.
package provision
import (
"context"
"io"
"github.com/siderolabs/talos/pkg/machinery/config/generate"
"github.com/siderolabs/talos/pkg/machinery/config/types/v1alpha1"
)
// Provisioner is an interface each provisioner should implement.
type Provisioner interface {
Create(context.Context, ClusterRequest, ...Option) (Cluster, error)
Destroy(context.Context, Cluster, ...Option) error
CrashDump(context.Context, Cluster, io.Writer)
Reflect(ctx context.Context, clusterName, stateDirectory string) (Cluster, error)
GenOptions(NetworkRequest) []generate.Option
GetLoadBalancers(NetworkRequest) (internalEndpoint, externalEndpoint string)
GetFirstInterface() v1alpha1.IfaceSelector
Close() error
UserDiskName(index int) string
}