Commit Graph

4551 Commits

Author SHA1 Message Date
dependabot[bot] a241b40654
build(deps): bump serde_yaml from 0.8.24 to 0.8.25 (#8836)
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.24 to 0.8.25.
- [Release notes](https://github.com/dtolnay/serde-yaml/releases)
- [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.24...0.8.25)

---
updated-dependencies:
- dependency-name: serde_yaml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-11 08:04:43 -07:00
dependabot[bot] 602810fa64
build(deps): bump hashbrown from 0.12.1 to 0.12.2 (#8837)
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.12.1 to 0.12.2.
- [Release notes](https://github.com/rust-lang/hashbrown/releases)
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.12.1...v0.12.2)

---
updated-dependencies:
- dependency-name: hashbrown
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-11 08:04:33 -07:00
Kevin Leimkuhler 89c397349c
Add changes for edge-22.7.1 (#8833)
This release includes a security improvement. When a user manually specified the
`policyValidator.keyPEM` setting, the value was incorrectly included in the
`linkerd-config` configmap. This means that this private key was erroneously
exposed to service accounts with read access to this configmap. Practically,
this means that the Linkerd `proxy-injector`, `identity`, and `heartbeat` pods
could read this value. This should **not** have exposed this private key to
other unauthorized users unless additional role bindings were added outside of
Linkerd. Nevertheless, we recommend that users who manually set control plane
certificates update the credentials for the policy validator after upgrading
Linkerd.

Additionally, the linkerd-multicluster extensions has several fixes related to
fail fast errors during link watch restarts, improper label matching for
mirrored services, and properly cleaning up mirrored endpoints in certain
situations.

Lastly, the proxy can now retry gRPC requests that have responses with a
TRAILERS frame. A fix to reduce redundant load balancer updates should also
result in less connection churn.

* Changed unit tests to use newly introduced `prommatch` package for asserting
  expected metrics (thanks @krzysztofdrys!)
* Fixed Docker container runtime check to only during `linkerd install` rather
  than `linkerd check --pre`
* Changed linkerd-multicluster's remote cluster watcher to assume the gateway is
  alive when starting—fixing fail fast errors from occurring during restarts
  (thanks @chenaoxd!)
* Added `matchLabels` and `matchExpressions` to linkerd-multicluster's Link CRD
* Fixed linkerd-multicluster's label selector to properly select resources that
  match the expected label value, rather than just the presence of the label
* Fixed linkerd-multicluster's cluster watcher to properly clean up endpoints
  belonging to remote headless services that are no longer mirrored
* Added the HttpRoute CRD which will be used by future policy features
* Fixed CNI plugin event processing where file updates could sometimes be
  skipped leading to the update not being acknowledged
* Fixed redundant load balancer updates in the proxy that could cause
  unnecessary connection churn
* Fixed gRPC request retries for responses that contain a TRAILERS frame
* Fixed the dashboard's `linkerd check` due to missing RBAC for listing pods in
  the cluster
* Fixed API check that ensures access to the Server CRD (thanks @aatarasoff!)
* Changed `linkerd authz` to match the labels of pre-fetched Pods rather than
  the multiple API calls it was doing—resulting in significant speed-up (thanks
  @aatarasoff!)
* Unset `policyValidtor.keyPEM` in `linkerd-config` ConfigMap

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2022-07-10 11:39:56 -06:00
Matei David 58c16b6576
Add action to lint GitHub workflows (#8737)
This change adds a linter for GitHub Actions workflows. In most cases,
Linkerd's workflows cannot be properly tested until they are triggered
in CI. This can lead to issues that are caught only during reviews (if
caught at all) or when the actions are triggered. Since running actions
can be an expensive operation (mostly in time spent), it would be useful
to have an automated way of checking our workflows and actions for
failures.

To lint our workflows, we introduce a new action to lint the workflow
templates and check the embeded scripts. The action itself will run only
when files are changed in the `.github/` directory.

Additionally, this change includes fixes to our embedded scripts, as
flagged by the action that has been introduced.

The change pins actionlint to v1.6.15.

Closes #8728

Signed-off-by: Matei David <matei@buoyant.io>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2022-07-08 10:51:40 +01:00
Kevin Leimkuhler d6c33e9743
Unset `policyValidator.keyPEM` in `linkerd-config` (#8827)
Closes #8823 

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2022-07-07 20:53:37 -06:00
Aleksandr Tarasov 0c8ba3b003
Speedup `linkerd authz` by checking pod labels (#8794)
Part of #8792

Instead of fetching a list of Pods that match a certain selector for each
ServerAuthorization, we now use a pre-fetched list of pods each time.

Signed-off-by: aatarasoff [aatarasoff@gmail.com](mailto:aatarasoff@gmail.com)
2022-07-07 17:31:54 -06:00
Alex Leong 120f91ca2c
Add validation for HTTPRoute (#8730)
Fixes #8665

We add validation for HTTPRoute resources to the policy admission controller.  We validate that for any HTTPRoute which has a Server as a parent_ref, that it doesn't have unsupported filters.  For the moment we do not support any HTTP filters.  As we add support for HTTP filter types, we should update the validator accordingly.

Signed-off-by: Alex Leong <alex@buoyant.io>

Co-authored-by: Oliver Gould <ver@buoyant.io>
2022-07-07 16:14:26 -07:00
dependabot[bot] 64b449df2d
build(deps): bump regex from 1.5.6 to 1.6.0 (#8825)
Bumps [regex](https://github.com/rust-lang/regex) from 1.5.6 to 1.6.0.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.6...1.6.0)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-07 09:42:07 -07:00
Aleksandr Tarasov 73e4bf7750
Fix server access check error (#8777)
Instead of Kind the name of resource is checked

Signed-off-by: aatarasoff <aatarasoff@gmail.com>
2022-07-06 14:06:25 -07:00
dependabot[bot] 7f40a87339
build(deps-dev): bump babel-jest from 28.1.1 to 28.1.2 in /web/app (#8819)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 28.1.1 to 28.1.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.2/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-06 11:15:07 -07:00
dependabot[bot] 2d5598937a
build(deps): bump regex-syntax from 0.6.26 to 0.6.27 (#8820)
Bumps [regex-syntax](https://github.com/rust-lang/regex) from 0.6.26 to 0.6.27.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/commits)

---
updated-dependencies:
- dependency-name: regex-syntax
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-06 09:51:30 -06:00
dependabot[bot] abfac7ade6
build(deps-dev): bump webpack-dev-server from 4.9.2 to 4.9.3 in /web/app (#8818)
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.9.2 to 4.9.3.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.2...v4.9.3)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-06 15:11:37 +00:00
dependabot[bot] 68c01b5916
build(deps-dev): bump @babel/preset-react in /web/app (#8808)
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.17.12 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-06 09:52:22 -05:00
dependabot[bot] 089d8b6847
build(deps-dev): bump jest-environment-jsdom in /web/app (#8800)
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.1 to 28.1.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.2/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-06 09:52:04 -05:00
dependabot[bot] 91d51926c2
build(deps-dev): bump eslint from 8.18.0 to 8.19.0 in /web/app (#8809)
Bumps [eslint](https://github.com/eslint/eslint) from 8.18.0 to 8.19.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.18.0...v8.19.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 19:40:57 -06:00
dependabot[bot] 7ab1bd6ec5
build(deps): bump serde from 1.0.137 to 1.0.138 (#8802)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.137 to 1.0.138.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.137...v1.0.138)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 19:40:10 -06:00
dependabot[bot] f0587bc7de
build(deps): bump once_cell from 1.12.0 to 1.13.0 (#8807)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.0...v1.13.0)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 19:39:27 -06:00
dependabot[bot] c62c37fcbb
build(deps-dev): bump @babel/preset-env in /web/app (#8810)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.2 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 15:32:14 -07:00
dependabot[bot] 4cd9bd9527
build(deps): bump @fortawesome/react-fontawesome in /web/app (#8799)
Bumps [@fortawesome/react-fontawesome](https://github.com/FortAwesome/react-fontawesome) from 0.1.18 to 0.2.0.
- [Release notes](https://github.com/FortAwesome/react-fontawesome/releases)
- [Changelog](https://github.com/FortAwesome/react-fontawesome/blob/0.2.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/react-fontawesome/compare/0.1.18...0.2.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/react-fontawesome"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 13:51:18 -07:00
Alex Leong c65562d833
Revert "feat: use direct image import in policy controller tests (#8771)" (#8813)
We have seen frequent CI failure related to failing to load images which may be related to #8771.  We revert that change to see if this improves CI reliability.

This reverts commit a57ee67fd7.

Signed-off-by: Alex Leong <alex@buoyant.io>
2022-07-05 13:33:00 -07:00
dependabot[bot] b114afe53d
build(deps-dev): bump jest from 28.1.1 to 28.1.2 in /web/app (#8796)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.1.1 to 28.1.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.2/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:12:40 -05:00
dependabot[bot] ca20d44898
build(deps-dev): bump @babel/runtime from 7.18.3 to 7.18.6 in /web/app (#8797)
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.18.3 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:12:20 -05:00
dependabot[bot] c2f81c04ea
build(deps-dev): bump @babel/core from 7.18.5 to 7.18.6 in /web/app (#8798)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.5 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:11:29 -05:00
dependabot[bot] c109d1b63d
build(deps): bump crypto-common from 0.1.3 to 0.1.4 (#8801)
Bumps [crypto-common](https://github.com/RustCrypto/traits) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/RustCrypto/traits/releases)
- [Commits](https://github.com/RustCrypto/traits/compare/crypto-common-v0.1.3...crypto-common-v0.1.4)

---
updated-dependencies:
- dependency-name: crypto-common
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:11:08 -05:00
dependabot[bot] 75ebd56b47
build(deps): bump unicode-normalization from 0.1.20 to 0.1.21 (#8803)
Bumps [unicode-normalization](https://github.com/unicode-rs/unicode-normalization) from 0.1.20 to 0.1.21.
- [Release notes](https://github.com/unicode-rs/unicode-normalization/releases)
- [Commits](https://github.com/unicode-rs/unicode-normalization/commits)

---
updated-dependencies:
- dependency-name: unicode-normalization
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:10:49 -05:00
dependabot[bot] b78312d4c9
build(deps): bump pin-project from 1.0.10 to 1.0.11 (#8804)
Bumps [pin-project](https://github.com/taiki-e/pin-project) from 1.0.10 to 1.0.11.
- [Release notes](https://github.com/taiki-e/pin-project/releases)
- [Changelog](https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/pin-project/compare/v1.0.10...v1.0.11)

---
updated-dependencies:
- dependency-name: pin-project
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:10:30 -05:00
dependabot[bot] 77f9e4ea4e
build(deps): bump tracing-subscriber from 0.3.11 to 0.3.14 (#8805)
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.11 to 0.3.14.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.11...tracing-subscriber-0.3.14)

---
updated-dependencies:
- dependency-name: tracing-subscriber
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:10:14 -05:00
Alex Leong e84a27506a
Relax Server proxyProtocol validation (#8655)
Fixes #8564

Removes the enum of allowed values from the proxyProtocol field in the Server CRD.  Instead, we rely on the admission controller to validate this field.

Before:

```
The Server "myserver" is invalid: spec.proxyProtocol: Unsupported value: "invalid": supported values: "unknown", "HTTP/1", "HTTP/2", "gRPC", "opaque", "TLS"
```

After:

```
k apply -f myserver.yml                              
Error from server: error when creating "myserver.yml": admission webhook "linkerd-policy-validator.linkerd.io" denied the request: unknown variant `invalid`, expected one of `unknown`, `HTTP/1`, `HTTP/2`, `gRPC`, `opaque`, `TLS`
```

Signed-off-by: Alex Leong <alex@buoyant.io>
2022-07-01 18:51:03 -07:00
Kevin Leimkuhler 6842eb736f
Allow AuthorizationPolicys to reference ServiceAccounts (#8709)
Closes #8565.

With this change, AuthorizationPolicys can now reference ServiceAccounts for
their target authentications. This allows users to avoid the requirement of
creating  a MeshTLSAuthentication resource that references a single
ServiceAccount.

The policy admission controller only allows an AuthorizationPolicy to reference
a single MeshTLSAuthentication _or_ a ServiceAccount; it cannot reference both.
Additionally, if a ServiceAccount is reference it can onl be a single
one—similar to MeshTLSAuthentications.

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2022-07-01 13:45:12 -06:00
Alejandro Pedraza d44dfa3621
Dashboard linkerd check fixup (#8782)
Fixes #8736, by addding RBAC to the `web` ServiceAccount to allow
listing all the pods in the cluster.
2022-07-01 10:24:11 -07:00
Krzysztof Dryś a57ee67fd7
feat: use direct image import in policy controller tests (#8771)
Direct image import should be faster, when docker and cluster are on the
same node.

Change import mode for bin/image-load

Signed-off-by: Krzysztof Dryś <krzysztofdrys@gmail.com>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2022-07-01 17:07:29 +01:00
dependabot[bot] 74673cc2ca
build(deps): bump clap from 3.2.7 to 3.2.8 (#8791)
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.7 to 3.2.8.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.7...v3.2.8)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-01 08:16:24 -07:00
dependabot[bot] 107e67ac54
build(deps): bump github.com/emicklei/proto from 1.10.0 to 1.11.0 (#8790)
Bumps [github.com/emicklei/proto](https://github.com/emicklei/proto) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/emicklei/proto/releases)
- [Changelog](https://github.com/emicklei/proto/blob/master/CHANGES.md)
- [Commits](https://github.com/emicklei/proto/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: github.com/emicklei/proto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-01 15:45:15 +01:00
Oliver Gould 765bd11795
proxy: v2.182.0 (#8781)
This release updates the proxy's service discovery module to avoid
redundant load balancer updates that could cause unnecessary connection
churn.

This release also includes improvements to the proxy's retry handling of
gRPC requests. The proxy would not retry requests when a response's
status code was emitted in a TRAILERS frame. This has been fixed.

This release also includes a number of internal changes that set up for
per-route authorization. There should be no user-facing impact at this
point except for the introduction of additional metrics labels.

---

* build(deps): bump mio from 0.8.3 to 0.8.4 (linkerd/linkerd2-proxy#1760)
* build(deps): bump quote from 1.0.18 to 1.0.19 (linkerd/linkerd2-proxy#1761)
* build(deps): bump tower-service from 0.3.1 to 0.3.2 (linkerd/linkerd2-proxy#1762)
* build(deps): bump proc-macro2 from 1.0.39 to 1.0.40 (linkerd/linkerd2-proxy#1763)
* build(deps): bump syn from 1.0.96 to 1.0.98 (linkerd/linkerd2-proxy#1764)
* build(deps): bump prettyplease from 0.1.12 to 0.1.14 (linkerd/linkerd2-proxy#1766)
* build(deps): bump anyhow from 1.0.57 to 1.0.58 (linkerd/linkerd2-proxy#1767)
* dev: Update build settings (linkerd/linkerd2-proxy#1765)
* Dedupe discovery updates (linkerd/linkerd2-proxy#1759)
* build(deps): bump quote from 1.0.19 to 1.0.20 (linkerd/linkerd2-proxy#1768)
* deny: Remove tokio-util from exceptions (linkerd/linkerd2-proxy#1769)
* dev: Update memory contraints (linkerd/linkerd2-proxy#1770)
* Reorganize `server-policy` to set up for routes (linkerd/linkerd2-proxy#1771)
* inbound: Rename policy-enforcement layers (linkerd/linkerd2-proxy#1772)
* ci: Split fuzzer logic into a script (linkerd/linkerd2-proxy#1773)
* build(deps): bump prettyplease from 0.1.14 to 0.1.15 (linkerd/linkerd2-proxy#1775)
* build(deps): bump indexmap from 1.9.0 to 1.9.1 (linkerd/linkerd2-proxy#1776)
* integration: Cleanup test server (linkerd/linkerd2-proxy#1777)
* http-retry: Move the ReplayBody type into a module (linkerd/linkerd2-proxy#1778)
* inbound: Add route authorization labels (linkerd/linkerd2-proxy#1774)
* Rename HTTPRoutePermit to HttpRoutePermit (linkerd/linkerd2-proxy#1779)
* retry gRPC requests are immediately terminated by trailers (linkerd/linkerd2-proxy#1706)
* inbound: Record policy metrics for opaque-transport connections (linkerd/linkerd2-proxy#1780)
* build(deps): bump tj-actions/changed-files from 23 to 23.1 (linkerd/linkerd2-proxy#1782)
* build(deps): bump derive_arbitrary from 1.1.2 to 1.1.3 (linkerd/linkerd2-proxy#1783)
* build(deps): bump arbitrary from 1.1.2 to 1.1.3 (linkerd/linkerd2-proxy#1784)
* inbound: Record TCP metrics for forwarded TLS connections (linkerd/linkerd2-proxy#1785)
* inbound: Cleanup in preparation for route policies #1781 (linkerd/linkerd2-proxy#1786)
* Add HTTP route matchers to support the Gateway API (linkerd/linkerd2-proxy#1787)
* build(deps): bump unicode-normalization from 0.1.19 to 0.1.20 (linkerd/linkerd2-proxy#1789)
* build(deps): bump linked-hash-map from 0.5.4 to 0.5.6 (linkerd/linkerd2-proxy#1790)
* build(deps): bump smallvec from 1.8.0 to 1.8.1 (linkerd/linkerd2-proxy#1791)
* build(deps): bump jemalloc-sys from 0.5.0+5.3.0 to 0.5.1+5.3.0-patched (linkerd/linkerd2-proxy#1792)
* Introduce per-route authorization policies (linkerd/linkerd2-proxy#1781)
* inbound: Add a header-modification route filter (linkerd/linkerd2-proxy#1793)
* docs: update justfile man page link (linkerd/linkerd2-proxy#1794)

Signed-off-by: Oliver Gould <ver@buoyant.io>
2022-06-30 15:43:31 -07:00
Oliver Gould 675a16ec3c
ci: Pin cluster version to v1.24 (#8780)
K3d now includes a *v1.24* release channel. This change updates the
policy controller test workflow to use that fixed version instead of
*latest*.

Signed-off-by: Oliver Gould <ver@buoyant.io>
2022-06-30 15:42:39 -07:00
Matei David acf5a563a6
Fix CNI plugin event processing (#8778)
The CNI plugin watches for file changes and reacts accordingly. To
append our CNI plugin configuration to an existing configuration file,
we keep a watch on the config file directory, and whenever a new file is
created (or modified) we append to it. To avoid redundancy and infinite
loops, after a file has been processed, we save its SHA in-memory.
Whenever a new update is received, we calculate the file's SHA, and if
it differs from the previous one, we update it (since the file hasn't
been 'seen' by our script yet). The in-memory SHA is continously
overridden as updates are received and processed.

In our processing logic, we override the SHA only if the file exists (in
short, we want to avoid processing the SHA on 'DELETE' events). However,
when a different CNI plugin deletes the file, it typically re-creates it
immediately after. Since we do not check for the event type and instead
rely only on file existence, we end up calculating the SHA for a new
file before the file has had a chance to be processed when its
associated 'CREATE' event is picked up. This means that new files will
essentially be skipped from being updated, since the script considers
them to have been processed already (since their SHA was calculated when
the previous file was deleted).

This change fixes the bug by introducing a type check for the event in
addition to checking the file's existence. This allows us to be sure
that new files are only processed when the 'CREATE' event is picked up,
ensuring we do not skip them.

Signed-off-by: Matei David <matei@buoyant.io>
2022-06-30 18:04:46 +01:00
dependabot[bot] 63aea634f0
build(deps): bump serde_json from 1.0.81 to 1.0.82 (#8773)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.81 to 1.0.82.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.81...v1.0.82)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-30 08:54:54 -07:00
dependabot[bot] 30f2fe15db
build(deps): bump zeroize from 1.5.5 to 1.5.6 (#8776)
Bumps [zeroize](https://github.com/RustCrypto/utils) from 1.5.5 to 1.5.6.
- [Release notes](https://github.com/RustCrypto/utils/releases)
- [Commits](https://github.com/RustCrypto/utils/compare/zeroize-v1.5.5...zeroize-v1.5.6)

---
updated-dependencies:
- dependency-name: zeroize
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-30 08:54:24 -07:00
dependabot[bot] fd58397907
build(deps): bump smallvec from 1.8.1 to 1.9.0 (#8774)
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: smallvec
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-30 08:54:10 -07:00
dependabot[bot] 0b0f09c90a
build(deps): bump either from 1.6.1 to 1.7.0 (#8772)
Bumps [either](https://github.com/bluss/either) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/bluss/either/releases)
- [Commits](https://github.com/bluss/either/compare/1.6.1...1.7.0)

---
updated-dependencies:
- dependency-name: either
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-30 08:53:50 -07:00
Krzysztof Dryś f2351e9ba8
fix: image load in policy controller tests (#8769)
Import images using proper image name, remove docker.io prefix

Signed-off-by: Krzysztof Dryś <krzysztofdrys@gmail.com>
2022-06-29 11:06:29 -07:00
Alex Leong df177e67eb
Add HttpRoute CRD (#8675)
Fixes #8660

We add the HttpRoute CRD to the CRDs installed with `linkerd install --crds` and `linkerd upgrade --crds`.  You can use the `--set installHttpRoute=false` to skip installing this CRD.

Signed-off-by: Alex Leong <alex@buoyant.io>
2022-06-29 09:50:23 -07:00
dependabot[bot] 9aa0a702ad
build(deps): bump clap from 3.2.6 to 3.2.7 (#8766)
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.6 to 3.2.7.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.6...v3.2.7)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-29 10:02:13 -06:00
dependabot[bot] adae2fa6e1
build(deps): bump clap_lex from 0.2.3 to 0.2.4 (#8767)
Bumps [clap_lex](https://github.com/clap-rs/clap) from 0.2.3 to 0.2.4.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_lex-v0.2.3...clap_lex-v0.2.4)

---
updated-dependencies:
- dependency-name: clap_lex
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-29 10:01:55 -06:00
Kevin Leimkuhler b09c033479
Add unit test for `linkerd multicluster link` command (#8757)
As part of #7082 we need to add HA mode to linkerd-multicluster's service mirror
component. Before adding configuration for it, we should have a basic unit test
that asserts the output of `linkerd multicluster link`.

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2022-06-29 10:01:31 -06:00
Kevin Leimkuhler 8921c89a5f
multicluster: Delete headless services and endpoints when not exported (#8755)
Closes #8475

When a headless service that was exported no longer is, we currently continue to
mirror it and its endpoints. The bug is as follows

1. The service is updated (say with `mirror.linkerd.io/exported: false`) and
   `createOrUpdateService` is called
2. The service is _not_ exported, so we queue a `RemoteServiceDeleted`
3. The `RemoteServiceDeleted` is processed and the service and its mirror
   endpoints are deleted
4. The service's endpoints are updated (on the remote cluser with the new label)
   and `handleCreateOrUpdateEndpoints` is called
5. The endpoints belong to a headless service so
   `createOrUpdateHeadlessEndpoints` is called
6. `createOrUpdateHeadlessEndpoints` recreates the just-deleted service and
   endpoints

We should stop processing the service update after `3`; the service and it's
endpionts have been properly deleted.

To fix this, we should avoid calling `handleCreateOrUpdateEndpoints` when the
new endpoints are not exported. Currently we only avoid calling this function
when both the old _and_ new endpoints are not exported.

In the case of endpoints going from being exported to be not being exported, we
don't really care about the old set's status. Therefore, to fix this bug we
remove that check and avoid calling `handleCreateOrUpdateEndpoints` when the new
set is no longer exported.

I've tested this to make sure the issue is fixed. Testing can be done
manually—which is what I did—or as explained
[here](https://github.com/linkerd/linkerd2/pull/8734#pullrequestreview-1018622066).

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2022-06-28 15:04:30 -06:00
dependabot[bot] eadfcaa931
build(deps-dev): bump @lingui/cli from 3.13.3 to 3.14.0 in /web/app (#8752)
Bumps [@lingui/cli](https://github.com/lingui/js-lingui) from 3.13.3 to 3.14.0.
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v3.13.3...v3.14.0)

---
updated-dependencies:
- dependency-name: "@lingui/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-27 14:55:13 -05:00
dependabot[bot] 621a2a8d41
build(deps-dev): bump eslint-plugin-react in /web/app (#8753)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.30.0 to 7.30.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.0...v7.30.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-27 14:54:53 -05:00
dependabot[bot] bfabf0b656
build(deps): bump core-js from 3.23.2 to 3.23.3 in /web/app (#8754)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.23.2 to 3.23.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.23.2...v3.23.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-27 14:54:36 -05:00
Kevin Leimkuhler cf8874684f
Add correct match properties to link CRD to fix mirroring (#8734)
The Link created by `linkerd multicluster link` has a match expression that checks for the existance of the `mirror.linkerd.io/exported` label on services; if the label exists then the service is mirrored. This is not always correct because if `mirror.linkerd.io/exported: false`, the service mirror still mirrors the service even though it should not.

The fix for this was not related to label matching — it is already handled correctly. What needed to be fixed was the actual Link CRD to allow for `matchLabels` and `matchExpressions.values`.

The default `matchLabel` is now `mirror.linkerd.io/exported: "true"` as changed in `newLinkOptionsWithDefault`.

Users can now also properly set match properties with the `-l` flag. Before these resulted in parsing errors since the Link CRD did not support these properly

```shell
$ bin/linkerd --context k3d-x multicluster link --cluster-name k3d-x -l 'mirror.linkerd.io/exported in (true)' |kubectl --context k3d-y apply -f -
...
$ bin/linkerd --context k3d-x mc link --cluster-name k3d-x --api-server-address https://172.18.0.3:6443 -l 'foo.bar=mirror-me' > link-x.yaml
```

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2022-06-27 13:41:47 -06:00