gitextract_99izrum5/ ├── .devcontainer/ │ ├── README.md │ └── devcontainer.json ├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── actions/ │ │ ├── cli-setup/ │ │ │ └── action.yaml │ │ ├── docker-build/ │ │ │ └── action.yml │ │ └── helm-publish/ │ │ └── action.yml │ ├── dco.yml │ ├── dependabot.yml │ ├── stale.yml │ └── workflows/ │ ├── actions.yml │ ├── cli-build.yml │ ├── codecov.yml │ ├── codeql.yml │ ├── devcontainer.yml │ ├── go.yml │ ├── integration.yml │ ├── js.yml │ ├── lock.yml │ ├── markdown.yml │ ├── proto.yml │ ├── release.yml │ ├── rerun.yml │ ├── rust.yml │ ├── shell.yml │ └── sync-proxy.yml ├── .gitignore ├── .golangci.yml ├── .helmdocsignore ├── .markdownlint.yaml ├── .proxy-version ├── ADOPTERS.md ├── AMBASSADORS.md ├── BUILD.md ├── CHANGES.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Cargo.toml ├── DCO ├── Dockerfile-debug ├── Dockerfile.controller ├── Dockerfile.proxy ├── EXTENSIONS.md ├── GOVERNANCE.md ├── LICENSE ├── MAINTAINERS.md ├── README.md ├── RELEASE.md ├── SECURITY.md ├── STEERING.md ├── TEST.md ├── bin/ │ ├── _docker.sh │ ├── _log.sh │ ├── _os.sh │ ├── _tag.sh │ ├── _test-helpers.sh │ ├── build-cli-bin │ ├── certs-openssl │ ├── compute-edge-version │ ├── docker │ ├── docker-build │ ├── docker-build-cli-bin │ ├── docker-build-controller │ ├── docker-build-debug │ ├── docker-build-metrics-api │ ├── docker-build-proxy │ ├── docker-build-tap │ ├── docker-build-web │ ├── docker-pull │ ├── docker-push │ ├── docker-retag-all │ ├── docker-test-proxy │ ├── fetch-proxy │ ├── fmt │ ├── go-mod-tree │ ├── go-mod-versions │ ├── go-mod-why │ ├── go-run │ ├── goimports │ ├── helm │ ├── helm-build │ ├── image-load │ ├── install-deps │ ├── k3d │ ├── kind │ ├── kubectl │ ├── linkerd │ ├── minikube-start-hyperv.bat │ ├── protoc-go.sh │ ├── root-tag │ ├── rust-toolchain-version │ ├── scurl │ ├── shellcheck │ ├── shellcheck-all │ ├── test-cleanup │ ├── test-clouds │ ├── test-clouds-cleanup │ ├── test-scale │ ├── tests │ ├── update-codegen.sh │ └── web ├── charts/ │ ├── artifacthub-repo-edge.yml │ ├── artifacthub-repo-stable.yml │ ├── linkerd-control-plane/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md.gotmpl │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── config-rbac.yaml │ │ │ ├── config.yaml │ │ │ ├── destination-rbac.yaml │ │ │ ├── destination.yaml │ │ │ ├── heartbeat-rbac.yaml │ │ │ ├── heartbeat.yaml │ │ │ ├── identity-rbac.yaml │ │ │ ├── identity.yaml │ │ │ ├── namespace.yaml │ │ │ ├── podmonitor.yaml │ │ │ ├── proxy-injector-rbac.yaml │ │ │ ├── proxy-injector.yaml │ │ │ └── psp.yaml │ │ ├── values-ha.yaml │ │ └── values.yaml │ ├── linkerd-crds/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md.gotmpl │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── gateway.networking.k8s.io_grpcroutes.yaml │ │ │ ├── gateway.networking.k8s.io_httproutes.yaml │ │ │ ├── gateway.networking.k8s.io_tcproutes.yaml │ │ │ ├── gateway.networking.k8s.io_tlsroutes.yaml │ │ │ ├── policy/ │ │ │ │ ├── authorization-policy.yaml │ │ │ │ ├── egress-network.yaml │ │ │ │ ├── http-local-ratelimit-policy.yaml │ │ │ │ ├── httproute.yaml │ │ │ │ ├── meshtls-authentication.yaml │ │ │ │ ├── network-authentication.yaml │ │ │ │ ├── server-authorization.yaml │ │ │ │ └── server.yaml │ │ │ ├── serviceprofile.yaml │ │ │ └── workload/ │ │ │ └── external-workload.yaml │ │ └── values.yaml │ ├── linkerd2-cni/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md.gotmpl │ │ ├── requirements.yaml │ │ ├── templates/ │ │ │ └── cni-plugin.yaml │ │ └── values.yaml │ ├── partials/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md.gotmpl │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _affinity.tpl │ │ │ ├── _capabilities.tpl │ │ │ ├── _debug.tpl │ │ │ ├── _helpers.tpl │ │ │ ├── _metadata.tpl │ │ │ ├── _network-validator.tpl │ │ │ ├── _nodeselector.tpl │ │ │ ├── _proxy-config-ann.tpl │ │ │ ├── _proxy-init.tpl │ │ │ ├── _proxy.tpl │ │ │ ├── _pull-secrets.tpl │ │ │ ├── _resources.tpl │ │ │ ├── _tolerations.tpl │ │ │ ├── _trace.tpl │ │ │ ├── _validate.tpl │ │ │ └── _volumes.tpl │ │ └── values.yaml │ ├── patch/ │ │ ├── Chart.yaml │ │ ├── requirements.yaml │ │ └── templates/ │ │ └── patch.json │ └── templates.go ├── cli/ │ ├── Dockerfile │ ├── cmd/ │ │ ├── authz.go │ │ ├── check.go │ │ ├── check_extensions.go │ │ ├── check_extensions_test.go │ │ ├── check_test.go │ │ ├── completion.go │ │ ├── completion_test.go │ │ ├── controller-metrics.go │ │ ├── diagnostics.go │ │ ├── diagnostics_profile.go │ │ ├── doc.go │ │ ├── endpoints.go │ │ ├── endpoints_test.go │ │ ├── identity.go │ │ ├── inject.go │ │ ├── inject_test.go │ │ ├── inject_util.go │ │ ├── install-cni-plugin.go │ │ ├── install-cni-plugin_test.go │ │ ├── install.go │ │ ├── install_cni_helm_test.go │ │ ├── install_helm_test.go │ │ ├── install_test.go │ │ ├── main_test.go │ │ ├── metrics.go │ │ ├── metrics_diagnostics_util.go │ │ ├── metrics_diagnostics_util_test.go │ │ ├── options.go │ │ ├── policy.go │ │ ├── profile.go │ │ ├── profile_test.go │ │ ├── prune.go │ │ ├── range_slice.go │ │ ├── range_slice_test.go │ │ ├── root.go │ │ ├── test_helper.go │ │ ├── testdata/ │ │ │ ├── addon_config.yaml │ │ │ ├── addon_config_overwrite.yaml │ │ │ ├── check_output.golden │ │ │ ├── check_output_json.golden │ │ │ ├── endpoints_one_output.golden │ │ │ ├── endpoints_one_output_json.golden │ │ │ ├── endpoints_two_outputs.golden │ │ │ ├── expired-crt.pem │ │ │ ├── expired-key.pem │ │ │ ├── expired-trust-anchors.pem │ │ │ ├── inject-filepath/ │ │ │ │ ├── expected/ │ │ │ │ │ ├── injected_nginx.stderr │ │ │ │ │ ├── injected_nginx.stderr.verbose │ │ │ │ │ ├── injected_nginx.yaml │ │ │ │ │ ├── injected_nginx_redis.stderr │ │ │ │ │ ├── injected_nginx_redis.stderr.verbose │ │ │ │ │ ├── injected_nginx_redis.yaml │ │ │ │ │ ├── injected_redis.stderr │ │ │ │ │ ├── injected_redis.stderr.verbose │ │ │ │ │ └── injected_redis.yaml │ │ │ │ └── resources/ │ │ │ │ ├── db/ │ │ │ │ │ └── redis.yaml │ │ │ │ └── nginx.yaml │ │ │ ├── inject_contour.golden.yml │ │ │ ├── inject_contour.input.yml │ │ │ ├── inject_contour.report │ │ │ ├── inject_contour.report.verbose │ │ │ ├── inject_contour_uninject.report │ │ │ ├── inject_emojivoto_already_injected.golden.yml │ │ │ ├── inject_emojivoto_already_injected.input.yml │ │ │ ├── inject_emojivoto_already_injected.report │ │ │ ├── inject_emojivoto_already_injected.report.verbose │ │ │ ├── inject_emojivoto_cronjob.golden.yml │ │ │ ├── inject_emojivoto_cronjob.input.yml │ │ │ ├── inject_emojivoto_cronjob.report │ │ │ ├── inject_emojivoto_cronjob.report.verbose │ │ │ ├── inject_emojivoto_cronjob_nometa.golden.yml │ │ │ ├── inject_emojivoto_cronjob_nometa.input.yml │ │ │ ├── inject_emojivoto_deployment.golden.yml │ │ │ ├── inject_emojivoto_deployment.input.yml │ │ │ ├── inject_emojivoto_deployment.report │ │ │ ├── inject_emojivoto_deployment.report.verbose │ │ │ ├── inject_emojivoto_deployment_access_log.golden.yml │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false.golden.stderr │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false.golden.stderr.verbose │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false.golden.yml │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false.input.yml │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false_volumeProjection_disabled.golden.stderr │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false_volumeProjection_disabled.golden.stderr.verbose │ │ │ ├── inject_emojivoto_deployment_automountServiceAccountToken_false_volumeProjection_disabled.golden.yml │ │ │ ├── inject_emojivoto_deployment_capabilities.golden.yml │ │ │ ├── inject_emojivoto_deployment_capabilities.input.yml │ │ │ ├── inject_emojivoto_deployment_config_overrides.golden.yml │ │ │ ├── inject_emojivoto_deployment_config_overrides.input.yml │ │ │ ├── inject_emojivoto_deployment_controller_name.golden.yml │ │ │ ├── inject_emojivoto_deployment_controller_name.input.yml │ │ │ ├── inject_emojivoto_deployment_controller_name.report │ │ │ ├── inject_emojivoto_deployment_controller_name.report.verbose │ │ │ ├── inject_emojivoto_deployment_controller_name_uninject.report │ │ │ ├── inject_emojivoto_deployment_debug.golden.yml │ │ │ ├── inject_emojivoto_deployment_default_inbound_policy.golden.report │ │ │ ├── inject_emojivoto_deployment_default_inbound_policy.golden.report.verbose │ │ │ ├── inject_emojivoto_deployment_default_inbound_policy.golden.yml │ │ │ ├── inject_emojivoto_deployment_empty_resources.golden.yml │ │ │ ├── inject_emojivoto_deployment_empty_resources.input.yml │ │ │ ├── inject_emojivoto_deployment_empty_resources.report │ │ │ ├── inject_emojivoto_deployment_empty_resources.report.verbose │ │ │ ├── inject_emojivoto_deployment_hostNetwork_false.golden.yml │ │ │ ├── inject_emojivoto_deployment_hostNetwork_false.input.yml │ │ │ ├── inject_emojivoto_deployment_hostNetwork_false.report │ │ │ ├── inject_emojivoto_deployment_hostNetwork_false.report.verbose │ │ │ ├── inject_emojivoto_deployment_hostNetwork_true.golden.stderr │ │ │ ├── inject_emojivoto_deployment_hostNetwork_true.golden.stderr.verbose │ │ │ ├── inject_emojivoto_deployment_hostNetwork_true.golden.yml │ │ │ ├── inject_emojivoto_deployment_hostNetwork_true.input.yml │ │ │ ├── inject_emojivoto_deployment_hostNetwork_true_uninject.report │ │ │ ├── inject_emojivoto_deployment_injectDisabled.input.yml │ │ │ ├── inject_emojivoto_deployment_injectDisabled.report │ │ │ ├── inject_emojivoto_deployment_injectDisabled.report.verbose │ │ │ ├── inject_emojivoto_deployment_injectDisabled_uninject.report │ │ │ ├── inject_emojivoto_deployment_native_sidecar.golden.yml │ │ │ ├── inject_emojivoto_deployment_no_init_container.golden.yml │ │ │ ├── inject_emojivoto_deployment_opaque_ports.golden.yml │ │ │ ├── inject_emojivoto_deployment_opaque_ports.report │ │ │ ├── inject_emojivoto_deployment_opaque_ports.report.verbose │ │ │ ├── inject_emojivoto_deployment_overridden.golden.yml │ │ │ ├── inject_emojivoto_deployment_overridden_noinject.golden.yml │ │ │ ├── inject_emojivoto_deployment_params.golden.yml │ │ │ ├── inject_emojivoto_deployment_proxyignores.golden.yml │ │ │ ├── inject_emojivoto_deployment_udp.golden.yml │ │ │ ├── inject_emojivoto_deployment_udp.input.yml │ │ │ ├── inject_emojivoto_deployment_udp.report │ │ │ ├── inject_emojivoto_deployment_udp.report.verbose │ │ │ ├── inject_emojivoto_deployment_udp_uninject.report │ │ │ ├── inject_emojivoto_deployment_uninject.report │ │ │ ├── inject_emojivoto_deployment_uninjected.input.yml │ │ │ ├── inject_emojivoto_istio.golden.stderr │ │ │ ├── inject_emojivoto_istio.golden.stderr.verbose │ │ │ ├── inject_emojivoto_istio.golden.yml │ │ │ ├── inject_emojivoto_istio.input.yml │ │ │ ├── inject_emojivoto_istio_uninject.report │ │ │ ├── inject_emojivoto_list.golden.yml │ │ │ ├── inject_emojivoto_list.input.yml │ │ │ ├── inject_emojivoto_list.report │ │ │ ├── inject_emojivoto_list.report.verbose │ │ │ ├── inject_emojivoto_list_empty_resources.golden.yml │ │ │ ├── inject_emojivoto_list_empty_resources.input.yml │ │ │ ├── inject_emojivoto_list_empty_resources.report │ │ │ ├── inject_emojivoto_list_empty_resources.report.verbose │ │ │ ├── inject_emojivoto_list_uninject.report │ │ │ ├── inject_emojivoto_namespace_good.golden.report │ │ │ ├── inject_emojivoto_namespace_good.golden.report.verbose │ │ │ ├── inject_emojivoto_namespace_good.golden.yml │ │ │ ├── inject_emojivoto_namespace_good.input.yml │ │ │ ├── inject_emojivoto_namespace_overidden_good.golden.yml │ │ │ ├── inject_emojivoto_namespace_uninjected_good.golden.report │ │ │ ├── inject_emojivoto_namespace_uninjected_good.golden.yml │ │ │ ├── inject_emojivoto_pod.golden.yml │ │ │ ├── inject_emojivoto_pod.input.yml │ │ │ ├── inject_emojivoto_pod.report │ │ │ ├── inject_emojivoto_pod.report.verbose │ │ │ ├── inject_emojivoto_pod_default_inbound_policy.golden.report │ │ │ ├── inject_emojivoto_pod_default_inbound_policy.golden.report.verbose │ │ │ ├── inject_emojivoto_pod_default_inbound_policy.golden.yml │ │ │ ├── inject_emojivoto_pod_ingress.golden.yml │ │ │ ├── inject_emojivoto_pod_ingress.report │ │ │ ├── inject_emojivoto_pod_ingress.report.verbose │ │ │ ├── inject_emojivoto_pod_nativesidecar.golden.yml │ │ │ ├── inject_emojivoto_pod_proxyignores.golden.yml │ │ │ ├── inject_emojivoto_pod_uninject.report │ │ │ ├── inject_emojivoto_pod_with_requests.golden.yml │ │ │ ├── inject_emojivoto_pod_with_requests.input.yml │ │ │ ├── inject_emojivoto_pod_with_requests.report │ │ │ ├── inject_emojivoto_pod_with_requests.report.verbose │ │ │ ├── inject_emojivoto_pod_with_requests_uninject.report │ │ │ ├── inject_emojivoto_statefulset.golden.yml │ │ │ ├── inject_emojivoto_statefulset.input.yml │ │ │ ├── inject_emojivoto_statefulset.report │ │ │ ├── inject_emojivoto_statefulset.report.verbose │ │ │ ├── inject_emojivoto_statefulset_uninject.report │ │ │ ├── inject_gettest_deployment.bad.golden │ │ │ ├── inject_gettest_deployment.bad.golden.verbose │ │ │ ├── inject_gettest_deployment.bad.input.yml │ │ │ ├── inject_gettest_deployment.good.golden.stderr │ │ │ ├── inject_gettest_deployment.good.golden.stderr.verbose │ │ │ ├── inject_gettest_deployment.good.golden.yml │ │ │ ├── inject_gettest_deployment.good.input.yml │ │ │ ├── inject_tap_deployment.bad.golden │ │ │ ├── inject_tap_deployment.bad.golden.verbose │ │ │ ├── inject_tap_deployment.input.yml │ │ │ ├── inject_tap_deployment_debug.golden.yml │ │ │ ├── inject_tap_deployment_debug.report │ │ │ ├── inject_tap_deployment_debug.report.verbose │ │ │ ├── install-cni-plugin_default.golden │ │ │ ├── install-cni-plugin_fully_configured.golden │ │ │ ├── install-cni-plugin_fully_configured_equal_dsts.golden │ │ │ ├── install-cni-plugin_fully_configured_no_namespace.golden │ │ │ ├── install-cni-plugin_skip_ports.golden │ │ │ ├── install_cni_helm_default_output.golden │ │ │ ├── install_cni_helm_override_output.golden │ │ │ ├── install_config.yaml │ │ │ ├── install_controlplane_tracing_output.golden │ │ │ ├── install_crds.golden │ │ │ ├── install_crds_with_gateway_api.golden │ │ │ ├── install_custom_domain.golden │ │ │ ├── install_custom_registry.golden │ │ │ ├── install_default.golden │ │ │ ├── install_default_override_dst_get_nets.golden │ │ │ ├── install_default_token.golden │ │ │ ├── install_gid_output.golden │ │ │ ├── install_ha_output.golden │ │ │ ├── install_ha_with_overrides_output.golden │ │ │ ├── install_heartbeat_disabled_output.golden │ │ │ ├── install_helm_control_plane_output.golden │ │ │ ├── install_helm_control_plane_output_ha.golden │ │ │ ├── install_helm_control_plane_output_ha_with_gid.golden │ │ │ ├── install_helm_crds_output.golden │ │ │ ├── install_helm_crds_output_ha.golden │ │ │ ├── install_helm_crds_without_gateway_output.golden │ │ │ ├── install_helm_output_ha_labels.golden │ │ │ ├── install_helm_output_ha_namespace_selector.golden │ │ │ ├── install_no_init_container.golden │ │ │ ├── install_output.golden │ │ │ ├── install_proxy_ignores.golden │ │ │ ├── install_tracing.golden │ │ │ ├── install_values_file.golden │ │ │ ├── not-valid-yet-crt.pem │ │ │ ├── not-valid-yet-key.pem │ │ │ ├── not-valid-yet-trust-anchors.pem │ │ │ ├── obfuscate-diagnostics-proxy-metrics.golden │ │ │ ├── obfuscate-diagnostics-proxy-metrics.input │ │ │ ├── prom-config.yaml │ │ │ ├── upgrade_crds_with_gateway_api.golden │ │ │ ├── upgrade_crds_without_gateway_api.golden │ │ │ ├── valid-crt.pem │ │ │ ├── valid-key.pem │ │ │ ├── valid-trust-anchors.pem │ │ │ ├── valid-with-rsa-anchor-crt.pem │ │ │ ├── valid-with-rsa-anchor-key.pem │ │ │ ├── valid-with-rsa-anchor-trust-anchors.pem │ │ │ ├── wrong-algo-crt.pem │ │ │ ├── wrong-algo-key.pem │ │ │ ├── wrong-algo-trust-anchors.pem │ │ │ ├── wrong-domain-crt.pem │ │ │ ├── wrong-domain-key.pem │ │ │ └── wrong-domain-trust-anchors.pem │ │ ├── uninject.go │ │ ├── uninject_test.go │ │ ├── uninstall.go │ │ ├── upgrade.go │ │ ├── upgrade_test.go │ │ └── version.go │ ├── flag/ │ │ └── flag.go │ ├── main.go │ └── table/ │ └── table.go ├── controller/ │ ├── api/ │ │ ├── destination/ │ │ │ ├── client.go │ │ │ ├── dedup_profile_listener.go │ │ │ ├── default_profile_listener.go │ │ │ ├── destination_fuzzer.go │ │ │ ├── endpoint_profile_translator.go │ │ │ ├── endpoint_profile_translator_test.go │ │ │ ├── endpoint_translator.go │ │ │ ├── endpoint_translator_test.go │ │ │ ├── external-workload/ │ │ │ │ ├── controller_util.go │ │ │ │ ├── endpoints_controller.go │ │ │ │ ├── endpoints_controller_test.go │ │ │ │ ├── endpoints_reconciler.go │ │ │ │ ├── endpoints_reconciler_test.go │ │ │ │ └── queue_metrics.go │ │ │ ├── fallback_profile_listener.go │ │ │ ├── fallback_profile_listener_test.go │ │ │ ├── federated_service_watcher.go │ │ │ ├── federated_service_watcher_test.go │ │ │ ├── opaque_ports_adaptor.go │ │ │ ├── profile_translator.go │ │ │ ├── profile_translator_test.go │ │ │ ├── server.go │ │ │ ├── server_ipv6_test.go │ │ │ ├── server_test.go │ │ │ ├── syncronized_get_stream.go │ │ │ ├── syncronized_get_stream_test.go │ │ │ ├── test_util.go │ │ │ └── watcher/ │ │ │ ├── cluster_store.go │ │ │ ├── cluster_store_test.go │ │ │ ├── endpoints_watcher.go │ │ │ ├── endpoints_watcher_test.go │ │ │ ├── k8s.go │ │ │ ├── opaque_ports_watcher.go │ │ │ ├── opaque_ports_watcher_test.go │ │ │ ├── profile_watcher.go │ │ │ ├── profile_watcher_test.go │ │ │ ├── prometheus.go │ │ │ ├── test_util.go │ │ │ ├── workload_watcher.go │ │ │ └── workload_watcher_test.go │ │ └── util/ │ │ └── test_util.go │ ├── cmd/ │ │ ├── destination/ │ │ │ └── main.go │ │ ├── heartbeat/ │ │ │ └── main.go │ │ ├── identity/ │ │ │ └── main.go │ │ ├── main.go │ │ ├── proxy-injector/ │ │ │ └── main.go │ │ └── sp-validator/ │ │ └── main.go │ ├── gen/ │ │ ├── apis/ │ │ │ ├── externalworkload/ │ │ │ │ ├── register.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── link/ │ │ │ │ ├── register.go │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── v1alpha2/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1alpha3/ │ │ │ │ ├── doc.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── policy/ │ │ │ │ ├── register.go │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── httproute.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta3/ │ │ │ │ ├── doc.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── server/ │ │ │ │ ├── register.go │ │ │ │ ├── v1beta1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── v1beta2/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta3/ │ │ │ │ ├── doc.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── serverauthorization/ │ │ │ │ ├── register.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ └── serviceprofile/ │ │ │ ├── register.go │ │ │ └── v1alpha2/ │ │ │ ├── doc.go │ │ │ ├── register.go │ │ │ ├── types.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── boilerplate.go.txt │ │ ├── client/ │ │ │ ├── clientset/ │ │ │ │ └── versioned/ │ │ │ │ ├── clientset.go │ │ │ │ ├── fake/ │ │ │ │ │ ├── clientset_generated.go │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ ├── scheme/ │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ └── typed/ │ │ │ │ ├── externalworkload/ │ │ │ │ │ └── v1beta1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── externalworkload.go │ │ │ │ │ ├── externalworkload_client.go │ │ │ │ │ ├── fake/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake_externalworkload.go │ │ │ │ │ │ └── fake_externalworkload_client.go │ │ │ │ │ └── generated_expansion.go │ │ │ │ ├── link/ │ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── fake_link.go │ │ │ │ │ │ │ └── fake_link_client.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── link.go │ │ │ │ │ │ └── link_client.go │ │ │ │ │ ├── v1alpha2/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── fake_link.go │ │ │ │ │ │ │ └── fake_link_client.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── link.go │ │ │ │ │ │ └── link_client.go │ │ │ │ │ └── v1alpha3/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake_link.go │ │ │ │ │ │ └── fake_link_client.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ ├── link.go │ │ │ │ │ └── link_client.go │ │ │ │ ├── policy/ │ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ │ ├── authorizationpolicy.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── fake_authorizationpolicy.go │ │ │ │ │ │ │ ├── fake_httproute.go │ │ │ │ │ │ │ ├── fake_meshtlsauthentication.go │ │ │ │ │ │ │ ├── fake_networkauthentication.go │ │ │ │ │ │ │ └── fake_policy_client.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── httproute.go │ │ │ │ │ │ ├── meshtlsauthentication.go │ │ │ │ │ │ ├── networkauthentication.go │ │ │ │ │ │ └── policy_client.go │ │ │ │ │ └── v1beta3/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake_httproute.go │ │ │ │ │ │ └── fake_policy_client.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ ├── httproute.go │ │ │ │ │ └── policy_client.go │ │ │ │ ├── server/ │ │ │ │ │ ├── v1beta1/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── fake_server.go │ │ │ │ │ │ │ └── fake_server_client.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── server.go │ │ │ │ │ │ └── server_client.go │ │ │ │ │ ├── v1beta2/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── fake_server.go │ │ │ │ │ │ │ └── fake_server_client.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── server.go │ │ │ │ │ │ └── server_client.go │ │ │ │ │ └── v1beta3/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake_server.go │ │ │ │ │ │ └── fake_server_client.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ ├── server.go │ │ │ │ │ └── server_client.go │ │ │ │ ├── serverauthorization/ │ │ │ │ │ └── v1beta1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake_serverauthorization.go │ │ │ │ │ │ └── fake_serverauthorization_client.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ ├── serverauthorization.go │ │ │ │ │ └── serverauthorization_client.go │ │ │ │ └── serviceprofile/ │ │ │ │ └── v1alpha2/ │ │ │ │ ├── doc.go │ │ │ │ ├── fake/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake_serviceprofile.go │ │ │ │ │ └── fake_serviceprofile_client.go │ │ │ │ ├── generated_expansion.go │ │ │ │ ├── serviceprofile.go │ │ │ │ └── serviceprofile_client.go │ │ │ ├── informers/ │ │ │ │ └── externalversions/ │ │ │ │ ├── externalworkload/ │ │ │ │ │ ├── interface.go │ │ │ │ │ └── v1beta1/ │ │ │ │ │ ├── externalworkload.go │ │ │ │ │ └── interface.go │ │ │ │ ├── factory.go │ │ │ │ ├── generic.go │ │ │ │ ├── internalinterfaces/ │ │ │ │ │ └── factory_interfaces.go │ │ │ │ ├── link/ │ │ │ │ │ ├── interface.go │ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ └── link.go │ │ │ │ │ ├── v1alpha2/ │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ └── link.go │ │ │ │ │ └── v1alpha3/ │ │ │ │ │ ├── interface.go │ │ │ │ │ └── link.go │ │ │ │ ├── policy/ │ │ │ │ │ ├── interface.go │ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ │ ├── authorizationpolicy.go │ │ │ │ │ │ ├── httproute.go │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ ├── meshtlsauthentication.go │ │ │ │ │ │ └── networkauthentication.go │ │ │ │ │ └── v1beta3/ │ │ │ │ │ ├── httproute.go │ │ │ │ │ └── interface.go │ │ │ │ ├── server/ │ │ │ │ │ ├── interface.go │ │ │ │ │ ├── v1beta1/ │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ └── server.go │ │ │ │ │ ├── v1beta2/ │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ └── server.go │ │ │ │ │ └── v1beta3/ │ │ │ │ │ ├── interface.go │ │ │ │ │ └── server.go │ │ │ │ ├── serverauthorization/ │ │ │ │ │ ├── interface.go │ │ │ │ │ └── v1beta1/ │ │ │ │ │ ├── interface.go │ │ │ │ │ └── serverauthorization.go │ │ │ │ └── serviceprofile/ │ │ │ │ ├── interface.go │ │ │ │ └── v1alpha2/ │ │ │ │ ├── interface.go │ │ │ │ └── serviceprofile.go │ │ │ └── listers/ │ │ │ ├── externalworkload/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── expansion_generated.go │ │ │ │ └── externalworkload.go │ │ │ ├── link/ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ └── link.go │ │ │ │ ├── v1alpha2/ │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ └── link.go │ │ │ │ └── v1alpha3/ │ │ │ │ ├── expansion_generated.go │ │ │ │ └── link.go │ │ │ ├── policy/ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── authorizationpolicy.go │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ ├── httproute.go │ │ │ │ │ ├── meshtlsauthentication.go │ │ │ │ │ └── networkauthentication.go │ │ │ │ └── v1beta3/ │ │ │ │ ├── expansion_generated.go │ │ │ │ └── httproute.go │ │ │ ├── server/ │ │ │ │ ├── v1beta1/ │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ └── server.go │ │ │ │ ├── v1beta2/ │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ └── server.go │ │ │ │ └── v1beta3/ │ │ │ │ ├── expansion_generated.go │ │ │ │ └── server.go │ │ │ ├── serverauthorization/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── expansion_generated.go │ │ │ │ └── serverauthorization.go │ │ │ └── serviceprofile/ │ │ │ └── v1alpha2/ │ │ │ ├── expansion_generated.go │ │ │ └── serviceprofile.go │ │ └── common/ │ │ └── net/ │ │ └── net.pb.go │ ├── heartbeat/ │ │ ├── heartbeat.go │ │ └── heartbeat_test.go │ ├── identity/ │ │ ├── domain.go │ │ └── validator.go │ ├── k8s/ │ │ ├── api.go │ │ ├── api_resource.go │ │ ├── api_test.go │ │ ├── clientset.go │ │ ├── k8s.go │ │ ├── metadata_api.go │ │ ├── prometheus.go │ │ └── test_helper.go │ ├── proxy-injector/ │ │ ├── fake/ │ │ │ ├── client.go │ │ │ ├── data/ │ │ │ │ ├── annotation.patch.json │ │ │ │ ├── deployment-inject-disabled.yaml │ │ │ │ ├── deployment-with-injected-proxy.yaml │ │ │ │ ├── filter-pod-opaque-ports.yaml │ │ │ │ ├── filter-service-opaque-ports.yaml │ │ │ │ ├── filtered-pod-opaque-ports.json │ │ │ │ ├── filtered-service-opaque-ports.json │ │ │ │ ├── inject-init-container-spec.yaml │ │ │ │ ├── inject-linkerd-secrets-volume-spec.yaml │ │ │ │ ├── namespace-inject-disabled.yaml │ │ │ │ ├── namespace-inject-enabled.yaml │ │ │ │ ├── namespace-with-opaque-ports.yaml │ │ │ │ ├── pod-cpu-ratio.json │ │ │ │ ├── pod-inject-empty.yaml │ │ │ │ ├── pod-inject-enabled-cpu-ratio.yaml │ │ │ │ ├── pod-inject-enabled-log-level.yaml │ │ │ │ ├── pod-inject-enabled.yaml │ │ │ │ ├── pod-log-level.json │ │ │ │ ├── pod-nativesidecar-inject-enabled.yaml │ │ │ │ ├── pod-with-custom-debug-tag.yaml │ │ │ │ ├── pod-with-custom-debug.patch.json │ │ │ │ ├── pod-with-debug-disabled.yaml │ │ │ │ ├── pod-with-debug-enabled.yaml │ │ │ │ ├── pod-with-debug.patch.json │ │ │ │ ├── pod-with-ns-annotations.patch.json │ │ │ │ ├── pod-with-opaque-ports.yaml │ │ │ │ ├── pod-without-opaque-ports.yaml │ │ │ │ ├── pod.nativesidecar.patch.json │ │ │ │ ├── pod.patch.json │ │ │ │ ├── service-with-opaque-ports.yaml │ │ │ │ └── service-without-opaque-ports.yaml │ │ │ └── factory.go │ │ ├── metrics.go │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── script/ │ │ ├── destination-client/ │ │ │ └── main.go │ │ └── policy-client/ │ │ └── main.go │ ├── sp-validator/ │ │ └── webhook.go │ └── webhook/ │ ├── launcher.go │ ├── server.go │ ├── server_test.go │ └── util.go ├── deny.toml ├── go.mod ├── go.sum ├── grafana/ │ ├── README.md │ ├── authzpolicy-grafana.yaml │ ├── dashboards/ │ │ ├── authority.json │ │ ├── cronjob.json │ │ ├── daemonset.json │ │ ├── deployment.json │ │ ├── health.json │ │ ├── job.json │ │ ├── kubernetes.json │ │ ├── multicluster.json │ │ ├── namespace.json │ │ ├── pod.json │ │ ├── prometheus-2-stats.json │ │ ├── prometheus-benchmark.json │ │ ├── replicaset.json │ │ ├── replicationcontroller.json │ │ ├── route.json │ │ ├── service.json │ │ ├── statefulset.json │ │ └── top-line.json │ └── values.yaml ├── justfile ├── multicluster/ │ ├── charts/ │ │ ├── linkerd-multicluster/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── NOTES.txt │ │ │ ├── README.md.gotmpl │ │ │ ├── requirements.yaml │ │ │ ├── templates/ │ │ │ │ ├── controller/ │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── pdb.yaml │ │ │ │ │ ├── probe-svc.yaml │ │ │ │ │ └── rbac.yaml │ │ │ │ ├── controller-clusterrole.yaml │ │ │ │ ├── gateway-policy.yaml │ │ │ │ ├── gateway.yaml │ │ │ │ ├── link-crd.yaml │ │ │ │ ├── local-service-mirror.yaml │ │ │ │ ├── namespace-metadata-rbac.yaml │ │ │ │ ├── namespace-metadata.yaml │ │ │ │ ├── namespace.yaml │ │ │ │ ├── psp.yaml │ │ │ │ ├── remote-access-service-mirror-rbac.yaml │ │ │ │ └── service-mirror-policy.yaml │ │ │ ├── values-ha.yaml │ │ │ └── values.yaml │ │ ├── linkerd-multicluster-link/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── README.md.gotmpl │ │ │ ├── requirements.yaml │ │ │ ├── templates/ │ │ │ │ ├── gateway-mirror.yaml │ │ │ │ ├── psp.yaml │ │ │ │ └── service-mirror.yaml │ │ │ ├── values-ha.yaml │ │ │ └── values.yaml │ │ └── templates.go │ ├── cmd/ │ │ ├── allow.go │ │ ├── check.go │ │ ├── gateways.go │ │ ├── install.go │ │ ├── install_test.go │ │ ├── link-gen.go │ │ ├── link.go │ │ ├── link_test.go │ │ ├── main_test.go │ │ ├── root.go │ │ ├── service-mirror/ │ │ │ └── main.go │ │ ├── testdata/ │ │ │ ├── install_default.golden │ │ │ ├── install_ha.golden │ │ │ ├── install_psp.golden │ │ │ ├── service_mirror_default.golden │ │ │ └── service_mirror_ha.golden │ │ ├── uninstall.go │ │ └── unlink.go │ ├── service-mirror/ │ │ ├── cluster_watcher.go │ │ ├── cluster_watcher_headless.go │ │ ├── cluster_watcher_mirroring_test.go │ │ ├── cluster_watcher_test_util.go │ │ ├── events_formatting.go │ │ ├── jittered_ticker.go │ │ ├── link_handlers.go │ │ ├── link_handlers_test.go │ │ ├── metrics.go │ │ └── probe_worker.go │ ├── static/ │ │ └── generated_multicluster_templates.gogen.go │ └── values/ │ └── values.go ├── pkg/ │ ├── addr/ │ │ ├── addr.go │ │ └── addr_test.go │ ├── admin/ │ │ └── admin.go │ ├── charts/ │ │ ├── charts.go │ │ ├── charts_test.go │ │ ├── cni/ │ │ │ └── values.go │ │ └── linkerd2/ │ │ ├── values.go │ │ └── values_test.go │ ├── cmd/ │ │ └── cmd.go │ ├── config/ │ │ └── config.go │ ├── filesonly/ │ │ └── filesonly.go │ ├── flags/ │ │ └── flags.go │ ├── healthcheck/ │ │ ├── healthcheck.go │ │ ├── healthcheck_fuzzer.go │ │ ├── healthcheck_labels.go │ │ ├── healthcheck_output.go │ │ ├── healthcheck_test.go │ │ ├── sidecar.go │ │ ├── sidecar_test.go │ │ └── version.go │ ├── identity/ │ │ ├── identity_fuzzer.go │ │ ├── service.go │ │ ├── service_test.go │ │ └── test_util.go │ ├── inject/ │ │ ├── annotation_patch.go │ │ ├── inject.go │ │ ├── inject_fuzzer.go │ │ ├── inject_test.go │ │ ├── report.go │ │ ├── report_test.go │ │ └── uninject.go │ ├── issuercerts/ │ │ └── issuercerts.go │ ├── k8s/ │ │ ├── api.go │ │ ├── api_test.go │ │ ├── authz.go │ │ ├── authz_test.go │ │ ├── completion.go │ │ ├── fake.go │ │ ├── fake_test.go │ │ ├── k8s.go │ │ ├── k8s_test.go │ │ ├── labels.go │ │ ├── labels_test.go │ │ ├── metrics.go │ │ ├── policy.go │ │ ├── portforward.go │ │ ├── portforward_test.go │ │ ├── resource/ │ │ │ ├── resource.go │ │ │ └── resource_test.go │ │ ├── testdata/ │ │ │ ├── config.test │ │ │ ├── kubectl_cluster-info.output │ │ │ └── kubectl_config.output │ │ ├── version.go │ │ └── version_test.go │ ├── profiles/ │ │ ├── openapi.go │ │ ├── openapi_test.go │ │ ├── profiles.go │ │ ├── profiles_fuzzer.go │ │ ├── profiles_test.go │ │ ├── proto.go │ │ ├── proto_test.go │ │ ├── template.go │ │ └── test_helper.go │ ├── prometheus/ │ │ ├── prometheus.go │ │ └── test_helper.go │ ├── protohttp/ │ │ ├── protohttp.go │ │ └── protohttp_test.go │ ├── servicemirror/ │ │ └── util.go │ ├── tls/ │ │ ├── ca.go │ │ ├── ca_test.go │ │ ├── codec.go │ │ ├── codec_test.go │ │ ├── cred.go │ │ ├── cred_test.go │ │ └── creds_watcher.go │ ├── trace/ │ │ └── trace.go │ ├── tree/ │ │ ├── tree.go │ │ └── tree_test.go │ ├── util/ │ │ ├── http.go │ │ ├── http_test.go │ │ ├── parsing.go │ │ ├── parsing_test.go │ │ ├── portrange.go │ │ └── portrange_test.go │ └── version/ │ ├── channels.go │ ├── channels_test.go │ ├── channelversion.go │ ├── channelversion_test.go │ ├── version.go │ └── version_test.go ├── policy-controller/ │ ├── .dockerignore │ ├── Cargo.toml │ ├── core/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── identity_match.rs │ │ ├── inbound.rs │ │ ├── lib.rs │ │ ├── network_match.rs │ │ ├── outbound/ │ │ │ ├── policy.rs │ │ │ └── target.rs │ │ ├── outbound.rs │ │ └── routes.rs │ ├── grpc/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── inbound/ │ │ │ ├── grpc.rs │ │ │ └── http.rs │ │ ├── inbound.rs │ │ ├── lib.rs │ │ ├── metrics.rs │ │ ├── outbound/ │ │ │ ├── grpc.rs │ │ │ ├── http.rs │ │ │ ├── tcp.rs │ │ │ └── tls.rs │ │ ├── outbound.rs │ │ ├── routes/ │ │ │ ├── grpc.rs │ │ │ └── http.rs │ │ ├── routes.rs │ │ └── workload.rs │ ├── k8s/ │ │ ├── api/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── duration.rs │ │ │ ├── external_workload.rs │ │ │ ├── labels.rs │ │ │ ├── lib.rs │ │ │ ├── policy/ │ │ │ │ ├── authorization_policy.rs │ │ │ │ ├── egress_network.rs │ │ │ │ ├── grpcroute.rs │ │ │ │ ├── httproute.rs │ │ │ │ ├── meshtls_authentication.rs │ │ │ │ ├── network.rs │ │ │ │ ├── network_authentication.rs │ │ │ │ ├── ratelimit_policy.rs │ │ │ │ ├── server.rs │ │ │ │ ├── server_authorization.rs │ │ │ │ ├── target_ref.rs │ │ │ │ ├── tcproute.rs │ │ │ │ └── tlsroute.rs │ │ │ └── policy.rs │ │ ├── index/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── cluster_info.rs │ │ │ ├── defaults.rs │ │ │ ├── inbound/ │ │ │ │ ├── authorization_policy.rs │ │ │ │ ├── index/ │ │ │ │ │ ├── grpc.rs │ │ │ │ │ ├── http.rs │ │ │ │ │ └── metrics.rs │ │ │ │ ├── index.rs │ │ │ │ ├── meshtls_authentication.rs │ │ │ │ ├── network_authentication.rs │ │ │ │ ├── ratelimit_policy.rs │ │ │ │ ├── routes.rs │ │ │ │ ├── server.rs │ │ │ │ ├── server_authorization.rs │ │ │ │ ├── tests/ │ │ │ │ │ ├── annotation.rs │ │ │ │ │ ├── authorization_policy.rs │ │ │ │ │ ├── grpc_routes.rs │ │ │ │ │ ├── http_routes.rs │ │ │ │ │ ├── ratelimit_policy.rs │ │ │ │ │ ├── server.rs │ │ │ │ │ └── server_authorization.rs │ │ │ │ ├── tests.rs │ │ │ │ └── workload.rs │ │ │ ├── inbound.rs │ │ │ ├── lib.rs │ │ │ ├── outbound/ │ │ │ │ ├── index/ │ │ │ │ │ ├── egress_network.rs │ │ │ │ │ ├── grpc.rs │ │ │ │ │ ├── http.rs │ │ │ │ │ ├── metrics.rs │ │ │ │ │ ├── tcp.rs │ │ │ │ │ └── tls.rs │ │ │ │ ├── index.rs │ │ │ │ ├── tests/ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── grpc.rs │ │ │ │ │ │ ├── http.rs │ │ │ │ │ │ ├── tcp.rs │ │ │ │ │ │ └── tls.rs │ │ │ │ │ └── routes.rs │ │ │ │ └── tests.rs │ │ │ ├── outbound.rs │ │ │ ├── ports.rs │ │ │ ├── routes/ │ │ │ │ ├── grpc.rs │ │ │ │ └── http.rs │ │ │ └── routes.rs │ │ └── status/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── index.rs │ │ ├── lib.rs │ │ ├── ratelimit.rs │ │ ├── resource_id.rs │ │ ├── routes/ │ │ │ ├── grpc.rs │ │ │ ├── http.rs │ │ │ ├── tcp.rs │ │ │ └── tls.rs │ │ ├── routes.rs │ │ ├── service.rs │ │ ├── tests/ │ │ │ ├── conflict.rs │ │ │ ├── egress_network.rs │ │ │ ├── ratelimit.rs │ │ │ ├── routes/ │ │ │ │ ├── grpc.rs │ │ │ │ ├── helpers.rs │ │ │ │ ├── http.rs │ │ │ │ ├── tcp.rs │ │ │ │ └── tls.rs │ │ │ └── routes.rs │ │ └── tests.rs │ ├── runtime/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── admission.rs │ │ ├── args.rs │ │ ├── index_list.rs │ │ ├── lease.rs │ │ ├── lib.rs │ │ └── validation.rs │ └── src/ │ └── main.rs ├── policy-test/ │ ├── Cargo.toml │ ├── README.md │ ├── src/ │ │ ├── admission.rs │ │ ├── bb.rs │ │ ├── curl.rs │ │ ├── grpc.rs │ │ ├── lib.rs │ │ ├── outbound_api.rs │ │ ├── test_route.rs │ │ └── web.rs │ └── tests/ │ ├── admit_authorization_policy.rs │ ├── admit_egress_networks.rs │ ├── admit_grpc_route.rs │ ├── admit_http_local_ratelimit_policy.rs │ ├── admit_http_route.rs │ ├── admit_http_route_gateway.rs │ ├── admit_meshtls_authentication.rs │ ├── admit_network_authentication.rs │ ├── admit_server.rs │ ├── admit_server_authorization.rs │ ├── admit_tcp_route.rs │ ├── admit_tls_route.rs │ ├── e2e_appprotocol.rs │ ├── e2e_audit.rs │ ├── e2e_authorization_policy.rs │ ├── e2e_egress_network.rs │ ├── e2e_failure_accrual.rs │ ├── e2e_http_local_ratelimit_policy.rs │ ├── e2e_http_routing.rs │ ├── e2e_server_authorization.rs │ ├── inbound_api.rs │ ├── inbound_api_external_workload.rs │ ├── inbound_http_route_status.rs │ ├── outbound_api.rs │ ├── outbound_api_app_protocol.rs │ ├── outbound_api_egress_network.rs │ ├── outbound_api_failure_accrual.rs │ ├── outbound_api_grpc.rs │ ├── outbound_api_http.rs │ ├── outbound_api_tcp.rs │ └── outbound_http_route_status.rs ├── proto/ │ ├── common/ │ │ └── net.proto │ └── google/ │ └── protobuf/ │ └── duration.proto ├── proxy-identity/ │ ├── main.go │ ├── run_proxy_unix.go │ └── run_proxy_windows.go ├── proxy-runtime.yml ├── rust-toolchain.toml ├── test/ │ ├── cli/ │ │ └── cli_install_static_test.go │ ├── fuzzing/ │ │ ├── README.md │ │ └── fuzzers.go │ └── integration/ │ ├── deep/ │ │ ├── appprotocol/ │ │ │ ├── appprotocol_test.go │ │ │ ├── assertions.go │ │ │ └── testdata/ │ │ │ ├── appprotocol_application.yaml │ │ │ └── appprotocol_client.yaml │ │ ├── dualstack/ │ │ │ ├── dualstack_test.go │ │ │ └── testdata/ │ │ │ ├── ipfamilies-policy.yml │ │ │ ├── ipfamilies-server-client.yml │ │ │ └── ipfamilies-server.go │ │ ├── egress/ │ │ │ ├── egress_test.go │ │ │ └── testdata/ │ │ │ └── proxy.yaml │ │ ├── endpoints/ │ │ │ ├── endpoints_test.go │ │ │ └── testdata/ │ │ │ └── nginx.yaml │ │ ├── hostname/ │ │ │ ├── assertions.go │ │ │ ├── hostname_test.go │ │ │ └── testdata/ │ │ │ ├── hostname_application.yaml │ │ │ └── hostname_client.yaml │ │ ├── install_test.go │ │ ├── kind-dualstack.yml │ │ ├── kind-ipv6.yml │ │ ├── localhost/ │ │ │ ├── localhost_test.go │ │ │ └── testdata/ │ │ │ ├── nginx-and-curl.yaml │ │ │ ├── nginx.yaml │ │ │ └── slow-cooker.yaml │ │ ├── norelay/ │ │ │ ├── norelay_test.go │ │ │ └── testdata/ │ │ │ ├── client.yml │ │ │ ├── server-hello.yml │ │ │ └── server-relay.yml │ │ ├── opaqueports/ │ │ │ ├── assertions.go │ │ │ ├── opaque_ports_test.go │ │ │ └── testdata/ │ │ │ ├── opaque_ports_application.yaml │ │ │ └── opaque_ports_client.yaml │ │ ├── serviceaccounts/ │ │ │ └── serviceaccounts_test.go │ │ └── skipports/ │ │ ├── skip_ports_test.go │ │ └── testdata/ │ │ └── skip_ports_application.yaml │ ├── external/ │ │ ├── externalissuer/ │ │ │ ├── external_issuer_test.go │ │ │ └── testdata/ │ │ │ └── external_issuer_application.yaml │ │ ├── externalresources/ │ │ │ ├── rabbitmq_test.go │ │ │ └── testdata/ │ │ │ ├── check.rabbitmq.golden │ │ │ ├── rabbitmq-client.yaml │ │ │ └── rabbitmq-server.yaml │ │ ├── install_test.go │ │ ├── stat/ │ │ │ ├── stat_test.go │ │ │ └── testdata/ │ │ │ └── application.yaml │ │ └── testdata/ │ │ └── external_prometheus.yaml │ ├── install/ │ │ ├── inject/ │ │ │ ├── inject_test.go │ │ │ └── testdata/ │ │ │ ├── inject_test.yaml │ │ │ ├── pods.yaml │ │ │ └── services.yaml │ │ ├── install_test.go │ │ ├── smoke/ │ │ │ ├── install_smoke_test.go │ │ │ └── testdata/ │ │ │ ├── check.proxy.golden │ │ │ ├── inject.report.golden │ │ │ └── smoke_test.yaml │ │ ├── testdata/ │ │ │ ├── check.proxy.golden │ │ │ ├── inject.report.golden │ │ │ ├── smoke_test.yaml │ │ │ └── upgrade_test.yaml │ │ └── uninstall/ │ │ └── uninstall_test.go │ ├── multicluster/ │ │ ├── install_test.go │ │ ├── multicluster-traffic/ │ │ │ ├── federated_test.go │ │ │ ├── mc_traffic_test.go │ │ │ ├── pod_to_pod_test.go │ │ │ └── testdata/ │ │ │ ├── emojivoto-no-bot.yml │ │ │ ├── federated-client.yml │ │ │ ├── nginx-gateway-deploy.yaml │ │ │ ├── nginx-ss.yml │ │ │ ├── slow-cooker.yml │ │ │ └── vote-bot.yml │ │ └── testdata/ │ │ └── allow.golden │ ├── rsa-ca/ │ │ ├── install_rsa_ca_test.go │ │ └── testdata/ │ │ ├── ca.crt │ │ ├── ca.key │ │ ├── issuer.crt │ │ └── issuer.key │ ├── tracing/ │ │ ├── install_test.go │ │ ├── testdata/ │ │ │ └── tracing-values.yaml │ │ └── tracing/ │ │ ├── testdata/ │ │ │ ├── emojivoto.yaml │ │ │ ├── jaeger-aio-values.yaml │ │ │ ├── otel-values.yaml │ │ │ └── tracing.yaml │ │ └── tracing_test.go │ ├── upgrade-edge/ │ │ ├── testdata/ │ │ │ └── emoji.yaml │ │ └── upgrade_edge_test.go │ └── viz/ │ ├── edges/ │ │ ├── edges_test.go │ │ └── testdata/ │ │ ├── direct_edges.golden │ │ ├── linkerd_edges.golden │ │ ├── slow-cooker.yaml │ │ └── terminus.yaml │ ├── install_test.go │ ├── policy/ │ │ ├── policy_test.go │ │ └── testdata/ │ │ ├── emoji-policy.yaml │ │ └── emojivoto.yaml │ ├── routes/ │ │ └── routes_test.go │ ├── serviceprofiles/ │ │ ├── serviceprofiles_test.go │ │ └── testdata/ │ │ ├── hello_world.yaml │ │ ├── t3.swagger │ │ ├── tap_application.yaml │ │ └── world.swagger │ ├── stat/ │ │ └── stat_test.go │ ├── tap/ │ │ ├── tap_test.go │ │ └── testdata/ │ │ └── tap_application.yaml │ └── trafficsplit/ │ ├── testdata/ │ │ ├── application.yaml │ │ └── applications-at-diff-ports.yaml │ └── trafficsplit_test.go ├── testutil/ │ ├── annotations.go │ ├── annotations_test.go │ ├── doc.go │ ├── inject.go │ ├── inject_validator.go │ ├── install.go │ ├── kubernetes_helper.go │ ├── prommatch/ │ │ ├── common.go │ │ ├── prommatch.go │ │ ├── prommatch_test.go │ │ ├── suite.go │ │ └── testdata/ │ │ └── sampleMetrics.txt │ ├── stream.go │ ├── tap.go │ ├── test_data_diff.go │ ├── test_helper.go │ └── test_helper_check.go ├── tools.go ├── viz/ │ ├── charts/ │ │ ├── linkerd-viz/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── README.md.gotmpl │ │ │ ├── requirements.yaml │ │ │ ├── templates/ │ │ │ │ ├── NOTES.txt │ │ │ │ ├── admin-policy.yaml │ │ │ │ ├── metrics-api-policy.yaml │ │ │ │ ├── metrics-api-rbac.yaml │ │ │ │ ├── metrics-api.yaml │ │ │ │ ├── namespace-metadata-rbac.yaml │ │ │ │ ├── namespace-metadata.yaml │ │ │ │ ├── namespace.yaml │ │ │ │ ├── prometheus-policy.yaml │ │ │ │ ├── prometheus-rbac.yaml │ │ │ │ ├── prometheus.yaml │ │ │ │ ├── psp.yaml │ │ │ │ ├── service-profiles.yaml │ │ │ │ ├── tap-injector-policy.yaml │ │ │ │ ├── tap-injector-rbac.yaml │ │ │ │ ├── tap-injector.yaml │ │ │ │ ├── tap-policy.yaml │ │ │ │ ├── tap-rbac.yaml │ │ │ │ ├── tap.yaml │ │ │ │ ├── web-rbac.yaml │ │ │ │ └── web.yaml │ │ │ ├── values-ha.yaml │ │ │ └── values.yaml │ │ └── templates.go │ ├── cmd/ │ │ ├── allow-scrapes.go │ │ ├── authz.go │ │ ├── check.go │ │ ├── dashboard.go │ │ ├── edges.go │ │ ├── edges_test.go │ │ ├── install.go │ │ ├── install_test.go │ │ ├── list.go │ │ ├── main_test.go │ │ ├── profile.go │ │ ├── profile_test.go │ │ ├── prune.go │ │ ├── root.go │ │ ├── routes.go │ │ ├── routes_test.go │ │ ├── stat-inbound.go │ │ ├── stat-outbound.go │ │ ├── stat.go │ │ ├── stat_test.go │ │ ├── tap.go │ │ ├── tap_test.go │ │ ├── testdata/ │ │ │ ├── edges_one_output.golden │ │ │ ├── edges_one_output_json.golden │ │ │ ├── edges_wide_output.golden │ │ │ ├── install_default.golden │ │ │ ├── install_default_overrides.golden │ │ │ ├── install_prometheus_disabled.golden │ │ │ ├── install_prometheus_loglevel_from_args.golden │ │ │ ├── install_proxy_resources.golden │ │ │ ├── routes_one_output.golden │ │ │ ├── routes_one_output_json.golden │ │ │ ├── routes_one_output_wide.golden │ │ │ ├── stat_all_output.golden │ │ │ ├── stat_all_output_json.golden │ │ │ ├── stat_one_output.golden │ │ │ ├── stat_one_output_json.golden │ │ │ ├── stat_one_pod_output.golden │ │ │ ├── stat_one_tcp_output.golden │ │ │ ├── stat_one_ts_output.golden │ │ │ ├── stat_one_ts_output_json.golden │ │ │ ├── tap_busy_output.golden │ │ │ ├── tap_busy_output_json.golden │ │ │ ├── tap_busy_output_jsonpath.golden │ │ │ ├── tap_busy_output_wide.golden │ │ │ └── tap_empty_output.golden │ │ ├── top.go │ │ └── uninstall.go │ ├── main.go │ ├── metrics-api/ │ │ ├── Dockerfile │ │ ├── authz.go │ │ ├── client/ │ │ │ └── client.go │ │ ├── cmd/ │ │ │ └── main.go │ │ ├── edges.go │ │ ├── edges_test.go │ │ ├── gateways.go │ │ ├── gen/ │ │ │ └── viz/ │ │ │ ├── viz.pb.go │ │ │ └── viz_grpc.pb.go │ │ ├── grpc_server.go │ │ ├── grpc_server_test.go │ │ ├── policy.go │ │ ├── prometheus.go │ │ ├── prometheus_test.go │ │ ├── proto/ │ │ │ └── viz.proto │ │ ├── stat_summary.go │ │ ├── stat_summary_test.go │ │ ├── test_helper.go │ │ ├── top_routes.go │ │ ├── top_routes_test.go │ │ └── util/ │ │ ├── api_utils.go │ │ └── api_utils_test.go │ ├── pkg/ │ │ ├── api/ │ │ │ └── api.go │ │ ├── healthcheck/ │ │ │ ├── healthcheck.go │ │ │ └── healthcheck_test.go │ │ ├── jsonpath/ │ │ │ └── jsonpath.go │ │ ├── labels/ │ │ │ └── labels.go │ │ ├── prometheus/ │ │ │ └── prometheus.go │ │ └── util/ │ │ ├── util.go │ │ └── util_test.go │ └── tap/ │ ├── Dockerfile │ ├── api/ │ │ ├── client.go │ │ ├── grpc_server.go │ │ ├── grpc_server_test.go │ │ ├── handlers.go │ │ ├── handlers_test.go │ │ ├── main.go │ │ ├── server.go │ │ └── server_test.go │ ├── cmd/ │ │ └── main.go │ ├── gen/ │ │ └── tap/ │ │ ├── viz_tap.pb.go │ │ └── viz_tap_grpc.pb.go │ ├── injector/ │ │ ├── main.go │ │ ├── patch.go │ │ └── webhook.go │ ├── pkg/ │ │ ├── events.go │ │ ├── protohttp.go │ │ ├── protohttp_test.go │ │ ├── reader.go │ │ └── requests.go │ └── proto/ │ └── viz_tap.proto └── web/ ├── Dockerfile ├── app/ │ ├── .eslintrc │ ├── .linguirc │ ├── __mocks__/ │ │ ├── fileMock.js │ │ └── styleMock.js │ ├── babel.config.json │ ├── css/ │ │ ├── styles.css │ │ └── svg-wrappers.css │ ├── gh_ann_reporter.js │ ├── index_bundle.js.lodash.tmpl │ ├── js/ │ │ ├── components/ │ │ │ ├── AddResources.jsx │ │ │ ├── BaseTable.jsx │ │ │ ├── BaseTable.test.js │ │ │ ├── BreadcrumbHeader.jsx │ │ │ ├── BreadcrumbHeader.test.jsx │ │ │ ├── CallToAction.jsx │ │ │ ├── CheckModal.jsx │ │ │ ├── Community.jsx │ │ │ ├── Community.test.jsx │ │ │ ├── ConfigureProfilesMsg.jsx │ │ │ ├── EdgesTable.jsx │ │ │ ├── EmptyCard.jsx │ │ │ ├── ErrorBanner.jsx │ │ │ ├── ErrorModal.jsx │ │ │ ├── ExpandableTable.jsx │ │ │ ├── Extensions.jsx │ │ │ ├── Gateway.jsx │ │ │ ├── GrafanaLink.jsx │ │ │ ├── GrafanaLink.test.jsx │ │ │ ├── JaegerLink.jsx │ │ │ ├── MeshedStatusTable.jsx │ │ │ ├── MetricsTable.jsx │ │ │ ├── MetricsTable.test.js │ │ │ ├── Namespace.jsx │ │ │ ├── NamespaceConfirmationModal.jsx │ │ │ ├── Navigation.jsx │ │ │ ├── Navigation.test.jsx │ │ │ ├── NetworkGraph.jsx │ │ │ ├── NetworkGraph.test.jsx │ │ │ ├── NoMatch.jsx │ │ │ ├── Octopus.jsx │ │ │ ├── Popover.jsx │ │ │ ├── QueryToCliCmd.jsx │ │ │ ├── QueryToCliCmd.test.jsx │ │ │ ├── ResourceDetail.jsx │ │ │ ├── ResourceList.jsx │ │ │ ├── ResourceList.test.jsx │ │ │ ├── ServiceDetail.jsx │ │ │ ├── ServiceMesh.jsx │ │ │ ├── ServiceMesh.test.jsx │ │ │ ├── StatusTable.jsx │ │ │ ├── Tap.jsx │ │ │ ├── TapEnabledWarning.jsx │ │ │ ├── TapEventHeadersTable.jsx │ │ │ ├── TapEventTable.jsx │ │ │ ├── TapLink.jsx │ │ │ ├── TapQueryForm.jsx │ │ │ ├── Top.jsx │ │ │ ├── TopEventTable.jsx │ │ │ ├── TopModule.jsx │ │ │ ├── TopRoutes.jsx │ │ │ ├── TopRoutesModule.jsx │ │ │ ├── TopRoutesTable.jsx │ │ │ ├── TopRoutesTable.test.js │ │ │ ├── TopRoutesTabs.jsx │ │ │ ├── Version.jsx │ │ │ ├── Version.test.js │ │ │ └── util/ │ │ │ ├── ApiHelpers.jsx │ │ │ ├── ApiHelpers.test.jsx │ │ │ ├── AppContext.jsx │ │ │ ├── Chip.jsx │ │ │ ├── CliQueryUtils.js │ │ │ ├── CopyUtils.jsx │ │ │ ├── EdgesUtils.jsx │ │ │ ├── MetricUtils.jsx │ │ │ ├── MetricUtils.test.js │ │ │ ├── OctopusArms.jsx │ │ │ ├── PageVisibility.jsx │ │ │ ├── Percentage.js │ │ │ ├── Progress.jsx │ │ │ ├── Spinner.jsx │ │ │ ├── SuccessRateDot.jsx │ │ │ ├── SuccessRateMiniChart.jsx │ │ │ ├── SvgWrappers.jsx │ │ │ ├── TapUtils.jsx │ │ │ ├── Utils.js │ │ │ ├── Utils.test.js │ │ │ ├── theme.js │ │ │ └── withREST.jsx │ │ ├── index.js │ │ └── locales/ │ │ ├── en/ │ │ │ └── messages.json │ │ └── es/ │ │ └── messages.json │ ├── package.json │ ├── setupTests.js │ ├── test/ │ │ ├── fixtures/ │ │ │ ├── allRollup.json │ │ │ ├── deployRollup.json │ │ │ ├── emojivotoPods.json │ │ │ ├── gateway.json │ │ │ ├── multiDeployRollup.json │ │ │ ├── namespaces.json │ │ │ └── podRollup.json │ │ └── testHelpers.jsx │ └── webpack.config.js ├── main.go ├── srv/ │ ├── api_handlers.go │ ├── api_handlers_test.go │ ├── check_same_origin.go │ ├── handlers.go │ ├── handlers_test.go │ ├── reverse_proxy.go │ ├── server.go │ ├── test_helpers.go │ └── testdata/ │ ├── api_check_output.json │ └── api_gateway_output.json └── templates/ ├── app.tmpl.html └── includes/ └── base.tmpl.html