linkerd2/pkg/multicluster
Alejandro Pedraza b5aec5d451
Make `linkerd mc link`'s output compatible with pre-edge-24.9.3 clusters (#13161)
Followup to #1306

## Problem

if we run `linkerd mc link` using the latest CLI and attempted to apply the resulting manifests into a cluster with linkerd-multicluster on version edge-24.9.2 and earlier we would get the following error:

```
Error from server (BadRequest): error when creating "STDIN": Link in version "v1alpha1" cannot be handled as a Link: strict decoding error: unknown field "spec.probeSpec.failureThreshold", unknown field "spec.probeSpec.timeout"
```

## Solution

This changes the `linkerd mc link` command so that it doesn't generate default entries for the new (optional) fields `failureThreshold` and `timeout`, so that the output remains compatible with previous versions of the Link CRD.

We're also removing those fields from the linkerd-multicluster values.yaml file, and we're removing the corresponding annotations on the gateway workload. These values and annotations were added in edge-24.9.3.

This means that (at least for now) `linkerd mc link` will never generate those fields, and the way for users to tweak them is directly in the Link CR (once the user upgrades the linkerd-multicluster extension, the existing Link CRs will automatically receive the default values, as they are declared in the Link CRD definition).
2024-10-10 13:51:12 -05:00
..
link.go Make `linkerd mc link`'s output compatible with pre-edge-24.9.3 clusters (#13161) 2024-10-10 13:51:12 -05:00