Repository: linkerd/linkerd2
Pull request #5997 (2021-04-07 13:41:37)

update DCO instructions
Signed-off-by: William Morgan <william@buoyant.io>

<!--  Thanks for sending a pull request!

If you already have a well-structured git commit message, chances are GitHub
set the title and description of this PR to the git commit message subject and
body, respectively. If so, you may delete these instructions and submit your PR.

If this is your first time, please read our contributor guide:
https://github.com/linkerd/linkerd2/blob/main/CONTRIBUTING.md

The title and description of your Pull Request should match the git commit
subject and body, respectively. Git commit messages are structured as follows:

```
Subject

Problem

Solution

Validation

Fixes #[GitHub issue ID]

DCO Sign off
```

Example git commit message:

```
Introduce Pull Request Template

GitHub's community guidelines recommend a pull request template, the repo was
lacking one.

Introduce a `PULL_REQUEST_TEMPLATE.md` file.

Once merged, the
[Community profile checklist](https://github.com/linkerd/linkerd2/community)
should indicate the repo now provides a pull request template.

Fixes #3321

Signed-off-by: Jane Smith <jane.smith@example.com>
```

Note the git commit message subject becomes the pull request title.

For more details around git commits, see the section on Committing in our
contributor guide:
https://github.com/linkerd/linkerd2/blob/main/CONTRIBUTING.md#committing
-->


wmorgan: cc @caniszczyk 

Patch:
diff --git a/.proxy-version b/.proxy-version
index fcbf74c5b..89d46b221 100644
--- a/.proxy-version
+++ b/.proxy-version
@@ -1,1 +1,1 @@
-v2.140.0
+v2.141.0
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 959e5f803..947cfb1d2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -16,8 +16,10 @@ as a contributor, have the legal right to make the contribution.
 
 See the [DCO](DCO) file for the full text of what you must agree to.
 
-To signify that you agree to the DCO for a commit, you add a line to the git
-commit message:
+### Option 1: commit message signoffs ###
+
+One way to signify that you agree to the DCO for a commit is to add a line to
+the git commit message:
 
 ```txt
 Signed-off-by: Jane Smith <jane.smith@example.com>
@@ -27,6 +29,25 @@ In most cases, you can add this signoff to your commit automatically with the
 `-s` flag to `git commit`. You must use your real name and a reachable email
 address (sorry, no pseudonyms or anonymous contributions).
 
+### Option 2: public statement ###
+
+If you've already made the commits and don't want to engage in git shenanigans
+to retroactively apply the signoff as above, there is another option: leave a
+comment on the PR with the following statement: "I agree to the DCO for all the
+commits in this PR."
+
+Note that this option also requires that your commits are made under your real
+name and a reachable email address.
+
+If you use this approach, the DCO bot will still complain, but maintainers will
+override the DCO bot at merge time.
+
+### Option 3: very simple changes ###
+
+Changes that are trivial (e.g. spelling corrections, adding to ADOPTERS.md,
+one-word changes) do not require a DCO signoff. Maintainers should feel free to
+override the DCO bot for these changes.
+
 ## Submitting a Pull Request ##
 
 Do you have an improvement?
diff --git a/charts/linkerd2/templates/trafficsplit-crd.yaml b/charts/linkerd2/templates/trafficsplit-crd.yaml
index 6707abecc..02fd0b306 100644
--- a/charts/linkerd2/templates/trafficsplit-crd.yaml
+++ b/charts/linkerd2/templates/trafficsplit-crd.yaml
@@ -38,21 +38,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/repair.go b/cli/cmd/repair.go
index f6b137516..8062e49c3 100644
--- a/cli/cmd/repair.go
+++ b/cli/cmd/repair.go
@@ -1,23 +1,39 @@
 package cmd
 
 import (
+	"context"
 	"errors"
 	"fmt"
+	"os"
+	"regexp"
 	"time"
 
 	"github.com/golang/protobuf/ptypes"
+	"github.com/linkerd/linkerd2/controller/api/public"
 	pb "github.com/linkerd/linkerd2/controller/gen/config"
 	"github.com/linkerd/linkerd2/pkg/charts/linkerd2"
+	"github.com/linkerd/linkerd2/pkg/healthcheck"
 	"github.com/linkerd/linkerd2/pkg/k8s"
+	"github.com/linkerd/linkerd2/pkg/version"
 	"github.com/spf13/cobra"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"sigs.k8s.io/yaml"
 )
 
+var (
+	// repairNotApplicableVersionRegex matches older versions of Linkerd i.e
+	// 2.8 and below
+	repairNotApplicableVersionRegex = regexp.MustCompile(`^stable-2\.[0-8]\.([0-9]+)$`)
+
+	// repairApplicableVersionRegex matches versions 2.9 versions upto 2.9.4
+	repairApplicableVersionRegex = regexp.MustCompile(`^stable-2\.9\.[0-4]$`)
+)
+
 // newCmdRepair creates a new cobra command `repair` which re-creates the
 // linkerd-config-overrides secret if it has been deleted.
 func newCmdRepair() *cobra.Command {
 
+	var force bool
 	cmd := &cobra.Command{
 		Use:   "repair",
 		Short: "Output the secret/linkerd-config-overrides resource if it has been deleted",
@@ -32,80 +48,117 @@ linkerd upgrade.`,
 		Example: "  linkerd repair | kubectl apply -f -",
 		Args:    cobra.NoArgs,
 		RunE: func(cmd *cobra.Command, args []string) error {
-			k8sAPI, err := k8s.NewAPI(kubeconfigPath, kubeContext, impersonate, impersonateGroup, 0)
+			err := repair(cmd.Context(), force)
 			if err != nil {
-				return err
+				fmt.Fprintf(os.Stderr, err.Error()+"\n")
+				os.Exit(1)
 			}
+			return nil
+		},
+	}
 
-			// Error out if linkerd-config-overrides already exists.
-			_, err = k8sAPI.CoreV1().Secrets(controlPlaneNamespace).Get(cmd.Context(), "linkerd-config-overrides", metav1.GetOptions{})
-			if err == nil {
-				return errors.New("secret/linkerd-config-overrides already exists. If you need to regenerate this resource, please delete it before proceeding")
-			}
+	cmd.Flags().BoolVarP(&force, "force", "f", force, "Force render even if the CLI and control-plane versions don't match")
 
-			// Load the stored config
-			config, err := k8sAPI.CoreV1().ConfigMaps(controlPlaneNamespace).Get(cmd.Context(), "linkerd-config", metav1.GetOptions{})
-			if err != nil {
-				return fmt.Errorf("Failed to load linkerd-config: %s", err)
-			}
+	return cmd
+}
 
-			values := linkerd2.Values{}
+func repair(ctx context.Context, forced bool) error {
+	k8sAPI, err := k8s.NewAPI(kubeconfigPath, kubeContext, impersonate, impersonateGroup, 0)
+	if err != nil {
+		return err
+	}
 
-			valuesRaw, ok := config.Data["values"]
-			if !ok {
-				return errors.New("values not found in linkerd-config")
-			}
+	// Error out if linkerd-config-overrides already exists.
+	_, err = k8sAPI.CoreV1().Secrets(controlPlaneNamespace).Get(ctx, "linkerd-config-overrides", metav1.GetOptions{})
+	if err == nil {
+		return errors.New("secret/linkerd-config-overrides already exists. If you need to regenerate this resource, please delete it before proceeding")
+	}
 
-			err = yaml.Unmarshal([]byte(valuesRaw), &values)
-			if err != nil {
-				return fmt.Errorf("Failed to load values from linkerd-config: %s", err)
-			}
+	// Check if the CLI version matches with that of the server
+	clientVersion := version.Version
+	var serverVersion string
+	publicClient, err := public.NewExternalClient(ctx, controlPlaneNamespace, k8sAPI)
+	if err != nil {
+		return err
+	}
+	serverVersion, err = healthcheck.GetServerVersion(ctx, publicClient)
+	if err != nil {
+		return err
+	}
 
-			// Reset version fields
-			err = resetVersion(&values)
-			if err != nil {
-				return fmt.Errorf("Failed to reset version fields in linkerd-config: %s", err)
-			}
+	if !forced && serverVersion != clientVersion {
+		// Suggest directly upgrading to 2.9.4 or above for older versions
+		if repairNotApplicableVersionRegex.Match([]byte(serverVersion)) {
+			return fmt.Errorf("repair command is only applicable to 2.9 control-plane versions. Please try upgrading to the latest supported versions of Linkerd i.e 2.9.4 and above")
+		}
 
-			clockSkewDuration, err := time.ParseDuration(values.Identity.Issuer.ClockSkewAllowance)
-			if err != nil {
-				return fmt.Errorf("Failed to parse ClockSkewAllowance from linkerd-config: %s", err)
-			}
-			issuanceLifetime, err := time.ParseDuration(values.Identity.Issuer.IssuanceLifetime)
-			if err != nil {
-				return fmt.Errorf("Failed to parse IssuanceLifetime from linkerd-config: %s", err)
-			}
-			idCtx := pb.IdentityContext{
-				TrustAnchorsPem:    values.IdentityTrustAnchorsPEM,
-				Scheme:             values.Identity.Issuer.Scheme,
-				ClockSkewAllowance: ptypes.DurationProto(clockSkewDuration),
-				IssuanceLifetime:   ptypes.DurationProto(issuanceLifetime),
-				TrustDomain:        values.IdentityTrustDomain,
-			}
+		// Suggest 2.9.4 CLI version for all 2.9 server versions upto 2.9.4
+		if repairApplicableVersionRegex.Match([]byte(serverVersion)) {
+			return fmt.Errorf("Please run the repair command with a `stable-2.9.4` CLI.\nRun `curl -sL https://run.linkerd.io/install | LINKERD2_VERSION=\"stable-2.9.4\" sh` to install the server version of the CLI")
+		}
 
-			// Populate identity values
-			err = fetchIdentityValues(cmd.Context(), k8sAPI, &idCtx, &values)
-			if err != nil {
-				return fmt.Errorf("Failed to load issuer credentials: %s", err)
-			}
+		// Suggest server version for everything else. This includes all edge versions
+		return fmt.Errorf("Please run the repair command with a CLI that has the same version as the control plane.\nRun `curl -sL https://run.linkerd.io/install | LINKERD2_VERSION=\"%s\" sh` to install the server version of the CLI", serverVersion)
+	}
 
-			valuesMap, err := values.ToMap()
-			if err != nil {
-				return fmt.Errorf("Failed to convert Values into a map: %s", err)
-			}
+	// Load the stored config
+	config, err := k8sAPI.CoreV1().ConfigMaps(controlPlaneNamespace).Get(ctx, "linkerd-config", metav1.GetOptions{})
+	if err != nil {
+		return fmt.Errorf("Failed to load linkerd-config: %s", err)
+	}
 
-			overrides, err := renderOverrides(valuesMap, true)
-			if err != nil {
-				return fmt.Errorf("Failed to render overrides: %s", err)
-			}
+	values := linkerd2.Values{}
 
-			fmt.Print(string(overrides))
+	valuesRaw, ok := config.Data["values"]
+	if !ok {
+		return errors.New("values not found in linkerd-config")
+	}
 
-			return nil
-		},
+	err = yaml.Unmarshal([]byte(valuesRaw), &values)
+	if err != nil {
+		return fmt.Errorf("Failed to load values from linkerd-config: %s", err)
 	}
 
-	return cmd
+	err = resetVersion(&values)
+	if err != nil {
+		return fmt.Errorf("Failed to reset version fields in linkerd-config: %s", err)
+	}
+
+	clockSkewDuration, err := time.ParseDuration(values.Identity.Issuer.ClockSkewAllowance)
+	if err != nil {
+		return fmt.Errorf("Failed to parse ClockSkewAllowance from linkerd-config: %s", err)
+	}
+	issuanceLifetime, err := time.ParseDuration(values.Identity.Issuer.IssuanceLifetime)
+	if err != nil {
+		return fmt.Errorf("Failed to parse IssuanceLifetime from linkerd-config: %s", err)
+	}
+	idCtx := pb.IdentityContext{
+		TrustAnchorsPem:    values.IdentityTrustAnchorsPEM,
+		Scheme:             values.Identity.Issuer.Scheme,
+		ClockSkewAllowance: ptypes.DurationProto(clockSkewDuration),
+		IssuanceLifetime:   ptypes.DurationProto(issuanceLifetime),
+		TrustDomain:        values.IdentityTrustDomain,
+	}
+
+	// Populate identity values
+	err = fetchIdentityValues(ctx, k8sAPI, &idCtx, &values)
+	if err != nil {
+		return fmt.Errorf("Failed to load issuer credentials: %s", err)
+	}
+
+	valuesMap, err := values.ToMap()
+	if err != nil {
+		return fmt.Errorf("Failed to convert Values into a map: %s", err)
+	}
+
+	overrides, err := renderOverrides(valuesMap, true)
+	if err != nil {
+		return fmt.Errorf("Failed to render overrides: %s", err)
+	}
+
+	fmt.Print(string(overrides))
+
+	return nil
 }
 
 // resetVersion sets all linkerd version fields to the chart's default version
@@ -119,8 +172,19 @@ func resetVersion(values *linkerd2.Values) error {
 	if err != nil {
 		return err
 	}
-	values.DebugContainer.Image.Version = defaults.DebugContainer.Image.Version
-	values.Proxy.Image.Version = defaults.Proxy.Image.Version
+
+	if values.DebugContainer != nil && values.DebugContainer.Image != nil {
+		values.DebugContainer.Image.Version = defaults.DebugContainer.Image.Version
+	}
+
+	if values.Proxy != nil && values.Proxy.Image != nil {
+		values.Proxy.Image.Version = defaults.Proxy.Image.Version
+	}
+
+	if values.ProxyInit != nil && values.ProxyInit.Image != nil {
+		values.ProxyInit.Image.Version = defaults.ProxyInit.Image.Version
+	}
+
 	values.CliVersion = defaults.CliVersion
 	values.ControllerImageVersion = defaults.ControllerImageVersion
 	values.LinkerdVersion = defaults.LinkerdVersion


Test patch:
diff --git a/cli/cmd/testdata/install_controlplane_tracing_output.golden b/cli/cmd/testdata/install_controlplane_tracing_output.golden
index 5218b9e60..a9a47ad19 100644
--- a/cli/cmd/testdata/install_controlplane_tracing_output.golden
+++ b/cli/cmd/testdata/install_controlplane_tracing_output.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_custom_domain.golden b/cli/cmd/testdata/install_custom_domain.golden
index 5cf2c142b..76127e1c6 100644
--- a/cli/cmd/testdata/install_custom_domain.golden
+++ b/cli/cmd/testdata/install_custom_domain.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_custom_registry.golden b/cli/cmd/testdata/install_custom_registry.golden
index b94b8b1ee..6c4307d39 100644
--- a/cli/cmd/testdata/install_custom_registry.golden
+++ b/cli/cmd/testdata/install_custom_registry.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_default.golden b/cli/cmd/testdata/install_default.golden
index 92cd24c8c..716455421 100644
--- a/cli/cmd/testdata/install_default.golden
+++ b/cli/cmd/testdata/install_default.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_default_override_dst_get_nets.golden b/cli/cmd/testdata/install_default_override_dst_get_nets.golden
index d7681d43d..45cffa1b8 100644
--- a/cli/cmd/testdata/install_default_override_dst_get_nets.golden
+++ b/cli/cmd/testdata/install_default_override_dst_get_nets.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_ha_output.golden b/cli/cmd/testdata/install_ha_output.golden
index 8fa067da9..d6b7d42ff 100644
--- a/cli/cmd/testdata/install_ha_output.golden
+++ b/cli/cmd/testdata/install_ha_output.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_ha_with_overrides_output.golden b/cli/cmd/testdata/install_ha_with_overrides_output.golden
index 7f7063ec4..40412dbbe 100644
--- a/cli/cmd/testdata/install_ha_with_overrides_output.golden
+++ b/cli/cmd/testdata/install_ha_with_overrides_output.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_heartbeat_disabled_output.golden b/cli/cmd/testdata/install_heartbeat_disabled_output.golden
index 3ac825c96..26ad50788 100644
--- a/cli/cmd/testdata/install_heartbeat_disabled_output.golden
+++ b/cli/cmd/testdata/install_heartbeat_disabled_output.golden
@@ -482,21 +482,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_helm_output.golden b/cli/cmd/testdata/install_helm_output.golden
index 46f7acb0a..055c1afb5 100644
--- a/cli/cmd/testdata/install_helm_output.golden
+++ b/cli/cmd/testdata/install_helm_output.golden
@@ -565,21 +565,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_helm_output_ha.golden b/cli/cmd/testdata/install_helm_output_ha.golden
index 46264dfd0..4200b2420 100644
--- a/cli/cmd/testdata/install_helm_output_ha.golden
+++ b/cli/cmd/testdata/install_helm_output_ha.golden
@@ -565,21 +565,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_helm_output_ha_labels.golden b/cli/cmd/testdata/install_helm_output_ha_labels.golden
index 83019a553..8b7c03861 100644
--- a/cli/cmd/testdata/install_helm_output_ha_labels.golden
+++ b/cli/cmd/testdata/install_helm_output_ha_labels.golden
@@ -565,21 +565,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden b/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden
index dceb98881..9888a1ac2 100644
--- a/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden
+++ b/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden
@@ -565,21 +565,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_no_init_container.golden b/cli/cmd/testdata/install_no_init_container.golden
index c64586889..bf90430f6 100644
--- a/cli/cmd/testdata/install_no_init_container.golden
+++ b/cli/cmd/testdata/install_no_init_container.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_output.golden b/cli/cmd/testdata/install_output.golden
index e53179665..5cef7bdb0 100644
--- a/cli/cmd/testdata/install_output.golden
+++ b/cli/cmd/testdata/install_output.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_proxy_ignores.golden b/cli/cmd/testdata/install_proxy_ignores.golden
index 1fc16ce77..946eb2805 100644
--- a/cli/cmd/testdata/install_proxy_ignores.golden
+++ b/cli/cmd/testdata/install_proxy_ignores.golden
@@ -551,21 +551,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array
diff --git a/cli/cmd/testdata/install_values_file.golden b/cli/cmd/testdata/install_values_file.golden
index 13dd36062..bab44226e 100644
--- a/cli/cmd/testdata/install_values_file.golden
+++ b/cli/cmd/testdata/install_values_file.golden
@@ -537,21 +537,6 @@ spec:
                 service:
                   description: The apex service of this split.
                   type: string
-                matches:
-                  description: The HTTP route groups that this traffic split should match.
-                  type: array
-                  items:
-                    type: object
-                    required: ['kind', 'name']
-                    properties:
-                      kind:
-                        description: Kind of the matching group.
-                        type: string
-                        enum:
-                          - HTTPRouteGroup
-                      name:
-                        description: Name of the matching group.
-                        type: string
                 backends:
                   description: The backend services of this split.
                   type: array