util

package
v0.0.0-...-ef68a79 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2019 License: Apache-2.0, MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const CAChecksumAnnotation = "checksum/ca"

CAChecksumAnnotation is a resource annotation used to store the checksum of a certificate authority.

Variables

This section is empty.

Functions

func BoolPtr

func BoolPtr(b bool) *bool

BoolPtr returns a bool pointer to its argument.

func ComputeChecksum

func ComputeChecksum(data interface{}) string

ComputeChecksum computes a SHA256 checksum for the give map.

func ContextFromStopChannel

func ContextFromStopChannel(stopCh <-chan struct{}) context.Context

ContextFromStopChannel creates a new context from a given stop channel.

func GetGardenerSecret

func GetGardenerSecret(ctx context.Context, client client.Client, namespace string) (*corev1.Secret, error)

GetGardenerSecret gets the secret from the given namespace which contains certificate information as well as the Kubeconfig for a Shoot cluster.

func GetKubeconfigFromSecret

func GetKubeconfigFromSecret(secret *corev1.Secret) (*restclient.Config, error)

GetKubeconfigFromSecret gets the Kubeconfig from the passed secret.

func GetOrCreateShootKubeconfig

func GetOrCreateShootKubeconfig(ctx context.Context, client client.Client, certificateConfig secrets.CertificateSecretConfig, namespace string) (*corev1.Secret, error)

GetOrCreateShootKubeconfig gets or creates a Kubeconfig for a Shoot cluster which has a running control plane in the given `namespace`. If the CA of an existing Kubeconfig has changed, it creates a new Kubeconfig. Newly generated Kubeconfigs are applied with the given `client` to the given `namespace`.

func GetReplicaCount

func GetReplicaCount(shoot *gardenv1beta1.Shoot, count int) int

GetReplicaCount returns the given replica count base on the hibernation status of the shoot.

func GetSecretByRef

func GetSecretByRef(ctx context.Context, c client.Client, ref corev1.SecretReference) (*corev1.Secret, error)

GetSecretByRef reads the secret given by the reference and returns it.

func Int32Ptr

func Int32Ptr(i int32) *int32

Int32Ptr returns a int32 pointer to its argument.

func NewRESTConfigFromKubeconfig

func NewRESTConfigFromKubeconfig(kubeconfig []byte) (*rest.Config, error)

NewRESTConfigFromKubeconfig creates a new REST config from a given Kubeconfig and returns it.

func ObjectName

func ObjectName(obj runtime.Object) string

ObjectName returns the name of the given object in the format <namespace>/<name>

func QuantityPtr

func QuantityPtr(q resource.Quantity) *resource.Quantity

QuantityPtr returns a Quatity pointer to its argument

func ScaleDeployment

func ScaleDeployment(ctx context.Context, client client.Client, deployment *appsv1.Deployment, replicas int32) error

ScaleDeployment scales the given deployment.

func StringPtr

func StringPtr(s string) *string

StringPtr returns a String pointer to its argument.

func VersionMajorMinor

func VersionMajorMinor(version string) (string, error)

VersionMajorMinor extracts and returns the major and the minor part of the given version (input must be a semantic version).

func WaitUntilResourceDeleted

func WaitUntilResourceDeleted(ctx context.Context, c client.Client, obj runtime.Object, interval time.Duration) error

WaitUntilResourceDeleted deletes the given resource and then waits until it has been deleted. It respects the given interval and timeout. TODO: Remove and use https://github.com/gardener/gardener/blob/master/pkg/utils/kubernetes/kubernetes.go#L105 once new version of github.com/gardener/gardener can be vendored.

Types

type Chart

type Chart interface {
	// Apply applies this chart into the given namespace using the given ChartApplier. Before applying the chart,
	// it collects its values, injecting images and merging the given values as needed.
	Apply(context.Context, gardenerkubernetes.Interface, gardenerkubernetes.ChartApplier, string, *gardenv1beta1.Shoot, imagevector.ImageVector, map[string]string, map[string]interface{}) error
	// Delete deletes this chart's objects from the given namespace.
	Delete(context.Context, client.Client, string) error
}

Chart represents a Helm chart that can be applied and deleted.

type Secrets

type Secrets interface {
	// Deploy generates and deploys the secrets into the given namespace, taking into account existing secrets.
	Deploy(kubernetes.Interface, gardenerkubernetes.Interface, string) (map[string]*corev1.Secret, error)
	// Delete deletes the secrets from the given namespace.
	Delete(kubernetes.Interface, string) error
}

Secrets represents a set of secrets that can be deployed and deleted.

type ShootClients

type ShootClients interface {
	Client() client.Client
	Clientset() kubernetes.Interface
	GardenerClientset() gardenerkubernetes.Interface
	ChartApplier() gardener.ChartApplier
	Version() *version.Info
}

ShootClients bundles together several clients for the shoot cluster.

func NewClientsForShoot

func NewClientsForShoot(ctx context.Context, c client.Client, namespace string, opts client.Options) (ShootClients, error)

NewClientsForShoot is a utility function that creates a new clientset and a chart applier for the shoot cluster. It uses the 'gardener' secret in the given shoot namespace. It also returns the Kubernetes version of the cluster.

func NewShootClients

func NewShootClients(c client.Client, clientset kubernetes.Interface, gardenerClientset gardenerkubernetes.Interface, chartApplier gardener.ChartApplier, version *version.Info) ShootClients

NewShootClients creates a new shoot client interface based on the given clients.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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