Skip to content

lineage-telemetry: same workload name in two namespaces emits one identity #917

Description

@JoshSag

lineage.self.id is the last path segment of the SPIFFE ID, so spiffe://…/ns/team1/sa/weather-service and …/ns/team2/sa/weather-service both emit weather-service, and the consumer, which keys an entity on it, derives one entity for two pods.

That collision was made normative in #761 (round 5, contract v1.6.1 §4; round 6, the TestServiceLabel row "collides by design") — deliberately, as the documentation half. This is the identity half: self.id alone was never the whole identity of a pod. The reduction, the clause and the test row stay.

Proposed. A required namespace key (or namespace_file, for the kubelet-projected /var/run/secrets/kubernetes.io/serviceaccount/namespace in ConfigMaps shared across namespaces), emitted as lineage.self.namespace on both spans; refused at start when absent or not a DNS label; never parsed out of the SPIFFE path. Wire contract v1.7.0. Consumer half: rossoctl/lab-data-governance#229 (design context: rossoctl/lab-data-governance#201).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions