Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package linkerd-cli-edge for 
openSUSE:Factory checked in at 2026-04-28 11:55:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linkerd-cli-edge (Old)
 and      /work/SRC/openSUSE:Factory/.linkerd-cli-edge.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "linkerd-cli-edge"

Tue Apr 28 11:55:07 2026 rev:73 rq:1349351 version:26.4.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/linkerd-cli-edge/linkerd-cli-edge.changes        
2026-04-18 21:39:00.104033972 +0200
+++ 
/work/SRC/openSUSE:Factory/.linkerd-cli-edge.new.11940/linkerd-cli-edge.changes 
    2026-04-28 11:57:22.444001705 +0200
@@ -1,0 +2,38 @@
+Sun Apr 26 08:02:51 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 26.4.4:
+  * fix(CLI): Apply overrides to chart values on install #15025
+    (#15181)
+  * build(deps): bump bitflags from 2.11.0 to 2.11.1 (#15193)
+  * build(deps): bump typenum from 1.19.0 to 1.20.0 (#15192)
+  * build(deps): bump openssl from 0.10.77 to 0.10.78 (#15202)
+  * Update proxy-init to v2.4.8 & cni-plugin to v1.6.7 (#15190)
+  * fix(inject): use more robust logic to convert annotation to
+    metric label (#15176)
+  * build(deps): bump indexmap from 2.13.1 to 2.14.0 (#15155)
+  * build(deps): bump libc from 0.2.184 to 0.2.185 (#15171)
+  * build(deps-dev): bump sinon from 21.0.3 to 21.1.2 in /web/app
+    (#15158)
+  * build(deps): bump docker/build-push-action from 7.0.0 to 7.1.0
+    (#15165)
+  * build(deps): bump softprops/action-gh-release from 2.6.1 to
+    3.0.0 (#15164)
+  * build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1
+    (#15163)
+  * build(deps): bump follow-redirects from 1.15.6 to 1.16.0 in
+    /web/app (#15168)
+  * build(deps): bump openssl from 0.10.76 to 0.10.77 (#15170)
+  * build(deps): bump openssl-sys from 0.9.112 to 0.9.113 (#15169)
+  * build(deps): bump the kube group with 7 updates (#15177)
+  * build(deps-dev): bump html-webpack-plugin in /web/app (#15184)
+  * build(deps-dev): bump webpack from 5.106.0 to 5.106.2 in
+    /web/app (#15185)
+  * build(deps): bump tj-actions/changed-files from 47.0.5 to
+    47.0.6 (#15186)
+  * build(deps): bump rustls-webpki from 0.103.11 to 0.103.12
+    (#15180)
+  * build(deps): bump github.com/moby/spdystream from 0.5.0 to
+    0.5.1 (#15179)
+  * Chore(deps): upgrade to go 1.25.9 (#15178)
+
+-------------------------------------------------------------------

Old:
----
  linkerd-cli-edge-26.4.3.obscpio

New:
----
  linkerd-cli-edge-26.4.4.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ linkerd-cli-edge.spec ++++++
--- /var/tmp/diff_new_pack.NVSe7C/_old  2026-04-28 11:57:23.500045591 +0200
+++ /var/tmp/diff_new_pack.NVSe7C/_new  2026-04-28 11:57:23.504045758 +0200
@@ -19,7 +19,7 @@
 %define linkerd_executable_name linkerd
 
 Name:           linkerd-cli-edge
-Version:        26.4.3
+Version:        26.4.4
 Release:        0
 Summary:        CLI for the linkerd service mesh for Kubernetes
 License:        Apache-2.0
@@ -28,7 +28,7 @@
 Source1:        vendor.tar.gz
 BuildRequires:  bash-completion
 BuildRequires:  fish
-BuildRequires:  go1.25 >= 1.25.8
+BuildRequires:  go1.25 >= 1.25.9
 BuildRequires:  zsh
 
 # cannot be installed in parallel to the stable version

++++++ _service ++++++
--- /var/tmp/diff_new_pack.NVSe7C/_old  2026-04-28 11:57:23.592049415 +0200
+++ /var/tmp/diff_new_pack.NVSe7C/_new  2026-04-28 11:57:23.596049581 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/linkerd/linkerd2</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">edge-26.4.3</param>
+    <param name="revision">edge-26.4.4</param>
     <param name="match-tag">edge-*.*.*</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">edge-(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.NVSe7C/_old  2026-04-28 11:57:23.628050911 +0200
+++ /var/tmp/diff_new_pack.NVSe7C/_new  2026-04-28 11:57:23.648051743 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/linkerd/linkerd2</param>
-              <param 
name="changesrevision">8ca8bbcfdc58e6433925c617529d39bf48b777c3</param></service></servicedata>
+              <param 
name="changesrevision">811943c390851d9a57336c4d04ec1f17d2a7de01</param></service></servicedata>
 (No newline at EOF)
 

++++++ linkerd-cli-edge-26.4.3.obscpio -> linkerd-cli-edge-26.4.4.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/.proxy-version 
new/linkerd-cli-edge-26.4.4/.proxy-version
--- old/linkerd-cli-edge-26.4.3/.proxy-version  2026-04-15 19:26:10.000000000 
+0200
+++ new/linkerd-cli-edge-26.4.4/.proxy-version  2026-04-23 20:35:38.000000000 
+0200
@@ -1 +1 @@
-v2.349.0
+v2.350.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/Cargo.lock 
new/linkerd-cli-edge-26.4.4/Cargo.lock
--- old/linkerd-cli-edge-26.4.3/Cargo.lock      2026-04-15 19:26:10.000000000 
+0200
+++ new/linkerd-cli-edge-26.4.4/Cargo.lock      2026-04-23 20:35:38.000000000 
+0200
@@ -192,9 +192,9 @@
 
 [[package]]
 name = "bitflags"
-version = "2.11.0"
+version = "2.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
+checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
 
 [[package]]
 name = "block-buffer"
@@ -797,9 +797,9 @@
 
 [[package]]
 name = "hashbrown"
-version = "0.16.1"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
+checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51"
 
 [[package]]
 name = "headers"
@@ -1035,12 +1035,12 @@
 
 [[package]]
 name = "indexmap"
-version = "2.13.1"
+version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff"
+checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
 dependencies = [
  "equivalent",
- "hashbrown 0.16.1",
+ "hashbrown 0.17.0",
  "serde",
  "serde_core",
 ]
@@ -1343,9 +1343,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.184"
+version = "0.2.185"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
+checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f"
 
 [[package]]
 name = "linkerd-policy-controller"
@@ -1627,9 +1627,9 @@
 
 [[package]]
 name = "openssl"
-version = "0.10.76"
+version = "0.10.78"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf"
+checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222"
 dependencies = [
  "bitflags",
  "cfg-if",
@@ -1659,9 +1659,9 @@
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.112"
+version = "0.9.114"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb"
+checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6"
 dependencies = [
  "cc",
  "libc",
@@ -2111,9 +2111,9 @@
 
 [[package]]
 name = "rustls-webpki"
-version = "0.103.11"
+version = "0.103.12"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "20a6af516fea4b20eccceaf166e8aa666ac996208e8a644ce3ef5aa783bc7cd4"
+checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06"
 dependencies = [
  "aws-lc-rs",
  "ring",
@@ -2729,9 +2729,9 @@
 
 [[package]]
 name = "typenum"
-version = "1.19.0"
+version = "1.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
+checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
 
 [[package]]
 name = "ucd-trie"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/Dockerfile.proxy 
new/linkerd-cli-edge-26.4.4/Dockerfile.proxy
--- old/linkerd-cli-edge-26.4.3/Dockerfile.proxy        2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/Dockerfile.proxy        2026-04-23 
20:35:38.000000000 +0200
@@ -45,10 +45,10 @@
 RUN CGO_ENABLED=0 GOOS=linux GOARCH=$TARGETARCH go build -o 
/out/proxy-identity -mod=readonly -ldflags "-s -w" ./proxy-identity
 
 ## build proxy-init
-FROM --platform=$BUILDPLATFORM golang:1.25.8-alpine AS proxy-init
+FROM --platform=$BUILDPLATFORM golang:1.25.9-alpine AS proxy-init
 WORKDIR /build
 ARG PROXY_INIT_REPO="linkerd/linkerd2-proxy-init"
-ARG PROXY_INIT_REF="proxy-init/v2.4.7"
+ARG PROXY_INIT_REF="proxy-init/v2.4.8"
 RUN apk add --no-cache ca-certificates git
 RUN --mount=type=secret,id=github \
     export GITHUB_TOKEN_FILE=/run/secrets/github; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/charts/linkerd2-cni/values.yaml 
new/linkerd-cli-edge-26.4.4/charts/linkerd2-cni/values.yaml
--- old/linkerd-cli-edge-26.4.3/charts/linkerd2-cni/values.yaml 2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/charts/linkerd2-cni/values.yaml 2026-04-23 
20:35:38.000000000 +0200
@@ -69,7 +69,7 @@
   # -- Docker image for the CNI plugin
   name: "cr.l5d.io/linkerd/cni-plugin"
   # -- Tag for the CNI container Docker image
-  version: "v1.6.6"
+  version: "v1.6.7"
   # -- Pull policy for the linkerd-cni container
   pullPolicy: IfNotPresent
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/cli/cmd/install.go 
new/linkerd-cli-edge-26.4.4/cli/cmd/install.go
--- old/linkerd-cli-edge-26.4.3/cli/cmd/install.go      2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/cli/cmd/install.go      2026-04-23 
20:35:38.000000000 +0200
@@ -303,6 +303,21 @@
                }
        }
 
+       // in order to correctly initialize the issuer credentials the overrides
+       // (from above) need to be set/applied to the values themselves
+       // specifically identity issuer scheme, and trust values
+       //
+       // marshal+unmarshal here will only apply specific overrides to values 
and
+       // will not wipe out values that are not set.
+       data, err := yaml.Marshal(valuesOverrides)
+       if err != nil {
+               return err
+       }
+       err = yaml.Unmarshal(data, values)
+       if err != nil {
+               return err
+       }
+
        err = initializeIssuerCredentials(ctx, k8sAPI, values)
        if err != nil {
                return err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/cli/cmd/install_test.go 
new/linkerd-cli-edge-26.4.4/cli/cmd/install_test.go
--- old/linkerd-cli-edge-26.4.3/cli/cmd/install_test.go 2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/cli/cmd/install_test.go 2026-04-23 
20:35:38.000000000 +0200
@@ -6,6 +6,7 @@
        "fmt"
        "io"
        "os"
+       "path"
        "path/filepath"
        "strings"
        "testing"
@@ -16,6 +17,7 @@
        "github.com/linkerd/linkerd2/pkg/tls"
        "helm.sh/helm/v3/pkg/cli/values"
        corev1 "k8s.io/api/core/v1"
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
 const (
@@ -314,6 +316,240 @@
        }
 }
 
+// TestOverrideIssuer calls install control plane with the goal of testing
+// options overrides for initialize issuer credentials.
+func TestOverrideIssuer(t *testing.T) {
+       removeIssuerCrt := func() (*charts.Values, error) {
+               t.Helper()
+               values, err := testInstallOptionsFakeCerts()
+               if err != nil {
+                       return nil, err
+               }
+               values.Identity.Issuer.TLS.CrtPEM = ""
+               return values, nil
+       }
+       removeIssuerKey := func() (*charts.Values, error) {
+               t.Helper()
+               values, err := testInstallOptionsFakeCerts()
+               if err != nil {
+                       return nil, err
+               }
+               values.Identity.Issuer.TLS.KeyPEM = ""
+               return values, nil
+       }
+       removeTrustAnchor := func() (*charts.Values, error) {
+               t.Helper()
+               values, err := testInstallOptionsFakeCerts()
+               if err != nil {
+                       return nil, err
+               }
+               values.IdentityTrustAnchorsPEM = ""
+               return values, nil
+       }
+       read := func(filename string) []byte {
+               t.Helper()
+               data, err := os.ReadFile(path.Join("testdata", filename))
+               if err != nil {
+                       t.Fatalf("cannot read filename=%s err=%v", filename, 
err)
+               }
+               return data
+       }
+       // newK8S returns a test implementation of the k8s API; after setting 
the
+       // issuer trust anchor and tls crt+key as a secret.
+       newK8S := func() *k8s.KubernetesAPI {
+               t.Helper()
+               api, err := k8s.NewFakeAPI()
+               if err != nil {
+                       t.Fatalf("cannot create new fake-api from manifests 
err=%v", err)
+               }
+               _, err = 
api.CoreV1().Secrets(controlPlaneNamespace).Create(context.Background(),
+                       &corev1.Secret{
+                               ObjectMeta: metav1.ObjectMeta{
+                                       Name:      k8s.IdentityIssuerSecretName,
+                                       Namespace: controlPlaneNamespace,
+                               },
+                               Data: map[string][]byte{
+                                       
k8s.IdentityIssuerTrustAnchorsNameExternal: read("valid-trust-anchors.pem"),
+                                       corev1.TLSCertKey:                      
    read("valid-crt.pem"),
+                                       corev1.TLSPrivateKeyKey:                
    read("valid-key.pem"),
+                               }}, metav1.CreateOptions{})
+               if err != nil {
+                       t.Fatalf("cannot create secret for new-k8s-api err=%v", 
err)
+               }
+               return api
+       }
+       controlPlaneNamespace = defaultLinkerdNamespace
+       for i, test := range []struct {
+               options                values.Options
+               values                 func() (*charts.Values, error)
+               k8sAPI                 *k8s.KubernetesAPI
+               expErr                 string
+               expIdentityTrustAnchor bool
+               expIssuerCrt           bool
+               expIssuerKey           bool
+               expIssuerName          string
+       }{
+               {
+                       // no options; no certs in values -> generated anchor; 
key + crt
+                       options:                values.Options{},
+                       values:                 testInstallValuesNoCertsNoHA,
+                       k8sAPI:                 nil,
+                       expIdentityTrustAnchor: true,
+                       expIssuerKey:           true,
+                       expIssuerCrt:           true,
+                       expIssuerName: fmt.Sprintf("identity.%s.%s",
+                               controlPlaneNamespace, "test-override-issuer"),
+               },
+               {
+                       // no options; fake certs in values -> fake certs 
untouched
+                       options:                values.Options{},
+                       values:                 testInstallOptionsFakeCerts,
+                       k8sAPI:                 nil,
+                       expIdentityTrustAnchor: true,
+                       expIssuerKey:           true,
+                       expIssuerCrt:           true,
+                       expIssuerName:          
"identity.linkerd.cluster.local",
+               },
+               {
+                       // issuer scheme in options; no certs in values; nil 
k8s api ->
+                       // error trying to call k8s
+                       options: values.Options{
+                               Values: 
[]string{"identity.issuer.scheme=kubernetes.io/tls"},
+                       },
+                       values:                 testInstallValuesNoCertsNoHA,
+                       k8sAPI:                 nil,
+                       expErr:                 "--ignore-cluster is not 
supported when --identity-external-issuer=true",
+                       expIdentityTrustAnchor: false,
+                       expIssuerKey:           false,
+                       expIssuerCrt:           false,
+                       expIssuerName:          "",
+               },
+               {
+                       // issuer scheme in options; no certs in values; fake 
k8s api ->
+                       // trust anchor is set
+                       options: values.Options{
+                               Values: 
[]string{"identity.issuer.scheme=kubernetes.io/tls"},
+                       },
+                       values:                 testInstallValuesNoCertsNoHA,
+                       k8sAPI:                 newK8S(),
+                       expErr:                 "",
+                       expIdentityTrustAnchor: true,
+                       expIssuerKey:           false,
+                       expIssuerCrt:           false,
+                       expIssuerName:          
"identity.linkerd.cluster.local",
+               },
+               {
+                       // no options; fake certs in values; remove trust 
anchor -> err
+                       options:                values.Options{},
+                       values:                 removeTrustAnchor,
+                       k8sAPI:                 nil,
+                       expErr:                 "a trust anchors file must be 
specified if other credentials are provided",
+                       expIdentityTrustAnchor: false,
+                       expIssuerCrt:           true,
+                       expIssuerKey:           true,
+                       expIssuerName:          
"identity.linkerd.cluster.local",
+               },
+               {
+                       // no options; fake certs in values; remove issuer crt 
-> err
+                       options:                values.Options{},
+                       values:                 removeIssuerCrt,
+                       k8sAPI:                 nil,
+                       expErr:                 "a certificate file must be 
specified if other credentials are provided",
+                       expIdentityTrustAnchor: true,
+                       expIssuerCrt:           false,
+                       expIssuerName:          
"identity.linkerd.cluster.local",
+                       expIssuerKey:           true,
+               },
+               {
+                       // no options; fake certs in values; remove issuer key 
-> err
+                       options:                values.Options{},
+                       values:                 removeIssuerKey,
+                       k8sAPI:                 nil,
+                       expErr:                 "a private key file must be 
specified if other credentials are provided",
+                       expIdentityTrustAnchor: true,
+                       expIssuerCrt:           true,
+                       expIssuerName:          
"identity.linkerd.cluster.local",
+                       expIssuerKey:           false,
+               },
+       } {
+               values, err := test.values()
+               if err != nil {
+                       t.Fatalf("%02d/test install options failed with an 
error err=%v", i, err)
+               }
+               values.IdentityTrustDomain = "test-override-issuer"
+               // ensure the install options created above meet expectations 
(we are
+               // testing the override not the values)
+               if values.Identity.Issuer.Scheme != 
k8s.IdentityIssuerSchemeLinkerd {
+                       t.Fatalf("%02d/identity issuer scheme is incorrect: %s 
!= %s", i,
+                               k8s.IdentityIssuerSchemeLinkerd, 
values.Identity.Issuer.Scheme)
+               }
+               var buf bytes.Buffer
+               err = installControlPlane(context.Background(), test.k8sAPI, 
&buf, values, nil, test.options, "yaml")
+               if test.expErr != "" {
+                       if test.expErr != err.Error() {
+                               t.Fatalf("%02d/install control plane returned 
incorrect error %s<>%v", i, test.expErr, err)
+                       }
+               } else {
+                       if err != nil {
+                               t.Fatalf("%02d/install control plane failed 
with an error=%v", i, err)
+                       }
+               }
+               if test.expIdentityTrustAnchor {
+                       if values.IdentityTrustAnchorsPEM == "" {
+                               t.Fatalf("%02d/identity trust-anchors-pem is 
empty", i)
+                       }
+                       crt, err := 
tls.DecodePEMCrt(values.IdentityTrustAnchorsPEM)
+                       if err != nil {
+                               t.Fatalf("%02d/generated 
identity-trust-anchors-pem cannot be decoded", i)
+                       }
+                       if crt == nil {
+                               t.Fatalf("%02d/generated 
identity-trust-anchors-pem cannot be decoded (nil)", i)
+                       }
+                       if crt.Certificate == nil {
+                               t.Fatalf("%02d/generated 
identity-trust-anchors-pem certificate is invalid", i)
+                       }
+                       if test.expIssuerName != 
crt.Certificate.Issuer.CommonName {
+                               t.Fatalf("%02d/generated 
identity-trust-anchors-pem certificate common-name is incorrect %s<>%s", i,
+                                       test.expIssuerName,
+                                       crt.Certificate.Issuer.CommonName)
+                       }
+               } else if values.IdentityTrustAnchorsPEM != "" {
+                       t.Fatalf("%02d/identity was incorrectly set pem=%s", i, 
values.IdentityTrustAnchorsPEM)
+               }
+               if test.expIssuerCrt {
+                       if values.Identity.Issuer.TLS.CrtPEM == "" {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-crt-pem is empty", i)
+                       }
+                       crt, err := 
tls.DecodePEMCrt(values.Identity.Issuer.TLS.CrtPEM)
+                       if err != nil {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-crt-pem cannot be decoded err=%v", i, err)
+                       }
+                       if crt == nil {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-crt-pem cannot be decoded (nil)", i)
+                       }
+                       if crt.Certificate == nil {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-crt-pem certificate is invalid (nil)", i)
+                       }
+               } else if values.Identity.Issuer.TLS.CrtPEM != "" {
+                       t.Fatalf("%02d/identity issuer crt was incorrectly set 
pem=%s", i, values.Identity.Issuer.TLS.CrtPEM)
+               }
+               if test.expIssuerKey {
+                       if values.Identity.Issuer.TLS.KeyPEM == "" {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-key-pem is empty", i)
+                       }
+                       key, err := 
tls.DecodePEMKey(values.Identity.Issuer.TLS.KeyPEM)
+                       if err != nil {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-key-pem cannot be decoded err=%v", i, err)
+                       }
+                       if key == nil {
+                               t.Fatalf("%02d/generated 
identity-issuer-tls-key-pem cannot be decoded (nil)", i)
+                       }
+               } else if values.Identity.Issuer.TLS.KeyPEM != "" {
+                       t.Fatalf("%02d/identity issuer tls key was incorrectly 
set pem=%s", i, values.Identity.Issuer.TLS.KeyPEM)
+               }
+       }
+}
+
 func TestIgnoreCluster(t *testing.T) {
        defaultValues, err := testInstallOptions()
        if err != nil {
@@ -550,6 +786,10 @@
        return values, nil
 }
 
+func testInstallValuesNoCertsNoHA() (*charts.Values, error) {
+       return testInstallOptionsNoCerts(false)
+}
+
 func testInstallValues() (*charts.Values, error) {
        values, err := charts.NewValues()
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/cli/cmd/testdata/install-cni-plugin_default.golden 
new/linkerd-cli-edge-26.4.4/cli/cmd/testdata/install-cni-plugin_default.golden
--- 
old/linkerd-cli-edge-26.4.3/cli/cmd/testdata/install-cni-plugin_default.golden  
    2026-04-15 19:26:10.000000000 +0200
+++ 
new/linkerd-cli-edge-26.4.4/cli/cmd/testdata/install-cni-plugin_default.golden  
    2026-04-23 20:35:38.000000000 +0200
@@ -117,7 +117,7 @@
       # script copies the files into place and then sleeps so
       # that Kubernetes doesn't keep trying to restart it.
       - name: install-cni
-        image: cr.l5d.io/linkerd/cni-plugin:v1.6.6
+        image: cr.l5d.io/linkerd/cni-plugin:v1.6.7
         imagePullPolicy: 
         env:
         - name: DEST_CNI_NET_DIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/cli/cmd/testdata/install-cni-plugin_skip_ports.golden
 
new/linkerd-cli-edge-26.4.4/cli/cmd/testdata/install-cni-plugin_skip_ports.golden
--- 
old/linkerd-cli-edge-26.4.3/cli/cmd/testdata/install-cni-plugin_skip_ports.golden
   2026-04-15 19:26:10.000000000 +0200
+++ 
new/linkerd-cli-edge-26.4.4/cli/cmd/testdata/install-cni-plugin_skip_ports.golden
   2026-04-23 20:35:38.000000000 +0200
@@ -118,7 +118,7 @@
       # script copies the files into place and then sleeps so
       # that Kubernetes doesn't keep trying to restart it.
       - name: install-cni
-        image: cr.l5d.io/linkerd/cni-plugin:v1.6.6
+        image: cr.l5d.io/linkerd/cni-plugin:v1.6.7
         imagePullPolicy: 
         env:
         - name: DEST_CNI_NET_DIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/cli/cmd/testdata/install_cni_helm_default_output.golden
 
new/linkerd-cli-edge-26.4.4/cli/cmd/testdata/install_cni_helm_default_output.golden
--- 
old/linkerd-cli-edge-26.4.3/cli/cmd/testdata/install_cni_helm_default_output.golden
 2026-04-15 19:26:10.000000000 +0200
+++ 
new/linkerd-cli-edge-26.4.4/cli/cmd/testdata/install_cni_helm_default_output.golden
 2026-04-23 20:35:38.000000000 +0200
@@ -110,7 +110,7 @@
       # script copies the files into place and then sleeps so
       # that Kubernetes doesn't keep trying to restart it.
       - name: install-cni
-        image: cr.l5d.io/linkerd/cni-plugin:v1.6.6
+        image: cr.l5d.io/linkerd/cni-plugin:v1.6.7
         imagePullPolicy: IfNotPresent
         env:
         - name: DEST_CNI_NET_DIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/controller/proxy-injector/metrics.go 
new/linkerd-cli-edge-26.4.4/controller/proxy-injector/metrics.go
--- old/linkerd-cli-edge-26.4.3/controller/proxy-injector/metrics.go    
2026-04-15 19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/controller/proxy-injector/metrics.go    
2026-04-23 20:35:38.000000000 +0200
@@ -4,7 +4,6 @@
        "strings"
 
        "github.com/linkerd/linkerd2/pkg/inject"
-       "github.com/linkerd/linkerd2/pkg/k8s"
        "github.com/prometheus/client_golang/prometheus"
        "github.com/prometheus/client_golang/prometheus/promauto"
 )
@@ -69,5 +68,5 @@
 }
 
 func validProxyConfigurationLabel(label string) string {
-       return 
strings.ReplaceAll(label[len(k8s.ProxyConfigAnnotationsPrefix)+1:], "-", "_")
+       return strings.ReplaceAll(label[strings.Index(label, "/")+1:], "-", "_")
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/go.mod 
new/linkerd-cli-edge-26.4.4/go.mod
--- old/linkerd-cli-edge-26.4.3/go.mod  2026-04-15 19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/go.mod  2026-04-23 20:35:38.000000000 +0200
@@ -1,6 +1,6 @@
 module github.com/linkerd/linkerd2
 
-go 1.25.8
+go 1.25.9
 
 require (
        contrib.go.opencensus.io/exporter/ocagent v0.7.0
@@ -41,14 +41,14 @@
        google.golang.org/protobuf v1.36.11
        gopkg.in/yaml.v2 v2.4.0
        helm.sh/helm/v3 v3.20.2
-       k8s.io/api v0.35.3
-       k8s.io/apiextensions-apiserver v0.35.3
-       k8s.io/apimachinery v0.35.3
-       k8s.io/client-go v0.35.3
-       k8s.io/code-generator v0.35.3
-       k8s.io/endpointslice v0.35.3
+       k8s.io/api v0.35.4
+       k8s.io/apiextensions-apiserver v0.35.4
+       k8s.io/apimachinery v0.35.4
+       k8s.io/client-go v0.35.4
+       k8s.io/code-generator v0.35.4
+       k8s.io/endpointslice v0.35.4
        k8s.io/klog/v2 v2.140.0
-       k8s.io/kube-aggregator v0.35.3
+       k8s.io/kube-aggregator v0.35.4
        k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
        sigs.k8s.io/gateway-api v0.8.1
        sigs.k8s.io/yaml v1.6.0
@@ -116,7 +116,7 @@
        github.com/mitchellh/copystructure v1.2.0 // indirect
        github.com/mitchellh/go-wordwrap v1.0.1 // indirect
        github.com/mitchellh/reflectwalk v1.0.2 // indirect
-       github.com/moby/spdystream v0.5.0 // indirect
+       github.com/moby/spdystream v0.5.1 // indirect
        github.com/moby/term v0.5.2 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 
indirect
        github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // 
indirect
@@ -137,8 +137,8 @@
        github.com/spf13/cast v1.7.0 // indirect
        github.com/x448/float16 v0.8.4 // indirect
        github.com/xlab/treeprint v1.2.0 // indirect
-       go.opentelemetry.io/otel v1.39.0 // indirect
-       go.opentelemetry.io/otel/trace v1.39.0 // indirect
+       go.opentelemetry.io/otel v1.41.0 // indirect
+       go.opentelemetry.io/otel/trace v1.41.0 // indirect
        go.yaml.in/yaml/v2 v2.4.3 // indirect
        go.yaml.in/yaml/v3 v3.0.4 // indirect
        golang.org/x/crypto v0.50.0 // indirect
@@ -158,7 +158,7 @@
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
        k8s.io/cli-runtime v0.35.1 // indirect
-       k8s.io/component-base v0.35.3 // indirect
+       k8s.io/component-base v0.35.4 // indirect
        k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect
        k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
        k8s.io/kubectl v0.35.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/go.sum 
new/linkerd-cli-edge-26.4.4/go.sum
--- old/linkerd-cli-edge-26.4.3/go.sum  2026-04-15 19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/go.sum  2026-04-23 20:35:38.000000000 +0200
@@ -306,8 +306,8 @@
 github.com/mitchellh/go-wordwrap v1.0.1/go.mod 
h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
 github.com/mitchellh/reflectwalk v1.0.2 
h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
 github.com/mitchellh/reflectwalk v1.0.2/go.mod 
h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
-github.com/moby/spdystream v0.5.0 
h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
-github.com/moby/spdystream v0.5.0/go.mod 
h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
+github.com/moby/spdystream v0.5.1 
h1:9sNYeYZUcci9R6/w7KDaFWEWeV4LStVG78Mpyq/Zm/Y=
+github.com/moby/spdystream v0.5.1/go.mod 
h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
 github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ=
 github.com/moby/term v0.5.2/go.mod 
h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -420,8 +420,8 @@
 go.opentelemetry.io/contrib/exporters/autoexport v0.57.0/go.mod 
h1:EJBheUMttD/lABFyLXhce47Wr6DPWYReCzaZiXadH7g=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod 
h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q=
-go.opentelemetry.io/otel v1.39.0 
h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
-go.opentelemetry.io/otel v1.39.0/go.mod 
h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
+go.opentelemetry.io/otel v1.41.0 
h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c=
+go.opentelemetry.io/otel v1.41.0/go.mod 
h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE=
 go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 
h1:WzNab7hOOLzdDF/EoWCt4glhrbMPVMOO5JYTmpz36Ls=
 go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0/go.mod 
h1:hKvJwTzJdp90Vh7p6q/9PAOd55dI6WA6sWj62a/JvSs=
 go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 
h1:S+LdBGiQXtJdowoJoQPEtI52syEP/JYBUpjO49EQhV8=
@@ -446,16 +446,16 @@
 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0/go.mod 
h1:2PD5Ex6z8CFzDbTdOlwyNIUywRr1DN0ospafJM1wJ+s=
 go.opentelemetry.io/otel/log v0.8.0 
h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk=
 go.opentelemetry.io/otel/log v0.8.0/go.mod 
h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8=
-go.opentelemetry.io/otel/metric v1.39.0 
h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
-go.opentelemetry.io/otel/metric v1.39.0/go.mod 
h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
+go.opentelemetry.io/otel/metric v1.41.0 
h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ=
+go.opentelemetry.io/otel/metric v1.41.0/go.mod 
h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps=
 go.opentelemetry.io/otel/sdk v1.39.0 
h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
 go.opentelemetry.io/otel/sdk v1.39.0/go.mod 
h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
 go.opentelemetry.io/otel/sdk/log v0.8.0 
h1:zg7GUYXqxk1jnGF/dTdLPrK06xJdrXgqgFLnI4Crxvs=
 go.opentelemetry.io/otel/sdk/log v0.8.0/go.mod 
h1:50iXr0UVwQrYS45KbruFrEt4LvAdCaWWgIrsN3ZQggo=
 go.opentelemetry.io/otel/sdk/metric v1.39.0 
h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
 go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod 
h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
-go.opentelemetry.io/otel/trace v1.39.0 
h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
-go.opentelemetry.io/otel/trace v1.39.0/go.mod 
h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
+go.opentelemetry.io/otel/trace v1.41.0 
h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0=
+go.opentelemetry.io/otel/trace v1.41.0/go.mod 
h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis=
 go.opentelemetry.io/proto/otlp v1.5.0 
h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4=
 go.opentelemetry.io/proto/otlp v1.5.0/go.mod 
h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -718,28 +718,28 @@
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod 
h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod 
h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.35.3 h1:pA2fiBc6+N9PDf7SAiluKGEBuScsTzd2uYBkA5RzNWQ=
-k8s.io/api v0.35.3/go.mod h1:9Y9tkBcFwKNq2sxwZTQh1Njh9qHl81D0As56tu42GA4=
-k8s.io/apiextensions-apiserver v0.35.3 
h1:2fQUhEO7P17sijylbdwt0nBdXP0TvHrHj0KeqHD8FiU=
-k8s.io/apiextensions-apiserver v0.35.3/go.mod 
h1:tK4Kz58ykRpwAEkXUb634HD1ZAegEElktz/B3jgETd8=
-k8s.io/apimachinery v0.35.3 h1:MeaUwQCV3tjKP4bcwWGgZ/cp/vpsRnQzqO6J6tJyoF8=
-k8s.io/apimachinery v0.35.3/go.mod 
h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns=
+k8s.io/api v0.35.4 h1:P7nFYKl5vo9AGUp1Z+Pmd3p2tA7bX2wbFWCvDeRv988=
+k8s.io/api v0.35.4/go.mod h1:yl4lqySWOgYJJf9RERXKUwE9g2y+CkuwG+xmcOK8wXU=
+k8s.io/apiextensions-apiserver v0.35.4 
h1:HeP+Upp7ItdvnyGmub0yoix+2z5+ev4M5cE5TCgtOUU=
+k8s.io/apiextensions-apiserver v0.35.4/go.mod 
h1:ogQlk+stIE8mnoRthSYCwlOS12fVqgWFiErMwPaXA7c=
+k8s.io/apimachinery v0.35.4 h1:xtdom9RG7e+yDp71uoXoJDWEE2eOiHgeO4GdBzwWpds=
+k8s.io/apimachinery v0.35.4/go.mod 
h1:NNi1taPOpep0jOj+oRha3mBJPqvi0hGdaV8TCqGQ+cc=
 k8s.io/cli-runtime v0.35.1 h1:uKcXFe8J7AMAM4Gm2JDK4mp198dBEq2nyeYtO+JfGJE=
 k8s.io/cli-runtime v0.35.1/go.mod 
h1:55/hiXIq1C8qIJ3WBrWxEwDLdHQYhBNRdZOz9f7yvTw=
-k8s.io/client-go v0.35.3 h1:s1lZbpN4uI6IxeTM2cpdtrwHcSOBML1ODNTCCfsP1pg=
-k8s.io/client-go v0.35.3/go.mod h1:RzoXkc0mzpWIDvBrRnD+VlfXP+lRzqQjCmKtiwZ8Q9c=
-k8s.io/code-generator v0.35.3 h1:NDGCLkEm6Ho65wTdSe2EgErmmtsrezOPwwOchlNc6FQ=
-k8s.io/code-generator v0.35.3/go.mod 
h1:LAVriRGXQusHQ0Ns64SE1ublSswm1KrK7cXn0GuQETg=
-k8s.io/component-base v0.35.3 h1:mbKbzoIMy7JDWS/wqZobYW1JDVRn/RKRaoMQHP9c4P0=
-k8s.io/component-base v0.35.3/go.mod 
h1:IZ8LEG30kPN4Et5NeC7vjNv5aU73ku5MS15iZyvyMYk=
-k8s.io/endpointslice v0.35.3 h1:O5oBs7AotMNqWVOegTuND2SUQpNwAGa/mZ5RlxqL9Eg=
-k8s.io/endpointslice v0.35.3/go.mod 
h1:wFJUsyjtmcJgd3+M4HZBw/SmOLxJl7HK2kN4bK81TP8=
+k8s.io/client-go v0.35.4 h1:DN6fyaGuzK64UvnKO5fOA6ymSjvfGAnCAHAR0C66kD8=
+k8s.io/client-go v0.35.4/go.mod h1:2Pg9WpsS4NeOpoYTfHHfMxBG8zFMSAUi4O/qoiJC3nY=
+k8s.io/code-generator v0.35.4 h1:i0FfiXAeUMBlHarjVk5ZWf6Wjsg3YJpNYmOg0nPk6r4=
+k8s.io/code-generator v0.35.4/go.mod 
h1:rwLDdemFgPK6dGlLFHPUieyekgAlV1x8IVafjAy/ELA=
+k8s.io/component-base v0.35.4 h1:6n1tNJ87johN0Hif0Fs8K2GMthsaUwMqCebUDLYyv7U=
+k8s.io/component-base v0.35.4/go.mod 
h1:qaDJgz5c1KYKla9occFmlJEfPpkuA55s90G509R+PeY=
+k8s.io/endpointslice v0.35.4 h1:UnhPGZw3rVVYegcBDvtCthcza5jx7L6FdyRSxFjsel4=
+k8s.io/endpointslice v0.35.4/go.mod 
h1:HyYSuanZ53lSZmMyYlfV7S4t0IXysHDsdl0n0QySRdg=
 k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b 
h1:gMplByicHV/TJBizHd9aVEsTYoJBnnUAT5MHlTkbjhQ=
 k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b/go.mod 
h1:CgujABENc3KuTrcsdpGmrrASjtQsWCT7R99mEV4U/fM=
 k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc=
 k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0=
-k8s.io/kube-aggregator v0.35.3 h1:erIo8Dfapd0Fg44XAbgCNioJMtr3Z5mI/G1PSpj9B7Q=
-k8s.io/kube-aggregator v0.35.3/go.mod 
h1:lOLyWTEuiKT2kS/Wkj0foq+P+Xt4gs/xkrhz2r33lAQ=
+k8s.io/kube-aggregator v0.35.4 h1:6eR50WHwqSYJQTR6QxEG5fRW2vBA6Yoqzp72hw76koE=
+k8s.io/kube-aggregator v0.35.4/go.mod 
h1:13mmXpCW9sReIQR8yLvApbKphZfoGnK39UJ8u1opT9g=
 k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 
h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
 k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod 
h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
 k8s.io/kubectl v0.35.1 h1:zP3Er8C5i1dcAFUMh9Eva0kVvZHptXIn/+8NtRWMxwg=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/justfile 
new/linkerd-cli-edge-26.4.4/justfile
--- old/linkerd-cli-edge-26.4.3/justfile        2026-04-15 19:26:10.000000000 
+0200
+++ new/linkerd-cli-edge-26.4.4/justfile        2026-04-23 20:35:38.000000000 
+0200
@@ -20,7 +20,7 @@
     golangci-lint run {{ flags }}
 
 go-test:
-    LINKERD_TEST_PRETTY_DIFF=1 gotestsum -- -race -v -mod=readonly --timeout 
10m ./...
+    LINKERD_TEST_PRETTY_DIFF=1 gotestsum --jsonfile go-test.json -- -race -v 
-mod=readonly --timeout 10m ./...
 
 ##
 ## Rust
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/pkg/healthcheck/healthcheck_test.go 
new/linkerd-cli-edge-26.4.4/pkg/healthcheck/healthcheck_test.go
--- old/linkerd-cli-edge-26.4.3/pkg/healthcheck/healthcheck_test.go     
2026-04-15 19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/pkg/healthcheck/healthcheck_test.go     
2026-04-23 20:35:38.000000000 +0200
@@ -2358,7 +2358,7 @@
       serviceAccountName: linkerd-cni
       containers:
       - name: install-cni
-        image: cr.l5d.io/linkerd/cni-plugin:v1.6.6
+        image: cr.l5d.io/linkerd/cni-plugin:v1.6.7
         env:
         - name: DEST_CNI_NET_DIR
           valueFrom:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/pkg/version/version.go 
new/linkerd-cli-edge-26.4.4/pkg/version/version.go
--- old/linkerd-cli-edge-26.4.3/pkg/version/version.go  2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/pkg/version/version.go  2026-04-23 
20:35:38.000000000 +0200
@@ -12,7 +12,7 @@
 // DO NOT EDIT
 var Version = undefinedVersion
 
-var LinkerdCNIVersion = "v1.6.6"
+var LinkerdCNIVersion = "v1.6.7"
 
 const (
        // undefinedVersion should take the form `channel-version` to conform to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/policy-controller/k8s/index/src/outbound/index.rs 
new/linkerd-cli-edge-26.4.4/policy-controller/k8s/index/src/outbound/index.rs
--- 
old/linkerd-cli-edge-26.4.3/policy-controller/k8s/index/src/outbound/index.rs   
    2026-04-15 19:26:10.000000000 +0200
+++ 
new/linkerd-cli-edge-26.4.4/policy-controller/k8s/index/src/outbound/index.rs   
    2026-04-23 20:35:38.000000000 +0200
@@ -229,7 +229,7 @@
                         .filter_map(|port| {
                             port.app_protocol.as_ref().and_then(|p| {
                                 Some((
-                                    NonZeroU16::new(port.port as u16)?,
+                                    
port.port.try_into().ok().and_then(NonZeroU16::new)?,
                                     
AppProtocol::from_str(p.as_str()).expect("Infalliable"),
                                 ))
                             })
@@ -979,7 +979,7 @@
             } else {
                 continue;
             };
-            let route_namespace = route.namespace().expect("GrpcRoute must 
have a namespace");
+            let route_namespace = route.namespace().expect("TlsRoute must have 
a namespace");
             let parent_namespace = 
parent_ref.namespace.as_ref().unwrap_or(&route_namespace);
             if *parent_namespace != *self.namespace {
                 continue;
@@ -1078,7 +1078,7 @@
             } else {
                 continue;
             };
-            let route_namespace = route.namespace().expect("GrpcRoute must 
have a namespace");
+            let route_namespace = route.namespace().expect("TcpRoute must have 
a namespace");
             let parent_namespace = 
parent_ref.namespace.as_ref().unwrap_or(&route_namespace);
             if *parent_namespace != *self.namespace {
                 continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/policy-controller/runtime/Cargo.toml 
new/linkerd-cli-edge-26.4.4/policy-controller/runtime/Cargo.toml
--- old/linkerd-cli-edge-26.4.3/policy-controller/runtime/Cargo.toml    
2026-04-15 19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/policy-controller/runtime/Cargo.toml    
2026-04-23 20:35:38.000000000 +0200
@@ -17,7 +17,7 @@
 hyper-util = { workspace = true }
 ipnet = { version = "2", default-features = false }
 k8s-openapi = { workspace = true }
-openssl = { version = "0.10.76", optional = true }
+openssl = { version = "0.10.78", optional = true }
 parking_lot = "0.12"
 prometheus-client = { workspace = true }
 regex = "1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/linkerd-cli-edge-26.4.3/policy-controller/runtime/src/admission.rs 
new/linkerd-cli-edge-26.4.4/policy-controller/runtime/src/admission.rs
--- old/linkerd-cli-edge-26.4.3/policy-controller/runtime/src/admission.rs      
2026-04-15 19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/policy-controller/runtime/src/admission.rs      
2026-04-23 20:35:38.000000000 +0200
@@ -38,6 +38,13 @@
 
 #[async_trait::async_trait]
 trait Validate<T> {
+    // If true, parse failures are admitted with a warning instead of denied.
+    // Used for Gateway API types, where interoperability with other 
controllers
+    // takes precedence over strict schema enforcement.
+    fn lenient() -> bool {
+        false
+    }
+
     async fn validate(
         self,
         ns: &str,
@@ -174,6 +181,10 @@
         let (obj, spec) = match parse_spec::<T>(req) {
             Ok(spec) => spec,
             Err(error) => {
+                if <Self as Validate<T>>::lenient() {
+                    warn!(%error, "Failed to parse {} spec; admitting anyway", 
kind);
+                    return rsp;
+                }
                 info!(%error, "Failed to parse {} spec", kind);
                 return rsp.deny(error);
             }
@@ -589,6 +600,10 @@
 
 #[async_trait::async_trait]
 impl Validate<gateway::HTTPRouteSpec> for Admission {
+    fn lenient() -> bool {
+        true
+    }
+
     async fn validate(
         self,
         _ns: &str,
@@ -655,6 +670,10 @@
 
 #[async_trait::async_trait]
 impl Validate<gateway::GRPCRouteSpec> for Admission {
+    fn lenient() -> bool {
+        true
+    }
+
     async fn validate(
         self,
         _ns: &str,
@@ -723,6 +742,10 @@
 
 #[async_trait::async_trait]
 impl Validate<gateway::TLSRouteSpec> for Admission {
+    fn lenient() -> bool {
+        true
+    }
+
     async fn validate(
         self,
         _ns: &str,
@@ -748,6 +771,10 @@
 
 #[async_trait::async_trait]
 impl Validate<gateway::TCPRouteSpec> for Admission {
+    fn lenient() -> bool {
+        true
+    }
+
     async fn validate(
         self,
         _ns: &str,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/web/app/package.json 
new/linkerd-cli-edge-26.4.4/web/app/package.json
--- old/linkerd-cli-edge-26.4.3/web/app/package.json    2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/web/app/package.json    2026-04-23 
20:35:38.000000000 +0200
@@ -69,16 +69,16 @@
     "eslint-webpack-plugin": "^4.2.0",
     "file-loader": "^6.2.0",
     "history": "5.3.0",
-    "html-webpack-plugin": "^5.6.6",
+    "html-webpack-plugin": "^5.6.7",
     "jest": "^30.3.0",
     "jest-environment-jsdom": "^30.3.0",
     "lodash-webpack-plugin": "^0.11.6",
     "react-test-renderer": "16.14.0",
-    "sinon": "21.0.3",
+    "sinon": "21.1.2",
     "sinon-stub-promise": "4.0.0",
     "style-loader": "^4.0.0",
     "url-loader": "^4.1.1",
-    "webpack": "^5.106.0",
+    "webpack": "^5.106.2",
     "webpack-bundle-analyzer": "5.3.0",
     "webpack-cli": "7.0.2",
     "webpack-dev-server": "5.2.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linkerd-cli-edge-26.4.3/web/app/yarn.lock 
new/linkerd-cli-edge-26.4.4/web/app/yarn.lock
--- old/linkerd-cli-edge-26.4.3/web/app/yarn.lock       2026-04-15 
19:26:10.000000000 +0200
+++ new/linkerd-cli-edge-26.4.4/web/app/yarn.lock       2026-04-23 
20:35:38.000000000 +0200
@@ -2043,17 +2043,17 @@
   dependencies:
     type-detect "4.0.8"
 
-"@sinonjs/fake-timers@^15.0.0", "@sinonjs/fake-timers@^15.1.1":
-  version "15.1.1"
-  resolved 
"https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz#e1a6f7171941aadcc31d2cea1744264d58b8b34c";
-  integrity 
sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==
+"@sinonjs/fake-timers@^15.0.0", "@sinonjs/fake-timers@^15.3.2":
+  version "15.3.2"
+  resolved 
"https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-15.3.2.tgz#afecc36681e26aab9e0fe809fd9ad578096a3058";
+  integrity 
sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==
   dependencies:
     "@sinonjs/commons" "^3.0.1"
 
-"@sinonjs/samsam@^9.0.3":
-  version "9.0.3"
-  resolved 
"https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-9.0.3.tgz#da4cad6ee24ca0c9c205da16676f7d540df71f12";
-  integrity 
sha512-ZgYY7Dc2RW+OUdnZ1DEHg00lhRt+9BjymPKHog4PRFzr1U3MbK57+djmscWyKxzO1qfunHqs4N45WWyKIFKpiQ==
+"@sinonjs/samsam@^10.0.2":
+  version "10.0.2"
+  resolved 
"https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-10.0.2.tgz#d2cb34f0bcddb955b6971585c2f0334e68a9e66d";
+  integrity 
sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A==
   dependencies:
     "@sinonjs/commons" "^3.0.1"
     type-detect "^4.1.0"
@@ -4111,10 +4111,10 @@
   resolved 
"https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1";
   integrity 
sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
 
-diff@^8.0.3:
-  version "8.0.3"
-  resolved 
"https://registry.yarnpkg.com/diff/-/diff-8.0.3.tgz#c7da3d9e0e8c283bb548681f8d7174653720c2d5";
-  integrity 
sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==
+diff@^8.0.4:
+  version "8.0.4"
+  resolved 
"https://registry.yarnpkg.com/diff/-/diff-8.0.4.tgz#4f5baf3188b9b2431117b962eb20ba330fadf696";
+  integrity 
sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==
 
 [email protected]:
   version "1.0.0"
@@ -5260,9 +5260,9 @@
   integrity 
sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==
 
 follow-redirects@^1.0.0:
-  version "1.15.6"
-  resolved 
"https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b";
-  integrity 
sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+  version "1.16.0"
+  resolved 
"https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc";
+  integrity 
sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==
 
 for-each@^0.3.3:
   version "0.3.3"
@@ -5789,10 +5789,10 @@
     relateurl "^0.2.7"
     terser "^5.7.2"
 
-html-webpack-plugin@^5.6.6:
-  version "5.6.6"
-  resolved 
"https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz#5321b9579f4a1949318550ced99c2a4a4e60cbaf";
-  integrity 
sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==
+html-webpack-plugin@^5.6.7:
+  version "5.6.7"
+  resolved 
"https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz#429bab4e12abf3c07e1c608886608e2df2c06b11";
+  integrity 
sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==
   dependencies:
     "@types/html-minifier-terser" "^6.0.0"
     html-minifier-terser "^6.0.2"
@@ -7068,7 +7068,7 @@
   resolved 
"https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d";
   integrity 
sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
 
-json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
+json-parse-even-better-errors@^2.3.0:
   version "2.3.1"
   resolved 
"https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d";
   integrity 
sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
@@ -7443,10 +7443,10 @@
   resolved 
"https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70";
   integrity 
sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-"mime-db@>= 1.43.0 < 2":
-  version "1.50.0"
-  resolved 
"https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f";
-  integrity 
sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==
+"mime-db@>= 1.43.0 < 2", mime-db@^1.54.0:
+  version "1.54.0"
+  resolved 
"https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5";
+  integrity 
sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
 
 mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, 
mime-types@~2.1.24, mime-types@~2.1.34:
   version "2.1.35"
@@ -9133,16 +9133,15 @@
   resolved 
"https://registry.yarnpkg.com/sinon-stub-promise/-/sinon-stub-promise-4.0.0.tgz#6d498ba1198557cd01e3466af92dc7df725192c2";
   integrity sha1-bUmLoRmFV80B40Zq+S3H33JRksI=
 
[email protected]:
-  version "21.0.3"
-  resolved 
"https://registry.yarnpkg.com/sinon/-/sinon-21.0.3.tgz#fd3a2387ffe4fdbbfbbf3a0858f18d46c4acb34e";
-  integrity 
sha512-0x8TQFr8EjADhSME01u1ZK31yv2+bd6Z5NrBCHVM+n4qL1wFqbxftmeyi3bwlr49FbbzRfrqSFOpyHCOh/YmYA==
[email protected]:
+  version "21.1.2"
+  resolved 
"https://registry.yarnpkg.com/sinon/-/sinon-21.1.2.tgz#2404a6003853e6fc30430825fd21fe87675f29bf";
+  integrity 
sha512-FS6mN+/bx7e2ajpXkEmOcWB6xBzWiuNoAQT18/+a20SS4U7FSYl8Ms7N6VTUxN/1JAjkx7aXp+THMC8xdpp0gA==
   dependencies:
     "@sinonjs/commons" "^3.0.1"
-    "@sinonjs/fake-timers" "^15.1.1"
-    "@sinonjs/samsam" "^9.0.3"
-    diff "^8.0.3"
-    supports-color "^7.2.0"
+    "@sinonjs/fake-timers" "^15.3.2"
+    "@sinonjs/samsam" "^10.0.2"
+    diff "^8.0.4"
 
 sirv@^3.0.2:
   version "3.0.2"
@@ -9478,7 +9477,7 @@
   resolved 
"https://registry.yarnpkg.com/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5";
   integrity 
sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==
 
-supports-color@^7.1.0, supports-color@^7.2.0:
+supports-color@^7.1.0:
   version "7.2.0"
   resolved 
"https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da";
   integrity 
sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
@@ -10164,10 +10163,10 @@
   resolved 
"https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.4.tgz#a338b95eb484ecc75fbb196cbe8a2890618b4891";
   integrity 
sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==
 
-webpack@^5.106.0:
-  version "5.106.0"
-  resolved 
"https://registry.yarnpkg.com/webpack/-/webpack-5.106.0.tgz#ee374da5573eef1e47b2650d6be8e40fb928d697";
-  integrity 
sha512-Pkx5joZ9RrdgO5LBkyX1L2ZAJeK/Taz3vqZ9CbcP0wS5LEMx5QkKsEwLl29QJfihZ+DKRBFldzy1O30pJ1MDpA==
+webpack@^5.106.2:
+  version "5.106.2"
+  resolved 
"https://registry.yarnpkg.com/webpack/-/webpack-5.106.2.tgz#ca8174b4fd80f055cc5a45fcc5577d6db76c8ac5";
+  integrity 
sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==
   dependencies:
     "@types/eslint-scope" "^3.7.7"
     "@types/estree" "^1.0.8"
@@ -10185,9 +10184,8 @@
     events "^3.2.0"
     glob-to-regexp "^0.4.1"
     graceful-fs "^4.2.11"
-    json-parse-even-better-errors "^2.3.1"
     loader-runner "^4.3.1"
-    mime-types "^2.1.27"
+    mime-db "^1.54.0"
     neo-async "^2.6.2"
     schema-utils "^4.3.3"
     tapable "^2.3.0"

++++++ linkerd-cli-edge.obsinfo ++++++
--- /var/tmp/diff_new_pack.NVSe7C/_old  2026-04-28 11:57:25.684136358 +0200
+++ /var/tmp/diff_new_pack.NVSe7C/_new  2026-04-28 11:57:25.696136857 +0200
@@ -1,5 +1,5 @@
 name: linkerd-cli-edge
-version: 26.4.3
-mtime: 1776273970
-commit: 8ca8bbcfdc58e6433925c617529d39bf48b777c3
+version: 26.4.4
+mtime: 1776969338
+commit: 811943c390851d9a57336c4d04ec1f17d2a7de01
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/linkerd-cli-edge/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.linkerd-cli-edge.new.11940/vendor.tar.gz differ: 
char 13, line 1

Reply via email to