Releases: linkerd/linkerd2
edge-19.8.7
- Controller
- Added Kubernetes events (and log lines) when the proxy injector injects a
deployment, and when injection is skipped - Additional preparation for configuring the cluster base domain (thanks
@arminbuerkle!)
- Added Kubernetes events (and log lines) when the proxy injector injects a
- Proxy
- Changed the proxy to require the
LINKERD2_PROXY_DESTINATION_SVC_ADDR
environment variable when starting up
- Changed the proxy to require the
- Web UI
- Increased dashboard speed by consolidating existing Prometheus queries
edge-19.8.6
A new Grafana dashboard has been added which shows historical data for a
selected namespace. The build process for controller components now requires
Go 1.12.9. Additional contributions were made towards support for custom
cluster domains.
- Web UI
- Added a
Linkerd NamespaceGrafana dashboard, allowing users to view
historical data for a given namespace, similar to CLI output for
linkerd stat deploy -n myNs(thanks @bourquep!)
- Added a
- Internal
- Added requirement for Go
1.12.9for controller builds to include
security fixes - Set
LINKERD2_PROXY_DESTINATION_GET_SUFFIXESproxy environment variable,
in preparation for custom cluster domain support (thanks @arminbuerkle!)
- Added requirement for Go
stable-2.5.0
Announcing Linkerd 2.5 🎈
This release adds Helm support, tap authentication and authorization via RBAC,
traffic split stats, dynamic logging levels, a new cluster monitoring dashboard,
and countless performance enhancements and bug fixes.
For more details, see the announcement blog post:
https://linkerd.io/2019/08/20/announcing-linkerd-2.5/
To install this release, run: curl https://run.linkerd.io/install | sh
Upgrade notes: Use the linkerd upgrade command to upgrade the control
plane. This command ensures that all existing control plane's configuration and
mTLS secrets are retained. For more details, please see the upgrade
instructions.
Special thanks to: @alenkacz, @codeman9, @ethan-daocloud, @jonathanbeber,
and @Pothulapati!
Full release notes:
- CLI
- New Updated
linkerd tap,linkerd topandlinkerd profile --tapto
requiretap.linkerd.ioRBAC privileges. See https://linkerd.io/tap-rbac
for more info - New Added traffic split metrics via
linkerd stat trafficsplits
subcommand - Made the
linkerd routescommand traffic split aware - Introduced the
linkerd --asflag which allows users to impersonate another
user for Kubernetes operations - Introduced the
--all-namespaces(-A) option to thelinkerd get,
linkerd edgesandlinkerd statcommands to retrieve resources across
all namespaces - Improved the installation report produced by the
linkerd checkcommand
to include the control plane pods' live status - Fixed bug in the
linkerd upgrade configcommand that was causing it to
crash - Introduced
--use-wait-flagto thelinkerd install-cnicommand, to
configure the CNI plugin to use the-wflag foriptablescommands - Introduced
--restrict-dashboard-privilegesflag tolinkerd install
command, to disallow tap in the dashboard - Fixed
linkerd uninjectnot removinglinkerd.io/inject: enabled
annotations - Fixed
linkerd stat -hexample commands (thanks @ethan-daocloud!) - Fixed incorrect "meshed" count in
linkerd statwhen resources share the
same label selector for pods (thanks @jonathanbeber!) - Added pod status to the output of the
linkerd statcommand (thanks
@jonathanbeber!) - Added namespace information to the
linkerd edgescommand output and a new
-o wideflag that shows the identity of the client and server if known - Added a check to the
linkerd checkcommand to validate the user has
privileges necessary to create CronJobs - Added a new check to the
linkerd check --precommand validating that if
PSP is enabled, the NET_RAW capability is available
- New Updated
- Controller
- New Disabled all unauthenticated tap endpoints. Tap requests now require
RBAC authentication and authorization - New Introduced optional cluster heartbeat cron job
- The
l5d-require-idheader is now set on tap requests so that a connection
is established over TLS - Introduced a new RoleBinding in the
kube-systemnamespace to provide
access to tap - Added HTTP security headers on all dashboard responses
- Added support for namespace-level proxy override annotations (thanks
@Pothulapati!) - Added resource limits when HA is enabled (thanks @Pothulapati!)
- Added pod anti-affinity rules to the control plane pods when HA is enabled
(thanks @Pothulapati!) - Fixed a crash in the destination service when an endpoint does not have a
TargetRef - Updated the destination service to return
InvalidArgumentfor external
name services so that the proxy does not immediately fail the request - Fixed an issue with discovering StatefulSet pods via their unique hostname
- Fixed an issue with traffic split where outbound proxy stats are missing
- Upgraded the service profile CRD to v1alpha2. No changes required for users
currently using v1alpha1 - Updated the control plane's pod security policy to restrict workloads from
running asrootin the CNI mode (thanks @codeman9!) - Bumped Prometheus to 2.11.1
- Bumped Grafana to 6.2.5
- New Disabled all unauthenticated tap endpoints. Tap requests now require
- Proxy
- New Added a new
/proxy-log-levelendpoint to update the log level at
runtime - New Updated the tap server to only admit requests from the control
plane's tap controller - Added
request_handle_ushistogram to measure proxy overhead - Fixed gRPC client cancellations getting recorded as failures rather than
as successful - Fixed a bug where tap would stop streaming after a short amount of time
- Fixed a bug that could cause the proxy to leak service discovery resolutions
to the Destination controller
- New Added a new
- Web UI
- New Added "Kubernetes cluster monitoring" Grafana dashboard with cluster
and containers metrics - Updated the web server to use the new tap APIService. If the
linkerd-web
service account is not authorized to tap resources, users will see a link to
documentation to remedy the error
- New Added "Kubernetes cluster monitoring" Grafana dashboard with cluster
edge-19.8.5
This edge release is a release candidate for stable-2.5.
- CLI
- Fixed CLI filepath issue on Windows
- Proxy
- Fixed gRPC client cancellations getting recorded as failures rather than
as successful
- Fixed gRPC client cancellations getting recorded as failures rather than
edge-19.8.4
This edge release is a release candidate for stable-2.5.
- CLI
- Introduced
--use-wait-flagto thelinkerd install-cnicommand, to
configure the CNI plugin to use the-wflag foriptablescommands
- Introduced
- Controller
- Disabled the tap gRPC server listener. All tap requests now require RBAC
authentication and authorization
- Disabled the tap gRPC server listener. All tap requests now require RBAC
edge-19.8.3
This edge release introduces a new linkerd stat trafficsplits subcommand, to
show traffic split metrics. It also introduces a "Kubernetes cluster monitoring"
Grafana dashboard.
- CLI
- Added traffic split metrics via
linkerd stat trafficsplitssubcommand - Fixed
linkerd uninjectnot removinglinkerd.io/inject: enabled
annotations - Fixed
linkerd stat -hexample commands (thanks @ethan-daocloud!)
- Added traffic split metrics via
- Controller
- Removed unauthenticated tap from the Public API
- Proxy
- Added
request_handle_ushistogram to measure proxy overhead - Updated the tap server to only admit requests from the control plane's tap
controller - Fixed a bug where tap would stop streaming after a short amount of time
- Fixed a bug that could cause the proxy to leak service discovery resolutions
to the Destination controller
- Added
- Web UI
- Added "Kubernetes cluster monitoring" Grafana dashboard with cluster and
containers metrics
- Added "Kubernetes cluster monitoring" Grafana dashboard with cluster and
- Internal
- Updated
linkerd installandlinkerd upgradeto use Helm charts for
templating - Pinned Helm tooling to
v2.14.3 - Added Helm integration tests
- Added container CPU and memory usage to
linkerd-heartbeatrequests - Removed unused inject code (thanks @alenkacz!)
- Updated
edge-19.8.2
edge-19.8.2
This edge release introduces the new Linkerd control plane Helm chart, named
linkerd2. Helm users can now install and remove the Linkerd control plane by
using the helm install and helm delete commands. Proxy injection also now
uses Helm charts.
No changes were made to the existing linkerd install behavior.
For detailed installation steps using Helm, see the notes for PR
#3146.
- CLI
- Updated
linkerd topandlinkerd profile --tapto require
tap.linkerd.ioRBAC privileges, see https://linkerd.io/tap-rbac for more
info - Modified
tap.linkerd.ioAPIService to enable usage inkubectl auth can-i
commands - Introduced
--restrict-dashboard-privilegesflag tolinkerd install
command, to restrict the dashboard's default privileges to disallow tap - Controller
- Introduced a new ClusterRole,
linkerd-linkerd-tap-admin, which gives
cluster-wide tap privileges. Also introduced a new ClusterRoleBinding,
linkerd-linkerd-web-admin, which binds thelinkerd-webservice account
to the new tap ClusterRole - Removed successfully completed
linkerd-heartbeatjobs from pod listing in
the linkerd control plane to streamlineget pooutput (thanks
@Pothulapati!)
- Introduced a new ClusterRole,
- Web UI
- Updated the web server to use the new tap APIService. If the
linkerd-web
service account is not authorized to tap resources, users will see a link to
documentation to remedy the error
- Updated the web server to use the new tap APIService. If the
edge-19.8.1
edge-19.8.1
Significant Update
This edge release introduces a new tap APIService. The Kubernetes apiserver
authenticates the requesting tap user and then forwards tap requests to the new
tap APIServer. The linkerd tap command now makes requests against the
APIService.
With this release, users must be authorized via RBAC to use the linkerd tap
command. Specifically linkerd tap requires the watch verb on all resources
in the tap.linkerd.io/v1alpha1 APIGroup. More granular access is also
available via sub-resources such as deployments/tap and pods/tap.
Note: There is a known RBAC issue with linkerd tap on GKE clusters, being
tracked at #3191. The following command works around this by giving your user
cluster-admin permissions:
kubectl create clusterrolebinding \
$(whoami)-cluster-admin \
--clusterrole=cluster-admin \
--user=$(gcloud config get-value account)More details at: https://linkerd.io/tap-rbac
- CLI
- Added a check to the
linkerd checkcommand to validate the user has
privileges necessary to create CronJobs - Introduced the
linkerd --asflag which allows users to impersonate another
user for Kubernetes operations - The
linkerd tapcommand now makes requests against the tap APIService
- Added a check to the
- Controller
- Added HTTP security headers on all dashboard responses
- Fixed nil pointer dereference in the destination service when an endpoint
does not have aTargetRef - Added resource limits when HA is enabled
- Added RSA support to TLS libraries
- Updated the destination service to return
InvalidArgumentfor external
name services so that the proxy does not immediately fail the request - The
l5d-require-idheader is now set on tap requests so that a connection
is established over TLS - Introduced the
APIService/v1alpha1.tap.linkerd.ioglobal resource - Introduced the
ClusterRoleBinding/linkerd-linkerd-tap-auth-delegator
global resource - Introduced the
Secret/linkerd-tap-tlsresource into thelinkerd
namespace - Introduced the
RoleBinding/linkerd-linkerd-tap-auth-readerresource into
thekube-systemnamespace
- Proxy
- Added the
LINKERD2_PROXY_TAP_SVC_NAMEenvironment variable so that the tap
server attempts to authorize client identities
- Added the
- Internal
- Replaced
depwith Go modules for dependency management
- Replaced
edge-19.7.5
This is an edge release of Linkerd! The latest stable release is stable-2.4.0.
To install this edge release, run: curl https://run.linkerd.io/install-edge | sh
- CLI
- Improved the installation report produced by the
linkerd checkcommand
to include the control plane pods' live status - Added the
--all-namespaces(-A) option to thelinkerd get,
linkerd edgesandlinkerd statcommands to retrieve resources across
all namespaces
- Improved the installation report produced by the
- Controller
- Fixed an issue with discovering StatefulSet pods via their unique hostname
- Fixed an issue with traffic split where outbound proxy stats are missing
- Bumped Prometheus to 2.11.1
- Bumped Grafana to 6.2.5
- Upgraded the service profile CRD to v1alpha2 where the openAPIV3Schema
validation is replaced by a validating admission webhook. No changes
required for users currently using v1alpha1 - Updated the control plane's pod security policy to restrict workloads from
running asrootin the CNI mode (thanks @codeman9!) - Introduced cluster heartbeat cron job
- Proxy
- Introduced the
l5d-require-idheader to enforce TLS outbound
communication from the Tap server
- Introduced the
edge-19.7.4
This is an edge release of Linkerd! The latest stable release is stable-2.4.0.
To install this edge release, run: curl https://run.linkerd.io/install-edge | sh
- CLI
- Made the
linkerd routescommand traffic-split aware - Fixed bug in the
linkerd upgrade configcommand that was causing it to crash - Added pod status to the output of the
linkerd statcommand (thanks
@jonathanbeber!) - Fixed incorrect "meshed" count in
linkerd statwhen resources share the
same label selector for pods (thanks @jonathanbeber!) - Added namespace information to the
linkerd edgescommand output and a new
-o wideflag that shows the identity of the client and server if known - Added a new check to the
linkerd check --precommand validating that if
PSP is enabled, the NET_RAW capability is available
- Made the
- Controller
- Added pod anti-affinity rules to the control plane pods when HA is enabled
(thanks @Pothulapati!)
- Added pod anti-affinity rules to the control plane pods when HA is enabled
- Proxy
- Improved performance by using a constant-time load balancer
- Added a new
/proxy-log-levelendpoint to update the log level at runtime