imports

package
v1.34.0 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2021 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const GroupName = "controlplane.gardener.landscaper.gardener.cloud"

GroupName is the group name use in this package

Variables

View Source
var (
	// SchemeBuilder used to register the Shoot resource.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme is a pointer to SchemeBuilder.AddToScheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}

SchemeGroupVersion is group version used to register these objects

Functions

This section is empty.

Types

type APIServerAdmissionConfiguration

type APIServerAdmissionConfiguration struct {
	// EnableAdmissionPlugins is a list of names of admission plugins to be enabled in addition to default enabled ones
	EnableAdmissionPlugins []string
	// DisableAdmissionPlugins are a list of names of admission plugins that should be disabled although they are
	// in the default enabled plugins list.
	DisableAdmissionPlugins []string
	// Plugins contains the name and configuration of admission plugins of the Gardener API server
	// Mutating and Validating admission plugins must not be added.
	// For more information, see here: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#authenticate-apiservers
	Plugins []apiserverv1.AdmissionPluginConfiguration
	// ValidatingWebhook configures client-credentials to authenticate to validating webhooks
	ValidatingWebhook *APIServerAdmissionWebhookCredentials
	// MutatingWebhook configures client-credentials to authenticate to validating webhooks
	MutatingWebhook *APIServerAdmissionWebhookCredentials
}

APIServerAdmissionConfiguration contains admission configuration for the Gardener API server

func (*APIServerAdmissionConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAdmissionConfiguration.

func (*APIServerAdmissionConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerAdmissionWebhookCredentials

type APIServerAdmissionWebhookCredentials struct {
	// Kubeconfig contains the kubeconfig with credentials to authenticate to an admission webhook.
	// Either use static credentials basic auth, x509 client-certificate, static token file
	// or use Service Account Volume Projection to automatically create and rotate the token
	// configured in the kubeconfig file.
	// If token projection is enabled, and this kubeconfig is not set, will default to a kubeconfig
	// with name '*' and path of the projected service account token.
	// TODO: Add  the defaulting for the token projection kubeconfig in a later step
	Kubeconfig *landscaperv1alpha1.Target
	// TokenProjection enables a projected volume with a service account for the admission webhook credentials.
	// Requires Service Account Volume Projection to be configured in the runtime cluster.
	// For more information, see here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection
	// if configured, the kubeconfig must contain a 'tokenFile' with the path of the projected
	// service account token. The projected volume will be mounted at '/var/run/secrets/admission-tokens' with relative path of
	// either 'mutating-webhook-token' or 'validating-webhook-token'.
	TokenProjection *APIServerAdmissionWebhookCredentialsTokenProjection
}

APIServerAdmissionWebhookCredentials is required if your admission webhooks require authentication. Contains client-credentials that can be used by the Gardener API server to authenticate to registered Webhooks. Also see https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#authenticate-apiservers

func (*APIServerAdmissionWebhookCredentials) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAdmissionWebhookCredentials.

func (*APIServerAdmissionWebhookCredentials) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerAdmissionWebhookCredentialsTokenProjection

type APIServerAdmissionWebhookCredentialsTokenProjection struct {
	// Enabled configures if Service Account Volume Projection is used
	Enabled *bool
	// Audience contains the intended audience of the token.
	// A recipient of the token must identify itself with an identifier specified in the audience of the token,
	// and otherwise should reject the token.
	// Defaults to 'validating-webhook' / 'mutating-webhook'
	Audience *string
	// ExpirationSeconds is the expected duration of validity of the service account token
	// Defaults to 3600
	ExpirationSeconds *int32
}

APIServerAdmissionWebhookCredentialsTokenProjection configures Service Account Volume Projection to be used for the APIServer Admission Webhook credentials

func (*APIServerAdmissionWebhookCredentialsTokenProjection) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAdmissionWebhookCredentialsTokenProjection.

func (*APIServerAdmissionWebhookCredentialsTokenProjection) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerAuditCommonBackendConfiguration

type APIServerAuditCommonBackendConfiguration struct {
	// BatchBufferSize is the size of the buffer to store events before batching and writing.
	// Only used in batch mode.
	BatchBufferSize *int32
	// BatchMaxSize is the maximum size of a batch.
	// Only used in batch mode.
	BatchMaxSize *int32
	// BatchMaxWait is the amount of time to wait before force writing the batch that hadn't reached the max size.
	// Only used in batch mode.
	BatchMaxWait *metav1.Duration
	// BatchThrottleBurst is the maximum number of requests sent at the same moment
	// if ThrottleQPS was not utilized before.
	// Only used in batch mode.
	BatchThrottleBurst *int32
	// BatchThrottleEnable defines whether batching throttling is enabled.
	// Only used in batch mode.
	// Default: true
	BatchThrottleEnable *bool
	// BatchThrottleQPS is the maximum average number of batches per second.
	// Only used in batch mode.
	BatchThrottleQPS *float32
	// Mode is the strategy for sending audit events. Blocking indicates sending
	// events should block server responses. Batch causes the backend to buffer and write events asynchronously.
	// Known modes are batch,blocking,blocking-strict.
	Mode *string
	// TruncateEnabled configures whether event and batch truncating is enabled.
	TruncateEnabled *bool
	// TruncateMaxBatchSize is the maximum size of the batch sent to the underlying backend.
	// If a batch exceeds this limit, it is split into several batches of smaller size.
	// Actual serialized size can be several hundreds of bytes greater.
	// Only used in batch mode.
	TruncateMaxBatchSize *int32
	// TruncateMaxEventSize is the maximum size of the audit event sent to the underlying backend.
	// If the size of an event is greater than this number, first request and response are removed, and if this doesn't reduce the size enough,
	// event is discarded.
	TruncateMaxEventSize *int32
	// Version is the API group and version used for serializing audit events written to log.
	Version *string
}

APIServerAuditCommonBackendConfiguration contains audit configuration applicable for several audit log backends (log, webhook)

func (*APIServerAuditCommonBackendConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAuditCommonBackendConfiguration.

func (*APIServerAuditCommonBackendConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerAuditConfiguration

type APIServerAuditConfiguration struct {
	// DynamicConfiguration is used to enable dynamic auditing before v1.19 via API server flag --audit-dynamic-configuration.
	// This feature also requires the DynamicAuditing feature flag to be set.
	DynamicConfiguration *bool
	// Policy contains the audit policy for the Gardener API Server.
	// For more information, please see here: https://kubernetes.io/docs/reference/config-api/apiserver-audit.v1/#audit-k8s-io-v1-Policy
	Policy *auditv1.Policy
	// Log configures the Log backend for audit events
	// This is enabled with a default policy logging to the local filesystem
	// For more information, please see here: https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#log-backend
	Log *APIServerAuditLogBackend
	// Webhook contains configuration for the webhook audit backend for the Gardener API server
	// For more information, please see: https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#webhook-backend
	Webhook *APIServerAuditWebhookBackend
}

APIServerAuditConfiguration contains audit logging configuration For more information, please see: https://kubernetes.io/docs/tasks/debug-application-cluster/audit/

func (*APIServerAuditConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAuditConfiguration.

func (*APIServerAuditConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerAuditLogBackend

type APIServerAuditLogBackend struct {
	APIServerAuditCommonBackendConfiguration
	// Format of saved audits.
	// "legacy" indicates 1-line text format for each event.
	// "json" indicates structured json format.
	Format *string
	// MaxAge is the maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
	MaxAge *int32
	// MaxBackup is the maximum number of old audit log files to retain.
	// Default: 5
	MaxBackup *int32
	// MaxSize is the maximum size in megabytes of the audit log file before it gets rotated.
	// Default: 100
	MaxSize *int32
	// Path is the path that if set, contains the audit logs of all requests coming to the API server.
	// '-' means standard out.
	// Default: /var/lib/audit.log
	Path *string
}

APIServerAuditLogBackend are various audit-related settings for the Gardener API server.

func (*APIServerAuditLogBackend) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAuditLogBackend.

func (*APIServerAuditLogBackend) DeepCopyInto

func (in *APIServerAuditLogBackend) DeepCopyInto(out *APIServerAuditLogBackend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerAuditWebhookBackend

type APIServerAuditWebhookBackend struct {
	APIServerAuditCommonBackendConfiguration
	// Kubeconfig is the kubeconfig for the external audit log backend
	Kubeconfig landscaperv1alpha1.Target
	// InitialBackoff specifies the amount of time to wait after the first failed request before retrying.
	// Subsequent requests are retried with exponential backoff.
	InitialBackoff *metav1.Duration
}

APIServerAuditWebhookBackend contains configuration for the webhook audit backend for the Gardener API server. The webhook audit backend sends audit events to a remote web API, which is assumed to be a form of the Kubernetes API, including means of authentication. For more information, please see here: https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#webhook-backend

func (*APIServerAuditWebhookBackend) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerAuditWebhookBackend.

func (*APIServerAuditWebhookBackend) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerComponentConfiguration

type APIServerComponentConfiguration struct {
	// ClusterIdentity is a unique identity per Gardener installation.
	// Can be any string that uniquely identifies the landscape
	// If not provided, is defaulted to a random identity
	ClusterIdentity *string
	// Encryption configures an optional encryption configuration
	// Defaults:
	// - resources (controllerregistrations.core.gardener.cloud, shootstates.core.gardener.cloud)
	//   providers: (identity: {})
	Encryption *apiserverconfigv1.EncryptionConfiguration
	// Etcd contains configuration for the etcd of the Gardener API server
	Etcd APIServerEtcdConfiguration
	// CABundle is a PEM encoded CA bundle which will be used by the Kubernetes API server
	// (either the RuntimeCluster or the VirtualGarden cluster)
	// to validate the Gardener Extension API server's TLS serving certificate.
	// It is put into the APIService resources for the Gardener resource groups
	// The TLS serving certificate of the Gardener Extension API server
	// has to be signed by this CA.
	// For more information, please see:
	// https://kubernetes.io/docs/tasks/extend-kubernetes/configure-aggregation-layer/#contacting-the-extension-apiserver
	// If left empty, generates a new CA or reuses the CA of an existing API server deployment.
	CABundle *string
	// TLS contains the TLS serving certificate & key of the Gardener Extension API server
	// If left empty, generates certificates signed by the provided CA bundle.
	TLS *TLSServer
	// FeatureGates are optional feature gates that shall be activated on the Gardener API server
	FeatureGates []string
	// Admission contains admission configuration for the Gardener API server
	Admission *APIServerAdmissionConfiguration
	// GoAwayChance sets the fraction of requests that will be sent a GOAWAY.
	// Clusters with single apiservers, or which don't use a load balancer,
	// should NOT enable this.
	// Min is 0 (off), Max is .02 (1/50 requests); .001 (1/1000) is a recommended starting point.
	GoAwayChance *float32
	// Http2MaxStreamsPerConnection is the limit that the server gives to clients for the maximum number of streams
	// in an HTTP/2 connection. Zero means to use golang's default
	Http2MaxStreamsPerConnection *int32
	// ShutdownDelayDuration is the time to delay the termination. During that time the server keeps serving requests normally.
	// The endpoints /healthz and /livez will return success, but /readyz immediately returns failure.
	// Graceful termination starts after this delay has elapsed.
	// This can be used to allow load balancer to stop sending traffic to this server.
	ShutdownDelayDuration *metav1.Duration
	// Requests are optional request related configuration of the Gardener API Server
	Requests *APIServerRequests
	// WatchCacheSize optionally configures the watch cache size for resources watched by the Gardener API Server
	WatchCacheSize *APIServerWatchCacheConfiguration
	// Audit contains optional audit logging configuration.
	// Can be used to override the Gardener default audit logging policy or disable audit logging altogether.
	Audit *APIServerAuditConfiguration
}

APIServerComponentConfiguration contains configurations for the Gardener Extension API server

func (*APIServerComponentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerComponentConfiguration.

func (*APIServerComponentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerDeploymentConfiguration

type APIServerDeploymentConfiguration struct {
	// CommonDeploymentConfiguration contains common deployment configurations
	// Defaults:
	//  Resources: Requests (CPU: 100m, memory 100Mi), Limits (CPU: 300m, memory: 256Mi)
	CommonDeploymentConfiguration
	// LivenessProbe allows to overwrite the default liveness probe
	// Defaults:
	//  initialDelaySeconds: 15
	//  periodSeconds: 10
	//  successThreshold: 1
	//  failureThreshold: 3
	//  timeoutSeconds: 15
	LivenessProbe *corev1.Probe
	// LivenessProbe allows to overwrite the default readiness probe
	// Defaults:
	//  initialDelaySeconds: 15
	//  periodSeconds: 10
	//  successThreshold: 1
	//  failureThreshold: 3
	//  timeoutSeconds: 15
	ReadinessProbe *corev1.Probe
	// MinReadySeconds allows to overwrite the default minReadySeconds field
	// Defaults to 30
	MinReadySeconds *int32
	// Hvpa contains configurations for the HVPA of the Gardener Extension API server
	// Please note that VPA has to be disabled in order to use HVPA
	Hvpa *HVPAConfiguration
}

APIServerDeploymentConfiguration contains certain configurations for the deployment of the Gardener Extension API server

func (*APIServerDeploymentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerDeploymentConfiguration.

func (*APIServerDeploymentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerEtcdConfiguration

type APIServerEtcdConfiguration struct {
	// Url is the 'url:port' of the etcd of the Gardener API server
	// If the etcd is deployed in-cluster, should be of the form 'k8s-service-name:port'
	// if the etcd serves TLS (configurable via flag --cert-file on etcd), this URL can use the HTTPS schema.
	Url string
	// CABundle is a PEM encoded CA bundle which will be used by the Gardener API server
	// to verify that the TLS serving certificate presented by etcd is signed by this CA
	// configures the flag --etcd-cafile on the Gardener API server
	// Optional. if not set, the Gardener API server will not validate etcd's TLS serving certificate
	CABundle *string
	// ClientCert contains a client certificate which will be used by the Gardener API server
	// to communicate with etcd via TLS.
	// Configures the flags --etcd-certfile on the Gardener API server.
	// On the etcd make sure that
	//  - client authentication is enabled via the flag --client-cert-auth
	//  - the client credentials have been signed by the CA provided to etcd via the flag --trusted-ca-file
	// Optional. Etcd does not have to enforce client authentication.
	ClientCert *string
	// ClientKey is the key matching the configured client certificate.
	// Configures the flags --etcd-keyfile on the Gardener API server.
	// Optional. Etcd does not have to enforce client authentication.
	ClientKey *string
}

APIServerEtcdConfiguration contains configuration for the etcd of the Gardener API server etcd is a required as a prerequisite

func (*APIServerEtcdConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerEtcdConfiguration.

func (*APIServerEtcdConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerRequests

type APIServerRequests struct {
	// MaxNonMutatingInflight is the maximum number of non-mutating requests in flight at a given time.
	// When the server exceeds this, it rejects requests. Zero for no limit.
	MaxNonMutatingInflight *int
	// MaxMutatingInflight is the maximum number of mutating requests in flight at a given time.
	// When the server exceeds this, it rejects requests. Zero for no limit.
	MaxMutatingInflight *int
	// MinTimeout is an optional field indicating the minimum number of seconds
	// a handler must keep a request open before timing it out.
	// Currently only honored by the watch request handler, which picks a randomized
	// value above this number as the connection timeout, to spread out load.
	MinTimeout *metav1.Duration
	// Timeout is an optional field indicating the duration a handler must keep a request open before timing it out.
	// This is the default request timeout for requests but may be overridden by MinTimeout for the watch request handler.
	Timeout *metav1.Duration
}

APIServerRequests are request related configuration of the Gardener API Server

func (*APIServerRequests) DeepCopy

func (in *APIServerRequests) DeepCopy() *APIServerRequests

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerRequests.

func (*APIServerRequests) DeepCopyInto

func (in *APIServerRequests) DeepCopyInto(out *APIServerRequests)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIServerWatchCacheConfiguration

type APIServerWatchCacheConfiguration struct {
	// DefaultSize is the default watch cache size
	DefaultSize *int32
	// Resources contains a list of configurations of the watch cache sizes
	Resources []WatchCacheSizeResource
}

APIServerWatchCacheConfiguration fine tunes the watch cache size for different resources watched by the Gardener API Server. These are mostly, but not limited to, resources from Gardener resource groups e.g core.gardener.cloud. Some resources (replicationcontrollers, endpoints, nodes, pods, services, apiservices.apiregistration.k8s.io) have system defaults set by heuristics, others default to 'defaultSize'.

func (*APIServerWatchCacheConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerWatchCacheConfiguration.

func (*APIServerWatchCacheConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AdmissionControllerComponentConfiguration

type AdmissionControllerComponentConfiguration struct {
	// CABundle is a PEM encoded CA bundle which will be used by the Gardener API server
	// to validate the TLS serving certificate of the Gardener Admission Webhook server served
	// by the Gardener Admission Controller.
	// It is put into the MutatingWebhookConfiguration and ValidatingWebhookConfiguration
	// resources when registering the Webhooks.
	// If left empty, generates a new CA or reuses the CA of an existing Admission controller deployment.
	CABundle *string
	// TLS configures the TLS serving certificate of the Gardener Admission Controller webhooks.
	// The certificate has to be signed by the provided CA bundle.
	// If left empty, generates certificates signed by the provided CA bundle.
	TLS *TLSServer
	// Component specifies values for the Gardener Admission Controller component configuration
	// Please see example/20-componentconfig-gardener-admission-controller.yaml for what
	// can be configured here
	*Configuration
}

AdmissionControllerComponentConfiguration contains the component configuration of the Gardener Admission Controller

func (*AdmissionControllerComponentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionControllerComponentConfiguration.

func (*AdmissionControllerComponentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Alerting

type Alerting struct {
	// AuthType is the authentication type to use
	// allowed values: smtp, none, basic, certificate
	AuthType string
	// Url is the URL to post alerts to
	// only required for authentication types none, basic and certificate
	Url *string

	// SMTP Auth
	// ToEmailAddress is the email address to send alerts to
	ToEmailAddress *string
	// FromEmailAddress is the email address to send alerts from
	FromEmailAddress *string
	// Smarthost is the smtp host used for sending
	Smarthost *string
	// AuthUsername is the username used for authentication when using SMTP
	AuthUsername *string
	// AuthUsername is the identity used for authentication when using SMTP
	AuthIdentity *string
	// AuthUsername is the password used for authentication when using SMTP
	AuthPassword *string

	// Basic Auth
	// Username is the username to use for basic authentication with the external (non-Gardener managed) alert manager
	Username *string
	// Password is the password to use for basic authentication with the external (non-Gardener managed) alert manager
	Password *string

	// Certificate Auth
	// CaCert is the CA certificate the TLS certificate presented at the url endpoint
	// of the external (non-Gardener managed) alert manager needs to be signed with
	CaCert *string
	// TlsCert is the TLS certificate to use for authentication with the external (non-Gardener managed) alert manager
	TlsCert *string
	// TlsCert is the TLS key to use for authentication with the external (non-Gardener managed) alert manager
	TlsKey *string
}

Alerting configures the Gardener installation with alerting please see the docs for more details: https://github.com/gardener/gardener/blob/master/docs/monitoring/alerting.md#alerting-for-operators

func (*Alerting) DeepCopy

func (in *Alerting) DeepCopy() *Alerting

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Alerting.

func (*Alerting) DeepCopyInto

func (in *Alerting) DeepCopyInto(out *Alerting)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommonDeploymentConfiguration

type CommonDeploymentConfiguration struct {
	// ReplicaCount is the number of replicas.
	// Default: 1.
	ReplicaCount *int32
	// ServiceAccountName is the name of the ServiceAccount to create and mount into the pod.
	ServiceAccountName *string
	// Resources are compute resources required by the container.
	Resources *corev1.ResourceRequirements
	// PodLabels are additional labels on the pods.
	PodLabels map[string]string
	// PodAnnotations are additional annotations on the pods.
	PodAnnotations map[string]string
	// VPA specifies whether to enable VPA for the deployment.
	// Default: false.
	VPA *bool
}

CommonDeploymentConfiguration contains common deployment configurations for multiple Gardener components

func (*CommonDeploymentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonDeploymentConfiguration.

func (*CommonDeploymentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Configuration

type Configuration struct {
	// ComponentConfiguration is the component configuration for a component of the Gardener control plane
	ComponentConfiguration runtime.Object
}

Configuration is a wrapper around the component configuration

func (*Configuration) DeepCopy

func (in *Configuration) DeepCopy() *Configuration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration.

func (*Configuration) DeepCopyInto

func (in *Configuration) DeepCopyInto(out *Configuration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerManagerComponentConfiguration

type ControllerManagerComponentConfiguration struct {
	// TLS configures the HTTPS server of the Gardener Controller Manager
	// uses http for /healthz endpoint, optionally serves HTTPS for metrics.
	// If left empty, generates a certificate signed by the CA that also signs the TLS serving certificates of the Gardener API server.
	TLS *TLSServer
	// Configuration specifies values for the Gardener Controller Manager component configuration
	// Please see example/20-componentconfig-gardener-controller-manager.yaml for what
	// can be configured here
	*Configuration
}

ControllerManagerComponentConfiguration contains the component configuration for the Gardener controller manager

func (*ControllerManagerComponentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerManagerComponentConfiguration.

func (*ControllerManagerComponentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerManagerDeploymentConfiguration

type ControllerManagerDeploymentConfiguration struct {
	// CommonDeploymentConfiguration contains common deployment configurations
	// Defaults:
	//   Resources: Requests (CPU: 100m, memory 100Mi), Limits (CPU: 750m, memory: 512Mi)
	*CommonDeploymentConfiguration
	// AdditionalVolumes is the list of additional volumes that should be mounted.
	AdditionalVolumes []corev1.Volume
	// AdditionalVolumeMounts is the list of additional pod volumes to mount into the Gardener Controller Manager container's filesystem.
	AdditionalVolumeMounts []corev1.VolumeMount
	// Env is the list of environment variables to set in the Gardener Controller Manager.
	Env []corev1.EnvVar
}

ControllerManagerDeploymentConfiguration contains certain configurations for the deployment of the Gardener Controller Manager

func (*ControllerManagerDeploymentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerManagerDeploymentConfiguration.

func (*ControllerManagerDeploymentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNS

type DNS struct {
	// Domain is the DNS domain
	Domain string
	// Provider is the DNS provider name of the given domain's zone
	// depends on the DNS extension of your choice
	// For instance, when using Gardener External-dns-management as the DNS extension, you can find
	// all the supported providers in the controller registration
	// at https://github.com/gardener/external-dns-management/blob/master/examples/controller-registration.yaml
	Provider string
	// Credentials contains the credentials for the dns provider
	// Expected format of the credentials depends on the the provider
	Credentials json.RawMessage
}

DNS contains the configuration for Domains used by the gardener installation for more information, please see: https://github.com/gardener/gardener/blob/master/docs/extensions/dns.md

func (*DNS) DeepCopy

func (in *DNS) DeepCopy() *DNS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNS.

func (*DNS) DeepCopyInto

func (in *DNS) DeepCopyInto(out *DNS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GardenerAPIServer

type GardenerAPIServer struct {
	// DeploymentConfiguration contains optional configurations for
	// the deployment of the Gardener API server
	DeploymentConfiguration *APIServerDeploymentConfiguration
	// ComponentConfiguration contains optional configurations for
	// the Gardener Extension API server
	ComponentConfiguration APIServerComponentConfiguration
}

GardenerAPIServer contains the configuration of the Gardener Aggregated API Server

func (*GardenerAPIServer) DeepCopy

func (in *GardenerAPIServer) DeepCopy() *GardenerAPIServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenerAPIServer.

func (*GardenerAPIServer) DeepCopyInto

func (in *GardenerAPIServer) DeepCopyInto(out *GardenerAPIServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GardenerAdmissionController

type GardenerAdmissionController struct {
	// Enabled configures whether the Gardener Admission Controller should be deployed
	Enabled bool
	// SeedRestriction configures the SeedRestriction admission plugin
	SeedRestriction *SeedRestriction
	// DeploymentConfiguration contains optional configurations for
	// the deployment of the Gardener Admission Controller
	DeploymentConfiguration *CommonDeploymentConfiguration
	// ComponentConfiguration contains the component configuration of the Gardener API Server
	ComponentConfiguration *AdmissionControllerComponentConfiguration
}

GardenerAdmissionController contains the configuration of the Gardener Admission Controller

func (*GardenerAdmissionController) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenerAdmissionController.

func (*GardenerAdmissionController) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GardenerControllerManager

type GardenerControllerManager struct {
	// DeploymentConfiguration contains optional configurations for
	// the deployment of the Gardener Controller Manager
	DeploymentConfiguration *ControllerManagerDeploymentConfiguration
	// ComponentConfiguration contains the component configuration for the Gardener Controller Manager
	ComponentConfiguration *ControllerManagerComponentConfiguration
}

GardenerControllerManager contains configurations of the Gardener Controller Manager

func (*GardenerControllerManager) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenerControllerManager.

func (*GardenerControllerManager) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GardenerScheduler

type GardenerScheduler struct {
	// DeploymentConfiguration contains optional configurations for
	// the deployment of the Gardener Scheduler
	DeploymentConfiguration *CommonDeploymentConfiguration
	// ComponentConfiguration contains the component configuration for the Gardener Scheduler
	ComponentConfiguration *SchedulerComponentConfiguration
}

GardenerScheduler contains the configuration of the Gardener Scheduler

func (*GardenerScheduler) DeepCopy

func (in *GardenerScheduler) DeepCopy() *GardenerScheduler

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenerScheduler.

func (*GardenerScheduler) DeepCopyInto

func (in *GardenerScheduler) DeepCopyInto(out *GardenerScheduler)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HVPAConfiguration

type HVPAConfiguration struct {
	// Enabled configures whether to setup hvpa for the Gardener Extension API server or not
	// Default: false
	Enabled *bool
	// MaintenanceWindow defines the time window when HVPA is allowed to act
	MaintenanceTimeWindow *hvpav1alpha1.MaintenanceTimeWindow
	// HVPAConfigurationHPA contains the HPA specific configuration for HVPA
	HVPAConfigurationHPA *HVPAConfigurationHPA
	// HVPAConfigurationVPA contains the VPA specific configuration for HVPA
	HVPAConfigurationVPA *HVPAConfigurationVPA
}

HVPAConfiguration contains configurations for the HVPA of the Gardener Extension API server For more information on HVPA, please see here: https://github.com/gardener/hvpa-controller

func (*HVPAConfiguration) DeepCopy

func (in *HVPAConfiguration) DeepCopy() *HVPAConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HVPAConfiguration.

func (*HVPAConfiguration) DeepCopyInto

func (in *HVPAConfiguration) DeepCopyInto(out *HVPAConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HVPAConfigurationHPA

type HVPAConfigurationHPA struct {
	// MinReplicas is the minimum number of replicas.
	// Defaults to 1.
	MinReplicas *int32
	// MaxReplicas is the maximum number of replicas.
	// Defaults to 4.
	MaxReplicas *int32
	// TargetAverageUtilizationCpu is the average CPU utilization targeted by the HPA component of
	// the HVPA
	// Defaults to: 80
	TargetAverageUtilizationCpu *int32
	// TargetAverageUtilizationMemory is the average memory utilization targeted by the HPA component of
	// the HVPA
	// Defaults to: 80
	TargetAverageUtilizationMemory *int32
}

HVPAConfigurationHPA contains HPA related configuration for the HVPA of the Gardener Extension API server

func (*HVPAConfigurationHPA) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HVPAConfigurationHPA.

func (*HVPAConfigurationHPA) DeepCopyInto

func (in *HVPAConfigurationHPA) DeepCopyInto(out *HVPAConfigurationHPA)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HVPAConfigurationVPA

type HVPAConfigurationVPA struct {
	// ScaleUpMode controls when the VPA component of HVPA scales up
	// Possible values: "Auto", "Off", "MaintenanceWindow"
	// Defaults to: "Auto"
	ScaleUpMode *string
	// ScaleDownMode controls when the VPA component of HVPA scales down
	// Possible values: "Auto", "Off", "MaintenanceWindow"
	// Defaults to: "Auto"
	ScaleDownMode *string
	// ScaleUpStabilization defines parameters for the VPA component of HVPA for scale up
	// Defaults:
	//  stabilizationDuration: "3m"
	//    minChange:
	//      cpu:
	//        value: 300m
	//        percentage: 80
	//      memory:
	//        value: 200M
	//        percentage: 80
	ScaleUpStabilization *hvpav1alpha1.ScaleType
	// ScaleDownStabilization defines parameters for the VPA component of HVPA for scale down
	// Defaults:
	//  stabilizationDuration: "15m"
	//  minChange:
	//    cpu:
	//      value: 600m
	//      percentage: 80
	//    memory:
	//      value: 600M
	//      percentage: 80
	ScaleDownStabilization *hvpav1alpha1.ScaleType
	// LimitsRequestsGapScaleParams is the scaling thresholds for limits
	// Defaults:
	//  cpu:
	//    value: "1"
	//    percentage: 70
	//  memory:
	//    value: "1G"
	//    percentage: 70
	LimitsRequestsGapScaleParams *hvpav1alpha1.ScaleParams
}

HVPAConfigurationVPA contains VPA related configuration for the HVPA of the Gardener Extension API server

func (*HVPAConfigurationVPA) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HVPAConfigurationVPA.

func (*HVPAConfigurationVPA) DeepCopyInto

func (in *HVPAConfigurationVPA) DeepCopyInto(out *HVPAConfigurationVPA)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Imports

type Imports struct {
	metav1.TypeMeta
	// RuntimeCluster contains the kubeconfig for the cluster where the Gardener
	// control plane pods will run.
	// if you do NOT configure a "virtual Garden" installation, the API server of this cluster will
	// be aggregated by the Gardener Extension API server and in turn serves the Gardener API.
	// Using the "virtual Garden" installation, this cluster is solely used to run the Gardener control plane pods
	// as well as the  Kubernetes API server pods of the "virtual Garden".
	RuntimeCluster landscaperv1alpha1.Target
	// VirtualGarden contains configuration for the "Virtual Garden" setup option of Gardener
	VirtualGarden *VirtualGarden
	// InternalDomain contains the internal domain configuration for the Gardener installation
	InternalDomain DNS
	// DefaultDomains contains optional default domain configurations to use for the Shoot clusters of the Gardener installation
	DefaultDomains []DNS
	// Alerting optionally configures the Gardener installation with alerting
	Alerting []Alerting
	// OpenVPNDiffieHellmanKey is the Diffie-Hellman key used for OpenVPN.
	// The VPN bridge from a Shoot's control plane running in the Seed cluster to the worker nodes of the Shoots is based
	// on OpenVPN. It requires a Diffie Hellman key.
	// If no such key is explicitly provided as secret in the garden namespace
	// then the Gardener will use a default one (not recommended, but useful for local development).
	// If a secret is specified its key will be used for all Shoots.
	// Can be generated by `openssl dhparam -out dh2048.pem 2048`
	OpenVPNDiffieHellmanKey *string
	// GardenerAPIServer contains the configuration for the Gardener API Server
	GardenerAPIServer GardenerAPIServer
	// GardenerControllerManager contains the configuration for the Gardener Controller Manager
	GardenerControllerManager *GardenerControllerManager
	// GardenerScheduler contains the configuration for the Gardener Scheduler
	GardenerScheduler *GardenerScheduler
	// GardenerAdmissionController contains the configuration for the Gardener Admission Controller
	GardenerAdmissionController *GardenerAdmissionController
	// Rbac configures common RBAC configuration
	Rbac *Rbac
}

Imports defines the import for the Gardener landscaper control plane component.

func (*Imports) DeepCopy

func (in *Imports) DeepCopy() *Imports

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Imports.

func (*Imports) DeepCopyInto

func (in *Imports) DeepCopyInto(out *Imports)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Imports) DeepCopyObject

func (in *Imports) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Rbac

type Rbac struct {
	// SeedAuthorizer configures RBAC for the SeedAuthorizer
	SeedAuthorizer *SeedAuthorizer
}

Rbac configures common RBAC configuration

func (*Rbac) DeepCopy

func (in *Rbac) DeepCopy() *Rbac

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rbac.

func (*Rbac) DeepCopyInto

func (in *Rbac) DeepCopyInto(out *Rbac)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SchedulerComponentConfiguration

type SchedulerComponentConfiguration struct {
	// Component specifies values for the Gardener Scheduler component configuration
	// Please see example/20-componentconfig-gardener-scheduler.yaml for what
	// can be configured here
	*Configuration
}

SchedulerComponentConfiguration contains the component configuration of the Gardener Scheduler

func (*SchedulerComponentConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerComponentConfiguration.

func (*SchedulerComponentConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedAuthorizer

type SeedAuthorizer struct {
	// Enabled configures whether the Seed Authorizer is enabled
	// The Seed Authorizer must be configured on the to-be extendet API server (runtime cluster or virtual-garden)
	Enabled *bool
}

SeedAuthorizer configures RBAC for the SeedAuthorizer

func (*SeedAuthorizer) DeepCopy

func (in *SeedAuthorizer) DeepCopy() *SeedAuthorizer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedAuthorizer.

func (*SeedAuthorizer) DeepCopyInto

func (in *SeedAuthorizer) DeepCopyInto(out *SeedAuthorizer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedRestriction

type SeedRestriction struct {
	// Enabled configures whether the SeedRestriction admission plugin should be enabled.
	// Sets up the ValidatingWebhookConfiguration pointing to the webhook server in the Gardener Admission Controller
	// serving the SeedRestriction webhook
	// If the Seed Authorizer is enabled already, the Seed Restriction Plugin will be enabled per default.
	// Default: false
	Enabled bool
}

SeedRestriction configures the SeedRestriction admission plugin

func (*SeedRestriction) DeepCopy

func (in *SeedRestriction) DeepCopy() *SeedRestriction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedRestriction.

func (*SeedRestriction) DeepCopyInto

func (in *SeedRestriction) DeepCopyInto(out *SeedRestriction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TLSServer

type TLSServer struct {
	// Cert is a certificate used by the component to serve TLS endpoints.
	// If specified, the certificate must be signed by the configured CA.
	Crt string
	// Key is the key for the configured TLS certificate.
	Key string
}

TLSServer configures the TLS serving endpoints of a component

func (*TLSServer) DeepCopy

func (in *TLSServer) DeepCopy() *TLSServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSServer.

func (*TLSServer) DeepCopyInto

func (in *TLSServer) DeepCopyInto(out *TLSServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VirtualGarden

type VirtualGarden struct {
	// Enabled configures whether to setup Gardener with the "Virtual Garden" setup option of Gardener
	// Please note that as a prerequisite, the API server pods of the "Virtual Garden" already need to be deployed to
	// the runtime cluster (this should be done automatically by a preceding component when using the standard installation via the landscaper)
	// and must be able to communicate with the Gardener Extension API server pod that will
	// be deployed to the Garden namespace
	Enabled bool
	// Kubeconfig is the landscaper target containing the kubeconfig to an existing "Virtual Garden" API server
	// deployed in the runtime cluster.
	// This is the kubeconfig of the Cluster
	//  - that will be aggregated by the Gardener Extension API server with Gardener resource groups
	//  - where the Gardener configuration is created (garden namespace, default & internal domain secrets, Gardener webhooks)
	//  - essentially, this helm chart will be applied: charts/gardener/controlplane/charts/application
	//
	// The Gardener control plane (Gardener Controller Manager, Gardener Scheduler, ...)
	// will in turn run in the runtime cluster, but use kubeconfigs with credentials to this API server.
	Kubeconfig *landscaperv1alpha1.Target
	// ClusterIP is an arbitrary private ipV4 IP that is used to enable the virtual Garden API server
	// running as a pod in the runtime cluster to talk to the Gardener Extension API server pod also running
	// as a pod in the runtime cluster
	// This IP
	//  - In the Virtual Garden cluster: is written into the endpoints resource of the "gardener-apiserver" service.
	//    This service is used by the APIService resources to register Gardener resource groups.
	//  - In the runtime cluster: is the ClusterIP of the "gardener-apiserver" service selecting the Gardener Extension
	//    API server pods.
	//
	// Exposed to accommodate existing Gardener installation
	// defaults to 10.0.1.0
	ClusterIP *string
}

VirtualGarden contains configuration for the "Virtual Garden" setup option of Gardener

func (*VirtualGarden) DeepCopy

func (in *VirtualGarden) DeepCopy() *VirtualGarden

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualGarden.

func (*VirtualGarden) DeepCopyInto

func (in *VirtualGarden) DeepCopyInto(out *VirtualGarden)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WatchCacheSizeResource

type WatchCacheSizeResource struct {
	// ApiGroup is the API Group of the resource (e.g core.gardener.cloud)
	ApiGroup string
	// Resource is the name of the resource (e.g shoots)
	Resource string
	// Size is the size of the watch cache (how many resources are cached)
	Size int32
}

WatchCacheSizeResource configures the watch cache of one resource

func (*WatchCacheSizeResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatchCacheSizeResource.

func (*WatchCacheSizeResource) DeepCopyInto

func (in *WatchCacheSizeResource) DeepCopyInto(out *WatchCacheSizeResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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