Changelog for supported Kong Gateway Operator versions.
Kong Gateway Operator Changelog
Uses:
Kong Operator
Related Documentation
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 - 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 theHTTPGetfield 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-12
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/gateway-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. #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
Fixed
- 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
- 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
Fixed
- Fixed
ControlPlanecluster wide resources not migrating to new ownership labels (introduced in 1.3.0) when upgrading the operator form 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
Changes
1.3.0
Release date: 2024/06/24
Fixes
- Fix the
ControlPlaneextensions controller to gracefully handle the absence of a Kong Gateway Enterprise license on startup. - Do not require existence of
certmanager.io/v1.certificatesCRD whenKonnectCertificateOptionsis empty inDataPlane. - Fix version reporting in logs and via
-versionCLI arg - Fix enforcing up to date
ControlPlane’sValidatingWebhookConfiguration
Changes
-
Gatewaydo not have theirReadystatus condition set anymore. - This aligns with Gateway API and its conformance test suite.
-
Gateways’ listeners now have theirattachedRoutescount filled in status. - Detect when
ControlPlanehas its admission webhook disabled via -
CONTROLLER_ADMISSION_WEBHOOK_LISTENenvironment variable and ensure that - relevant webhook resources are not created/deleted.
- The
OwnerReferenceson cluster-wide resources to indicate their owner are now - replaced by a proper set of labels to identify
kind,namespace, and -
nameof the owning object. - Default version of
ControlPlaneis bumped to 3.2.0
Breaking Changes
- Changes project layout to match
kubebuilderv4. Some import paths (due to dir renames) have changedapis->apiandcontrollers->controller.
Added
- Add
ExternalTrafficPolicytoDataPlane’sServiceOptions
1.2.3
Release date: 2024/04/24
Fixes
- Fixed an issue where the managed
Gateways controller wasn’t able to reduce the createdDataPlaneobjects when too many were created. -
Gatewaycontroller will no longer setDataPlanedeployment’s replicas to the default value whenDataPlaneOptionsinGatewayConfigurationdefine a scaling strategy. This effectively allows users to useDataPlanehorizontal autoscaling withGatewayConfigurationbecause the generatedDataPlanedeployment won’t be rejected. - Made creating a
DataPlaneindex conditional based on enabling theControlPlanecontroller. This allows KGO to run without theControlPlaneCRD with its controller disabled.
1.2.2
Release date: 2024/04/23
NOTE: Retracted
v1.2.2 was retracted due to a misplaced git tag. Due to Golang’s proxy caching modules indefinitely we needed to retract this version. v1.2.3 contains all the changes that v1.2.2 intended to contain.
1.2.1
Release date: 2024/03/20
Fixes
- Fixed an issue where operator wasn’t able to update
ControlPlaneClusterRoleorClusterRoleBindingwhen they got out of date. - Add missing watch RBAC policy rule for cert-manager’s Certificate resources
Changes
- KGO now uses
GATEWAY_OPERATOR_prefix for all flags, including thezaprelated logging flags.
1.2.0
Release date: 2024/03/15
Highlights
- 🎓 The Managed
Gateways feature is now GA. - 🎓
ControlPlaneandGatewayConfigAPIs have been promoted tov1beta1. - ✨
DataPlanes managed byGateways can be now scaled horizontally through theGatewayConfigurationAPI. - ✨
Gatewaylisteners are dynamically mapped to theDataPlaneproxy service ports. - 🧠 The new feature
AIGatewayhas been released inalphastage. - ✨ Kong Gateway Operator exposes metrics with latency that can be used for autoscaling of your workloads.
- ✨ Automated handling of certificates for Konnect’s PKI mode with cert-manager.
Added
- Added support for specifying command line flags through environment
variables having the
GATEWAY_OPERATOR_prefix. - Add horizontal autoscaling for
DataPlanes using itsscaling.horizontalspec field. -
ControlPlanes now use Gateway Discovery by default, with Service DNS Strategy. Additionally, theDataPlanereadiness probe has been changed to/status/readywhen theDataPlaneis managed by aGateway. -
Gateways andListenersAcceptedandConflictedconditions are now set and enforced based on the Gateway API specifications. -
ControlPlaneClusterRoles andClusterRoleBindings are enforced and kept up to date by theControlPlanecontroller. - The
Gatewaylisteners are now dynamically mapped toDataPlaneingress service ports. This means that the change of aGatewayspec leads to aDataPlanereconfiguration, along with an ingress service update. -
--enable-controller-gatewayand--enable-controller-controlplanecommand line flags are set totrueby default to enable controllers forGateways andControlPlanes. - When the
Gatewaycontroller provisions aControlPlane, it sets theCONTROLLER_GATEWAY_TO_RECONCILEenv variable to let theControlPlanereconcile that specificGatewayonly. -
ControlPlaneis now deployed with a validating webhook server turned on. This involves creatingValidatingWebhookConfiguration, aServicethat exposes the webhook and aSecretthat holds a TLS certificate. TheSecretis mounted in theControlPlane’sPodfor the webhook server to use it. - Added
konnectCertificatefield to the DataPlane resource. - Added
v1alpha1.AIGatewayas an experimental API. This can be enabled by manually deploying theAIGatewayCRD and enabling the feature on the controller manager with the--enable-controller-aigatewayflag. - Added validation on checking if ports in
KONG_PORT_MAPSandKONG_PROXY_LISTENenvironment variables of deployment options inDataPlanematch theportsin the ingress service options of theDataPlane. - Support for KongLicense CRD to manage Kong Gateway Enterprise licenses.
- New ControlPlane extensions controller to manage control plane extensions with initial support for
DataPlaneMetricsExtension. - DataPlane Prometheus metrics scrapping support for
DataPlaneMetricsExtension. - DataPlane resources can provision cert-manager Certificate resources from a (Cluster) Issuer for use with Konnect’s PKI mode.
- ControlPlane extensions controller now checks for a valid Kong enterprise license.
Changes
- The
GatewayConfigurationAPI has been promoted fromv1alpha1tov1beta1. - The
ControlPlaneAPI has been promoted fromv1alpha1tov1beta1. - The CRD’s short names of
ControlPlane,DataPlaneandGatewayConfigurationhas been changed tokocp,kodpandkogc. -
ControlPlane(Kong Ingress Controller) default and minimum version has been bumped to 3.1.2. -
DataPlane(Kong Gateway) default version has been bumped tov3.6.0.
Fixes
- Fixed a problem where the operator would not set the defaults to
PodTemplateSpecpatch and because of that it would detect a change and try to reconcile the owned resource where in fact the change was not there. One of the symptoms of this bug could have been aStartupProbeset inPodSpecpreventing theDataPlanefrom getting correct status information. - If the Gateway controller is enabled,
DataPlaneandControlPlanecontrollers get enabled as well. - Fix applying the
PodTemplateSpecpatch so that it’s not applied when the calculated patch (resulting from the generated manifest and current in-cluster state) is empty. One of the symptoms of this bug was that when users tried to apply aReadinessProbewhich specified a port name instead of a number (which is what’s generated by the operator) it would never reconcile and the status conditions would never get up to dateObservedGeneration. - Fix manager RBAC permissions which prevented the operator from being able to
create
ControlPlane’sClusterRoles, list pods or listEndpointSlices. -
DataPlanes with BlueGreen rollout strategy enabled will now have its Ready status condition updated to reflect “live”DeploymentandServices status. - The
ControlPlaneelection-idhas been changed so that everyControlPlanehas its ownelection-id, based on theControlPlanename. This preventspods belonging to differentControlPlanes from competing for the same lease. - Fill in the defaults for
envandvolumeswhen comparing the in-cluster spec with the generated spec. - Do not flap
DataPlane’sReadystatus condition when e.g. ingressServicecan’t get an address assigned andspec.network.services.ingress.annotations` is non-empty. - Update or recreate a
ClusterRoleBindingfor control planes if the existing one does not contain theServiceAccountused byControlPlane, orClusterRoleis changed. - Retry reconciling
Gateways when provisioning ownedDataPlanefails.
1.1.0
Release date: 2023/11/20
Added
- Add support for
ControlPlanev3.0by updating the generatedClusterRole.
Changes
- Bump
ControlPlanedefault version tov3.0. - Bump Gateway API to v1.0.
Fixes
- Operator
Rolegeneration is fixed. As a result it contains now less rules hence the operator needs less permissions to run.