-
Notifications
You must be signed in to change notification settings - Fork 463
/
provision.go
31 lines (22 loc) · 970 Bytes
/
provision.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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/talos-systems/talos/pkg/machinery/config/types/v1alpha1/generate"
)
// 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.GenOption
GetLoadBalancers(NetworkRequest) (internalEndpoint, externalEndpoint string)
GetFirstInterface() string
Close() error
UserDiskName(index int) string
}