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 util.ConfigDumpDiagnostic, ...) error
- func SetupLoggers(c *Config, output io.Writer) (logrus.FieldLogger, logr.Logger, error)
- type AdminAPIClientFactory
- type AdminAPIsDiscoverer
- type Config
- type Controller
- type ControllerDef
- type InstanceIDProvider
- type IsReady
- type NoAvailableEndpointsError
- type OptionalNamespacedName
Constants ¶
const DiagnosticsPort = 10256
DiagnosticsPort is the default port of the manager's diagnostics service listens on.
const HealthzPort = 10254
HealthzPort is the default port the manager's health service listens on. Changing this will result in a breaking change. Existing deployments may use the literal port number in their liveness and readiness probes, and upgrading to a controller version with a changed HealthzPort will result in crash loops until users update their probe config. Note that there are several stock manifests in this repo that also use the literal port number. If you update this value, search for the old port number and update the stock manifests also.
const KongClientEventRecorderComponentName = "kong-client"
KongClientEventRecorderComponentName is a KongClient component name used to identify the events recording component.
const MetricsPort = 10255
MetricsPort is the default port the manager's metrics service listens on. Similar to HealthzPort, it may be used in existing user deployment configurations, and its literal value is used in several stock manifests, which must be updated along with this value.
Variables ¶
This section is empty.
Functions ¶
func AdminAPIClientFromServiceDiscovery ¶ added in v2.11.0
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 util.ConfigDumpDiagnostic, deprecatedLogger logrus.FieldLogger) error
Run starts the controller manager and blocks until it exits.
func SetupLoggers ¶ added in v2.5.1
SetupLoggers sets up the loggers for the controller manager.
Types ¶
type AdminAPIClientFactory ¶ added in v2.11.0
type AdminAPIsDiscoverer ¶ added in v2.11.0
type Config ¶
type Config struct { // Logging configurations LogLevel string LogFormat string LogReduceRedundancy bool // Kong high-level controller manager configurations KongAdminAPIConfig adminapi.HTTPClientOpts KongAdminInitializationRetries uint KongAdminInitializationRetryDelay time.Duration KongAdminToken string KongWorkspace string AnonymousReports bool EnableReverseSync bool SyncPeriod time.Duration SkipCACertificates bool CacheSyncTimeout 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 KongAdminSvcPortNames []string ProxySyncSeconds float32 InitCacheSyncDuration time.Duration ProxyTimeoutSeconds float32 // Kubernetes configurations KubeconfigPath string IngressClassName string LeaderElectionNamespace string LeaderElectionID string Concurrency int FilterTags []string WatchNamespaces []string GatewayAPIControllerName string Impersonate string EmitKubernetesEvents bool // 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 KnativeIngressEnabled bool KongClusterPluginEnabled bool KongPluginEnabled bool KongConsumerEnabled bool ServiceEnabled bool // Admission Webhook server config AdmissionServer admission.ServerConfig // Diagnostics and performance EnableProfiling bool EnableConfigDumps bool DumpSensitiveConfig bool // 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.
func (*Config) Validate ¶ added in v2.9.0
Validate validates the config. It should be used to validate the config variables' interdependencies. When a single variable is to be validated, *FromFlagValue function should be implemented.
func (*Config) ValidateGatewayDiscovery ¶ added in v2.9.0
ValidateGatewayDiscovery returns error if dbMode is not configured to db-less mode. gateway discovery is only supported in db-less mode in its initial release: https://github.com/Kong/kubernetes-ingress-controller/issues/3401
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 InstanceIDProvider ¶ added in v2.10.0
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 ¶ added in v2.10.0
func NewInstanceIDProvider() *InstanceIDProvider
func (*InstanceIDProvider) GetID ¶ added in v2.10.0
func (p *InstanceIDProvider) GetID() uuid.UUID
type NoAvailableEndpointsError ¶ added in v2.9.0
type NoAvailableEndpointsError struct {
// contains filtered or unexported fields
}
func (NoAvailableEndpointsError) Error ¶ added in v2.9.0
func (e NoAvailableEndpointsError) Error() string
type OptionalNamespacedName ¶ added in v2.9.0
type OptionalNamespacedName = mo.Option[k8stypes.NamespacedName]
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
|
|