operation

package
v1.7.1-0...-23dd39d Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2021 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder is an object that builds Operation objects.

func NewBuilder

func NewBuilder() *Builder

NewBuilder returns a new Builder.

func (*Builder) Build

func (b *Builder) Build(ctx context.Context, clientMap clientmap.ClientMap) (*Operation, error)

Build initializes a new Operation object.

func (*Builder) WithChartsRootPath

func (b *Builder) WithChartsRootPath(chartsRootPath string) *Builder

WithChartsRootPath sets the ChartsRootPath attribute at the Builder. Mainly used for testing. Optional.

func (*Builder) WithConfig

func (b *Builder) WithConfig(cfg *config.GardenletConfiguration) *Builder

WithConfig sets the configFunc attribute at the Builder.

func (*Builder) WithGarden

func (b *Builder) WithGarden(g *garden.Garden) *Builder

WithGarden sets the gardenFunc attribute at the Builder.

func (*Builder) WithGardenClusterIdentity

func (b *Builder) WithGardenClusterIdentity(gardenClusterIdentity string) *Builder

WithGardenClusterIdentity sets the identity of the Garden cluster as attribute at the Builder.

func (*Builder) WithGardenFrom

func (b *Builder) WithGardenFrom(reader client.Reader, namespace string) *Builder

WithGardenFrom sets the gardenFunc attribute at the Builder which will build a new Garden object.

func (*Builder) WithGardenerInfo

func (b *Builder) WithGardenerInfo(gardenerInfo *gardencorev1beta1.Gardener) *Builder

WithGardenerInfo sets the gardenerInfoFunc attribute at the Builder.

func (*Builder) WithImageVector

func (b *Builder) WithImageVector(imageVector imagevector.ImageVector) *Builder

WithImageVector sets the imageVectorFunc attribute at the Builder.

func (*Builder) WithLogger

func (b *Builder) WithLogger(logger *logrus.Entry) *Builder

WithLogger sets the loggerFunc attribute at the Builder.

func (*Builder) WithSecrets

func (b *Builder) WithSecrets(secrets map[string]*corev1.Secret) *Builder

WithSecrets sets the secretsFunc attribute at the Builder.

func (*Builder) WithSeed

func (b *Builder) WithSeed(s *seed.Seed) *Builder

WithSeed sets the seedFunc attribute at the Builder.

func (*Builder) WithSeedFrom

func (b *Builder) WithSeedFrom(k8sGardenCoreInformers gardencoreinformers.Interface, seedName string) *Builder

WithSeedFrom sets the seedFunc attribute at the Builder which will build a new Seed object.

func (*Builder) WithShoot

func (b *Builder) WithShoot(s *shoot.Shoot) *Builder

WithShoot sets the shootFunc attribute at the Builder.

func (*Builder) WithShootFrom

func (b *Builder) WithShootFrom(k8sGardenCoreInformers gardencoreinformers.Interface, gardenClient kubernetes.Interface, s *gardencorev1beta1.Shoot) *Builder

WithShootFrom sets the shootFunc attribute at the Builder which will build a new Shoot object.

func (*Builder) WithShootFromCluster

func (b *Builder) WithShootFromCluster(gardenClient, seedClient kubernetes.Interface, s *gardencorev1beta1.Shoot) *Builder

WithShootFromCluster sets the shootFunc attribute at the Builder which will build a new Shoot object constructed from the cluster resource. The shoot status is still taken from the passed `shoot`, though.

type Operation

type Operation struct {
	Config                    *config.GardenletConfiguration
	Logger                    *logrus.Entry
	GardenerInfo              *gardencorev1beta1.Gardener
	GardenClusterIdentity     string
	Secrets                   map[string]*corev1.Secret
	CheckSums                 map[string]string
	ImageVector               imagevector.ImageVector
	Garden                    *garden.Garden
	Seed                      *seed.Seed
	Shoot                     *shoot.Shoot
	ShootState                *gardencorev1alpha1.ShootState
	ManagedSeed               *seedmanagementv1alpha1.ManagedSeed
	ManagedSeedAPIServer      *gardencorev1beta1helper.ShootedSeedAPIServer
	ClientMap                 clientmap.ClientMap
	K8sGardenClient           kubernetes.Interface
	K8sSeedClient             kubernetes.Interface
	K8sShootClient            kubernetes.Interface
	ChartsRootPath            string
	APIServerAddress          string
	APIServerClusterIP        string
	APIServerHealthCheckToken string
	SeedNamespaceObject       *corev1.Namespace
	MonitoringClient          prometheusclient.API

	// ControlPlaneWildcardCert is a wildcard tls certificate which is issued for the seed's ingress domain.
	ControlPlaneWildcardCert *corev1.Secret
}

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

func (*Operation) CleanShootTaskErrorAndUpdateStatusLabel

func (o *Operation) CleanShootTaskErrorAndUpdateStatusLabel(ctx context.Context, taskID string)

CleanShootTaskErrorAndUpdateStatusLabel removes the error with taskID from the Shoot's status.LastErrors array. If the status.LastErrors array is empty then status.LastErrors is also removed. It also re-evaluates the shoot status in case the last error list is empty now, and if necessary, updates the status label on the shoot.

func (*Operation) ComputeAlertManagerHost

func (o *Operation) ComputeAlertManagerHost() string

ComputeAlertManagerHost computes the host for alert manager.

func (*Operation) ComputeAlertManagerHosts

func (o *Operation) ComputeAlertManagerHosts() []string

ComputeAlertManagerHosts computes the host for alert manager.

func (*Operation) ComputeGrafanaHosts

func (o *Operation) ComputeGrafanaHosts() []string

ComputeGrafanaHosts computes the host for both grafanas.

func (*Operation) ComputeGrafanaOperatorsHost

func (o *Operation) ComputeGrafanaOperatorsHost() string

ComputeGrafanaOperatorsHost computes the host for users Grafana.

func (*Operation) ComputeGrafanaUsersHost

func (o *Operation) ComputeGrafanaUsersHost() string

ComputeGrafanaUsersHost computes the host for operators Grafana.

func (*Operation) ComputeIngressHost

func (o *Operation) ComputeIngressHost(prefix string) string

ComputeIngressHost computes the host for a given prefix.

func (*Operation) ComputePrometheusHost

func (o *Operation) ComputePrometheusHost() string

ComputePrometheusHost computes the host for prometheus.

func (*Operation) ComputePrometheusHosts

func (o *Operation) ComputePrometheusHosts() []string

ComputePrometheusHosts computes the hosts for prometheus.

func (*Operation) DeleteClusterResourceFromSeed

func (o *Operation) DeleteClusterResourceFromSeed(ctx context.Context) error

DeleteClusterResourceFromSeed deletes the `Cluster` extension resource for the shoot in the seed cluster.

func (*Operation) EnsureShootStateExists

func (o *Operation) EnsureShootStateExists(ctx context.Context) error

EnsureShootStateExists creates the ShootState resource for the corresponding shoot and sets its ownerReferences to the Shoot.

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) InitializeSeedClients

func (o *Operation) InitializeSeedClients(ctx context.Context) 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(ctx context.Context) 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) InjectSeedSeedImages

func (o *Operation) InjectSeedSeedImages(values map[string]interface{}, names ...string) (map[string]interface{}, error)

InjectSeedSeedImages injects images that shall run on the Seed and target the Seed's Kubernetes version.

func (*Operation) InjectSeedShootImages

func (o *Operation) InjectSeedShootImages(values map[string]interface{}, names ...string) (map[string]interface{}, error)

InjectSeedShootImages injects images that shall run on the Seed but target the Shoot's Kubernetes version.

func (*Operation) InjectShootShootImages

func (o *Operation) InjectShootShootImages(values map[string]interface{}, names ...string) (map[string]interface{}, error)

InjectShootShootImages injects images that shall run on the Shoot and target the Shoot's Kubernetes version.

func (*Operation) IsAPIServerRunning

func (o *Operation) IsAPIServerRunning(ctx context.Context) (bool, error)

IsAPIServerRunning checks if the API server of the Shoot currently running (not scaled-down/deleted).

func (*Operation) ReportShootProgress

func (o *Operation) ReportShootProgress(ctx context.Context, 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) SaveGardenerResourcesInShootState

func (o *Operation) SaveGardenerResourcesInShootState(ctx context.Context, resourceList gardencorev1alpha1helper.GardenerResourceDataList) error

SaveGardenerResourcesInShootState saves the provided GardenerResourcesDataList in the ShootState's `gardener` field

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.

func (*Operation) SwitchBackupEntryToTargetSeed

func (o *Operation) SwitchBackupEntryToTargetSeed(ctx context.Context) error

SwitchBackupEntryToTargetSeed changes the BackupEntry in the Garden cluster to the Target Seed and removes it from the Source Seed

Directories

Path Synopsis
component/clusterautoscaler/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/etcd/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/extensions/backupentry/mock
Package backupentry is a generated GoMock package.
Package backupentry is a generated GoMock package.
component/extensions/containerruntime/mock
Package containerruntime is a generated GoMock package.
Package containerruntime is a generated GoMock package.
component/extensions/controlplane/mock
Package controlplane is a generated GoMock package.
Package controlplane is a generated GoMock package.
component/extensions/extension/mock
Package extension is a generated GoMock package.
Package extension is a generated GoMock package.
component/extensions/infrastructure/mock
Package infrastructure is a generated GoMock package.
Package infrastructure is a generated GoMock package.
component/extensions/operatingsystemconfig/mock
Package operatingsystemconfig is a generated GoMock package.
Package operatingsystemconfig is a generated GoMock package.
Package kubelet is a generated GoMock package.
component/extensions/operatingsystemconfig/original/components/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/extensions/operatingsystemconfig/utils/mock
Package utils is a generated GoMock package.
Package utils is a generated GoMock package.
component/extensions/worker/mock
Package worker is a generated GoMock package.
Package worker is a generated GoMock package.
component/gardenerkubescheduler/configurator
Package configurator contains the Configurator interface It is a separate package to avoid dependency cycle.
Package configurator contains the Configurator interface It is a separate package to avoid dependency cycle.
component/gardenerkubescheduler/v18
Package v18 a kube-scheduler specific configuration for 1.18 Kubernetes version.
Package v18 a kube-scheduler specific configuration for 1.18 Kubernetes version.
component/gardenerkubescheduler/v19
Package v19 a kube-scheduler specific configuration for 1.19 Kubernetes version.
Package v19 a kube-scheduler specific configuration for 1.19 Kubernetes version.
component/gardenerkubescheduler/v20
Package v20 a kube-scheduler specific configuration for 1.20 Kubernetes version.
Package v20 a kube-scheduler specific configuration for 1.20 Kubernetes version.
component/konnectivity/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/kubecontrollermanager/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/kubescheduler/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/metricsserver/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
component/resourcemanager/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
matchers
this file is copy of https://github.com/kubernetes/kubernetes/blob/f247e75980061d7cf83c63c0fb1f12c7060c599f/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go with some modifications for the webhook matching use-case.
this file is copy of https://github.com/kubernetes/kubernetes/blob/f247e75980061d7cf83c63c0fb1f12c7060c599f/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go with some modifications for the webhook matching use-case.

Jump to

Keyboard shortcuts

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