Files
k3s/pkg/cluster/managed/drivers.go
Chris Kim a622dd57f3 [release-1.21] etcd snapshot functionality enhancements (#4606)
* etcd snapshot functionality enhancements (#4453)

Signed-off-by: Chris Kim <oats87g@gmail.com>

* feat: add option to disable s3 over https

Signed-off-by: Chris Kim <oats87g@gmail.com>

* Prevent snapshot commands from creating empty snapshot directory (#3783)

Signed-off-by: Chris Kim <oats87g@gmail.com>

Co-authored-by: Devin Buhl <devin.kray@gmail.com>
Co-authored-by: Derek Nola <derek.nola@suse.com>
2021-11-29 13:30:00 -08:00

44 lines
1.0 KiB
Go

package managed
import (
"context"
"net/http"
"github.com/rancher/k3s/pkg/clientaccess"
"github.com/rancher/k3s/pkg/daemons/config"
)
var (
defaultDriver string
drivers []Driver
)
type Driver interface {
IsInitialized(ctx context.Context, config *config.Control) (bool, error)
Register(ctx context.Context, config *config.Control, handler http.Handler) (http.Handler, error)
Reset(ctx context.Context, reboostrap func() error) error
Start(ctx context.Context, clientAccessInfo *clientaccess.Info) error
Test(ctx context.Context) error
Restore(ctx context.Context) error
EndpointName() string
Snapshot(ctx context.Context, config *config.Control) error
ReconcileSnapshotData(ctx context.Context) error
GetMembersClientURLs(ctx context.Context) ([]string, error)
RemoveSelf(ctx context.Context) error
}
func RegisterDriver(d Driver) {
drivers = append(drivers, d)
}
func Registered() []Driver {
return drivers
}
func Default() string {
if defaultDriver == "" && len(drivers) == 1 {
return drivers[0].EndpointName()
}
return defaultDriver
}