apiserverexposure

package
v1.104.1 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2024 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultInterval is the default interval for retry operations.
	DefaultInterval = 5 * time.Second
	// DefaultTimeout is the default timeout and defines how long Gardener should wait
	// for a successful reconciliation of the service resource.
	DefaultTimeout = 10 * time.Minute
)

Functions

func NewIngress

func NewIngress(c client.Client, namespace string, values IngressValues) component.Deployer

NewIngress creates a new instance of Deployer for the ingress used to expose the kube-apiserver.

func NewInternalNameService

func NewInternalNameService(c client.Client, namespace string) component.Deployer

NewInternalNameService creates a new instance of Deployer for the service kubernetes.default.svc.cluster.local.

func NewSNI

func NewSNI(
	client client.Client,
	name string,
	namespace string,
	valuesFunc func() *SNIValues,
) component.DeployWaiter

NewSNI creates a new instance of DeployWaiter which deploys Istio resources for kube-apiserver SNI access.

func NewService

func NewService(
	log logr.Logger,
	cl client.Client,
	namespace string,
	values *ServiceValues,
	sniServiceKeyFunc func() client.ObjectKey,
	waiter retry.Ops,
	clusterIPFunc func(clusterIP string),
	ingressFunc func(ingressIP string),
) component.DeployWaiter

NewService creates a new instance of DeployWaiter for the Service used to expose the kube-apiserver. <waiter> is optional and defaulted to github.com/gardener/gardener/pkg/utils/retry.DefaultOps().

Types

type APIServerProxy

type APIServerProxy struct {
	NamespaceUID       types.UID
	APIServerClusterIP string
}

APIServerProxy contains values for the APIServer proxy protocol configuration.

type IngressValues

type IngressValues struct {
	// Host is the host where the kube-apiserver should be exposed.
	Host string
	// IstioIngressGatewayLabelsFunc is a function returingin the labels identifying the corresponding istio ingress gateway.
	IstioIngressGatewayLabelsFunc func() map[string]string
	// IstioIngressGatewayNamespaceFunc is a function returning the namespace of the corresponding istio ingress gateway.
	IstioIngressGatewayNamespaceFunc func() string
	// ServiceName is the name of the service the ingress is using.
	ServiceName string
	// ServiceNamespace is the namespace of the service the ingress is using.
	ServiceNamespace string
	// TLSSecretName is the name of the TLS secret.
	// If no secret is provided TLS is not terminated by nginx.
	TLSSecretName *string
}

IngressValues configure the kube-apiserver ingress.

type IstioIngressGateway

type IstioIngressGateway struct {
	Namespace string
	Labels    map[string]string
}

IstioIngressGateway contains the values for istio ingress gateway configuration.

type SNIValues

type SNIValues struct {
	Hosts               []string
	APIServerProxy      *APIServerProxy
	IstioIngressGateway IstioIngressGateway
}

SNIValues configure the kube-apiserver service SNI.

type ServiceValues

type ServiceValues struct {
	// AnnotationsFunc is a function that returns annotations that should be added to the service.
	AnnotationsFunc func() map[string]string
	// NamePrefix is the prefix for the service name.
	NamePrefix string
	// TopologyAwareRoutingEnabled indicates whether topology-aware routing is enabled for the kube-apiserver service.
	TopologyAwareRoutingEnabled bool
	// RuntimeKubernetesVersion is the Kubernetes version of the runtime cluster.
	RuntimeKubernetesVersion *semver.Version
}

ServiceValues configure the kube-apiserver service.

Jump to

Keyboard shortcuts

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