Skip to content

Cleanup system-internal-tls secrets and labels #14392

@ReToCode

Description

@ReToCode

Context

The changes with regards to internal-encryption and mTLS contained code that was targeting future features. This results in currently having additional Secrets with certificates that are unused. Also we have a concept of routing-id on certain certificates, that (at least currently) has no meaning and makes finishing the system-internal-tls feature more complex and unintuitive.

An example of this is, I wanted to update net-kourier to use the new secrets and trust multiple SANs on upstream backends, but do do that, net-kourier needs to trust the SAN of the activator which (currently) implies manually setting routing-id=0 in net-kourier in code - which is coupling to internas of how Activator currently get's it certificates. If we want to have multiple routing-ids in the future, we need some sort of API to get the existing routing-ids and dynamically populate them in the net-* implementations.

So for now, we need to do some cleanup to complete the system-internal-tls feature.

Things to cleanup

  • Revision reconciler creates secrets in the Knative Services namespace with routing-id. We can drop this as it is unnecessary.
  • Drop the routing-id in the dataplane certificates
  • Rename the dataplane certificates SAN to be static instead of dynamic (e.g. dropping the routing-id) --> DataPlaneRoutingSAN
  • Drop the ControlPlane certificates, as they are currently not used anywhere (they might be used to encrypt the metadata-traffic in the future, but if so, we can then introduce the new certificates + secrets them)
  • All net-* implementations still use LegacyFakeDnsName and need to be updated to trusting:
    • If they support multi-san: DataPlaneRoutingSAN + DataPlaneUserSAN(ns)
    • If they do not support multi-san activator is always in path: DataPlaneRoutingSAN

Metadata

Metadata

Assignees

Labels

kind/cleanupCategorizes issue or PR as related to cleaning up code, process, or technical debt.triage/acceptedIssues which should be fixed (post-triage)

Type

No type

Projects

Status

Done

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions