linkerd / linkerd/linkerd2

Require mTLS for specific deployments or pods

Open
#3,144 6 comments 17 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

rfc
Dominant language
Go
Stars
11.5k
Forks
1.4k
Avg merge
3d 22h
Merged PRs (30d)
53

Description

## Feature Request

### What problem are you trying to solve?

Ensure traffic must come from the mesh, and not leave the mesh, for specific deployments / pods.

### How should the problem be solved?

Introduce an option to have the linkerd-proxy only accept traffic over mTLS, and egress connectivity to other endpoints through mTLS.

This would allow for a mix between linkerd enabled pods that require mTLS on ingress/egress traffic, and pods for which mTLS is optional to be deployed. Pods deployed on the edge of the ingress would be configured with optional ingress mTLS, but would perform all egress traffic using mTLS.

Some challenges may be; only enforcing mTLS to specific identities, or tcp connections rather than http, or traffic leaving the cluster itself.

### Any alternatives you've considered?

n/a

### How would users interact with this feature?

Similar to the automatic proxy injection, using annotations on a namespace, deployment or pod, for example:
- `linkerd.io/force-ingress-tls: 'enabled'`
- `linkerd.io/force-egress-tls: 'enabled'`

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining the linkerd-proxy behavior described in the issue and how namespace, deployment, and pod annotations are handled. Define the supported scope for ingress and egress mTLS, including identities, TCP traffic, and traffic leaving the cluster; done means the selected workloads enforce the documented policy without changing optional mTLS behavior elsewhere.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes, rust
Domain
networking, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.