Skip to content

Add a config option for enabling target allocator mTLS #4915

@swiatekm

Description

@swiatekm

Component(s)

target allocator

Describe the issue you're reporting

Target Allocator has a feature where it can talk to the collector over mTLS, securing the connection and allowing metric endpoint credentials to be transferred over it. This feature is currently hidden behind an alpha feature flag operator.targetallocator.mtls and depends on cert-manager for provisioning the actual certificates.

It's a feature flag because the intent was to eventually enable it for everyone and be secure by default. However, the feature turned out to be quite complex and has resulted in several subtle bugs that were only uncovered after sustained production use. After discussing this with @jaronoff97 and @TylerHelmuth, we prefer to make it configurable via an attribute on the OpenTelemetryCollector and TargetAllocator CRDs, and disabled by default. Our reasons are as follows:

  • The complexity of the mTLS setup is significant and can produce subtle bugs.
  • Authenticated metrics endpoints are relatively niche, so we'd be foisting this complexity on the majority of users without much benefit to them.
  • In terms of the default security of scrape targets, we're currently in line with prometheus-operator. The Prometheus web UI isn't secure by default either.

We don't want to completely close the door on enabling the option by default in some farther future, but it should definitely remain configurable.

@open-telemetry/operator-approvers @CharlieTLe please comment if you have a contrary opinion.

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions