Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5f0a72e
chore(docs): Update tracing documentation
sfleen Sep 26, 2025
5b22d29
chore(docs): Include `serviceAccountNamespace` for tracing collector
sfleen Sep 30, 2025
878388b
chore(docs): Make docs clearer about what needs to be set for the col…
sfleen Sep 30, 2025
7d466ad
Merge branch 'main' into sfleen/tracing-docs
sfleen Sep 30, 2025
7f43cf4
feat!(tracing): Improve control plane tracing configuration
sfleen Sep 30, 2025
9d96610
feat!(tracing): Delete jaeger extension
sfleen Sep 30, 2025
de04d5a
fix(tests): Update goldens
sfleen Sep 30, 2025
3bf0807
fix(test): Update tracing test values
sfleen Sep 30, 2025
ee54f4b
feat(charts): Switch ServiceAccountName to separate Name and Namespac…
sfleen Sep 30, 2025
6929527
Merge branch 'sfleen/tracing-docs' into sfleen/trace-control-plane
sfleen Sep 30, 2025
4ff225a
fix: Change deprecated casing for lint
sfleen Oct 1, 2025
94c7733
Merge branch 'sfleen/tracing-docs' into sfleen/trace-control-plane
sfleen Oct 1, 2025
daec754
Merge branch 'sfleen/trace-control-plane' into sfleen/jaeger-delete
sfleen Oct 1, 2025
2e13994
chore: Rename fields and semantics of tracing identity
sfleen Oct 1, 2025
07befbb
Merge branch 'sfleen/tracing-docs' into sfleen/trace-control-plane
sfleen Oct 1, 2025
834bf51
chore: Fix bad auto-rename
sfleen Oct 1, 2025
181ce2e
Merge branch 'sfleen/tracing-docs' into sfleen/trace-control-plane
sfleen Oct 1, 2025
4dd8b35
chore: Change to breaking API change
sfleen Oct 1, 2025
84e19fa
Merge branch 'sfleen/tracing-docs' into sfleen/trace-control-plane
sfleen Oct 1, 2025
13ef917
chore: Regenerate goldens
sfleen Oct 1, 2025
5bd0ee9
fix: Use correct trace enable value
sfleen Oct 1, 2025
a092790
Merge branch 'sfleen/trace-control-plane' into sfleen/jaeger-delete
sfleen Oct 1, 2025
1b0da85
fix(docs): Typos in docs
sfleen Oct 1, 2025
86f6809
Merge branch 'sfleen/trace-control-plane' into sfleen/jaeger-delete
sfleen Oct 1, 2025
7e53455
Merge branch 'main' into sfleen/jaeger-delete
sfleen Oct 1, 2025
f65e7e0
Merge branch 'main' into sfleen/trace-control-plane
sfleen Oct 1, 2025
bf45d0a
Merge branch 'sfleen/trace-control-plane' into sfleen/jaeger-delete
sfleen Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,6 @@ jobs:
strategy:
matrix:
component:
- jaeger-webhook
- metrics-api
- tap
- web
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ jobs:
component:
- controller
- debug
- jaeger-webhook
- metrics-api
- proxy
- tap
Expand Down
28 changes: 10 additions & 18 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,6 @@ its extensions are written in Go. The dashboard UI is a React application.
- [`linkerd-service-mirror-xxx`](multicluster/service-mirror): Controller
observing the labeling of exported services in the target cluster, each one
for which it will create a mirrored service in the local cluster.
- [`jaeger extension`](jaeger)
- [`jaeger-injector`](jaeger/injector): Mutating webhook triggered by pods
creation, that expands the proxy container for it to produce tracing spans.

### Data Plane (Rust)

Expand Down Expand Up @@ -198,25 +195,21 @@ bin/linkerd viz -n emojivoto tap deploy voting
#### Deploying Control Plane components with Tracing

Control Plane components have the `trace-collector` flag used to enable
[Distributed Tracing](https://opentracing.io/docs/overview/what-is-tracing/) for
development purposes. It can be enabled globally i.e Control plane components
and their proxies by using the `--set controlPlaneTracing=true` installation
flag.
[Distributed Tracing](https://opentracing.io/docs/overview/what-is-tracing/)
for development purposes. It can be enabled globally i.e Control plane
components and their proxies by using the
`--set controller.tracing.enable=true` installation flag.

This will configure all the components to send the traces at
`collector.{{.Values.controlPlaneTracingNamespace}}.svc.{{.Values.ClusterDomain}}:4317`
This will configure all the components to send the traces to the collector you
have configured for your cluster.

```bash

# install Linkerd with tracing
linkerd install --set controlPlaneTracing=true | kubectl apply -f -

# install the Jaeger extension
linkerd jaeger install | kubectl apply -f -

# restart the control plane components so that the jaeger-injector enables
# tracing in their proxies
kubectl -n linkerd rollout restart deploy
linkerd install \
--set controller.tracing.enable=true \
--set controller.tracing.collector.endpoint=<your trace collector endpoint> \
| kubectl apply -f -
```

### Publishing images
Expand Down Expand Up @@ -497,7 +490,6 @@ Extensions provide each their own chart:
- Viz: [`viz/charts/linkerd-viz`](viz/charts/linkerd-viz)
- Multicluster:
[`multicluster/charts/linkerd-multicluster`](multicluster/charts/linkerd-multicluster)
- Jaeger: [`jaeger/charts/linkerd-jaeger`](jaeger/charts/linkerd-jaeger)

### Making changes to the chart templates

Expand Down
1 change: 0 additions & 1 deletion bin/_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ export DOCKER_IMAGES=(${DOCKER_IMAGES:-
debug
proxy
web
jaeger-webhook
tap
})

Expand Down
3 changes: 0 additions & 3 deletions bin/_test-helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -288,9 +288,6 @@ Help:
image_load() {
cluster_name=$1
images_load=("${images_load_default[@]}")
if [[ "$cluster_name" = *viz ]]; then
images_load+=(jaeger-webhook)
fi
case $images in
docker)
"$bindir"/image-load --k3d --cluster "$cluster_name" "${images_load[@]}"
Expand Down
1 change: 0 additions & 1 deletion bin/docker-build
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,5 @@ if [ -z "${LINKERD_LOCAL_BUILD_CLI:-}" ]; then
else
"$bindir"/build-cli-bin
fi
"$bindir"/docker-build-jaeger-webhook
"$bindir"/docker-build-metrics-api
"$bindir"/docker-build-tap
20 changes: 0 additions & 20 deletions bin/docker-build-jaeger-webhook

This file was deleted.

5 changes: 0 additions & 5 deletions bin/helm-build
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ setValues() {
sed -i "s/$1/$2/" charts/linkerd-control-plane/values.yaml
sed -i "s/$1/$2/" charts/linkerd2-cni/values.yaml
sed -i "s/$1/$2/" multicluster/charts/linkerd-multicluster/values.yaml
sed -i "s/$1/$2/" jaeger/charts/linkerd-jaeger/values.yaml
sed -i "s/$1/$2/" viz/charts/linkerd-viz/values.yaml
}

Expand All @@ -26,7 +25,6 @@ rm -f charts/linkerd-crds/charts/*
rm -f charts/linkerd-control-plane/charts/*
rm -f charts/linkerd2-cni/charts/*
rm -f charts/patch/charts/*
rm -f jaeger/charts/linkerd-jaeger/charts/*
rm -f viz/charts/linkerd-viz/charts/*

"$bindir"/helm dep up "$rootdir"/multicluster/charts/linkerd-multicluster
Expand All @@ -42,8 +40,6 @@ rm -f viz/charts/linkerd-viz/charts/*
"$bindir"/helm lint "$rootdir"/charts/linkerd-crds
"$bindir"/helm lint --set identityTrustAnchorsPEM="fake-trust" --set identity.issuer.tls.crtPEM="fake-cert" --set identity.issuer.tls.keyPEM="fake-key" "$rootdir"/charts/linkerd-control-plane
"$bindir"/helm lint "$rootdir"/charts/linkerd2-cni
"$bindir"/helm dep up "$rootdir"/jaeger/charts/linkerd-jaeger
"$bindir"/helm lint "$rootdir"/jaeger/charts/linkerd-jaeger
"$bindir"/helm dep up "$rootdir"/viz/charts/linkerd-viz
"$bindir"/helm lint "$rootdir"/viz/charts/linkerd-viz

Expand All @@ -68,7 +64,6 @@ if [ "$1" = package ]; then
"$bindir"/helm --app-version "$tag" -d "$rootdir"/target/helm package "$rootdir"/charts/linkerd-control-plane
"$bindir"/helm --app-version "$tag" -d "$rootdir"/target/helm package "$rootdir"/charts/linkerd2-cni
"$bindir"/helm --app-version "$tag" -d "$rootdir"/target/helm package "$rootdir"/multicluster/charts/linkerd-multicluster
"$bindir"/helm --app-version "$tag" -d "$rootdir"/target/helm package "$rootdir"/jaeger/charts/linkerd-jaeger
"$bindir"/helm --app-version "$tag" -d "$rootdir"/target/helm package "$rootdir"/viz/charts/linkerd-viz

mv "$rootdir"/target/helm/index-pre.yaml "$rootdir"/target/helm/index-pre-"$version".yaml
Expand Down
3 changes: 0 additions & 3 deletions bin/test-cleanup
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ echo "cleaning up viz extension resources, if present [${k8s_context}]"
echo "cleaning up multicluster resources, if present [${k8s_context}]"
"$linkerd_path" mc uninstall 2> /dev/null | kubectl --context="$k8s_context" delete -f -

echo "cleaning up jaeger extension resources, if present [${k8s_context}]"
"$linkerd_path" jaeger uninstall 2> /dev/null | kubectl --context="$k8s_context" delete -f -

echo 'cleaning up the all namespaces labelled with test.linkerd.io/is-test-data-plane'
kubectl --context="$k8s_context" delete ns -l test.linkerd.io/is-test-data-plane

Expand Down
2 changes: 0 additions & 2 deletions charts/linkerd-control-plane/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,6 @@ extensions:
[Linkerd-viz](https://github.com/linkerd/linkerd2/blob/main/viz/charts/linkerd-viz/README.md)
* Multicluster:
[Linkerd-multicluster](https://github.com/linkerd/linkerd2/blob/main/multicluster/charts/linkerd-multicluster/README.md)
* Tracing:
[Linkerd-jaeger](https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/README.md)

{{ template "chart.requirementsSection" . }}

Expand Down
12 changes: 7 additions & 5 deletions charts/linkerd-control-plane/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@ revisionHistoryLimit: 10
controllerLogLevel: info
# -- Log format for the control plane components
controllerLogFormat: plain
# -- enables control plane tracing
controlPlaneTracing: false
# -- namespace to send control plane traces to
controlPlaneTracingNamespace: linkerd-jaeger
# -- control plane version. See Proxy section for proxy version
linkerdVersion: linkerdVersionValue
# -- default kubernetes deployment strategy
Expand Down Expand Up @@ -51,6 +47,13 @@ controller:
podDisruptionBudget:
# -- Maximum number of pods that can be unavailable during disruption
maxUnavailable: 1
# Configures tracing in the controllers and how traces are exported
tracing:
# -- Enables trace collection and export in the proxy
enabled: false
collector:
# -- The collector endpoint to send traces to. Required if tracing is enabled
endpoint: ""
# -- enabling this omits the NET_ADMIN capability in the PSP
# and the proxy-init container when injecting the proxy;
# requires the linkerd-cni plugin to already be installed
Expand Down Expand Up @@ -720,7 +723,6 @@ podMonitor:
matchNames:
- {{ .Release.Namespace }}
- linkerd-viz
- linkerd-jaeger
serviceMirror:
# -- Enables the creation of PodMonitor for the Service Mirror component
enabled: true
Expand Down
7 changes: 5 additions & 2 deletions charts/partials/templates/_trace.tpl
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{{ define "partials.linkerd.trace" -}}
{{ if .Values.controlPlaneTracing -}}
- -trace-collector=collector.{{.Values.controlPlaneTracingNamespace}}.svc.{{.Values.clusterDomain}}:4317
{{ if .Values.controller.tracing.enabled -}}
{{- if empty .Values.controller.tracing.collector.endpoint }}
{{- fail "controller.tracing.collector.endpoint must be set if control plane tracing is enabled" }}
{{- end }}
- -trace-collector={{.Values.controller.tracing.collector.endpoint}}
{{ end -}}
{{- end }}
1 change: 0 additions & 1 deletion cli/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ FROM go-deps AS go-gen
WORKDIR /linkerd-build
COPY cli cli
COPY charts charts
COPY jaeger jaeger
COPY multicluster multicluster
COPY viz viz

Expand Down
3 changes: 1 addition & 2 deletions cli/cmd/check_extensions.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,14 @@ type glob func(string) ([]string, error)

// extension contains the full path of an extension executable. If it's a
// a built-in extension, path will be the `linkerd` executable and builtin will
// be the extension name (jaeger, multicluster, or viz).
// be the extension name (multicluster, or viz).
type extension struct {
path string
builtin string
}

var (
builtInChecks = map[string]struct{}{
"jaeger": {},
"multicluster": {},
"viz": {},
}
Expand Down
14 changes: 10 additions & 4 deletions cli/cmd/install_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ func TestRender(t *testing.T) {
CNIEnabled: false,
IdentityTrustDomain: defaultValues.IdentityTrustDomain,
IdentityTrustAnchorsPEM: defaultValues.IdentityTrustAnchorsPEM,
Controller: defaultValues.Controller,
DestinationController: defaultValues.DestinationController,
PodAnnotations: map[string]string{},
PodLabels: map[string]string{},
Expand Down Expand Up @@ -124,12 +125,12 @@ func TestRender(t *testing.T) {
Metrics: &charts.ProxyMetrics{
HostnameLabels: false,
},
Tracing: &charts.ProxyTracing{
Tracing: &charts.Tracing{
Enabled: false,
TraceServiceName: "linkerd-proxy",
Collector: &charts.ProxyTracingCollector{
Collector: &charts.TracingCollector{
Endpoint: "",
MeshIdentity: &charts.ProxyTracingCollectorIdentity{
MeshIdentity: &charts.TracingCollectorIdentity{
ServiceAccountName: "",
Namespace: "",
},
Expand Down Expand Up @@ -231,7 +232,12 @@ func TestRender(t *testing.T) {
if err != nil {
t.Fatalf("Unexpected error: %v\n", err)
}
withControlPlaneTracingValues.ControlPlaneTracing = true
withControlPlaneTracingValues.Controller.Tracing = &charts.Tracing{
Enabled: true,
Collector: &charts.TracingCollector{
Endpoint: "tracing.foo:4317",
},
}
addFakeTLSSecrets(withControlPlaneTracingValues)

customRegistryOverride := "my.custom.registry/linkerd-io"
Expand Down
14 changes: 0 additions & 14 deletions cli/cmd/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,18 +114,6 @@ func makeInstallUpgradeFlags(defaults *l5dcharts.Values) ([]flag.Flag, *pflag.Fl
return nil
}),

flag.NewBoolFlag(installUpgradeFlags, "control-plane-tracing", defaults.ControlPlaneTracing,
"Enables Control Plane Tracing with the defaults", func(values *l5dcharts.Values, value bool) error {
values.ControlPlaneTracing = value
return nil
}),

flag.NewStringFlag(installUpgradeFlags, "control-plane-tracing-namespace", defaults.ControlPlaneTracingNamespace,
"Send control plane traces to Linkerd-Jaeger extension in this namespace", func(values *l5dcharts.Values, value string) error {
values.ControlPlaneTracingNamespace = value
return nil
}),

flag.NewStringFlag(installUpgradeFlags, "identity-issuer-certificate-file", "",
"A path to a PEM-encoded file containing the Linkerd Identity issuer certificate (generated by default)",
func(values *l5dcharts.Values, value string) error {
Expand Down Expand Up @@ -181,8 +169,6 @@ func makeInstallUpgradeFlags(defaults *l5dcharts.Values) ([]flag.Flag, *pflag.Fl
if release {
installUpgradeFlags.MarkHidden("control-plane-version")
}
installUpgradeFlags.MarkHidden("control-plane-tracing")
installUpgradeFlags.MarkHidden("control-plane-tracing-namespace")

return flags, installUpgradeFlags, nil
}
Expand Down
2 changes: 0 additions & 2 deletions cli/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (

"github.com/fatih/color"
"github.com/linkerd/linkerd2/cli/flag"
jaeger "github.com/linkerd/linkerd2/jaeger/cmd"
multicluster "github.com/linkerd/linkerd2/multicluster/cmd"
pkgcmd "github.com/linkerd/linkerd2/pkg/cmd"
"github.com/linkerd/linkerd2/pkg/flags"
Expand Down Expand Up @@ -122,7 +121,6 @@ func NewRootCmd() *cobra.Command {
rootCmd.AddCommand(newCmdPrune())

// Extension Sub Commands
rootCmd.AddCommand(jaeger.NewCmdJaeger())
rootCmd.AddCommand(multicluster.NewCmdMulticluster())
rootCmd.AddCommand(viz.NewCmdViz())

Expand Down
Loading