Releases: linkerd/linkerd2
edge-23.9.4
edge-23.9.4
This edge release makes Linkerd even better.
- Added a controlPlaneVersion override to the
linkerd-control-planeHelm chart
to support including SHA256 image digests in Linkerd manifests (thanks
@cromulentbanana!) (#11406) - Improved
linkerd viz checkto attempt to validate that the Prometheus scrape
interval will work well with the CLI and Web query parameters (#11376) - Improved CLI error handling to print differentiated error information when
versioncheck.linkerd.io cannot be resolved (thanks @dtaskai) (#11377) - Fixed an issue where the destination controller would not update pod metadata
for profile resolutions for a pod accessed via the host network (e.g.
HostPort endpoints) (#11334). - Added a validating webhook config for httproutes.gateway.networking.k8s.io
resources (thanks @mikutas!) (#11150) - Introduced a new
multicluster check --timeoutflag to limit the time
allowed for Kubernetes API calls (thanks @moki1202) (#11420)
stable-2.13.7
stable-2.13.7
This stable release backports two fixes that address security
vulnerabilities. The proxy's dependency on the webpki library has been updated
to patch RUSTSEC-2023-0052, a potential CPU usage denial-of-service attack
when accepting a TLS handshake from an untrusted peer. In addition, the CNI and
proxy-init images have been updated to patch CVE-2023-2603 surfaced in the
runtime image's libcap library. Finally, the release contains a backported fix
for service discovery on endpoints that use hostPorts which could potentially
disrupt connections on pod restarts.
-
Control Plane
- Changed how hostPort lookups are handled in the destination service.
Previously, when doing service discovery for an endpoint bound on a
hostPort, the destination service would return the corresponding pod IP. On
pod restart, this could lead to loss of connectivity on the client's side.
The destination service now always returns host IPs for service discovery
on an endpoint that uses hostPorts (#11328)
- Changed how hostPort lookups are handled in the destination service.
-
Proxy
- Addressed security vulnerability RUSTSEC-2023-0052 (#11389)
-
CNI
- Addressed security vulnerability CVE-2023-2603 in proxy-init and CNI
plugin (#11348)
- Addressed security vulnerability CVE-2023-2603 in proxy-init and CNI
stable-2.14.1
stable-2.14.1
This stable release introduces a fix for service discovery on endpoints that
use hostPorts. Previously, the destination service would return the pod IP
associated with the endpoint which could break connectivity on pod restarts.
Discovery responses have been changed to instead return the host IP. This
release also fixes an issue in the multicluster extension where an empty
remoteDiscoverySelector field in the Link resource would cause all services
to be exported. Finally, this release includes numerous other fixes and
enhancements and addresses two security vulnerabilities,
CVE-2023-2603 detected in the proxy-init runtime
image's libcap library and RUSTSEC-2023-0052, a
potential CPU usage denial-of-service attack in the proxy's webpki library
dependency.
-
CLI
-
CNI
- Addressed security vulnerability CVE-2023-2603 in
proxy-init and CNI plugin ([#11296])
- Addressed security vulnerability CVE-2023-2603 in
-
Control Plane
- Changed how hostPort lookups are handled in the destination service.
Previously, when doing service discovery for an endpoint bound on a
hostPort, the destination service would return the corresponding pod IP. On
pod restart, this could lead to loss of connectivity on the client's side.
The destination service now always returns host IPs for service discovery
on an endpoint that uses hostPorts ([#11328]) - Updated HTTPRoute webhook rule to validate all apiVersions of the resource
(thanks @mikutas!) ([#11149])
- Changed how hostPort lookups are handled in the destination service.
-
Helm
-
Multicluster
- Fixed an issue where an empty
remoteDiscoverySelectorfield in a
multicluster link would cause all services to be mirrored ([#11309]) - Removed time out from
linkerd multicluster gatewayscommand; when no
metrics exist the command will return instantly ([#11265]) - Improved help messaging for
linkerd multicluster link([#11265])
- Fixed an issue where an empty
-
Proxy
- Addressed security vulnerability
RUSTSEC-2023-0052 in the proxy ([#11361])
- Addressed security vulnerability
edge-23.9.3
edge-29.9.3
This edge release updates the proxy's dependency on the rustls library to
patch security vulnerability RUSTSEC-2023-0052
(GHSA-8qv2-5vq6-g2g7), a potential CPU usage denial-of-service attack when
acceting a TLS handshake from an untrusted peer with a maliciously-crafted
certificate. Furthermore, this edge release contains a few improvements to the
control plane and jaeger extension Helm charts.
- Addressed security vulnerability RUSTSEC-2023-0052 in
the proxy by updating its dependency on therustlslibrary - Added a
prometheusUrlfield for the heartbeat job in the control plane Helm
chart (thanks @david972!) (#11343; fixes #11342) - Introduced support for arbitrary labels in the
podMonitorsfield in the
control plane Helm chart (thanks @jseiser!) (#11222; fixes #11175) - Added support for config merge and Deployment environment to
opentelemetry-collectorin the jaeger extension (thanks @iAnomaly!)
(#11283)
edge-23.9.2
edge-29.9.2
This edge release updates the proxy's dependency on the webpki library to
patch security vulnerability RUSTSEC-2023-0052 (GHSA-8qv2-5vq6-g2g7), a
potential CPU usage denial-of-service attack when accepting a TLS handshake from
an untrusted peer with a maliciously-crafted certificate.
- Addressed security vulnerability RUSTSEC-2023-0052 in the proxy (#11361)
- Fixed
linkerd check --proxyincorrectly checking the proxy version of pods
in thecompletedstate (thanks @mikutas!) (#11295; fixes #11280) - Removed unnecessary
linkerd.io/helm-release-versionannotation from the
linkerd-control-planeHelm chart (thanks @mikutas!) (#11329; fixes
#10778)
edge-23.9.1
edge-23.9.1
This edge release introduces a fix for service discovery on endpoints that use
hostPorts. Previously, the destination service would return the pod IP for the
discovery request which could break connectivity on pod restart. To fix this,
direct pod communication for a pod bound on a hostPort will always return the
hostIP. In addition, this release fixes a security vulnerability (CVE-2023-2603)
detected in the CNI plugin and proxy-init images, and includes a number of other
fixes and small improvements.
- Addressed security vulnerability CVE-2023-2603 in proxy-init and CNI plugin
(#11296) - Introduced resource requests/limits for the policy controller resource in the
control plane helm chart (#11301) - Fixed an issue where an empty
remoteDiscoverySelectorfield in a
multicluster link would cause all services to be mirrored (#11309) - Removed time out from
linkerd multicluster gatewayscommand; when no
metrics exist the command will return instantly (#11265) - Improved help messaging for
linkerd multicluster link(#11265) - Changed how hostPort lookups are handled in the destination service.
Previously, when doing service discovery for an endpoint bound on a hostPort,
the destination service would return the corresponding pod IP. On pod
restart, this could lead to loss of connectivity on the client's side. The
destination service now always returns host IPs for service discovery on an
endpoint that uses hostPorts (#11328) - Updated HTTPRoute webhook rule to validate all apiVersions of the resource
(thanks @mikutas!) (#11149) - Fixed erroneous
skippedmessages when injecting namespaces withlinkerd inject(thanks @mikutas!) (#10231)
stable-2.12.6
stable-2.12.6
This stable release backports a service mirror memory leak fix. The service
mirror previously had an issue where certain resources weren't cleaned up
properly resulting in a memory leak.
- Fixed a memory leak in the multicluster service mirror component (10746)
stable-2.14.0
stable-2.14.0
This release introduces direct pod-to-pod multicluster service mirroring. When
clusters are deployed on a flat network, Linkerd can export multicluster
services in a way where cross-cluster traffic does not need to go through the
gateway. This enhances multicluster authentication and can reduce the need for
provisioning public load balancers.
In addition, this release adds support for the
Gateway API HTTPRoute resource (in the
gateway.networking.k8s.io api group). This improves compatibility with other
tools that use these resources such as Flagger and
Argo Rollouts. The release also includes
a large number of features and improvements to HTTPRoute including the ability
to set timeouts and the ability to define consumer-namespace HTTPRoutes.
Finally, this release includes a number of bugfixes, performance improvements,
and other smaller additions.
Upgrade notes: Please see the
upgrade instructions.
- Multicluster
- Remove namespace field from cluster scoped resources to fix pruning
- Added -o json flag for the
linkerd multicluster gatewayscommand (thanks
@hiteshwani29) - Introduced
logFormatvalue to the multiclusterLinkHelm Chart (thanks
@bunnybilou!) - Added leader-election capabilities to the service-mirror controller
- Added high-availability (HA) mode for the multicluster service-mirror
- Added a new
remoteDiscoverySelectorfield to the multiclusterLinkCRD,
which enables a service mirroring mode where the control plane
performs discovery for the mirrored service from the remote cluster, rather
than creating Endpoints for the mirrored service in the source cluster
- HTTPRoute
- Fixed
linkerd uninstallissue for HTTPRoute - Added support for
gateway.networking.k8s.ioHTTPRoutes in the policy
controller - Added support for RequestHeaderModifier and RequestRedirect HTTP filters in
outbound policy; filters may be added at the route or backend level - Added support for the
ResponseHeaderModifierHTTPRoute filter - Added support for HTTPRoutes defined in the consumer namespace
- Added support for HTTPRoute
parent_refsthat do not specify a port
- Fixed
- CRDs
- Patched the MeshTLSAuthentication CRD to force providing at least one
identity/identityRef
- Patched the MeshTLSAuthentication CRD to force providing at least one
- Control Plane
- Send Opaque protocol hint for opaque ports in destination controller
- Replaced deprecated
failure-domain.beta.kubernetes.io/zonelabels in Helm
charts withtopology.kubernetes.io/zonelabels (thanks @piyushsingariya!) - Replaced
server_port_subscribersDestination controller gauge metric with
server_port_subscribesandserver_port_unsubscribescounter metrics
- Proxy
- Handle Opaque protocol hints on endpoints
- Added
outbound_http_balancer_endpointsmetric - Fixed missing route_ metrics for requests with ServiceProfiles
- Fixed proxy startup failure when using the
config.linkerd.io/admin-port
annotation (thanks @jclegras!) - Added distinguishable version information to proxy logs and metrics
- CLI
- The
linkerd diagnostics policycommand now displays outbound policy when
the target resource is a Service - A fix for HA validation checks when Linkerd is installed with Helm. Thanks
@mikutas!!
- The
- Viz
- Add the
kubeletNetworkAuthentication back since it is used by the
linkerd viz allow-scrapessubcommand. - Fixed the
linkerd viz checkcommand so that it will wait until the viz
extension becomes ready - Fixed an issue where specifying a
remote_writeconfig would cause the
Prometheus config to be invalid (thanks @hiteshwani29) - Improved validation of the
--toand--fromflags for thelinkerd viz stat
command (thanks @pranoyk) - Added
-o jsonpathflag tolinkerd viz tapto allow filtering output fields
(thanks @hiteshwani29!) - Fixed a Grafana error caused by an incorrect datasource (thanks @albundy83!)
- Fixed missing "Services" menu item in the Spanish localization for the
linkerd-vizweb dashboard (thanks @mclavel!)
- Add the
- Extensions
- Added missing label
linkerd.io/extensionto certain resources to ensure they
pruned when appropriate (thanks @ClementRepo) - Added tolerations and nodeSelector support in extensions
namespace-metadata
Jobs (thanks @pssalman!)
- Added missing label
- Init Containers
- Added an option for disabling the network validator's security context for
environments that provide their own
- Added an option for disabling the network validator's security context for
- CNI
- Added --set flag to install-cni plugin (thanks @amit-62!)
- Fixed missing resource-cni labels on linkerd-cni, this blocked the
linkerd-cni pods from coming up when the injector was broken (thanks
@migueleliasweb!)
- Build
- Build improvements for multi-arch build artifacts. Thanks @MarkSRobinson!!
This release includes changes from a massive list of contributors! A special
thank-you to everyone who helped make this release possible:
- Amir Karimi @amk9978
- Amit Kumar @amit-62
- Andre Marcelo-Tanner @kzap
- Andrew @andrew-gropyus
- Arnaud Beun @bunnybilou
- Clement @proxfly
- Dima @krabradosty
- Grégoire Bellon-Gervais @albundy83
- Harsh Soni @harsh020
- Jean-Charles Legras @jclegras
- Loong Dai @daixiang0
- Mark Robinson @MarkSRobinson
- Miguel Elias dos Santos @migueleliasweb
- Pranoy Kumar Kundu @pranoyk
- Ryan Hristovski @ryanhristovski
- Takumi Sue @mikutas
- Zakhar Bessarab @zekker6
- hiteshwani29 @hiteshwani29
- pheianox
- pssalman @pssalman
edge-23.8.3
edge-23.8.3
This is a release candidate for stable-2.14.0; we encourage you to help trying
it out!
This edge release contains a number of improvements over the multi-cluster
features introduced in the last edge release supporting flat networks. It also
hardens the containers security stance by removing write access to the root
filesystem.
- Enhanced
linkerd multicluster linkto allow clusters to be linked without a
gateway (#11226) - Added cluster store size gauge metric (#11256)
- Disabled local traffic policy for remote discovery (#11257)
- Fixed various innocuous multi-cluster warnings (#11251, #11246, #11253)
- Set
readOnlyRootFilesystem: truein all the containers, as they don't
require write permissions (#11221; fixes #11142) (thanks @mikutas!)
edge-23.8.2
edge-23.8.2
This edge release adds improvements to Linkerd's multi-cluster features as part
of the flat network support planned for Linkerd stable-2.14.0. In addition, it
fixes an issue (#10764) where warnings about an invalid metric were logged
frequently by the Destination controller.
- Added a new
remoteDiscoverySelectorfield to the multiclusterLinkCRD,
which enables a service mirroring mode where the control plane
performs discovery for the mirrored service from the remote cluster, rather
than creating Endpoints for the mirrored service in the source cluster
(#11190, #11201, #11220, and #11224) - Fixed missing "Services" menu item in the Spanish localization for the
linkerd-vizweb dashboard (#11229) (thanks @mclavel!) - Replaced
server_port_subscribersDestination controller gauge metric with
server_port_subscribesandserver_port_unsubscribescounter metrics
(#11206; fixes #10764) - Replaced deprecated
failure-domain.beta.kubernetes.io/zonelabels in Helm
charts withtopology.kubernetes.io/zonelabels (#11148; fixes #11114)
(thanks @piyushsingariya!)