Documentation
¶
Overview ¶
Package namespaces provides the functionality to manage namespaces.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNSEmpty appears when the provided list of the namespaces is considered empty. ErrNSEmpty = errors.New("namespace list is empty. Specify at least one namespace") // ErrNSReserved appears when some of the provided names are forbidden to use. ErrNSReserved = func(ns string) error { return fmt.Errorf("'%s' namespace is reserved for Everest internals. Please specify another namespace", ns) } // ErrNameNotRFC1035Compatible appears when some of the provided names are not RFC1035 compatible. ErrNameNotRFC1035Compatible = func(fieldName string) error { return fmt.Errorf(`'%s' is not RFC 1035 compatible. The name should contain only lowercase alphanumeric characters or '-', start with an alphabetic character, end with an alphanumeric character`, fieldName, ) } // ErrNoOperatorsSelected appears when no operators are selected for installation. ErrNoOperatorsSelected = errors.New("no operators selected for installation. Minimum one operator must be selected") )
var ( // ErrNsDoesNotExist appears when the namespace does not exist. ErrNsDoesNotExist = errors.New("namespace does not exist") // ErrNamespaceNotManagedByEverest appears when the namespace is not managed by Everest. ErrNamespaceNotManagedByEverest = errors.New("namespace is not managed by Everest") // ErrNamespaceAlreadyExists appears when the namespace already exists. ErrNamespaceAlreadyExists = errors.New("namespace already exists") // ErrNamespaceAlreadyOwned appears when the namespace is already owned by Everest. ErrNamespaceAlreadyOwned = errors.New("namespace already exists and is managed by Everest") )
var ErrNamespaceNotEmpty = errors.New("cannot remove namespace with running database clusters")
ErrNamespaceNotEmpty is returned when the namespace is not empty.
Functions ¶
func NewRemoveNamespaceSteps ¶
func NewRemoveNamespaceSteps(namespace string, keepNs bool, k *kubernetes.Kubernetes) []steps.Step
NewRemoveNamespaceSteps returns the steps to remove a namespace.
func ValidateNamespaces ¶
ValidateNamespaces validates a comma-separated namespaces string.
Types ¶
type NamespaceAddConfig ¶
type NamespaceAddConfig struct {
// Namespaces to install.
Namespaces string `mapstructure:"namespaces"`
// SkipWizard is set if the wizard should be skipped.
SkipWizard bool `mapstructure:"skip-wizard"`
// KubeconfigPath is the path to the kubeconfig file.
KubeconfigPath string `mapstructure:"kubeconfig"`
// DisableTelemetry is set if telemetry should be disabled.
DisableTelemetry bool `mapstructure:"disable-telemetry"`
// TakeOwnership of an existing namespace.
TakeOwnership bool `mapstructure:"take-ownership"`
Operator OperatorConfig
// Pretty print the output.
Pretty bool
// Update is set if the existing namespace needs to be updated.
// This flag is set internally only, so that the add functionality may
// be re-used for updating the namespace as well.
Update bool
// NamespaceList is a list of namespaces to install.
// This is populated internally after validating the Namespaces field.:
NamespaceList []string
helm.CLIOptions
}
NamespaceAddConfig is the configuration for adding namespaces.
type NamespaceAdder ¶
type NamespaceAdder struct {
// contains filtered or unexported fields
}
NamespaceAdder provides the functionality to add namespaces.
func NewNamespaceAdd ¶
func NewNamespaceAdd(c NamespaceAddConfig, l *zap.SugaredLogger) (*NamespaceAdder, error)
NewNamespaceAdd returns a new CLI operation to add namespaces.
type NamespaceRemoveConfig ¶
type NamespaceRemoveConfig struct {
// KubeconfigPath is a path to a kubeconfig
KubeconfigPath string `mapstructure:"kubeconfig"`
// Force delete a namespace by deleting databases in it.
Force bool `mapstructure:"force"`
// If set, we will keep the namespace
KeepNamespace bool `mapstructure:"keep-namespace"`
// If set, we will print the pretty output.
Pretty bool
// Namespaces (DB Namespaces) to remove
Namespaces []string
}
NamespaceRemoveConfig is the configuration for the namespace removal operation.
type NamespaceRemover ¶
type NamespaceRemover struct {
// contains filtered or unexported fields
}
NamespaceRemover is the CLI operation to remove namespaces.
func NewNamespaceRemove ¶
func NewNamespaceRemove(c NamespaceRemoveConfig, l *zap.SugaredLogger) (*NamespaceRemover, error)
NewNamespaceRemove returns a new CLI operation to remove namespaces.
type OperatorConfig ¶
type OperatorConfig struct {
// PG stores if PostgresSQL shall be installed.
PG bool `mapstructure:"postgresql"`
// PSMDB stores if MongoDB shall be installed.
PSMDB bool `mapstructure:"mongodb"`
// PXC stores if XtraDB Cluster shall be installed.
PXC bool `mapstructure:"xtradb-cluster"`
}
OperatorConfig identifies which operators shall be installed.