Skip to content

Commit

Permalink
Merge pull request #3705 from telepresenceio/thallgren/drop-metriton
Browse files Browse the repository at this point in the history
Make usage data collection configurable using an extension point
  • Loading branch information
thallgren authored Oct 14, 2024
2 parents 945c9ec + dd2dc90 commit 2e14edc
Show file tree
Hide file tree
Showing 31 changed files with 113 additions and 1,369 deletions.
13 changes: 1 addition & 12 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,15 +164,6 @@ shortens the time for the test with about 20 seconds.
- You will need to have [argo-rollouts](https://github.com/argoproj/argo-rollouts) (including kubectl-argo-rollouts) installed
if you interact with functionality that relies on it.

## Blocking Ambassador telemetry
Telemetry to Ambassador Labs can be disabled by having your os resolve the `metriton.datawire.io` to `127.0.0.1`.

### Windows
`echo "127.0.0.1 metriton.datawire.io" >> c:\windows\system32\drivers\etc\hosts`

### Linux and MacOS
`echo "127.0.0.1 metriton.datawire.io" | sudo tee -a /etc/hosts`

## Build the binary, push the image

The easiest thing to do to get going:
Expand Down Expand Up @@ -246,9 +237,7 @@ binaries. However, after that initial run, you can instead use

### Test metric collection

**When running in CI,** `make check-unit` and `make check-integration` will report the result of test
runs to metriton, Ambassador Labs' metrics store. These reports include test name, running time, and
result. They are reported by the tool at `tools/src/test-report`. This `test-report` tool will also
**When running in CI,** `make check-unit` and `make check-integration` this `test-report` tool will
visually modify test output; this happens even running locally, since the json output to go test
is piped to the tool anyway:

Expand Down
1 change: 0 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,4 @@ A few sentences describing the overall goals of the pull request's commits.
- [ ] I made sure to add any docs changes required for my change (including release notes).
- [ ] My change is adequately tested.
- [ ] I updated `CONTRIBUTING.md` with any special dev tricks I had to use to work on this code efficiently.
- [ ] I updated `TELEMETRY.md` if I added, changed, or removed a metric name.
- [ ] Once my PR is ready to have integration tests ran, I posted the PR in #telepresence-dev in the datawire-oss slack so that the "ok to test" label can be applied.
5 changes: 5 additions & 0 deletions CHANGELOG.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ items:
- version: 2.21.0
date: TBD
notes:
- type: feature
title: Make usage data collection configurable using an extension point, and default to no-ops
body: >-
The OSS code-base will no longer report usage data to the proprietary collector at Ambassador Labs. The actual calls
to the collector remain, but will be no-ops unless a proper collector client is installed using an extension point.
- type: feature
title: Intercepts targeting a specific container
body: ->
Expand Down
13 changes: 1 addition & 12 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,15 +163,6 @@ shortens the time for the test with about 20 seconds.
- You will need to have [mockgen](https://github.com/golang/mock) installed
to generate new or updated testing mocks for interfaces.

## Blocking Ambassador telemetry
Telemetry to Ambassador Labs can be disabled by having your os resolve the `metriton.datawire.io` to `127.0.0.1`.

### Windows
`echo "127.0.0.1 metriton.datawire.io" >> c:\windows\system32\drivers\etc\hosts`

### Linux and MacOS
`echo "127.0.0.1 metriton.datawire.io" | sudo tee -a /etc/hosts`

## Build the binary, push the image

The easiest thing to do to get going:
Expand Down Expand Up @@ -245,9 +236,7 @@ binaries. However, after that initial run, you can instead use

### Test metric collection

**When running in CI,** `make check-unit` and `make check-integration` will report the result of test
runs to metriton, Ambassador Labs' metrics store. These reports include test name, running time, and
result. They are reported by the tool at `tools/src/test-report`. This `test-report` tool will also
**When running in CI,** `make check-unit` and `make check-integration` this `test-report` tool will
visually modify test output; this happens even running locally, since the json output to go test
is piped to the tool anyway:

Expand Down
1 change: 0 additions & 1 deletion DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ following Free and Open Source software:
github.com/datawire/go-ftpserver v0.1.3 Apache License 2.0
github.com/datawire/go-fuseftp/rpc v0.4.4 Apache License 2.0
github.com/datawire/k8sapi v0.1.6-0.20240820125232-ee712486e677 Apache License 2.0
github.com/datawire/metriton-go-client v0.1.1 Apache License 2.0
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ISC license
github.com/distribution/reference v0.6.0 Apache License 2.0
github.com/docker/cli v27.3.0+incompatible Apache License 2.0
Expand Down
37 changes: 0 additions & 37 deletions TELEMETRY.md

This file was deleted.

4 changes: 0 additions & 4 deletions charts/telepresence/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,6 @@ spec:
value: "{{ join " " . }}"
{{- end }}
{{- end }}
{{- if not .metritonEnabled }} # 0 is false
- name: SCOUT_DISABLE
value: "1"
{{- end }}
{{- /*
Client configuration
*/}}
Expand Down
3 changes: 0 additions & 3 deletions charts/telepresence/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,6 @@ grpc:
# podCIDRs is the verbatim list of CIDRs used when the podCIDRStrategy is set to environment
podCIDRs: []

# Enable/disable metriton reporting to ambassador
metritonEnabled: true

# podCIDRStrategy controls what strategy the traffic-manager will use for finding out what
# CIDRs the cluster is using for its pods. Valid values are:
#
Expand Down
18 changes: 16 additions & 2 deletions docs/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@

[comment]: # (Code generated by relnotesgen. DO NOT EDIT.)
# <img src="images/logo.png" height="64px"/> Telepresence Release Notes
## Version 2.21.0
## <div style="display:flex;"><img src="images/feature.png" alt="feature" style="width:30px;height:fit-content;"/><div style="display:flex;margin-left:7px;">Make usage data collection configurable using an extension point, and default to no-ops</div></div>
<div style="margin-left: 15px">

The OSS code-base will no longer report usage data to the proprietary collector at Ambassador Labs. The actual calls to the collector remain, but will be no-ops unless a proper collector client is installed using an extension point.
</div>

## <div style="display:flex;"><img src="images/feature.png" alt="feature" style="width:30px;height:fit-content;"/><div style="display:flex;margin-left:7px;">[Intercepts targeting a specific container](https://telepresence.io/docs/reference/intercepts/container)</div></div>
<div style="margin-left: 15px">

-> In certain scenarios, the container owning the intercepted port differs from the container the intercept targets. This port owner's sole purpose is to route traffic from the service to the intended container, often using a direct localhost connection.
This commit introduces a `--container <name>` option to the intercept command. While this option doesn't influence the port selection, it guarantees that the environment variables and mounts propagated to the client originate from the specified container. Additionally, if the `--replace` option is used, it ensures that this container is replaced.
</div>

## Version 2.20.1 <span style="font-size: 16px;">(October 10)</span>
## <div style="display:flex;"><img src="images/bugfix.png" alt="bugfix" style="width:30px;height:fit-content;"/><div style="display:flex;margin-left:7px;">Some workloads missing in the telepresence list output (typically replicasets owned by rollouts).</div></div>
<div style="margin-left: 15px">

-> Version 2.20.0 introduced a regression in the `telepresence list` command, resulting in the omission of all workloads that were owned by another workload. The correct behavior is to just omit those workloads that are owned by the supported workload kinds `Deployment`, `ReplicaSet`, `StatefulSet`, and `Rollout`. Furthermore, the `Rollout` kind must only be considered supported when the Argo Rollouts feature is enabled in the traffic-manager.
Version 2.20.0 introduced a regression in the `telepresence list` command, resulting in the omission of all workloads that were owned by another workload. The correct behavior is to just omit those workloads that are owned by the supported workload kinds `Deployment`, `ReplicaSet`, `StatefulSet`, and `Rollout`. Furthermore, the `Rollout` kind must only be considered supported when the Argo Rollouts feature is enabled in the traffic-manager.
</div>

## <div style="display:flex;"><img src="images/bugfix.png" alt="bugfix" style="width:30px;height:fit-content;"/><div style="display:flex;margin-left:7px;">Allow comma separated list of daemons for the gather-logs command.</div></div>
<div style="margin-left: 15px">

-> The name of the `telepresence gather-logs` flag `--daemons` suggests that the argument can contain more than one daemon, but prior to this fix, it couldn't. It is now possible to use a comma separated list, e.g. `telepresence gather-logs --daemons root,user`.
The name of the `telepresence gather-logs` flag `--daemons` suggests that the argument can contain more than one daemon, but prior to this fix, it couldn't. It is now possible to use a comma separated list, e.g. `telepresence gather-logs --daemons root,user`.
</div>

## Version 2.20.0 <span style="font-size: 16px;">(October 3)</span>
Expand Down
14 changes: 12 additions & 2 deletions docs/release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,24 @@ import { Note, Title, Body } from '@site/src/components/ReleaseNotes'
[comment]: # (Code generated by relnotesgen. DO NOT EDIT.)

# Telepresence Release Notes
## Version 2.21.0
<Note>
<Title type="feature">Make usage data collection configurable using an extension point, and default to no-ops</Title>
<Body>The OSS code-base will no longer report usage data to the proprietary collector at Ambassador Labs. The actual calls to the collector remain, but will be no-ops unless a proper collector client is installed using an extension point.</Body>
</Note>
<Note>
<Title type="feature" docs="https://telepresence.io/docs/reference/intercepts/container">Intercepts targeting a specific container</Title>
<Body>-> In certain scenarios, the container owning the intercepted port differs from the container the intercept targets. This port owner's sole purpose is to route traffic from the service to the intended container, often using a direct localhost connection.
This commit introduces a `--container <name>` option to the intercept command. While this option doesn't influence the port selection, it guarantees that the environment variables and mounts propagated to the client originate from the specified container. Additionally, if the `--replace` option is used, it ensures that this container is replaced.</Body>
</Note>
## Version 2.20.1 <span style={{fontSize:'16px'}}>(October 10)</span>
<Note>
<Title type="bugfix">Some workloads missing in the telepresence list output (typically replicasets owned by rollouts).</Title>
<Body>-> Version 2.20.0 introduced a regression in the `telepresence list` command, resulting in the omission of all workloads that were owned by another workload. The correct behavior is to just omit those workloads that are owned by the supported workload kinds `Deployment`, `ReplicaSet`, `StatefulSet`, and `Rollout`. Furthermore, the `Rollout` kind must only be considered supported when the Argo Rollouts feature is enabled in the traffic-manager.</Body>
<Body>Version 2.20.0 introduced a regression in the `telepresence list` command, resulting in the omission of all workloads that were owned by another workload. The correct behavior is to just omit those workloads that are owned by the supported workload kinds `Deployment`, `ReplicaSet`, `StatefulSet`, and `Rollout`. Furthermore, the `Rollout` kind must only be considered supported when the Argo Rollouts feature is enabled in the traffic-manager.</Body>
</Note>
<Note>
<Title type="bugfix">Allow comma separated list of daemons for the gather-logs command.</Title>
<Body>-> The name of the `telepresence gather-logs` flag `--daemons` suggests that the argument can contain more than one daemon, but prior to this fix, it couldn't. It is now possible to use a comma separated list, e.g. `telepresence gather-logs --daemons root,user`.</Body>
<Body>The name of the `telepresence gather-logs` flag `--daemons` suggests that the argument can contain more than one daemon, but prior to this fix, it couldn't. It is now possible to use a comma separated list, e.g. `telepresence gather-logs --daemons root,user`.</Body>
</Note>
## Version 2.20.0 <span style={{fontSize:'16px'}}>(October 3)</span>
<Note>
Expand Down
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ require (
github.com/datawire/go-ftpserver v0.1.3
github.com/datawire/go-fuseftp/rpc v0.4.4
github.com/datawire/k8sapi v0.1.6-0.20240820125232-ee712486e677
github.com/datawire/metriton-go-client v0.1.1
github.com/docker/docker v27.3.0+incompatible
github.com/fsnotify/fsnotify v1.7.0
github.com/godbus/dbus/v5 v5.1.0
Expand Down
2 changes: 0 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@ github.com/datawire/go-fuseftp/rpc v0.4.4 h1:CnafKfnXRcvK9SH40wH1SMbqbsiqJLiVy3O
github.com/datawire/go-fuseftp/rpc v0.4.4/go.mod h1:KuWviT8YX7bg84uPBIsZEjWFBNU7siR8KoqZL7EjmqA=
github.com/datawire/k8sapi v0.1.6-0.20240820125232-ee712486e677 h1:ZckPUncGzmUmSrNMJRZr8mbTPU3uDu8N2RWdLJZY8j0=
github.com/datawire/k8sapi v0.1.6-0.20240820125232-ee712486e677/go.mod h1:wZOWo+KiWs6+oBXfIQsj3VbArkvQqiP83WtukLmAMRU=
github.com/datawire/metriton-go-client v0.1.1 h1:T+gFOmIWBg4Cc8B5OTst0lllflaT1Pdh/LaxA1YouTQ=
github.com/datawire/metriton-go-client v0.1.1/go.mod h1:OVLUaTDnGNk58GluwoaFKaWTo0IYU03b9qiN14cdwkw=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
Expand Down
Loading

0 comments on commit 2e14edc

Please sign in to comment.