Setup shared mTLS authentication for kafka/victoria data pipeline
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 8/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- ansible, kafka, kubernetes
- Domain
- authentication, infrastructure, observability, security
Research direction
This is a requirements spec with no named files, tests or entry points, so there is no code to start from. Requirements 1-3 and acceptance criteria AC-001 to AC-006 describe the mTLS and token-auth ingress boundary, and the listener modes and ports are said to live in restricted documentation. Before any work, the scope needs to be settled with maintainers, starting with the dependencies BR-31940 and BR-18602.
Written by the indexing model from the issue text.
Description
Setup shared mTLS authentication for kafka/victoria data pipeline
Summary
The Omnia telemetry workflow requires strict access controls to prevent unauthorized producers from injecting malicious or malformed data. External ingestion endpoints must enforce authenticated TLS or mTLS, including support for approved TLS-only devices that cannot present client certificates. Internal telemetry transport remains confined to a protected cluster network and follows the deployment's approved security policy.
Problem Statement
Communication among telemetry databases, brokers, producers, and agents requires one authentication boundary that prevents unauthorized publication. External producers have mixed capabilities: some support mTLS, while approved legacy devices support only standard TLS combined with another authentication method. The deployment must enforce authentication and encryption at external ingestion endpoints while keeping internal transport within a protected cluster network governed by the approved security policy.
Value Proposition
Customer Value
Provides a controlled authentication boundary for telemetry producers while preserving internal cluster performance. Both mTLS-capable and TLS-only devices can connect through a unified gateway according to the configured trust policy.
User Personas
- Security / Compliance Admin: Mandates that no unauthenticated entity can inject data into the cluster, requiring a certificate-based barrier of entry.
- HPC Platform Admin: Needs to manage external hardware connections to the telemetry stack without managing complex internal Kubernetes mesh encryption.
Use Cases
Use Case 1: mTLS External Producer
Actor: Compute Node Agent (Vector)
Context: An Omnia-managed compute node needs to stream high-frequency telemetry into the central Kafka brokers.
Action: The external Vector agent establishes an mTLS connection with the Service Cluster's Ingress Gateway, presenting its valid client certificate.
Result: The approved ingress service authenticates the agent and forwards the payload through the policy-compliant internal telemetry path.
Use Case 2: TLS-Only Legacy Hardware
Actor: HPC Hardware Appliance (e.g., Switch/Storage)
Context: A physical appliance needs to push metrics to VictoriaMetrics but does not support client-side mTLS certificates.
Action: The appliance establishes a standard TLS connection to the approved ingress service and presents a supported authentication token.
Result: The ingress service validates the token and forwards metrics through the policy-compliant internal telemetry path.
Use Case 3: Policy-Controlled Internal Routing
Actor: System (Automated)
Context: Telemetry services need to communicate within the protected cluster network.
Action: Internal components communicate through cluster-local service discovery according to the deployment's approved security policy.
Result: Internal telemetry remains isolated from external networks and is not exposed through unauthenticated endpoints.
Scope Definition
Goals (Execution Outcomes)
- Provide an approved ingress service as the unified authentication boundary for telemetry entering the Service Kubernetes cluster.
- Enforce authenticated mTLS or TLS at external ingestion endpoints.
- Configure internal telemetry transport according to the deployment's approved security policy and protected network boundary.
- Separate externally reachable endpoints from cluster-internal service communication.
- Support approved token-based authentication for agents incapable of mTLS.
Non-Goals (Scope Boundaries)
- This specification does not prescribe a service-mesh implementation for internal telemetry transport.
- Exact listener modes, ports, gateway configuration, and credential procedures remain in restricted operational documentation.
Requirements
Requirement 1: Authenticated TLS/mTLS Ingress [Req 1]
The system must provide an approved ingress service that authenticates external telemetry producers and routes accepted traffic through a policy-compliant internal transport.
Relates to: Use Case 1 and 2
Scenario: Authenticated external producer
- When an external agent pushes metrics, the approved ingress service validates its mTLS or TLS authentication before forwarding accepted traffic through the internal telemetry path.
Requirement 2: Fallback Authentication [Req 2]
The ingress gateway must support standard TLS combined with token-based or Basic authentication.
Relates to: Use Case 2
Scenario: Legacy Agent Connection
- When a legacy agent connects to the telemetry ingress, it establishes standard TLS and authenticates using a predefined secure token/password validated by the gateway.
Requirement 3: External and Internal Telemetry Boundary [Req 3]
Telemetry brokers must separate externally reachable ingress from cluster-internal service communication.
Relates to: Use Case 1 and 3
Scenario: Broker boundary
- When traffic routes to telemetry brokers, external producers use authenticated encrypted ingress and cluster-internal communication remains confined to the protected network according to the approved security policy.
Usability
The Omnia deployment must automatically generate and distribute the required client certificates to the Omnia-managed compute nodes (e.g., Vector agents) during Day 1 provisioning so that mTLS works out-of-the-box without manual key distribution.
Security
- External endpoints must enforce authenticated TLS or mTLS. Internal telemetry transport must remain confined to the protected cluster network and follow the deployment's approved security policy.
Telemetry
The telemetry authentication boundary must expose supported metrics for authentication success rates, TLS/mTLS processing, and unauthorized access attempts without publishing internal administrative endpoints.
Performance
- Terminating TLS at the ingress gateway rather than individual database pods reduces CPU decryption overhead across the VictoriaMetrics cluster, allowing for denser metrics ingestion.
Documentation
- Security Architecture Guide: Document the external authentication boundary, supported producer authentication methods, internal network-isolation requirements, and operator procedures without publishing listener modes, ports, or credential-generation details.
Dependencies
Cross-Cutting Platform Dependencies
- CA / Certificate Infrastructure: Depends on BR-31940 (CA cert distribution) to deliver trusted CA certificates to compute nodes. Without the CA, vmagent cannot verify the mTLS endpoint.
- IPv6 Compatibility: Certificate SANs must include IPv6 addresses (BR-18602). Kafka and VictoriaMetrics endpoints must be reachable over IPv6 when configured.
Spec Dependencies
- Omnia 2.2 vmagent workflow: The baseline scalable telemetry architecture must be deployed so the approved ingress service has internal telemetry endpoints to route to.
- Service Kubernetes Cluster: Relies on Omnia's foundational Service Cluster architecture to provide the network isolation boundary.
Risks
| Risk | Category | Impact | Likelihood | Mitigation |
|---|---|---|---|---|
| Certificate Management | Operational | High | Medium | Distributing client certificates to thousands of compute nodes can fail if the Certificate Authority (CA) logic is flawed. Mitigate by utilizing Ansible's native crypto modules or integration with a robust internal secret manager during node provisioning. |
Acceptance Criteria
- AC-001: An approved ingress service successfully authenticates mTLS and TLS traffic entering the Service Kubernetes cluster. [Req 1]
- AC-002: Internal telemetry communication remains confined to the protected cluster network and follows the approved deployment security policy. [Req 3]
- AC-003: The telemetry stack functions with the supported software edition and selected security boundary. [Req 1]
- AC-004: External producers without client certificates can authenticate through standard TLS combined with an approved token or password mechanism. [Req 2]
- AC-005: Unauthorized external producers lacking valid certificates or tokens are blocked at the authentication boundary. [Req 1]
- AC-006: Compute node telemetry agents (Vector) receive auto-generated client certificates during Omnia provisioning and successfully stream data via mTLS. [Usability, Req 1]
Scope & Sequencing
Must be sequenced after the core Service Kubernetes cluster deployment and alongside the telemetry stack deployment.
Assumptions / Open Questions
Assumptions
- A1: The deployment security policy defines the permitted internal telemetry transport, and external ingress remains authenticated through TLS or mTLS.
Open Questions
- None.
- Dominant language
- Python
- Stars
- 9
- Forks
- 175
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 137
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dell/omnia
-
`src/telemetry/containers/build_images.sh` should have localcopy build_actionPossibly taken @priti-parate claimed this 25 days ago. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
dell/omnia#5425 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Warning: SLURM_REPO_URL and SLURM_REPO_NAME must be provided.Possibly taken @priti-parate claimed this 25 days ago. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dell/omnia#5423 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 1 day
-
use `hostnamectl` instead of `hostname`Possibly taken @richardhenwood-dell claimed this 82 days ago. Openenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Utility to create S3 format Image file from OCI format file hosted on a container image registryOpenenhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
yt-project/yt#5624 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
NousResearch/hermes-agent#148376 ·
Maintainers usually reply within 1 day
-
Analysis
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SACGF/variantgrid#2615 ·
Maintainers usually reply within 1 day