feat(policy): Configure outbound hostname labels in metrics (#13822)

Linkerd proxies no longer omit `hostname` labels for outbound policy metrics (due to potential for high-cardinality).

This change adds Helm templates and annotations to control this behavior, allowing users to opt-in to these outbound hostname labels.

Signed-off-by: Scott Fleener <scott@buoyant.io>
This commit is contained in:
Scott Fleener 2025-03-25 19:39:36 -04:00 committed by GitHub
parent 91e3772ffa
commit 838f2fd222
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
67 changed files with 754 additions and 0 deletions

View File

@ -280,6 +280,10 @@ proxy:
# -- The maximum duration for a response stream (i.e. before it will be
# reinitialized).
lifetime: "1h"
# Configures proxy metrics
metrics:
# -- Whether or not to export hostname labels in outbound request metrics.
hostnameLabels: false
inbound:
server:
http2:

View File

@ -142,6 +142,8 @@ env:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: {{ .Values.proxy.metrics.hostnameLabels | quote }}
{{- /* Configure inbound and outbound parameters, e.g. for HTTP/2 servers. */}}
{{ range $proxyK, $proxyV := (dict "inbound" .Values.proxy.inbound "outbound" .Values.proxy.outbound) -}}
{{ range $scopeK, $scopeV := $proxyV -}}

View File

@ -458,6 +458,10 @@ func getOverrideAnnotations(values *linkerd2.Values, base *linkerd2.Values) map[
overrideAnnotations[k8s.ProxyEnableExternalProfilesAnnotation] = strconv.FormatBool(proxy.EnableExternalProfiles)
}
if proxy.Metrics.HostnameLabels != baseProxy.Metrics.HostnameLabels {
overrideAnnotations[k8s.ProxyEnableHostnameLabels] = strconv.FormatBool(proxy.Metrics.HostnameLabels)
}
if proxy.IsIngress != baseProxy.IsIngress {
overrideAnnotations[k8s.ProxyInjectAnnotation] = k8s.ProxyInjectIngress
}

View File

@ -113,6 +113,9 @@ func TestRender(t *testing.T) {
OpaquePorts: "25,443,587,3306,5432,11211",
Await: true,
DefaultInboundPolicy: "default-allow-policy",
Metrics: &charts.ProxyMetrics{
HostnameLabels: false,
},
LivenessProbe: &charts.Probe{
InitialDelaySeconds: 10,
TimeoutSeconds: 1,

View File

@ -101,6 +101,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -101,6 +101,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -345,6 +347,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -101,6 +101,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -109,6 +109,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -358,6 +360,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -613,6 +617,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -868,6 +874,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -104,6 +104,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -104,6 +104,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -113,6 +113,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -358,6 +360,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -104,6 +104,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -151,6 +151,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -104,6 +104,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -104,6 +104,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SCOPE_PROTO_APPLE_SAUCE
value: valueA
- name: LINKERD2_PROXY_INBOUND_SCOPE_PROTO_BLUEBERRY

View File

@ -105,6 +105,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -103,6 +103,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -105,6 +105,8 @@ items:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -359,6 +361,8 @@ items:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -105,6 +105,8 @@ items:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -359,6 +361,8 @@ items:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -94,6 +94,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -97,6 +97,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -96,6 +96,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -98,6 +98,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -104,6 +104,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -99,6 +99,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -356,6 +358,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -120,6 +120,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: 10s
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1080,6 +1082,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1459,6 +1463,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1978,6 +1984,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1458,6 +1462,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1976,6 +1982,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1458,6 +1462,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1976,6 +1982,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1458,6 +1462,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1976,6 +1982,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1458,6 +1462,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1976,6 +1982,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1449,6 +1453,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1958,6 +1964,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1080,6 +1082,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1462,6 +1466,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1987,6 +1993,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -734,6 +734,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1156,6 +1158,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1580,6 +1584,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -2139,6 +2145,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -734,6 +734,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1156,6 +1158,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1580,6 +1584,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -2139,6 +2145,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -638,6 +638,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1010,6 +1012,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1389,6 +1393,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1823,6 +1829,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -684,6 +684,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1052,6 +1054,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1433,6 +1437,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1955,6 +1961,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -711,6 +711,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1129,6 +1131,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1555,6 +1559,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -2118,6 +2124,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -711,6 +711,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1130,6 +1132,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1559,6 +1563,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -2129,6 +2135,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -715,6 +715,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1137,6 +1139,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1567,6 +1571,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -2138,6 +2144,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -706,6 +706,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1119,6 +1121,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1545,6 +1549,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -2108,6 +2114,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1451,6 +1455,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1962,6 +1968,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -675,6 +675,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,443,587,3306,5432,11211
outboundConnectTimeout: ""
@ -1023,6 +1025,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
value: "25,443,587,3306,5432,11211"
- name: LINKERD2_PROXY_DESTINATION_CONTEXT
@ -1395,6 +1399,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
value: "25,443,587,3306,5432,11211"
- name: LINKERD2_PROXY_DESTINATION_CONTEXT
@ -1915,6 +1921,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
value: "25,443,587,3306,5432,11211"
- name: LINKERD2_PROXY_DESTINATION_CONTEXT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1458,6 +1462,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1976,6 +1982,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -707,6 +707,8 @@ data:
logFormat: plain
logHTTPHeaders: "off"
logLevel: warn,linkerd=info,hickory=error
metrics:
hostnameLabels: false
nativeSidecar: false
opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
outbound:
@ -1079,6 +1081,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1458,6 +1462,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
@ -1976,6 +1982,8 @@ spec:
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
value: 30s
- name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
value: "false"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
value: "10s"
- name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT

View File

@ -290,6 +290,10 @@
"name": "LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT",
"value": "30s"
},
{
"name": "LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS",
"value": "false"
},
{
"name": "LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL",
"value": "10s"

View File

@ -282,6 +282,10 @@
"name": "LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT",
"value": "30s"
},
{
"name": "LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS",
"value": "false"
},
{
"name": "LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL",
"value": "10s"

View File

@ -306,6 +306,10 @@
"name": "LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT",
"value": "30s"
},
{
"name": "LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS",
"value": "false"
},
{
"name": "LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL",
"value": "10s"

View File

@ -306,6 +306,10 @@
"name": "LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT",
"value": "30s"
},
{
"name": "LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS",
"value": "false"
},
{
"name": "LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL",
"value": "10s"

View File

@ -292,6 +292,10 @@
"name": "LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT",
"value": "30s"
},
{
"name": "LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS",
"value": "false"
},
{
"name": "LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL",
"value": "10s"

View File

@ -282,6 +282,10 @@
"name": "LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT",
"value": "30s"
},
{
"name": "LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS",
"value": "false"
},
{
"name": "LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL",
"value": "10s"

View File

@ -155,6 +155,7 @@ type (
ReadinessProbe *Probe `json:"readinessProbe"`
LivenessProbe *Probe `json:"livenessProbe"`
Control *ProxyControl `json:"control"`
Metrics *ProxyMetrics `json:"metrics"`
AdditionalEnv []corev1.EnvVar `json:"additionalEnv"`
ExperimentalEnv []corev1.EnvVar `json:"experimentalEnv"`
@ -182,6 +183,10 @@ type (
Lifetime string `json:"lifetime"`
}
ProxyMetrics struct {
HostnameLabels bool `json:"hostnameLabels"`
}
ProxyRuntime struct {
Workers ProxyRuntimeWorkers `json:"workers,omitempty"`
}

View File

@ -179,6 +179,9 @@ func TestNewValues(t *testing.T) {
Lifetime: "1h",
},
},
Metrics: &ProxyMetrics{
HostnameLabels: false,
},
Runtime: ProxyRuntime{
Workers: ProxyRuntimeWorkers{
Minimum: 1,

View File

@ -69,6 +69,7 @@ var (
k8s.ProxyIgnoreInboundPortsAnnotation,
k8s.ProxyOpaquePortsAnnotation,
k8s.ProxyIgnoreOutboundPortsAnnotation,
k8s.ProxyEnableHostnameLabels,
k8s.ProxyOutboundConnectTimeout,
k8s.ProxyInboundConnectTimeout,
k8s.ProxyAwait,
@ -276,6 +277,13 @@ func applyAnnotationOverrides(values *l5dcharts.Values, annotations map[string]s
values.Proxy.RequireIdentityOnInboundPorts = override
}
if override, ok := annotations[k8s.ProxyEnableHostnameLabels]; ok {
value, err := strconv.ParseBool(override)
if err == nil {
values.Proxy.Metrics.HostnameLabels = value
}
}
if override, ok := annotations[k8s.ProxyOutboundConnectTimeout]; ok {
duration, err := time.ParseDuration(override)
if err != nil {

View File

@ -237,6 +237,10 @@ const (
// to always require identity on inbound ports
ProxyRequireIdentityOnInboundPortsAnnotation = ProxyConfigAnnotationsPrefix + "/proxy-require-identity-inbound-ports"
// ProxyOutboundConnectTimeout can be used to configure the outbound TCP connection
// timeout in the proxy
ProxyEnableHostnameLabels = ProxyConfigAnnotationsPrefix + "/proxy-metrics-hostname-labels"
// ProxyOutboundConnectTimeout can be used to configure the outbound TCP connection
// timeout in the proxy
ProxyOutboundConnectTimeout = ProxyConfigAnnotationsPrefix + "/proxy-outbound-connect-timeout"

View File

@ -0,0 +1,136 @@
package hostname
import (
"fmt"
"regexp"
"github.com/linkerd/linkerd2/testutil/prommatch"
)
var (
authorityRE = regexp.MustCompile(`[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+\.svc\.cluster\.local:[0-9]+`)
hostnameRE = regexp.MustCompile(`[a-zA-Z0-9\-]+`)
)
// hasOutboundHTTPRequestWithHostname checks there is a series matching:
//
// request_total{
// route_namespace="",
// route_name="http",
// route_kind="default",
// route_group="",
// hostname=~"[a-zA-Z0-9]+"
// }
func hasOutboundHTTPRequestWithHostname(metrics, ns string) error {
m := prommatch.NewMatcher("outbound_http_route_request_duration_seconds_count",
prommatch.Labels{
"route_namespace": prommatch.Equals(""),
"route_name": prommatch.Equals("http"),
"route_kind": prommatch.Equals("default"),
"route_group": prommatch.Equals(""),
"hostname": prommatch.Like(hostnameRE),
},
prommatch.HasPositiveValue())
ok, err := m.HasMatchInString(metrics)
if err != nil {
return fmt.Errorf("failed to run a check of against the provided metrics: %w", err)
}
if !ok {
return fmt.Errorf("expected to find HTTP hostname outbound requests \n%s", metrics)
}
return nil
}
// hasOutboundHTTPRequestWithoutHostname checks there is a series matching:
//
// request_total{
// route_namespace="",
// route_name="http",
// route_kind="default",
// route_group="",
// hostname=""
// }
func hasOutboundHTTPRequestWithoutHostname(metrics, ns string) error {
m := prommatch.NewMatcher("outbound_http_route_request_duration_seconds_count",
prommatch.Labels{
"route_namespace": prommatch.Equals(""),
"route_name": prommatch.Equals("http"),
"route_kind": prommatch.Equals("default"),
"route_group": prommatch.Equals(""),
"hostname": prommatch.Equals(""),
},
prommatch.HasPositiveValue())
ok, err := m.HasMatchInString(metrics)
if err != nil {
return fmt.Errorf("failed to run a check of against the provided metrics: %w", err)
}
if !ok {
return fmt.Errorf("expected to find HTTP outbound requests \n%s", metrics)
}
return nil
}
// hasInboundTCPTrafficWithTLS checks there is a series matching:
//
// tcp_open_total{
// direction="inbound",
// peer="src",
// tls="true",
// client_id="default.${ns}.serviceaccount.identity.linkerd.cluster.local",
// srv_kind="default",
// srv_name="all-unauthenticated",
// target_addr=~"[0-9\.]+:[0-9]+",
// target_ip=~"[0-9\.]+"
// }
func hasInboundTCPTrafficWithTLS(metrics, ns string) error {
m := prommatch.NewMatcher(
"tcp_open_total",
prommatch.Labels{
"direction": prommatch.Equals("inbound"),
"peer": prommatch.Equals("src"),
"tls": prommatch.Equals("true"),
"client_id": prommatch.Equals(fmt.Sprintf("default.%s.serviceaccount.identity.linkerd.cluster.local", ns)),
"srv_kind": prommatch.Equals("default"),
"srv_name": prommatch.Equals("all-unauthenticated"),
},
prommatch.TargetAddrLabels(),
prommatch.HasPositiveValue(),
)
ok, err := m.HasMatchInString(metrics)
if err != nil {
return fmt.Errorf("failed to run a check of against the provided metrics: %w", err)
}
if !ok {
return fmt.Errorf("failed to find expected metric for inbound TLS TCP traffic\n%s", metrics)
}
return nil
}
// hasOutboundTCPWithTLSAndAuthority checks there is a series matching:
//
// tcp_open_total{
// direction="outbound",
// peer="dst",
// tls="true",
// target_addr=~"[0-9\.]+:[0-9]+",
// authority=~"[a-zA-Z\-]+\.[a-zA-Z\-]+\.svc\.cluster\.local:[0-9]+"
// }
func hasOutboundTCPWithTLSAndAuthority(metrics, ns string) error {
m := prommatch.NewMatcher("tcp_open_total",
prommatch.Labels{
"direction": prommatch.Equals("outbound"),
"peer": prommatch.Equals("dst"),
"tls": prommatch.Equals("true"),
"authority": prommatch.Like(authorityRE),
},
prommatch.TargetAddrLabels(),
prommatch.HasPositiveValue())
ok, err := m.HasMatchInString(metrics)
if err != nil {
return fmt.Errorf("failed to run a check against the provided metrics: %w", err)
}
if !ok {
return fmt.Errorf("failed to find expected metric for outbound TLS TCP traffic\n%s", metrics)
}
return nil
}

View File

@ -0,0 +1,202 @@
package hostname
import (
"bytes"
"context"
"fmt"
"html/template"
"os"
"testing"
"time"
"github.com/linkerd/linkerd2/testutil"
v1 "k8s.io/api/core/v1"
)
var TestHelper *testutil.TestHelper
var hostnameClientTemplate = template.Must(template.New("hostname_client.yaml").ParseFiles("testdata/hostname_client.yaml"))
var (
disabledApp = "disabled"
disabledSC = "slow-cooker-disabled"
enabledApp = "enabled"
enabledSC = "slow-cooker-enabled"
)
type testCase struct {
name string
appName string
appChecks []check
scName string
scChecks []check
}
type check func(metrics, ns string) error
func TestMain(m *testing.M) {
TestHelper = testutil.NewTestHelper()
// Block test execution until control plane is running
TestHelper.WaitUntilDeployReady(testutil.LinkerdDeployReplicasEdge)
os.Exit(m.Run())
}
// clientTemplateArgs is a struct that contains the arguments to be supplied
// to the deployment template hostname_client.yaml.
type clientTemplateArgs struct {
ServiceCookerDisabledTargetHost string
ServiceCookerEnabledTargetHost string
}
func serviceName(n string) string {
return fmt.Sprintf("svc-%s", n)
}
//////////////////////
/// TEST EXECUTION ///
//////////////////////
func TestHostnameCalledByServiceTarget(t *testing.T) {
ctx := context.Background()
TestHelper.WithDataPlaneNamespace(ctx, "hostname-called-by-service-name-test", map[string]string{}, t, func(t *testing.T, hostnameNs string) {
checks := func(c ...check) []check { return c }
if err := deployApplications(hostnameNs); err != nil {
testutil.AnnotatedFatal(t, "failed to deploy applications", err)
}
waitForAppDeploymentReady(t, hostnameNs)
tmplArgs := clientTemplateArgs{
ServiceCookerDisabledTargetHost: serviceName(disabledApp),
ServiceCookerEnabledTargetHost: serviceName(enabledApp),
}
if err := deployTemplate(hostnameNs, hostnameClientTemplate, tmplArgs); err != nil {
testutil.AnnotatedFatal(t, "failed to deploy client pods", err)
}
waitForClientDeploymentReady(t, hostnameNs)
runTests(ctx, t, hostnameNs, []testCase{
{
name: "calling a meshed service with hostname metrics disabled",
scName: disabledSC,
scChecks: checks(
hasOutboundHTTPRequestWithoutHostname,
hasOutboundTCPWithTLSAndAuthority,
),
appName: disabledApp,
appChecks: checks(hasInboundTCPTrafficWithTLS),
},
})
runTests(ctx, t, hostnameNs, []testCase{
{
name: "calling a meshed service with hostname metrics enabled",
scName: enabledSC,
scChecks: checks(
hasOutboundHTTPRequestWithHostname,
hasOutboundTCPWithTLSAndAuthority,
),
appName: enabledApp,
appChecks: checks(hasInboundTCPTrafficWithTLS),
},
})
})
}
func waitForAppDeploymentReady(t *testing.T, hostnameNs string) {
TestHelper.WaitRollout(t, map[string]testutil.DeploySpec{
disabledApp: {
Namespace: hostnameNs,
Replicas: 1,
},
enabledApp: {
Namespace: hostnameNs,
Replicas: 1,
},
})
}
func waitForClientDeploymentReady(t *testing.T, hostnameNs string) {
TestHelper.WaitRollout(t, map[string]testutil.DeploySpec{
disabledSC: {
Namespace: hostnameNs,
Replicas: 1,
},
enabledSC: {
Namespace: hostnameNs,
Replicas: 1,
},
})
}
func runTests(ctx context.Context, t *testing.T, ns string, tcs []testCase) {
t.Helper()
for _, tc := range tcs {
t.Run(tc.name, func(t *testing.T) {
err := testutil.RetryFor(30*time.Second, func() error {
if err := checkPodMetrics(ctx, ns, tc.scName, tc.scChecks); err != nil {
return fmt.Errorf("failed to check metrics for client pod: %w", err)
}
if tc.appName == "" {
return nil
}
if err := checkPodMetrics(ctx, ns, tc.appName, tc.appChecks); err != nil {
return fmt.Errorf("failed to check metrics for app pod: %w", err)
}
return nil
})
if err != nil {
testutil.AnnotatedFatalf(t, "unexpected metric for pod", "unexpected metric for pod: %s", err)
}
})
}
}
func checkPodMetrics(ctx context.Context, hostnameNs string, podAppLabel string, checks []check) error {
pods, err := TestHelper.GetPods(ctx, hostnameNs, map[string]string{"app": podAppLabel})
if err != nil {
return fmt.Errorf("error getting pods for label 'app: %q': %w", podAppLabel, err)
}
if len(pods) == 0 {
return fmt.Errorf("no pods found for label 'app: %q'", podAppLabel)
}
metrics, err := getPodMetrics(pods[0], hostnameNs)
if err != nil {
return fmt.Errorf("error getting metrics for pod %q: %w", pods[0].Name, err)
}
for _, check := range checks {
if err := check(metrics, hostnameNs); err != nil {
return fmt.Errorf("validation of pod metrics failed: %w", err)
}
}
return nil
}
func deployApplications(ns string) error {
out, err := TestHelper.Kubectl("", "apply", "-f", "testdata/hostname_application.yaml", "-n", ns)
if err != nil {
return fmt.Errorf("failed apply deployment file %q: %w", out, err)
}
return nil
}
func deployTemplate(ns string, tmpl *template.Template, templateArgs interface{}) error {
bb := &bytes.Buffer{}
if err := tmpl.Execute(bb, templateArgs); err != nil {
return fmt.Errorf("failed to write deployment template: %w", err)
}
out, err := TestHelper.KubectlApply(bb.String(), ns)
if err != nil {
return fmt.Errorf("failed apply deployment file %q: %w", out, err)
}
return nil
}
func getPodMetrics(pod v1.Pod, ns string) (string, error) {
podName := fmt.Sprintf("pod/%s", pod.Name)
cmd := []string{"diagnostics", "proxy-metrics", "--namespace", ns, podName}
metrics, err := TestHelper.LinkerdRun(cmd...)
if err != nil {
return "", err
}
return metrics, nil
}

View File

@ -0,0 +1,80 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: disabled
spec:
replicas: 1
selector:
matchLabels:
app: disabled
template:
metadata:
annotations:
linkerd.io/inject: enabled
labels:
app: disabled
spec:
containers:
- name: app
image: buoyantio/bb:v0.0.7
args:
- terminus
- "--h1-server-port=8080"
- "--response-text=disabled"
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: svc-disabled
labels:
app: svc-disabled
spec:
selector:
app: disabled
ports:
- name: http
port: 8080
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: enabled
spec:
replicas: 1
selector:
matchLabels:
app: enabled
template:
metadata:
annotations:
linkerd.io/inject: enabled
labels:
app: enabled
spec:
containers:
- name: app
image: buoyantio/bb:v0.0.7
args:
- terminus
- "--h1-server-port=8080"
- "--response-text=enabled"
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: svc-enabled
labels:
app: svc-enabled
spec:
selector:
app: enabled
ports:
- name: http
port: 8080
targetPort: 8080

View File

@ -0,0 +1,51 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: slow-cooker-disabled
spec:
selector:
matchLabels:
app: slow-cooker-disabled
template:
metadata:
annotations:
linkerd.io/inject: "enabled"
labels:
app: slow-cooker-disabled
spec:
containers:
- name: slow-cooker-opdisabledque
image: buoyantio/slow_cooker:1.3.0
args:
- -qps=1
- -metric-addr=0.0.0.0:9999
- http://{{ .ServiceCookerDisabledTargetHost}}:8080
ports:
- containerPort: 9999
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: slow-cooker-enabled
spec:
selector:
matchLabels:
app: slow-cooker-enabled
template:
metadata:
annotations:
linkerd.io/inject: "enabled"
config.linkerd.io/proxy-metrics-hostname-labels: "true"
labels:
app: slow-cooker-enabled
spec:
containers:
- name: slow-cooker-opaque
image: buoyantio/slow_cooker:1.3.0
args:
- -qps=1
- -metric-addr=0.0.0.0:9999
- http://{{ .ServiceCookerEnabledTargetHost}}:8080
ports:
- containerPort: 9999