Repository: linkerd/linkerd2
Pull request #11994 (2024-01-26 18:50:05)

edge-24.1.3
This release continues support for ExternalWorkload resources throughout the
control and data planes.

* Updated the proxy to use SPIRE to instrument identity outside of Kubernetes.
* Updated the Destination controller to return `INVALID_ARGUMENT` status codes
  properly when a `ServiceProfile` is requested for a service that does not
  exist. (#11980)
* Introduced an ExternalWorkload EndpointSlice controller has been added to the
  Destination controller.
* Added a `createNamespaceMetadataJob` Helm value to control whether the
  namespace-metadata job is run during install (#11782)


Patch:
diff --git a/.proxy-version b/.proxy-version
index 92433673c..ae0690977 100644
--- a/.proxy-version
+++ b/.proxy-version
@@ -1,1 +1,1 @@
-v2.219.0
+v2.220.0
diff --git a/CHANGES.md b/CHANGES.md
index a3a3bd278..c00ec9e9c 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,19 @@
 # Changes
 
+## edge-24.1.3
+
+This release continues support for ExternalWorkload resources throughout the
+control and data planes.
+
+* Updated the proxy to use SPIRE to instrument identity outside of Kubernetes.
+* Updated the Destination controller to return `INVALID_ARGUMENT` status codes
+  properly when a `ServiceProfile` is requested for a service that does not
+  exist. (#11980)
+* An ExternalWorkload EndpointSlice controller has been added to the
+  Destination controller.
+* Added a `createNamespaceMetadataJob` Helm value to control whether the
+  namespace-metadata job is run during install (#11782)
+
 ## edge-24.1.2
 
 This edge release incrementally improves support for ExternalWorkload resources
diff --git a/charts/linkerd-control-plane/Chart.yaml b/charts/linkerd-control-plane/Chart.yaml
index ad7d38dae..09c118e41 100644
--- a/charts/linkerd-control-plane/Chart.yaml
+++ b/charts/linkerd-control-plane/Chart.yaml
@@ -16,7 +16,7 @@ dependencies:
   - name: partials
     version: 0.1.0
     repository: file://../partials
-version: 1.18.5-edge
+version: 1.18.6-edge
 icon: https://linkerd.io/images/logo-only-200h.png
 maintainers:
   - name: Linkerd authors
diff --git a/charts/linkerd-control-plane/README.md b/charts/linkerd-control-plane/README.md
index ba91dbb63..4f3769e0b 100644
--- a/charts/linkerd-control-plane/README.md
+++ b/charts/linkerd-control-plane/README.md
@@ -3,7 +3,7 @@
 Linkerd gives you observability, reliability, and security
 for your microservices — with no code change required.
 
-![Version: 1.18.5-edge](https://img.shields.io/badge/Version-1.18.5--edge-informational?style=flat-square)
+![Version: 1.18.6-edge](https://img.shields.io/badge/Version-1.18.6--edge-informational?style=flat-square)
 ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
 ![AppVersion: edge-XX.X.X](https://img.shields.io/badge/AppVersion-edge--XX.X.X-informational?style=flat-square)
 
diff --git a/cli/cmd/endpoints.go b/cli/cmd/endpoints.go
index a25238b00..098908e26 100644
--- a/cli/cmd/endpoints.go
+++ b/cli/cmd/endpoints.go
@@ -28,6 +28,7 @@ import (
 type endpointsOptions struct {
 	outputFormat   string
 	destinationPod string
+	contextToken   string
 }
 
 type (
@@ -117,7 +118,7 @@ destination.`,
 
 			defer conn.Close()
 
-			endpoints, err := requestEndpointsFromAPI(client, args)
+			endpoints, err := requestEndpointsFromAPI(client, options.contextToken, args)
 			if err != nil {
 				fmt.Fprintf(os.Stderr, "Destination API error: %s\n", err)
 				os.Exit(1)
@@ -132,13 +133,14 @@ destination.`,
 
 	cmd.PersistentFlags().StringVarP(&options.outputFormat, "output", "o", options.outputFormat, fmt.Sprintf("Output format; one of: \"%s\" or \"%s\"", tableOutput, jsonOutput))
 	cmd.PersistentFlags().StringVar(&options.destinationPod, "destination-pod", "", "Target a specific destination Pod when there are multiple running")
+	cmd.PersistentFlags().StringVar(&options.contextToken, "token", "", "The context token to use when making the request to the destination API")
 
 	pkgcmd.ConfigureOutputFlagCompletion(cmd)
 
 	return cmd
 }
 
-func requestEndpointsFromAPI(client destinationPb.DestinationClient, authorities []string) (endpointsInfo, error) {
+func requestEndpointsFromAPI(client destinationPb.DestinationClient, token string, authorities []string) (endpointsInfo, error) {
 	info := make(endpointsInfo)
 	// buffered channels to avoid blocking
 	events := make(chan *destinationPb.Update, len(authorities))
@@ -151,8 +153,9 @@ func requestEndpointsFromAPI(client destinationPb.DestinationClient, authorities
 			defer wg.Done()
 			if len(errs) == 0 {
 				dest := &destinationPb.GetDestination{
-					Scheme: "http:",
-					Path:   authority,
+					Scheme:       "http:",
+					Path:         authority,
+					ContextToken: token,
 				}
 
 				rsp, err := client.Get(context.Background(), dest)
diff --git a/jaeger/charts/linkerd-jaeger/Chart.yaml b/jaeger/charts/linkerd-jaeger/Chart.yaml
index 80f5a0439..89347846f 100644
--- a/jaeger/charts/linkerd-jaeger/Chart.yaml
+++ b/jaeger/charts/linkerd-jaeger/Chart.yaml
@@ -11,7 +11,7 @@ kubeVersion: ">=1.22.0-0"
 name: linkerd-jaeger
 sources:
   - https://github.com/linkerd/linkerd2/
-version: 30.14.5-edge
+version: 30.14.6-edge
 icon: https://linkerd.io/images/logo-only-200h.png
 maintainers:
   - name: Linkerd authors
diff --git a/jaeger/charts/linkerd-jaeger/README.md b/jaeger/charts/linkerd-jaeger/README.md
index 3c125ab9d..1f1f3bfc2 100644
--- a/jaeger/charts/linkerd-jaeger/README.md
+++ b/jaeger/charts/linkerd-jaeger/README.md
@@ -3,7 +3,7 @@
 The Linkerd-Jaeger extension adds distributed tracing to Linkerd using
 OpenCensus and Jaeger.
 
-![Version: 30.14.5-edge](https://img.shields.io/badge/Version-30.14.5--edge-informational?style=flat-square)
+![Version: 30.14.6-edge](https://img.shields.io/badge/Version-30.14.6--edge-informational?style=flat-square)
 
 ![AppVersion: edge-XX.X.X](https://img.shields.io/badge/AppVersion-edge--XX.X.X-informational?style=flat-square)
 
diff --git a/multicluster/charts/linkerd-multicluster/Chart.yaml b/multicluster/charts/linkerd-multicluster/Chart.yaml
index 0dab84db2..579b5bd1b 100644
--- a/multicluster/charts/linkerd-multicluster/Chart.yaml
+++ b/multicluster/charts/linkerd-multicluster/Chart.yaml
@@ -11,7 +11,7 @@ kubeVersion: ">=1.22.0-0"
 name: "linkerd-multicluster"
 sources:
   - https://github.com/linkerd/linkerd2/
-version: 30.12.14-edge
+version: 30.12.15-edge
 icon: https://linkerd.io/images/logo-only-200h.png
 maintainers:
   - name: Linkerd authors
diff --git a/multicluster/charts/linkerd-multicluster/README.md b/multicluster/charts/linkerd-multicluster/README.md
index 6916e9319..35f36967c 100644
--- a/multicluster/charts/linkerd-multicluster/README.md
+++ b/multicluster/charts/linkerd-multicluster/README.md
@@ -3,7 +3,7 @@
 The Linkerd-Multicluster extension contains resources to support multicluster
 linking to remote clusters
 
-![Version: 30.12.14-edge](https://img.shields.io/badge/Version-30.12.14--edge-informational?style=flat-square)
+![Version: 30.12.15-edge](https://img.shields.io/badge/Version-30.12.15--edge-informational?style=flat-square)
 
 ![AppVersion: edge-XX.X.X](https://img.shields.io/badge/AppVersion-edge--XX.X.X-informational?style=flat-square)
 
diff --git a/viz/charts/linkerd-viz/Chart.yaml b/viz/charts/linkerd-viz/Chart.yaml
index 149f59e15..f66997e04 100644
--- a/viz/charts/linkerd-viz/Chart.yaml
+++ b/viz/charts/linkerd-viz/Chart.yaml
@@ -11,7 +11,7 @@ kubeVersion: ">=1.22.0-0"
 name: "linkerd-viz"
 sources:
   - https://github.com/linkerd/linkerd2/
-version: 30.14.5-edge
+version: 30.14.6-edge
 icon: https://linkerd.io/images/logo-only-200h.png
 maintainers:
   - name: Linkerd authors
diff --git a/viz/charts/linkerd-viz/README.md b/viz/charts/linkerd-viz/README.md
index 0e8852af8..7d6299f7a 100644
--- a/viz/charts/linkerd-viz/README.md
+++ b/viz/charts/linkerd-viz/README.md
@@ -3,7 +3,7 @@
 The Linkerd-Viz extension contains observability and visualization
 components for Linkerd.
 
-![Version: 30.14.5-edge](https://img.shields.io/badge/Version-30.14.5--edge-informational?style=flat-square)
+![Version: 30.14.6-edge](https://img.shields.io/badge/Version-30.14.6--edge-informational?style=flat-square)
 
 ![AppVersion: edge-XX.X.X](https://img.shields.io/badge/AppVersion-edge--XX.X.X-informational?style=flat-square)
 


Test patch:
diff --git a/cli/cmd/endpoints_test.go b/cli/cmd/endpoints_test.go
index e30e90aa7..1e0ff9d4b 100644
--- a/cli/cmd/endpoints_test.go
+++ b/cli/cmd/endpoints_test.go
@@ -130,7 +130,7 @@ func testEndpointsCall(exp endpointsExp, t *testing.T) {
 		},
 	}
 
-	endpoints, err := requestEndpointsFromAPI(mockClient, exp.authorities)
+	endpoints, err := requestEndpointsFromAPI(mockClient, "", exp.authorities)
 	if err != nil {
 		t.Fatalf("Unexpected error: %v", err)
 	}