client

package
v0.0.0-...-5984036 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// KeldaNamespace is the namespace that Kelda is running in. It also
	// contains any default configuration for deploying development workspaces.
	KeldaNamespace = "kelda"

	// MinionLabelSelectorKey is the label selector key for the Kelda minion pod.
	MinionLabelSelectorKey = "service"

	// MinionLabelSelectorValue is the label selector value for the Kelda minion pod.
	MinionLabelSelectorValue = "kelda"

	// RegistrySecretName is the name of the secret containing the registry
	// credentials to pull images in the development workspace. If it's defined
	// in the KeldaNamespace, then a copy is made in the development workspace.
	RegistrySecretName = "regcred"

	// MinionContainerWaitingErrTemplate is a generic error template
	// for when the Minion Pod is in a "Waiting" state for reasons other than
	// starting or due to being in a crash loop. The reason is propagated back
	// to the user.
	MinionContainerWaitingErrTemplate = "The minion server is waiting due to reason: %s"

	// DefaultPort is the default port used by the minion server.
	DefaultPort = 9000
)

Variables

View Source
var (
	// ErrMinionPodNotFound occurs if the client successfully connects to the
	// cluster, but cannot find a minion pod. This happens if the minion has not
	// been deployed.
	ErrMinionPodNotFound = errors.NewFriendlyError("Could not find minion pod.\n" +
		"Check that you have correctly deployed the Kelda minion to your cluster " +
		"using `kelda setup-minion`")

	// ErrMultipleMinionPods occurs if the client finds more than one running
	// minion pod. This can occur if the minion is updating through a rolling
	// deployment, or if the number of minion replicas was deliberately increased.
	ErrMultipleMinionPods = errors.NewFriendlyError("Found multiple minion pods\n" +
		"The minion server may be updating, and should finish momentarily.")

	// ErrMinionContainerCreating occurs when the Pod is in "Waiting" Phase with
	// Reason: "ContainerCreating" due to the minion container booting up.
	ErrMinionContainerCreating = errors.NewFriendlyError("Minion server is starting.\n" +
		"Please wait until the minion server has fully started.")

	// ErrMinionContainerCrashLoop occurs when the container is in a crash loop,
	// which causes the container state to oscillate between "Waiting" (Reason:
	// CrashLoopBackOff), and "Terminated"
	ErrMinionContainerCrashLoop = errors.NewFriendlyError("Minion server is in a crash loop.\n" +
		"Try redeploying the Kelda minion via `kelda setup-minion`. If this issue persists, " +
		"contact your Kelda administrator.")

	// ErrMinionContainerTerminated occurs when the minion container has been
	// terminated e.g. due to the user deleting the minion deploynent from the
	// cluster or due to a crash.
	ErrMinionContainerTerminated = errors.NewFriendlyError("Minion server has been terminated.\n" +
		"If the minion deployment has not been deleted, the server should restart momentarily. " +
		"Contact your Kelda administrator if the issue persists.")
)

Functions

This section is empty.

Types

type Client

type Client interface {
	CreateWorkspace(minion.Workspace) ([]*messages.Message, error)
	GetUpdates(string) ([]*minion.ServiceUpdate, error)
	PerformUpdates(string, []*minion.ServiceUpdate) error
	GetLicense() (config.License, error)
	GetVersion() (string, error)
	Close() error
}

Client is used for communicating with the Kelda minion.

func New

func New(kubeClient kubernetes.Interface, restConfig *rest.Config) (Client, error)

New creates a new client connected to the Kelda minion.

func NewWithAddress

func NewWithAddress(addr string) (Client, error)

NewWithAddress creates a new client connected to the Kelda minion at the given address. It does not set up tunnelling.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL