Changelog for supported Kong Operator versions.
Kong Operator Changelog
2.1.1
Release date: 2026-02-19
Fixes
- Fix setting up indices for HTTPRoute and Gateway when Konnect controllers are disabled. #3234
- Fix v2 module #3353
- Bump Go to 1.25.7 #3235
- Name of Konnect Gateway Control Plane resource created in Konnect matches
the name of the corresponding
KonnectGatewayControlPlaneresource in Kubernetes (the same random suffix is added). It prevents collisions in Konnect. #3357 - Use the same defaults for
preserve_hostandstrip_pathin for Konnect Gateway Control Plane as in self-managed. #3366 - Fix not resetting resource errors in ControlPlane’s DB mode from previous
Update()calls to prevent stale errors from leaking into subsequent calls. #3369
2.1.0
Release date: 2026-02-05
Added
- Gateway: Added support for static naming of Gateway resources via the
konghq.com/operator-static-namingannotation. When set totrue, the DataPlane, ControlPlane, and KonnectGatewayControlPlane resources will be named exactly as the Gateway resource instead of using auto-generated names. #3015 - HybridGateway: Added support to PathPrefixMatch for the
URLRewriteHTTPRoutefilter. #3039 - HybridGateway: Added comprehensive HTTPRoute converter tests to improve translation stability. #3111
- Support cross namespace references from
KongPluginBindingtoKongPlugin. For this reference to be allowed, aKongReferenceGrantresource must be created in the namespace of theKongPlugin, allowing access for theKongPluginBinding. #3108 - HybridGateway: Added support to PathPrefixMatch for the
RequestRedirectHTTPRoutefilter. #3065 - Support cross namespace references from
KongRoutetoKongService. For this reference to be allowed, aKongReferenceGrantresource must be created in the namespace of theKongService, allowing access for theKongRoute. #3125 - Gracefully handle network errors when communicating with Konnect API. When a network error occurs during Konnect API operations, the operator will patch the resource status conditions to indicate the failure and requeue the reconciliation for a later retry. #3184
-
DataPlane: Enable incremental config sync by default when using Konnect as control plane. This improves performance of config syncs for large configurations. #2759 -
KongCertificate: Add support for sourcing certificates from Kubernetes Secrets. This allows users to define KongCertificates that reference existing Kubernetes Secrets containing TLS certificate and key data, instead of embedding them inline. #2802 -
KongCACertificate: Add support for sourcing CA certificates from Kubernetes Secrets. This allows users to define KongCACertificates that references existing Kubernetes Secrets containing TLS CA certificate instead of embedding them inline #2482 -
KongReferenceGrantCRD has been added to allow cross-namespace references among Konnect entities API. This new resource is to be intended as the Kong version of the original Gateway APIReferenceGrantCRD. #2855 - Hybrid Gateway: specify the protocol field of the generated
KongServiceresources #2872 - Hybrid Gateway: the creation and deletion of the Kong resources derived from
HTTPRoutes is now performed in multiple steps that account for dependencies among the generated resources. #2857 -
Added support for cross namespace references between the following Konnect entities and
KonnectGatewayControlPlaneKongServiceKongRouteKongUpstreamKongCertificateKongCACertificateKongConsumerKongConsumerGroupKongKeyKongKeySetKongVaultKongDataPlaneClientCertificate
To allow these references, users need to define a
KongReferenceGrantresource in the namespace of the referenced resource, allowing access to theKonnectGatewayControlPlane. #2892 #2913 #3033 #3040 #3044 #3064 #3069 #3052 #3082 #3086 -
Added support for cross namespace references between the following Konnect entities and
coreSecretKongCertificateKongCACertificate
To allow these references, users need to define a
KongReferenceGrantresource in the namespace of the referenced resource, allowing access to theSecret. #2904 - Hybrid Gateway: The operator now supports configuring TLS termination on Gateway listeners in hybrid mode.When you define a TLS listener on a Gateway resource, the operator will automatically create the necessary KongCertificate and KongSNI resources to configure the data plane. This allows for managing TLS certificates for Gateways in a Kubernetes-native way. #2915
- Cross-namespace references from
KonnectGatewayControlPlanetoKonnectAPIAuthConfigurationare allowed now and requireKongReferenceGrant. Similarly cross-namespace references fromHTTPRoutetoServiceare also supported and requireReferenceGrantin place. #2483 - Hybrid Gateway support: Gateway API objects bound to
Gateways programmed in Konnect are converted into Konnect entities and used to configure the hybridDataPlane. #2134 #2143 #2177 #2260 - Add comprehensive HTTPRoute reconciliation that translates Gateway API HTTPRoutes into Kong-specific resources for hybrid gateway deployments. #2308
- Hybrid Gateway: add support to HTTPRoute hostnames translation
#2346
- Enforce state and cleanup for Kong entities
- Introduced managedfields package for structured merge diff, including compare, extract, prune, and schema utilities with comprehensive tests.
- Refactored builder and converter logic for KongRoute, KongService, KongTarget, KongUpstream, and HTTPRoute.
- Enhanced metadata labeling and reconciliation logic for HTTPRoute; added resource ownership tracking via watches.
- Added generated schema in zz_generated_schema.go for resource types.
- Improved and extended unit tests for hybridgateway components. 2355
- Hybrid Gateway: add Konnect specific fields to
GatewayConfigurationCRD. #2390 #2405 - Hybrid Gateway: implement granular accepted and programmed conditions for HTTPRoute status This commit introduces comprehensive support for “Accepted” and “Programmed” status conditions on HTTPRoute resources in the hybridgateway controller. The new logic evaluates each ParentReference for controller ownership, Gateway/GatewayClass support, listener matching, and resource programming status. For every relevant Kong resource (KongRoute, KongService, KongTarget, KongUpstream, KongPlugin, KongPluginBinding), the controller sets detailed programmed conditions, providing clear feedback on which resources are operational and which are not. The update also refactors builder and metadata logic to ensure labels and annotations are correctly set for all managed resources, and improves test coverage for label, annotation, and hostname intersection handling. Legacy status controller code is removed, and the reconciliation flow is streamlined to use the new status enforcement and translation logic. This enables more robust troubleshooting and visibility for users, ensuring HTTPRoute status accurately reflects the readiness and configuration of all associated Kong resources. #2400
- ManagedFields: improve pruning of empty fields in unstructured objects
- Enhance pruneEmptyFields to recursively remove empty maps from slices and maps, including those that become empty after nested pruning.
- Update logic to remove empty slices and zero-value fields more robustly.
- Expand and refine unit tests in prune_test.go to cover all edge cases, including:
- Nested empty maps and slices
- Removal of empty maps from slices
- Handling of mixed-type slices
- Deeply nested pruning scenarios
- Preservation of non-map elements in slices #2413
- Entity Adoption support: support adopting an existing entity from Konnect to
a Kubernetes custom resource for managing the existing entity by KO.
- Add adoption options to the CRDs supporting adopting entities from Konnect. #2336
- Add
adopt.modefield to the CRDs that support adopting existing entities. Supported modes:-
match: read-only adoption. The operator adopts the referenced remote entity only when this CR’s spec matches the remote configuration (no writes to the remote system). If they differ, adoption fails and the operator does not take ownership until the spec is aligned. -
override: The operator overrides the remote entity with the spec in the CR. #2421 #2424
-
- Implement the general handling process of adopting an existing entity and
adoption procedure for
KongServices inmatchandoverridemode. #2424 - Implement the Match mode for adoption for Konnect cloud gateway entities #2429
- Implement adoption support for
KongCertificate,KongCACertificateandKongSNI#2484 - Implement adoption support for
KongVault. #2490 - Implement adoption for
KongKeyandKongKeySetresources #2487 - Implement adoption support for
KongConsumerandKongConsumerGroup#2493 - Implement adoption for
KongPluginBinding. #2492 - Implement adoption support for
KongCredentialAPIKey,KongCredentialBasicAuth,KongCredentialACL,KongCredentialJWT, andKongCredentialHMAC#2494 - Implement adoption support for
KongDataPlaneClientCertificate. #2678
- HybridGateway:
- Added controller-runtime watches for Gateway and GatewayClass resources to the hybridgateway controller.
- HTTPRoutes are now reconciled when related Gateway or GatewayClass resources change.
- Improved event mapping and indexing logic for efficient reconciliation.
- Added unit tests for new watch and index logic. #2419
- Provision hybrid Gateway: implement support for provisioning hybrid Gateways with
gateway api
GatewayandGatewayConfigurationresources. #2457 - Add support to HTTPRoute RequestRedirect filter #2470
- Add CLI flag
--enable-fqdn-modeto enable Fully Qualified Domain Name (FQDN) mode for service discovery. When enabled, Kong targets are configured to use service FQDNs (e.g.,service.namespace.svc.cluster.local) instead of individual pod endpoint IPs. #2607 - Gateway: support per-Gateway infrastructure configuration
GEP-1867 via
GatewayConfigurationCRD. #2653 - HybridGateway: reworked generated resources lifecycle management. HTTPRoute ownership on the resources
is now tracked through the
gateway-operator.konghq.com/hybrid-routesannotation. The same generated resource can now be shared among different HTTPRoutes. #2656 - HybridGateway: implemented
ExtensionReffilters to allow reference of self-managed plugins fromHTTPRoutes’ filters. #2715 -
KonnectAPIAuthConfigurationresources now have automatic finalizer management to prevent deletion when they are actively referenced by other Konnect resources (KonnectGatewayControlPlane,KonnectCloudGatewayNetwork,KonnectExtension). The finalizerkonnect.konghq.com/konnectapiauth-in-useis automatically added when references exist and removed when all referencing resources are deleted. #2726 - Add the following configuration flags for setting the maximum number of concurrent
reconciliation requests that can be processed by each controller group:
-
--max-concurrent-reconciles-dataplane-controllerfor DataPlane controllers. -
--max-concurrent-reconciles-controlplane-controllerfor ControlPlane controllers. -
--max-concurrent-reconciles-gateway-controllerfor Gateway controllers.
NOTE: Konnect entities controllers still respect the
--konnect-controller-max-concurrent-reconcilesflag. #2652 -
Changed
- Removed the
KonnectIDtype of control plane reference in CRDs for Konnect entities as it is not supported. #2966 - Move management of bootstrapping CA certificate (that is used for signing
certificates for ControlPlane - DataPlane communication) to Helm Chart,
deprecate flags
--cluster-ca-key-typeand--cluster-ca-key-sizenow those values are inferred automatically based on the CA certificate Secret. Read more in Helm Chart release notes. #3084 - HybridGateway: Include readable backend context in generated KongService and KongUpstream names (with stable hashes) to improve UX in Konnect. #3121
- kong/kong-gateway v3.12 is the default proxy image. #2391
- For Hybrid
Gateways the operator does not run theControlPlaneanymore, as theDataPlaneis configured to useKokoas Konnect control plane. #2253 - HybridGateway auto-generated resource names has been revised. #2566
- Update Gateway API to 1.4.0 and k8s libraries to 1.34. #2451
-
DataPlane’sspec.network.services.ingress.portsnow allows up to 64 ports to be specified. This alignsDataPlanewith Gateway APIs’Gateway. #2722 - In Konnect controllers, ignore
NotFounderrors when removing the finalizer from the resource. #2911
Fixes
- Fix validation logic for dataplane ports in admission policy. #3031
- Add maxLength and pattern validations for
KongConsumerandKongConsumerGroupfields. #3109 - Gateway: Sort Gateway/DataPlane status addresses deterministically with hostname-first priority. #3110
- HybridGateway: Fixed the logic of translating
HTTPRoutepath matches to paths in the generatedKongRoute. #2996 - HybridGateway: Add the
~*prefix to mark the header should be matched by regular expression in the translatedKongRoutewhen theHTTPRoute’s header match has theRegularExpressiontype. #2995 - Fixes a panic in KonnectExtension controller when Control Plane is not found. #3054
- Fixed an issue where users could set the secret of configmap label selectors to empty when the other one was left non-empty. #2810
- Handle Konnect API 429 rate limit responses by requeuing resources with the appropriate retry-after duration from the response header. #2856
- Hybrid Gateway: generate a single KongRoute for each HTTPRoute Rule #2417
- Fix issue with deletion of
KonnectExtensionwhen the referencedKonnectGatewayControlPlaneis deleted (it used to hang indefinitely). #2423 - Hybrid Gateway: add watchers for KongPlugin and KongPluginBinding #2427
- Hybrid Gateway: attach KongService generation to BackendRefs and fix filter/plugin conversion. #2456
- Translate
healthchecks.thresholdinKongUpstreamPolicyto thehealthchecks.thresholdfield in Kong upstreams. #2662 - Reject CA Secrets with multiple PEM certs. #2671
- Fix the default values of
combinedServicesFromDifferentHTTPRoutesanddrainSupportinControlPlaneTranslationOptionsnot being set correctly. #2589 - Fix random, unexpected and invalid validation error during validation of
HTTPRoutes forGateways configured in different namespaces withGatewayConfigurationthat has fieldspec.controlPlaneOptions.watchNamespaces.typeset toown. #2717 - Gateway controllers now watch changes on Secrets referenced by
spec.listeners.tls.certificateRef, ensuring Gateway status conditions are updated when referenced certificates change. #2661
2.0.6
Release date: 2025-12-01
Fixes
- Translate
healtchchecks.thersholdinKongUpstreamPolicyto thehealthchecks.thersholdfield in Kong upstreams. #2662 - Fix random, unexpected and invalid validation error during validation of
HTTPRoutes forGateways configured in different namespaces withGatewayConfigurationthat has fieldspec.controlPlaneOptions.watchNamespaces.typeset toown. #2717 - Reject CA Secrets with multiple PEM certs. #2671
- Gateway controllers now watch changes on Secrets referenced by
spec.listeners.tls.certificateRef, ensuring Gateway status conditions are updated when referenced certificates change. #2661 - Trigger reconciliation events on
KongPlugins upon changes onKongPluginBinding. #2637
2.0.3
Release date: 2025-09-30
Fixes
- Do not validate
Secrets andConfigMaps that are used internally by the operator. This prevents issues when those resources are created during bootstrapping of the operator, before the validating webhook is ready. #2356 - Add the
status.clusterTypeinKonnectGatewayControlPlaneand set it when KO attached theKonnectGatewayControlPlanewith the control plane in Konnect. TheKonnectExtensionnow get the cluster type to fill itsstatus.konnect.clusterTypefrom thestatusTypeofKonnectGatewayControlPlaneto fix the incorrect cluster type filled in the status when the control plane is mirrored from an existing control plane in Konnect. #2343
2.0.0
Release date: 2025-09-09
KGO becomes KO, which stands for Kong Operator. Kubernetes Gateway Operator and Kubernetes Ingress Controller become a single product. Furthermore, Kong Operator provides all features that used to be reserved for the Enterprise flavor of Kong Gateway Operator.
Breaking Changes
-
KonnectExtensionhas been bumped tov1alpha2and the Control plane reference via plainKonnectIDhas been removed.MirrorGatewayControlPlaneresource is now the only way to reference remote control planes in read-only. #1711 - Rename product from Kong Gateway Operator to Kong Operator. #1767
- Add
--cluster-domainflag and set default to'cluster.local'This commit introduces a new--cluster-domainflag to the KO binary, which is now propagated to the ingress-controller. The default value for the cluster domain is set to'cluster.local', whereas previously it was an empty string (''). This is a breaking change, as any code or configuration relying on the previous default will now use'cluster.local'unless explicitly overridden. #1870 - Introduce
ControlPlanein versionv2alpha1- Usage of the last valid config for fallback configuration is enabled by default,
can be adjusted in the
spec.translation.fallbackConfiguration.useLastValidConfigfield. #1939
- Usage of the last valid config for fallback configuration is enabled by default,
can be adjusted in the
-
ControlPlanev2alpha1has been replaced byControlPlanev2beta1.GatewayConfigurationv2alpha1has been replaced byGatewayConfigurationv2beta1. #2008 - Add flags
--secret-label-selectorand--config-map-label-selectorto filter watchedSecrets andConfigMaps. Only secrets or configMaps with the given label totrueare reconciled by the controllers. For example, if--secret-label-selectoris set tokonghq.com/secret, onlySecrets with the labelkonghq.com/secret=trueare reconciled. The default value of the two labels are set tokonghq.com/secretandkonghq.com/configmap. #1922 -
GatewayConfigurationv1beta1has been replaced by the new API versionv2alpha1. TheGatewayConfigurationv1beta1is still available but has been marked as deprecated. #1792 - Removed
KongIngress,TCPIngressandUDPIngressCRDs together with their controllers. For migration guidance from these resources to Gateway API, please refer to the migration documentation. #1971 - Change env vars prefix from
GATEWAY_OPERATOR_toKONG_OPERATOR_.GATEWAY_OPERATOR_prefixed env vars are still accepted but reported as deprecated. #2004
Added
- Support for
cert-managercertificate provisioning for webhooks in Helm Chart. #2122 - Support specifying labels to filter watched
Secrets andConfigMaps of eachControlPlanebyspec.objectFilters.secrets.matchLabelsandspec.objectFilters.configMaps.matchLabels. Only secrets or configmaps that have the labels matching the specified labels in spec are reconciled. If Kong operator has also flags--secret-label-selectoror--config-map-label-selectorset, the controller for eachControlPlanealso requires reconciled secrets or configmaps to set the labels given in the flags totrue. #1982 - Add conversion webhook for
KonnectGatewayControlPlaneto support seamless conversion between oldv1alpha1and newv1alpha2API versions. #2023 - Add Konnect related configuration fields to
ControlPlanespec, allowing fine-grained control over Konnect integration settings including consumer synchronization, licensing configuration, node refresh periods, and config upload periods. #2009 - Added
OptionsValidcondition toControlPlanes’ status. The status is set toTrueif theControlPlane’s options in itsspecis valid and set toFalseif the options are invalid against the operator’s configuration. #2070 - Added
APIConversioninterface to bootstrap Gateway API support in Konnect hybrid mode. #2134 - Move implementation of ControlPlane Extensions mechanism and DataPlaneMetricsExtension from EE. #1583
- Move implementation of certificate management for Konnect DPs from EE. #1590
-
ControlPlanestatus fieldscontrollersandfeatureGatesare filled in with actual configured values based on the defaults and thespecfields. #1771 - Added the following CLI flags to control operator’s behavior:
- Support the following configuration for running control plane managers in
the
ControlPlaneCRD:- Specifying the delay to wait for Kubernetes object caches sync before
updating dataplanes by
spec.cache.initSyncDuration#1858 - Specifying the period and timeout of syncing Kong configuration to dataplanes
by
spec.dataplaneSync.intervalandspec.dataplaneSync.timeout#1886 - Specifying the combined services from HTTPRoutes feature via
by
spec.translation.combinedServicesFromDifferentHTTPRoutes#1934 - Specifying the drain support by
spec.translation.drainSupport#1940
- Specifying the delay to wait for Kubernetes object caches sync before
updating dataplanes by
- Introduce flags
--apiserver-hostfor API,--apiserver-qpsand--apiserver-burstto control the QPS and burst (rate-limiting) for the Kubernetes API server client. #1887 - Introduce the flag
--emit-kubernetes-eventsto enable/disable the creation of Kubernetes events in theControlPlane. The default value istrue. #1888 - Added the flag
--enable-controlplane-config-dumpto enable debug server for dumping Kong configuration translated fromControlPlanes and flag--controlplane-config-dump-bind-addressto set the bind address of server. You can accessGET /debug/controlplanesto list managedControlPlanes and get response like{"controlPlanes":[{"namespace":"default","name":"kong-12345","id":"abcd1234-..."}]}listing the namespace, name and UID of managedControlPlanes. CallingGET /debug/controlplanes/namespace/{namespace}/name/{name}/config/{req_type}can dump Kong configuration of a specificControlPlane. This endpoint is only available when theControlPlane’sspec.configDump.stateis set toenabled. The{req_type}stands for the request type of dumping configuration. Supported{req_type}s are:-
successfulfor configuration in the last successful application. -
failedfor configuration in the last failed application. -
fallbackfor configuration applied in the last fallback procedure. -
raw-errorfor raw errors returned from the dataplane in the last failed application. -
diff-reportfor summaries of differences between the last applied configuration and the confiugration in the dataplane before that application. It requires theControlPlanesetspec.configDump.dumpSensitivetoenabled. #1894
-
- Introduce the flag
--watch-namespacesto specify which namespaces the operator should watch for configuration resources. The default value is""which makes the operator watch all namespaces. This flag is checked against theControlPlane’sspec.watchNamespacesfield duringControlPlanereconciliation and if incompatible,ControlPlanereconciliation returns with an error. #1958 #1974 - Refactored Konnect extension processing for
ControlPlaneandDataPlaneresources by introducing theExtensionProcessorinterface. This change enables KonnecExtensions forControlPlane v2alpha1. #1978
Changes
-
ControlPlaneprovisioned conditions’ reasons have been renamed to actually reflect the new operator architecture.PodsReadyis nowProvisionedandPodsNotReadyis nowProvisioningInProgress. #1985 - Vendor gateway-operator CRDs locally and switch Kustomize to use the vendored source. #2195
-
kong/kong-gatewayv3.11 is the default proxy image. #2212
Fixes
- Do not check “Programmed” condition in status of
Gatewaylisteners in extracting certificates in controlplane’s translation of Kong configuration. This fixes the disappearance of certificates when deployment status ofDataPlaneowned by the gateway (including deletion of pods, rolling update of dataplane deployment, scaling of dataplane and so on). #2038 - Correctly assume default Kong router flavor is
traditional_compatiblewhenKONG_ROUTER_FLAVORis not set. This fixes incorrectly populatedGatewayClass.status.supportedFeatureswhen the default was assumed to beexpressions. #2043 - Support setting exposed nodeport of the dataplane service for
Gateways bynodePortfield inspec.listenersOptions. #2058 - Fixed lack of
instance_nameandprotocolsreconciliation forKongPluginBindingwhen reconciling against Konnect. #1681 - The
KonnectExtensionstatus is kept updated when theKonnectGatewayControlPlaneis deleted and re-created. When this happens, theKonnectGatewayControlPlanesees its Konnect ID changed, as well as the endpoints. All this data is constantly enforced into theKonnectExtensionstatus. #1684 - Fix the issue that invalid label value causing ingress controller fails to
store the license from Konnect into
Secret. #1976 - Fixed a missing watch in
GatewayClassreconciler for relatedGatewayConfigurationresources. #2161
1.6.1
Release date: 2025-05-22
Changed
- Allowed the
kubectl rollout restartoperation for Deployment resources created via DataPlane CRD. #1660
1.6.0
Release date: 2025-05-07
Added
- In
KonnectGatewayControlPlanefieldsStatus.Endpoints.ControlPlaneEndpointandStatus.Endpoints.TelemetryEndpointare filled with respective values from Konnect. #1415 - Add
namespacedRefsupport for referencing networks inKonnectCloudGatewayDataPlaneGroupConfiguration#1423 - Introduced new CLI flags:
-
--logging-mode(orGATEWAY_OPERATOR_LOGGING_MODEenv var) to set the logging mode (developmentcan be set for simplified logging). -
--validate-images(orGATEWAY_OPERATOR_VALIDATE_IMAGESenv var) to enable ControlPlane and DataPlane image validation (it’s set by default totrue). #1435
-
- Add support for
-enforce-configforControlPlane’sValidatingWebhookConfiguration. This allows to use operator’sControlPlaneresources in AKS clusters. #1512 -
KongRoutecan be migrated from serviceless to service bound and vice versa. #1492 - Add
KonnectCloudGatewayTransitGatewaycontroller to support managing Konnect transit gateways. #1489 - Added support for setting
PodDisruptionBudgetinGatewayConfiguration’sDataPlaneoptions. #1526 - Added
spec.watchNamespacefield toControlPlaneandGatewayConfigurationCRDs to allow watching resources only in the specified namespace. Whenspec.watchNamespace.type=listis used, each specified namespace requires aWatchNamespaceGrantthat allows theControlPlaneto watch resources in the specified namespace. Aforementioned list is extended withControlPlane’s own namespace which doesn’t require saidWatchNamespaceGrant. #1388 #1410 #1555 For more information on this please see: https://developer.konghq.com/operator/reference/control-plane-watch-namespaces/#controlplane-s-watchnamespaces-field - Implemented
MirrorandOriginKonnectGatewayControlPlanes. #1496
Changes
- Deduce
KonnectCloudGatewayDataPlaneGroupConfigurationregion based on the attachedKonnectAPIAuthConfigurationinstead of using a hardcodedeuvalue. #1409 - Support
NodePortas ingress service type forDataPlane#1430 - Allow setting
NodePortport number for ingress service forDataPlane. #1516 - Updated
kubernetes-configurationdependency for addingscalesubresource forDataPlaneCRD. #1523 - Bump
kong/kubernetes-configurationdependency to v1.4.0 #1574
Fixes
- Fix setting the defaults for
GatewayConfiguration’sReadinessProbewhen only timeouts and/or delays are specified. Now the HTTPGet field is set to/status/readyas expected with theGatewayscenario. #1395 - Fix ingress service name not being applied when using
GatewayConfiguration. #1515 - Fix ingress service port name setting. #1524
1.5.1
Release date: 2025-04-01
Added
- Add
namespacedRefsupport for referencing networks inKonnectCloudGatewayDataPlaneGroupConfiguration#1425 - Set
ControlPlaneRefValidcondition to false when reference toKonnectGatewayControlPlaneis invalid #1421
Changes
- Deduce
KonnectCloudGatewayDataPlaneGroupConfigurationregion based on the attachedKonnectAPIAuthConfigurationinstead of using a hardcodedeuvalue. #1417 - Bump
kong/kubernetes-configurationdependency to v1.3.
1.5.0
Release date: 2025-03-11
Breaking Changes
- Added check of whether using
Secretin another namespace inAIGateway’sspec.cloudProviderCredentialsis allowed. If theAIGatewayand theSecretreferenced inspec.cloudProviderCredentialsare not in the same namespace, there MUST be aReferenceGrantin the namespace of theSecretthat allows theAIGateways to reference theSecret. This may break usage ofAIGateways that is already usingSecretin other namespaces as AI cloud provider credentials. #1161 - Migrate KGO CRDs to the kubernetes-configuration repo.
With this migration process, we have removed the
apiandpkg/clientsetfrom the KGO repo. This is a breaking change which requires manual action for projects that use operator’s Go APIs. In order to migrate please use the import paths from the kong/kubernetes-configuration repo instead. For example:github.com/kong/kong-operator/api/v1beta1becomesgithub.com/kong/kubernetes-configuration/api/gateway-operator/v1beta1. #1148 - Support for the
konnect-extension.gateway-operator.konghq.comCRD has been interrupted. The new APIkonnect-extension.konnect.konghq.commust be used instead. The migration path is described in the Kong documentation. #1183 - Migrate KGO CRDs conditions to the kubernetes-configuration repo. With this migration process, we have moved all conditions from the KGO repo to kubernetes-configuration. This is a breaking change which requires manual action for projects that use operator’s Go conditions types. In order to migrate please use the import paths from the kong/kubernetes-configuration repo instead. #1281 #1305 #1306 #1318
Added
- Added
Namefield inServiceOptionsto allow specifying name of the owning service. Currently specifying ingress service ofDataPlaneis supported. #966 - Added support for global plugins with
KongPluginBinding’sscopefield. The default value isOnlyTargetswhich means that the plugin will be applied only to the targets specified in thetargetsfield. The new alternative isGlobalInControlPlanethat will make the plugin apply globally in a control plane. #1052 - Added
-cluster-ca-key-typeand-cluster-ca-key-sizeCLI flags to allow configuring cluster CA private key type and size. Currently allowed values:rsaandecdsa(default). #1081 - The
GatewayClassAccepted Condition is set toFalsewith reasonInvalidParametersin case the.spec.parametersReffield is not a valid reference to an existingGatewayConfigurationobject. #1021 - The
SupportedFeaturesfield is properly set in theGatewayClassstatus. It requires the experimental version of Gateway API (as of v1.2.x) installed in your cluster, and the flag--enable-gateway-api-experimentalset. #1010 - Added support for
KongConsumercredentialsin Konnect entities support. Users can now specify credentials forKongConsumers inSecrets and reference them inKongConsumers’credentialsfield. - Added prometheus metrics for Konnect entity operations in the metrics server:
-
gateway_operator_konnect_entity_operation_countfor number of operations. -
gateway_operator_konnect_entity_operation_duration_millisecondsfor duration of operations. #953
-
- Added support for
KonnectCloudGatewayNetworkCRD which can manage Konnect Cloud Gateway Network entities. #1136 - Reconcile affected
KonnectExtensions when theSecretused as Dataplane certificate is modified. A secret must have thekonghq.com/konnect-dp-certlabel to trigger the reconciliation. #1250 - When the
DataPlaneis configured in Konnect, the/status/readyendpoint is set as the readiness probe. #1235 - Added support for
KonnectDataPlaneGroupConfigurationCRD which can manage Konnect Cloud Gateway DataPlane Group configurations entities. #1186 - Supported
KonnectExtensionto attach to Konnect control planes by setting namespace and name ofKonnectGatewayControlPlaneinspec.konnectControlPlane. #1254 - Added support for
KonnectExtensions onControlPlanes. #1262 - Added support for
KonnectExtension’sstatuscontrolPlaneRefsanddataPlaneRefsfields. #1297 - Added support for
KonnectExtensions onGateways viaGatewayConfigurationextensibility. #1292 - Added
-enforce-configflag to enforce the configuration of theControlPlaneandDataPlaneDeployments. #1307 - Added Automatic secret provisioning for
KonnectExtensioncertificates. #1304
Changed
-
KonnectExtensiondoes not requirespec.serverHostnameto be set by a user anymore - default is set tokonghq.com. #947 - Support KIC 3.4 #972
- Allow more than 1 replica for
ControlPlane’sDeploymentto support HA deployments of KIC. #978 - Removed support for the migration of legacy labels so upgrading the operator from 1.3 (or older) to 1.5.0, should be done through 1.4.1 #976
- Move
ControlPlaneimagevalidation to CRD CEL rules. #984 - Remove usage of
kube-rbac-proxy. Its functionality of can be now achieved by using the new flag--metrics-access-filter(or a correspondingGATEWAY_OPERATOR_METRICS_ACCESS_FILTERenv). The default value for the flag isoffwhich doesn’t restrict the access to the metrics endpoint. The flag can be set torbacwhich will configure KGO to verify the token sent with the request. For more information on this migration please consult kubernetes-sigs/kubebuilder#3907. #956 - Move
DataPlaneports validation toValidationAdmissionPolicyandValidationAdmissionPolicyBinding. #1007 - Move
DataPlanedb mode validation to CRD CEL validation expressions. With this change only theKONG_DATABASEenvironment variable directly set in thepodTemplateSpecis validated.EnvFromis not evaluated anymore for this validation. #1049 - Move
DataPlanepromotion in progress validation to CRD CEL validation expressions. This is relevant forDataPlanes with BlueGreen rollouts enabled only. #1054 - Move
DataPlane’s rollout strategy validation of disallowedAutomaticPromotionto CRD CEL validation expressions. This is relevant forDataPlanes with BlueGreen rollouts enabled only. #1056 - Move
DataPlane’s rollout resource strategy validation of disallowedDeleteOnPromotionRecreateOnRolloutto CRD CEL validation expressions. This is relevant forDataPlanes with BlueGreen rollouts enabled only. #1065 - The
GatewayClassAccepted Condition is set toFalsewith reasonInvalidParametersin case the.spec.parametersReffield is not a valid reference to an existingGatewayConfigurationobject. #1021 - Validating webhook is now disabled by default. At this point webhook doesn’t
perform any validations.
These were all moved either to CRD CEL validation expressions or to the
ValidationAdmissionPolicy. Flag remains in place to not cause a breaking change for users that rely on it. #1066 - Remove
ValidatingAdmissionWebhookfrom the operator. As of now, all the validations have been moved to CRD CEL validation expressions or to theValidationAdmissionPolicy. All the flags that were configuring the webhook are now deprecated and do not have any effect. They will be removed in next major release. #1100 - Konnect entities that are attached to a Konnect CP through a
ControlPlaneRefdo not get an owner relationship set to theControlPlaneanymore hence they are not deleted when theControlPlaneis deleted. #1099 - Remove the owner relationship between
KongServiceandKongRoute. #1178 - Remove the owner relationship between
KongTargetandKongUpstream. #1279 - Remove the owner relationship between
KongCertificateandKongSNI. #1285 - Remove the owner relationship between
KongKeys andKongKeysSets andKonnectGatewayControlPlanes. #1291 - Check whether an error from calling Konnect API is a validation error by
HTTP status code in Konnect entity controller. If the HTTP status code is
400, we consider the error as a validation error and do not try to requeue the Konnect entity. #1226 - Credential resources used as Konnect entities that are attached to a
KongConsumerresource do not get an owner relationship set to theKongConsumeranymore hence they are not deleted when theKongConsumeris deleted. #1259
Fixes
- Fix
DataPlanes withKonnectExtensionandBlueGreensettings. Both the Live and preview deployments are now customized with Konnect-related settings. #910 - Remove
RunAsUserspecification in jobs to create webhook certificates because Openshift does not specifyingRunAsUserby default. #964 - Fix watch predicates for types shared between KGO and KIC. #948
- Fix unexpected error logs caused by passing an odd number of arguments to the logger
in the
KongConsumerreconciler. #983 - Fix checking status when using a
KonnectGatewayControlPlanewith KIC CP type as aControlPlaneRef. #1115 - Fix setting
DataPlane’s readiness probe usingGatewayConfiguration. #1118 - Fix handling Konnect API conflicts. #1176
1.4.2
Release date: 2025-01-23
Fixes
- Bump
kong/kubernetes-configurationdependency to v1.0.8 that fixes the issue withspec.headersinKongRouteCRD by aligning to the expected schema (instead ofmap[string]string, it should bemap[string][]string). Please make sure you update the KGO channel CRDs accordingly in your cluster:kustomize build github.com/Kong/kubernetes-configuration/config/crd/gateway-operator\?ref=v1.0.8 | kubectl apply -f -#1072
1.4.1
Release date: 2024-11-28
Fixes
- Fix setting the
ServiceAccountNameforDataPlane’sDeployment. #897 - Fixed setting
ExternalTrafficPolicyonDataPlane’s ingressServicewhen the requested value is empty. #898 - Set 0 members on
KonnectGatewayControlPlanewhich type is set to group. #896 - Fixed a
panicinKonnectAPIAuthConfigurationReconcileroccurring when nil response was returned by Konnect API when fetching the organization information. #901 - Bump sdk-konnect-go version to 0.1.10 to fix handling global API endpoints. #894
1.4.0
Release date: 2024-10-31
Added
- Proper
User-Agentheader is now set on outgoing HTTP requests. #387 - Introduce
KongPluginInstallationCRD to allow installing custom Kong plugins distributed as container images. #400, #424, #474, #560, #615, #476 - Extended
DataPlaneAPI with a possibility to specifyPodDisruptionBudgetto be created for theDataPlanedeployments viaspec.resources.podDisruptionBudget. #464 - Add
KonnectAPIAuthConfigurationreconciler. #456 - Add support for Konnect tokens in
SecretsinKonnectAPIAuthConfigurationreconciler. #459 - Add
KonnectControlPlanereconciler. #462 - Add
KongServicereconciler for Konnect control planes. #470 - Add
KongUpstreamreconciler for Konnect control planes. #593 - Add
KongConsumerreconciler for Konnect control planes. #493 - Add
KongRoutereconciler for Konnect control planes. #506 - Add
KongConsumerGroupreconciler for Konnect control planes. #510 - Add
KongCACertificatereconciler for Konnect CA certificates. #626 - Add
KongCertificatereconciler for Konnect Certificates. #643 - Added command line flags to configure the certificate generator job’s images. #516
- Add
KongPluginBindingreconciler for Konnect Plugins. #513, #535 - Add
KongTargetreconciler for Konnect Targets. #627 - Add
KongVaultreconciler for Konnect Vaults. #597 - Add
KongKeyreconciler for Konnect Keys. #646 - Add
KongKeySetreconciler for Konnect KeySets. #657 - Add
KongDataPlaneClientCertificatereconciler for Konnect DataPlaneClientCertificates. #694 - The
KonnectExtensionCRD has been introduced. Such a CRD can be attached to aDataPlanevia the extensions field to have a konnect-flavoredDataPlane. #453, #578, #736 - Entities created in Konnect are now labeled (or tagged for those that does not
support labels) with origin Kubernetes object’s metadata:
k8s-name,k8s-namespace,k8s-uid,k8s-generation,k8s-kind,k8s-group,k8s-version. #565 - Add
KongService,KongRoute,KongConsumer, andKongConsumerGroupwatchers in theKongPluginBindingreconciler. #571 - Annotating the following resource with the
konghq.com/pluginsannotation results in the creation of a managedKongPluginBindingresource: -
KongConsumerassociated withConsumerGroupsis now reconciled in Konnect by removing/adding the consumer from/to the consumer groups. #592 - Add support for
KongConsumercredentials: - Add support for
KongRoutes bound directly toKonnectGatewayControlPlanes (serviceless routes). #669 - Allow setting
KonnectGatewayControlPlanes group membership #697 - Apply Konnect-related customizations to
DataPlanes that properly referenceKonnectExtensionresources. #714 - The KonnectExtension functionality is enabled only when the
--enable-controller-konnectflag or theGATEWAY_OPERATOR_ENABLE_CONTROLLER_KONNECTenv var is set. #738
Fixes
- Fixed
ControlPlanecluster wide resources not migrating to new ownership labels (introduced in 1.3.0) when upgrading the operator from 1.2 (or older) to 1.3.0. #369 - Requeue instead of reporting an error when a finalizer removal yields a conflict. #454
- Requeue instead of reporting an error when a GatewayClass status update yields a conflict. #612
- Guard object counters with checks whether CRDs for them exist #710
- Do not reconcile Gateways nor assign any finalizers when the referred GatewayClass is not supported. #711
- Fixed setting
ExternalTrafficPolicyonDataPlane’s ingressServiceduring update and patch operations. #750 - Fixed setting
ExternalTrafficPolicyonDataPlane’s ingressService. Remove the default value (Cluster). Prevent setting this field forClusterIPServices. #812
Changes
1.3.0
Release date: 2024-06-24
Added
- Add
ExternalTrafficPolicytoDataPlane’sServiceOptions#241
Breaking Changes
- Changes project layout to match
kubebuilderv4. Some import paths (due to dir renames) have changedapis->apiandcontrollers->controller. #84
Changes
-
Gatewaydo not have theirReadystatus condition set anymore. This aligns with Gateway API and its conformance test suite. #246 -
Gateways’ listeners now have theirattachedRoutescount filled in in status. #251 - Detect when
ControlPlanehas its admission webhook disabled viaCONTROLLER_ADMISSION_WEBHOOK_LISTENenvironment variable and ensure that relevant webhook resources are not created/deleted. #326 - The
OwnerReferenceson cluster-wide resources to indicate their owner are now replaced by a proper set of labels to identifykind,namespace, andnameof the owning object. #259 - Default version of
ControlPlaneis bumped to 3.2.0 #327
Fixes
- Fix enforcing up to date
ControlPlane’sValidatingWebhookConfiguration#225