Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[linkerd-jaeger] Adds support for collector config merge and Deployment env #11283

Merged
merged 10 commits into from
Sep 14, 2023

Conversation

iAnomaly
Copy link
Contributor

@iAnomaly iAnomaly commented Aug 22, 2023

Signed-off-by: Cameron Boulton [email protected]

This PR changes a variety of things:

  1. Changes value collector.config from a string to an object to support field level merging/changing without having to copy/paste the entire unchanged portion of the config.
  2. Changes the default collector.config for sensible out of the box Linkerd tracing use-case:
    1. Only opencensus receiver (the format linkerd-proxy emits when configured for tracing)
    2. resource processor that maps the Pod name and namespace labels linkerd-proxy sets on injected Pods to the fields the k8sattributes processor expects for looking up the trace's source Pod.
    3. k8sattributes processor for decorating all traces with K8s metadata.
  3. Standardizes image.pullPolicy behavior across all components and defaults to absent/null imagePullPolicy such that the K8s cluster configuration is used.
  4. Adds collector RBAC needed for k8sattributes to lookup trace source K8s workloads
  5. Adds collector ConfigMap checksum to rollout new Pod(s) when config is changed.
  6. Adds/parameterizes the collector container command with value collector.command.
  7. Changes collector image from opentelemetry-collector to opentelemetry-collector-contrib which includes additional connectors, exporters, extensions, processors, receivers.
  8. Adds value collector.env for additional collector Deployment environment variables.

@iAnomaly iAnomaly requested a review from a team as a code owner August 22, 2023 19:56
@iAnomaly iAnomaly force-pushed the jaeger-chart-collector-config-env branch from 20aee8c to b8adf8f Compare August 22, 2023 20:50
Cameron Boulton added 3 commits August 22, 2023 14:28
… Kubernetes components

Signed-off-by: Cameron Boulton <[email protected]>
… Kubernetes components

Signed-off-by: Cameron Boulton <[email protected]>
Signed-off-by: Cameron Boulton <[email protected]>
@iAnomaly iAnomaly force-pushed the jaeger-chart-collector-config-env branch from ceb65db to 51ea3c2 Compare August 22, 2023 22:47
@iAnomaly iAnomaly force-pushed the jaeger-chart-collector-config-env branch from c089bef to 1e62567 Compare August 30, 2023 19:14
@iAnomaly iAnomaly changed the title [linkerd-jaeger] Add support for collector config merge and Deployment env [linkerd-jaeger] Adds support for collector config merge and Deployment env Aug 30, 2023
@wmorgan
Copy link
Member

wmorgan commented Aug 30, 2023

Thank you @iAnomaly!

Signed-off-by: Cameron Boulton <[email protected]>
@iAnomaly iAnomaly force-pushed the jaeger-chart-collector-config-env branch from 5e04241 to c279129 Compare August 30, 2023 21:40
Cameron Boulton added 3 commits August 30, 2023 14:46
@wmorgan
Copy link
Member

wmorgan commented Sep 12, 2023

Sorry for the delay. The relevant maintainers were pulled into some high-priority customer escalations. This is still in the queue to review.

Copy link
Member

@adleong adleong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome! Thanks for this contribution!
Screenshot 2023-09-12 at 5 20 18 PM

Copy link
Member

@mateiidavid mateiidavid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢 📦! Thanks for the PR :)

@adleong adleong merged commit 331c8ff into linkerd:main Sep 14, 2023
6 checks passed
@iAnomaly iAnomaly deleted the jaeger-chart-collector-config-env branch September 14, 2023 20:07
adamshawvipps pushed a commit to adamshawvipps/linkerd2 that referenced this pull request Sep 18, 2023
…nt env (linkerd#11283)

This PR changes a variety of things:
1. Changes value `collector.config` from a string to an object to support field level merging/changing without having to copy/paste the entire unchanged portion of the config.
2. Changes the default `collector.config` for sensible out of the box Linkerd tracing use-case:
    1. Only `opencensus` receiver (the format `linkerd-proxy` emits when configured for tracing)
    2. `resource` processor that maps the Pod name and namespace labels `linkerd-proxy` sets on injected Pods to the fields the `k8sattributes` processor expects for looking up the trace's source Pod.
    3. `k8sattributes` processor for decorating all traces with K8s metadata.
3. Standardizes `image.pullPolicy` behavior across all components and defaults to absent/null `imagePullPolicy` such that the K8s cluster configuration is used.
4. Adds collector RBAC needed for `k8sattributes` to lookup trace source K8s workloads
5. Adds collector ConfigMap checksum to rollout new Pod(s) when config is changed. 
6. Adds/parameterizes the collector container command with value `collector.command`.
7. Changes collector image from [opentelemetry-collector](https://github.com/open-telemetry/opentelemetry-collector) to [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib) which includes additional connectors, exporters, extensions, processors, receivers.
8. Adds value `collector.env` for additional collector Deployment environment variables.

Signed-off-by: Cameron Boulton <[email protected]>
adamshawvipps pushed a commit to adamshawvipps/linkerd2 that referenced this pull request Sep 18, 2023
…nt env (linkerd#11283)

This PR changes a variety of things:
1. Changes value `collector.config` from a string to an object to support field level merging/changing without having to copy/paste the entire unchanged portion of the config.
2. Changes the default `collector.config` for sensible out of the box Linkerd tracing use-case:
    1. Only `opencensus` receiver (the format `linkerd-proxy` emits when configured for tracing)
    2. `resource` processor that maps the Pod name and namespace labels `linkerd-proxy` sets on injected Pods to the fields the `k8sattributes` processor expects for looking up the trace's source Pod.
    3. `k8sattributes` processor for decorating all traces with K8s metadata.
3. Standardizes `image.pullPolicy` behavior across all components and defaults to absent/null `imagePullPolicy` such that the K8s cluster configuration is used.
4. Adds collector RBAC needed for `k8sattributes` to lookup trace source K8s workloads
5. Adds collector ConfigMap checksum to rollout new Pod(s) when config is changed.
6. Adds/parameterizes the collector container command with value `collector.command`.
7. Changes collector image from [opentelemetry-collector](https://github.com/open-telemetry/opentelemetry-collector) to [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib) which includes additional connectors, exporters, extensions, processors, receivers.
8. Adds value `collector.env` for additional collector Deployment environment variables.

Signed-off-by: Cameron Boulton <[email protected]>
Signed-off-by: Adam Shaw <[email protected]>
mateiidavid added a commit that referenced this pull request Sep 22, 2023
This edge release updates the proxy's dependency on the `rustls` library to
patch security vulnerability [RUSTSEC-2023-0052]  (GHSA-8qv2-5vq6-g2g7), a
potential CPU usage denial-of-service attack when acceting a TLS handshake from
an untrusted peer with a maliciously-crafted certificate. Furthermore, this
edge release contains a few improvements to the control plane and jaeger
extension Helm charts.

* Addressed security vulnerability [RUSTSEC-2023-0052] in the proxy by updating
  its dependency on the `rustls` library
* Added a `prometheusUrl` field for the heartbeat job in the control plane Helm
  chart (thanks @david972!) ([#11343]; fixes [#11342])
* Introduced support for arbitrary labels in the `podMonitors` field in the
  control plane Helm chart (thanks @jseiser!) ([#11222]; fixes [#11175])
* Added support for config merge and Deployment environment to
  `opentelemetry-collector` in the jaeger extension (thanks @iAnomaly!)
  ([#11283])

[#11283]: #11283
[#11222]: #11222
[#11175]: #11175
[#11343]: #11343
[#11342]: #11342

Signed-off-by: Matei David <[email protected]>
@mateiidavid mateiidavid mentioned this pull request Sep 22, 2023
mateiidavid added a commit that referenced this pull request Sep 22, 2023
* edge-29.9.3

This edge release updates the proxy's dependency on the `rustls` library to
patch security vulnerability [RUSTSEC-2023-0052]  (GHSA-8qv2-5vq6-g2g7), a
potential CPU usage denial-of-service attack when acceting a TLS handshake from
an untrusted peer with a maliciously-crafted certificate. Furthermore, this
edge release contains a few improvements to the control plane and jaeger
extension Helm charts.

* Addressed security vulnerability [RUSTSEC-2023-0052] in the proxy by updating
  its dependency on the `rustls` library
* Added a `prometheusUrl` field for the heartbeat job in the control plane Helm
  chart (thanks @david972!) ([#11343]; fixes [#11342])
* Introduced support for arbitrary labels in the `podMonitors` field in the
  control plane Helm chart (thanks @jseiser!) ([#11222]; fixes [#11175])
* Added support for config merge and Deployment environment to
  `opentelemetry-collector` in the jaeger extension (thanks @iAnomaly!)
  ([#11283])

[#11283]: #11283
[#11222]: #11222
[#11175]: #11175
[#11343]: #11343
[#11342]: #11342

Signed-off-by: Matei David <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants