operation

package
v0.0.0-...-be4dc66 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2019 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MachineDeployment

type MachineDeployment struct {
	Name           string
	ClassName      string
	Minimum        int
	Maximum        int
	MaxSurge       intstr.IntOrString
	MaxUnavailable intstr.IntOrString
}

MachineDeployment holds information about the name, class, replicas of a MachineDeployment managed by the machine-controller-manager.

type MachineDeployments

type MachineDeployments []MachineDeployment

MachineDeployments is a list of machine deployments.

func (MachineDeployments) ContainsClass

func (m MachineDeployments) ContainsClass(className string) bool

ContainsClass checks whether the <className> is part of the <machineDeployments> list, i.e. whether there is an entry whose 'ClassName' attribute matches <name>. It returns true or false.

func (MachineDeployments) ContainsName

func (m MachineDeployments) ContainsName(name string) bool

ContainsName checks whether the <name> is part of the <machineDeployments> list, i.e. whether there is an entry whose 'Name' attribute matches <name>. It returns true or false.

type Operation

type Operation struct {
	Logger               *logrus.Entry
	GardenerInfo         *gardenv1beta1.Gardener
	Secrets              map[string]*corev1.Secret
	CheckSums            map[string]string
	ImageVector          imagevector.ImageVector
	Garden               *garden.Garden
	Seed                 *seed.Seed
	Shoot                *shoot.Shoot
	ShootedSeed          *helper.ShootedSeed
	K8sGardenClient      kubernetes.Interface
	K8sGardenInformers   gardeninformers.Interface
	K8sSeedClient        kubernetes.Interface
	K8sShootClient       kubernetes.Interface
	ChartGardenRenderer  chartrenderer.ChartRenderer
	ChartSeedRenderer    chartrenderer.ChartRenderer
	ChartShootRenderer   chartrenderer.ChartRenderer
	APIServerIngresses   []corev1.LoadBalancerIngress
	APIServerAddress     string
	SeedNamespaceObject  *corev1.Namespace
	BackupInfrastructure *gardenv1beta1.BackupInfrastructure
	ShootBackup          *config.ShootBackup
	MachineDeployments   MachineDeployments
	MonitoringClient     prometheusclient.API
}

Operation contains all data required to perform an operation on a Shoot cluster.

func New

func New(shoot *gardenv1beta1.Shoot, logger *logrus.Entry, k8sGardenClient kubernetes.Interface, k8sGardenInformers gardeninformers.Interface, gardenerInfo *gardenv1beta1.Gardener, secretsMap map[string]*corev1.Secret, imageVector imagevector.ImageVector, shootBackup *config.ShootBackup) (*Operation, error)

New creates a new operation object with a Shoot resource object.

func NewWithBackupInfrastructure

func NewWithBackupInfrastructure(backupInfrastructure *gardenv1beta1.BackupInfrastructure, logger *logrus.Entry, k8sGardenClient kubernetes.Interface, k8sGardenInformers gardeninformers.Interface, gardenerInfo *gardenv1beta1.Gardener, secretsMap map[string]*corev1.Secret, imageVector imagevector.ImageVector) (*Operation, error)

NewWithBackupInfrastructure creates a new operation object without a Shoot resource object but the BackupInfrastructure resource.

func (*Operation) ApplyChartGarden

func (o *Operation) ApplyChartGarden(chartPath, name, namespace string, defaultValues, additionalValues map[string]interface{}) error

ApplyChartGarden takes a path to a chart <chartPath>, name of the release <name>, release's namespace <namespace> and two maps <defaultValues>, <additionalValues>, and renders the template based on the merged result of both value maps. The resulting manifest will be applied to the Garden cluster.

func (*Operation) ApplyChartSeed

func (o *Operation) ApplyChartSeed(chartPath, name, namespace string, defaultValues, additionalValues map[string]interface{}) error

ApplyChartSeed takes a path to a chart <chartPath>, name of the release <name>, release's namespace <namespace> and two maps <defaultValues>, <additionalValues>, and renders the template based on the merged result of both value maps. The resulting manifest will be applied to the Seed cluster.

func (*Operation) ApplyChartShoot

func (o *Operation) ApplyChartShoot(chartPath, name, namespace string, defaultValues, additionalValues map[string]interface{}) error

ApplyChartShoot takes a path to a chart <chartPath>, name of the release <name>, release's namespace <namespace> and two maps <defaultValues>, <additionalValues>, and renders the template based on the merged result of both value maps. The resulting manifest will be applied to the Shoot cluster.

func (*Operation) ChartInitializer

func (o *Operation) ChartInitializer(chartName string, values map[string]interface{}) terraformer.Initializer

ChartInitializer initializes a terraformer based on the given chart and values.

func (*Operation) ComputePrometheusIngressFQDN

func (o *Operation) ComputePrometheusIngressFQDN() string

ComputePrometheusIngressFQDN computes full qualified domain name for prometheus ingress sub-resource and returns it.

func (*Operation) GetSecretKeysOfRole

func (o *Operation) GetSecretKeysOfRole(kind string) []string

GetSecretKeysOfRole returns a list of keys which are present in the Garden Secrets map and which are prefixed with <kind>.

func (*Operation) InitializeMonitoringClient

func (o *Operation) InitializeMonitoringClient() error

InitializeMonitoringClient will read the Prometheus ingress auth and tls secrets from the Seed cluster, which are containing the cert to secure the connection and the credentials authenticate against the Shoot Prometheus. With those certs and credentials, a Prometheus client API will be created and attached to the existing Operation object.

func (*Operation) InitializeSeedClients

func (o *Operation) InitializeSeedClients() error

InitializeSeedClients will use the Garden Kubernetes client to read the Seed Secret in the Garden cluster which contains a Kubeconfig that can be used to authenticate against the Seed cluster. With it, a Kubernetes client as well as a Chart renderer for the Seed cluster will be initialized and attached to the already existing Operation object.

func (*Operation) InitializeShootClients

func (o *Operation) InitializeShootClients() error

InitializeShootClients will use the Seed Kubernetes client to read the gardener Secret in the Seed cluster which contains a Kubeconfig that can be used to authenticate against the Shoot cluster. With it, a Kubernetes client as well as a Chart renderer for the Shoot cluster will be initialized and attached to the already existing Operation object.

func (*Operation) InjectImages

func (o *Operation) InjectImages(values map[string]interface{}, k8sVersionRuntime, k8sVersionTarget string, images ...string) (map[string]interface{}, error)

InjectImages injects images from the image vector into the provided <values> map.

func (*Operation) NewBackupInfrastructureTerraformer

func (o *Operation) NewBackupInfrastructureTerraformer() (*terraformer.Terraformer, error)

NewBackupInfrastructureTerraformer creates a new Terraformer for the matching BackupInfrastructure.

func (*Operation) NewShootTerraformer

func (o *Operation) NewShootTerraformer(purpose string) (*terraformer.Terraformer, error)

NewShootTerraformer creates a new Terraformer for the current shoot with the given purpose.

func (*Operation) ReportBackupInfrastructureProgress

func (o *Operation) ReportBackupInfrastructureProgress(stats *flow.Stats)

ReportBackupInfrastructureProgress will update the phase and error in the BackupInfrastructure manifest `status` section by the current progress of the Flow execution.

func (*Operation) ReportShootProgress

func (o *Operation) ReportShootProgress(stats *flow.Stats)

ReportShootProgress will update the last operation object in the Shoot manifest `status` section by the current progress of the Flow execution.

func (*Operation) SeedVersion

func (o *Operation) SeedVersion() string

SeedVersion is a shorthand for the kubernetes version of the K8sSeedClient.

func (*Operation) ShootVersion

func (o *Operation) ShootVersion() string

ShootVersion is a shorthand for the desired kubernetes version of the operation's shoot.

Jump to

Keyboard shortcuts

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