Documentation ¶
Index ¶
- Constants
- func AppendUniqueUnit(units *[]extensionsv1alpha1.Unit, unit extensionsv1alpha1.Unit)
- func BuildClientConfigFor(webhookPath string, namespace, componentName string, servicePort int, ...) admissionregistrationv1.WebhookClientConfig
- func BuildWebhookConfigs(webhooks []*Webhook, c client.Client, namespace, providerName string, ...) (seedWebhookConfigs Configs, shootWebhookConfigs Configs, err error)
- func ContainerWithName(containers []corev1.Container, name string) *corev1.Container
- func DeserializeCommandLine(s string) []string
- func EnsureAnnotationOrLabel(annotationOrLabelMap map[string]string, key, value string) map[string]string
- func EnsureContainerWithName(items []corev1.Container, item corev1.Container) []corev1.Container
- func EnsureEnvVarWithName(items []corev1.EnvVar, item corev1.EnvVar) []corev1.EnvVar
- func EnsureFileWithPath(items []extensionsv1alpha1.File, item extensionsv1alpha1.File) []extensionsv1alpha1.File
- func EnsureNoContainerWithName(items []corev1.Container, name string) []corev1.Container
- func EnsureNoEnvVarWithName(items []corev1.EnvVar, name string) []corev1.EnvVar
- func EnsureNoPVCWithName(items []corev1.PersistentVolumeClaim, name string) []corev1.PersistentVolumeClaim
- func EnsureNoStringWithPrefix(items []string, prefix string) []string
- func EnsureNoStringWithPrefixContains(items []string, prefix, value, sep string) []string
- func EnsureNoVolumeMountWithName(items []corev1.VolumeMount, name string) []corev1.VolumeMount
- func EnsureNoVolumeWithName(items []corev1.Volume, name string) []corev1.Volume
- func EnsurePVCWithName(items []corev1.PersistentVolumeClaim, item corev1.PersistentVolumeClaim) []corev1.PersistentVolumeClaim
- func EnsureStringWithPrefix(items []string, prefix, value string) []string
- func EnsureStringWithPrefixContains(items []string, prefix, value, sep string) []string
- func EnsureUnitOption(items []*unit.UnitOption, item *unit.UnitOption) []*unit.UnitOption
- func EnsureUnitWithName(items []extensionsv1alpha1.Unit, item extensionsv1alpha1.Unit) []extensionsv1alpha1.Unit
- func EnsureVPAContainerResourcePolicyWithName(items []vpaautoscalingv1.ContainerResourcePolicy, ...) []vpaautoscalingv1.ContainerResourcePolicy
- func EnsureVolumeMountWithName(items []corev1.VolumeMount, item corev1.VolumeMount) []corev1.VolumeMount
- func EnsureVolumeWithName(items []corev1.Volume, item corev1.Volume) []corev1.Volume
- func FileWithPath(files []extensionsv1alpha1.File, path string) *extensionsv1alpha1.File
- func GetCABundleFromWebhookConfig(obj client.Object) ([]byte, error)
- func InjectCABundleIntoWebhookConfig(obj client.Object, caBundle []byte) error
- func LogMutation(logger logr.Logger, kind, namespace, name string)
- func NewHandlerWithShootClient(mgr manager.Manager, types []Type, mutator MutatorWithShootClient, ...) (http.Handler, error)
- func OverwriteWebhooks(current, desired client.Object) error
- func PVCWithName(pvcs []corev1.PersistentVolumeClaim, name string) *corev1.PersistentVolumeClaim
- func PrefixedName(componentName string) string
- func ReconcileSeedWebhookConfig(ctx context.Context, c client.Client, webhookConfig client.Object, ...) error
- func SerializeCommandLine(command []string, n int, sep string) string
- func StringWithPrefixIndex(items []string, prefix string) int
- func UnitOptionWithSectionAndName(opts []*unit.UnitOption, section, name string) *unit.UnitOption
- func UnitWithName(units []extensionsv1alpha1.Unit, name string) *extensionsv1alpha1.Unit
- type Args
- type Configs
- type HandlerBuilder
- func (b *HandlerBuilder) Build() (admission.Handler, error)
- func (b *HandlerBuilder) WithMutator(mutator Mutator, types ...Type) *HandlerBuilder
- func (b *HandlerBuilder) WithPredicates(predicates ...predicate.Predicate) *HandlerBuilder
- func (b *HandlerBuilder) WithValidator(validator Validator, types ...Type) *HandlerBuilder
- type Mutator
- type MutatorWithShootClient
- type Type
- type Validator
- type Webhook
Constants ¶
const ( // NamePrefix is the prefix used for {Valida,Muta}tingWebhookConfigurations of extensions. NamePrefix = "gardener-extension-" // NameSuffixShoot is the suffix used for {Valida,Muta}tingWebhookConfigurations of extensions targeting a shoot. NameSuffixShoot = "-shoot" // ModeService is a constant for the webhook mode indicating that the controller is running inside of the Kubernetes cluster it // is serving. ModeService = "service" // ModeURL is a constant for the webhook mode indicating that the controller is running outside of the Kubernetes cluster it // is serving. If this is set then a URL is required for configuration. ModeURL = "url" // ModeURLWithServiceName is a constant for the webhook mode indicating that the controller is running outside of the Kubernetes cluster it // is serving but in the same cluster like the kube-apiserver. If this is set then a URL is required for configuration. ModeURLWithServiceName = "url-service" )
const ( // ActionMutating defines the webhook as a mutating webhook. ActionMutating = "mutating" // ActionValidating defines the webhook as a validating webhook. ActionValidating = "validating" // TargetSeed defines that the webhook is to be installed in the seed. TargetSeed = "seed" // TargetShoot defines that the webhook is to be installed in the shoot. TargetShoot = "shoot" )
Variables ¶
This section is empty.
Functions ¶
func AppendUniqueUnit ¶
func AppendUniqueUnit(units *[]extensionsv1alpha1.Unit, unit extensionsv1alpha1.Unit)
AppendUniqueUnit appends a unit only if it does not exist.
func BuildClientConfigFor ¶ added in v1.62.0
func BuildClientConfigFor(webhookPath string, namespace, componentName string, servicePort int, mode, url string, caBundle []byte) admissionregistrationv1.WebhookClientConfig
BuildClientConfigFor builds the client config for a webhook.
func BuildWebhookConfigs ¶ added in v1.48.0
func BuildWebhookConfigs( webhooks []*Webhook, c client.Client, namespace, providerName string, servicePort int, mode, url string, caBundle []byte, ) ( seedWebhookConfigs Configs, shootWebhookConfigs Configs, err error, )
BuildWebhookConfigs builds webhook.Configs for seed and shoot from the given webhooks slice.
func ContainerWithName ¶
ContainerWithName returns the first container with the specified name from the slice, or nil if not found.
func DeserializeCommandLine ¶
DeserializeCommandLine de-serializes the given string to a slice of command line elements by splitting it on white space and the "\" character.
func EnsureAnnotationOrLabel ¶
func EnsureAnnotationOrLabel(annotationOrLabelMap map[string]string, key, value string) map[string]string
EnsureAnnotationOrLabel ensures the given key/value exists in the annotationOrLabelMap map.
func EnsureContainerWithName ¶
EnsureContainerWithName ensures that a Container with a name equal to the name of the given Container exists in the given slice and the first item in the list would be equal to the given Container.
func EnsureEnvVarWithName ¶
EnsureEnvVarWithName ensures that a EnvVar with a name equal to the name of the given EnvVar exists in the given slice and the first item in the list would be equal to the given EnvVar.
func EnsureFileWithPath ¶
func EnsureFileWithPath(items []extensionsv1alpha1.File, item extensionsv1alpha1.File) []extensionsv1alpha1.File
EnsureFileWithPath ensures that a file with a path equal to the path of the given file exists in the given slice and is equal to the given file.
func EnsureNoContainerWithName ¶
EnsureNoContainerWithName ensures that a Container with the given name does not exist in the given slice.
func EnsureNoEnvVarWithName ¶
EnsureNoEnvVarWithName ensures that a EnvVar with the given name does not exist in the given slice.
func EnsureNoPVCWithName ¶
func EnsureNoPVCWithName(items []corev1.PersistentVolumeClaim, name string) []corev1.PersistentVolumeClaim
EnsureNoPVCWithName ensures that a PVC with the given name does not exist in the given slice.
func EnsureNoStringWithPrefix ¶
EnsureNoStringWithPrefix ensures that a string having the given prefix does not exist in the given slice.
func EnsureNoStringWithPrefixContains ¶
EnsureNoStringWithPrefixContains ensures that either a string having the given prefix does not exist in the given slice, or it doesn't contain the given value in a list separated by sep.
func EnsureNoVolumeMountWithName ¶
func EnsureNoVolumeMountWithName(items []corev1.VolumeMount, name string) []corev1.VolumeMount
EnsureNoVolumeMountWithName ensures that a VolumeMount with the given name does not exist in the given slice.
func EnsureNoVolumeWithName ¶
EnsureNoVolumeWithName ensures that a Volume with the given name does not exist in the given slice.
func EnsurePVCWithName ¶
func EnsurePVCWithName(items []corev1.PersistentVolumeClaim, item corev1.PersistentVolumeClaim) []corev1.PersistentVolumeClaim
EnsurePVCWithName ensures that a PVC with a name equal to the name of the given PVC exists in the given slice and the first item in the list would be equal to the given PVC.
func EnsureStringWithPrefix ¶
EnsureStringWithPrefix ensures that a string having the given prefix exists in the given slice and all matches are with a value equal to prefix + value.
func EnsureStringWithPrefixContains ¶
EnsureStringWithPrefixContains ensures that a string having the given prefix exists in the given slice and all matches contain the given value in a list separated by sep.
func EnsureUnitOption ¶
func EnsureUnitOption(items []*unit.UnitOption, item *unit.UnitOption) []*unit.UnitOption
EnsureUnitOption ensures the given unit option exist in the given slice.
func EnsureUnitWithName ¶ added in v1.88.0
func EnsureUnitWithName(items []extensionsv1alpha1.Unit, item extensionsv1alpha1.Unit) []extensionsv1alpha1.Unit
EnsureUnitWithName ensures that an unit with a name equal to the name of the given unit exists in the given slice and is equal to the given unit.
func EnsureVPAContainerResourcePolicyWithName ¶ added in v1.73.0
func EnsureVPAContainerResourcePolicyWithName(items []vpaautoscalingv1.ContainerResourcePolicy, item vpaautoscalingv1.ContainerResourcePolicy) []vpaautoscalingv1.ContainerResourcePolicy
EnsureVPAContainerResourcePolicyWithName ensures that a container policy with a name equal to the name of the given container policy exists in the given slice and the first item in the list would be equal to the given container policy.
func EnsureVolumeMountWithName ¶
func EnsureVolumeMountWithName(items []corev1.VolumeMount, item corev1.VolumeMount) []corev1.VolumeMount
EnsureVolumeMountWithName ensures that a VolumeMount with a name equal to the name of the given VolumeMount exists in the given slice and the first item in the list would be equal to the given VolumeMount.
func EnsureVolumeWithName ¶
EnsureVolumeWithName ensures that a Volume with a name equal to the name of the given Volume exists in the given slice and the first item in the list would be equal to the given Volume.
func FileWithPath ¶
func FileWithPath(files []extensionsv1alpha1.File, path string) *extensionsv1alpha1.File
FileWithPath returns the first file with the specified path from the slice, or nil if not found.
func GetCABundleFromWebhookConfig ¶ added in v1.48.0
GetCABundleFromWebhookConfig finds the first non-empty Webhooks[0].ClientConfig.CABundle from the given webhook config.
func InjectCABundleIntoWebhookConfig ¶ added in v1.48.0
InjectCABundleIntoWebhookConfig sets the given CA bundle in all webhook client config in the given webhook config.
func LogMutation ¶
LogMutation provides a log message.
func NewHandlerWithShootClient ¶
func NewHandlerWithShootClient(mgr manager.Manager, types []Type, mutator MutatorWithShootClient, logger logr.Logger) (http.Handler, error)
NewHandlerWithShootClient creates a new handler for the given types, using the given mutator, and logger.
func OverwriteWebhooks ¶ added in v1.48.0
OverwriteWebhooks sets current.Webhooks to desired.Webhooks for all kinds and version of webhook configs.
func PVCWithName ¶
func PVCWithName(pvcs []corev1.PersistentVolumeClaim, name string) *corev1.PersistentVolumeClaim
PVCWithName returns the first PersistentVolumeClaim with the specified name from the slice, or nil if not found.
func PrefixedName ¶ added in v1.62.0
PrefixedName does not prefix the component name if it starts with "gardener-". Otherwise, it prefixes it with "gardener-extension-".
func ReconcileSeedWebhookConfig ¶ added in v1.48.0
func ReconcileSeedWebhookConfig(ctx context.Context, c client.Client, webhookConfig client.Object, ownerNamespace string, caBundle []byte) error
ReconcileSeedWebhookConfig reconciles the given webhook config in the seed cluster. If a CA bundle is given, it is injected it into all desired webhooks. If not, the CA bundle from the webhook config on the cluster (if any) is kept.
func SerializeCommandLine ¶
SerializeCommandLine serializes the given command line elements slice to a string by joining the first n+1 elements with a space " ", and all subsequent elements with the given separator.
func StringWithPrefixIndex ¶
StringWithPrefixIndex returns the index of the first occurrence of a string having the given prefix in the given slice, or -1 if not found.
func UnitOptionWithSectionAndName ¶
func UnitOptionWithSectionAndName(opts []*unit.UnitOption, section, name string) *unit.UnitOption
UnitOptionWithSectionAndName returns the first unit option with the specified section and name from the slice, or nil if not found.
func UnitWithName ¶
func UnitWithName(units []extensionsv1alpha1.Unit, name string) *extensionsv1alpha1.Unit
UnitWithName returns the first unit with the specified name from the slice, or nil if not found.
Types ¶
type Args ¶ added in v1.4.0
type Args struct { Provider string Name string Path string Target string NamespaceSelector *metav1.LabelSelector ObjectSelector *metav1.LabelSelector Predicates []predicate.Predicate Validators map[Validator][]Type Mutators map[Mutator][]Type }
Args contains Webhook creation arguments.
type Configs ¶ added in v1.85.0
type Configs struct { MutatingWebhookConfig *admissionregistrationv1.MutatingWebhookConfiguration ValidatingWebhookConfig *admissionregistrationv1.ValidatingWebhookConfiguration }
Configs contains mutating and validating webhook configurations.
func (*Configs) GetWebhookConfigs ¶ added in v1.85.0
GetWebhookConfigs returns a slice of webhook configurations.
func (*Configs) HasWebhookConfig ¶ added in v1.85.0
HasWebhookConfig returns true if 'Configs' contains at least one webhook configuration.
type HandlerBuilder ¶ added in v1.4.0
type HandlerBuilder struct {
// contains filtered or unexported fields
}
HandlerBuilder contains information which are required to create an admission handler.
func NewBuilder ¶ added in v1.4.0
func NewBuilder(mgr manager.Manager, logger logr.Logger) *HandlerBuilder
NewBuilder creates a new HandlerBuilder.
func (*HandlerBuilder) Build ¶ added in v1.4.0
func (b *HandlerBuilder) Build() (admission.Handler, error)
Build creates a new admission.Handler with the settings previously specified with the HandlerBuilder's functions.
func (*HandlerBuilder) WithMutator ¶ added in v1.4.0
func (b *HandlerBuilder) WithMutator(mutator Mutator, types ...Type) *HandlerBuilder
WithMutator adds the given mutator for the given types to the HandlerBuilder.
func (*HandlerBuilder) WithPredicates ¶ added in v1.4.0
func (b *HandlerBuilder) WithPredicates(predicates ...predicate.Predicate) *HandlerBuilder
WithPredicates adds the given predicates to the HandlerBuilder.
func (*HandlerBuilder) WithValidator ¶ added in v1.4.0
func (b *HandlerBuilder) WithValidator(validator Validator, types ...Type) *HandlerBuilder
WithValidator adds the given validator for the given types to the HandlerBuilder.
type Mutator ¶
type Mutator interface { // Mutate validates and if needed mutates the given object. // "old" is optional and it must always be checked for nil. Mutate(ctx context.Context, new, old client.Object) error }
Mutator validates and if needed mutates objects.
type MutatorWithShootClient ¶
type MutatorWithShootClient interface { // Mutate validates and if needed mutates the given object. // "old" is optional and it must always be checked for nil. Mutate(ctx context.Context, new, old client.Object, shootClient client.Client) error }
MutatorWithShootClient validates and if needed mutates objects. It needs the shoot client.
type Type ¶ added in v1.39.0
Type contains information about the Kubernetes object types and subresources the webhook acts upon.
type Webhook ¶
type Webhook struct { Action string Name string Provider string Path string Target string Types []Type Webhook *admission.Webhook Handler http.Handler NamespaceSelector *metav1.LabelSelector ObjectSelector *metav1.LabelSelector FailurePolicy *admissionregistrationv1.FailurePolicyType TimeoutSeconds *int32 }
Webhook is the specification of a webhook.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
genericmutator/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |