Documentation ¶
Overview ¶
Package manager implements the controller manager for all controllers
Index ¶
- Constants
- func AdminAPIClientFromServiceDiscovery(ctx context.Context, logger logr.Logger, ...) ([]*adminapi.Client, error)
- func Run(ctx context.Context, c *Config, diagnostic diagnostics.ClientDiagnostic, ...) error
- func SetupLoggers(c *Config, output io.Writer) (logr.Logger, error)
- type AdminAPIClientFactory
- type AdminAPIsDiscoverer
- type Config
- type ConfigOpt
- type Controller
- type ControllerDef
- type GatewayClientsProvider
- type InstanceIDProvider
- type IsReady
- type NoAvailableEndpointsError
- type OptionalNamespacedName
- type SchemaServiceGetter
- type TypeMetaSettingClient
Constants ¶
const ( LeaderElectionEnabled = "enabled" LeaderElectionDisabled = "disabled" )
Variables ¶
This section is empty.
Functions ¶
func AdminAPIClientFromServiceDiscovery ¶
func AdminAPIClientFromServiceDiscovery( ctx context.Context, logger logr.Logger, kongAdminSvcNN k8stypes.NamespacedName, kubeClient client.Client, discoverer AdminAPIsDiscoverer, factory AdminAPIClientFactory, retryOpts ...retry.Option, ) ([]*adminapi.Client, error)
func Run ¶
func Run( ctx context.Context, c *Config, diagnostic diagnostics.ClientDiagnostic, logger logr.Logger, ) error
Run starts the controller manager and blocks until it exits.
Types ¶
type AdminAPIClientFactory ¶
type AdminAPIsDiscoverer ¶
type Config ¶
type Config struct { // Logging configurations LogLevel string LogFormat string // Kong high-level controller manager configurations KongAdminAPIConfig adminapi.HTTPClientOpts KongAdminInitializationRetries uint KongAdminInitializationRetryDelay time.Duration KongAdminToken string KongAdminTokenPath string KongWorkspace string AnonymousReports bool EnableReverseSync bool UseLastValidConfigForFallback bool SyncPeriod time.Duration SkipCACertificates bool CacheSyncTimeout time.Duration GracefulShutdownTimeout *time.Duration // Kong Proxy configurations APIServerHost string APIServerQPS int APIServerBurst int APIServerCAData []byte APIServerCertData []byte APIServerKeyData []byte MetricsAddr string ProbeAddr string KongAdminURLs []string KongAdminSvc OptionalNamespacedName GatewayDiscoveryDNSStrategy cfgtypes.DNSStrategy GatewayDiscoveryReadinessCheckInterval time.Duration GatewayDiscoveryReadinessCheckTimeout time.Duration KongAdminSvcPortNames []string ProxySyncSeconds float32 InitCacheSyncDuration time.Duration ProxyTimeoutSeconds float32 // Kubernetes configurations KubeconfigPath string IngressClassName string LeaderElectionNamespace string LeaderElectionID string LeaderElectionForce string Concurrency int FilterTags []string WatchNamespaces []string GatewayAPIControllerName string Impersonate string EmitKubernetesEvents bool ClusterDomain string // Ingress status PublishServiceUDP OptionalNamespacedName PublishService OptionalNamespacedName PublishStatusAddress []string PublishStatusAddressUDP []string UpdateStatus bool UpdateStatusQueueBufferSize int // Kubernetes API toggling IngressNetV1Enabled bool IngressClassNetV1Enabled bool IngressClassParametersEnabled bool UDPIngressEnabled bool TCPIngressEnabled bool KongIngressEnabled bool KongClusterPluginEnabled bool KongPluginEnabled bool KongConsumerEnabled bool ServiceEnabled bool KongUpstreamPolicyEnabled bool KongServiceFacadeEnabled bool KongVaultEnabled bool KongLicenseEnabled bool KongCustomEntityEnabled bool // Gateway API toggling. GatewayAPIGatewayController bool GatewayAPIHTTPRouteController bool GatewayAPIReferenceGrantController bool GatewayAPIGRPCRouteController bool // GatewayToReconcile specifies the Gateway to be reconciled. GatewayToReconcile OptionalNamespacedName // SecretLabelSelector specifies the label which will be used to limit the ingestion of secrets. Only those that have this label set to "true" will be ingested. SecretLabelSelector string // ConfigMapLabelSelector specifies the label which will be used to limit the ingestion of configmaps. Only those that have this label set to "true" will be ingested. ConfigMapLabelSelector string // Admission Webhook server config AdmissionServer admission.ServerConfig // Diagnostics and performance EnableProfiling bool EnableConfigDumps bool DumpSensitiveConfig bool DiagnosticServerPort int // Feature Gates FeatureGates map[string]bool // TermDelay is the time.Duration which the controller manager will wait // after receiving SIGTERM or SIGINT before shutting down. This can be // helpful for advanced cases with load-balancers so that the ingress // controller can be gracefully removed/drained from their rotation. TermDelay time.Duration Konnect adminapi.KonnectConfig // Override default telemetry settings (e.g. for testing). They aren't exposed in the CLI. SplunkEndpoint string SplunkEndpointInsecureSkipVerify bool TelemetryPeriod time.Duration // contains filtered or unexported fields }
Config collects all configuration that the controller manager takes from the environment.
type ConfigOpt ¶ added in v3.2.0
type ConfigOpt func(*Config)
ConfigOpt is a function that modifies a Config.
type Controller ¶
Controller is a Kubernetes controller that can be plugged into Manager.
type ControllerDef ¶
type ControllerDef struct { Enabled bool Controller Controller }
ControllerDef is a specification of a Controller that can be conditionally registered with Manager.
func (*ControllerDef) MaybeSetupWithManager ¶
func (c *ControllerDef) MaybeSetupWithManager(mgr ctrl.Manager) error
MaybeSetupWithManager runs SetupWithManager on the controller if it is enabled.
func (*ControllerDef) Name ¶
func (c *ControllerDef) Name() string
Name returns a human-readable name of the controller.
type GatewayClientsProvider ¶ added in v3.2.0
GatewayClientsProvider is an interface that provides clients for the currently discovered Gateway instances.
type InstanceIDProvider ¶
type InstanceIDProvider struct {
// contains filtered or unexported fields
}
InstanceIDProvider provides a unique identifier for a running instance of the manager. It should be used by all components that register the instance in any external system.
func NewInstanceIDProvider ¶
func NewInstanceIDProvider() *InstanceIDProvider
func (*InstanceIDProvider) GetID ¶
func (p *InstanceIDProvider) GetID() uuid.UUID
type NoAvailableEndpointsError ¶
type NoAvailableEndpointsError struct {
// contains filtered or unexported fields
}
func (NoAvailableEndpointsError) Error ¶
func (e NoAvailableEndpointsError) Error() string
type OptionalNamespacedName ¶
type OptionalNamespacedName = mo.Option[k8stypes.NamespacedName]
type SchemaServiceGetter ¶ added in v3.2.0
type SchemaServiceGetter struct {
// contains filtered or unexported fields
}
SchemaServiceGetter returns schema service of an admin API client if there is any client available.
func NewSchemaServiceGetter ¶ added in v3.2.0
func NewSchemaServiceGetter(cm GatewayClientsProvider) SchemaServiceGetter
NewSchemaServiceGetter creates a schema service getter that uses given client manager to maintain admin API clients.
func (SchemaServiceGetter) GetSchemaService ¶ added in v3.2.0
func (ssg SchemaServiceGetter) GetSchemaService() kong.AbstractSchemaService
GetSchemaService returns the schema service for admin API client. It uses the configured clients manager to get the clients and then it uses one of those to obtain the service.
type TypeMetaSettingClient ¶
TypeMetaSettingClient decorates client.Client so that it populates the TypeMeta field of the object after fetching it from the API server.
func NewTypeMetaSettingClient ¶
func NewTypeMetaSettingClient(c client.Client) TypeMetaSettingClient
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
config
|
|
Package metadata includes metadata variables for logging and reporting.
|
Package metadata includes metadata variables for logging and reporting. |
utils
|
|