Running linkerd tap on kubernetes 1.19 throws this error.
unexpected API response: error trying to reach service: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
Using the dashboard > Live Calls also shows the error.
Install linkerd on Kubernetes 1.19
unexpected API response: error trying to reach service: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
linkerd check outputkubernetes-api
--------------
โ can initialize the client
โ can query the Kubernetes API
kubernetes-version
------------------
โ is running the minimum Kubernetes API version
โ is running the minimum kubectl version
linkerd-existence
-----------------
โ 'linkerd-config' config map exists
โ heartbeat ServiceAccount exist
โ control plane replica sets are ready
โ no unschedulable pods
โ controller pod is running
โ can initialize the client
โ can query the control plane API
linkerd-config
--------------
โ control plane Namespace exists
โ control plane ClusterRoles exist
โ control plane ClusterRoleBindings exist
โ control plane ServiceAccounts exist
โ control plane CustomResourceDefinitions exist
โ control plane MutatingWebhookConfigurations exist
โ control plane ValidatingWebhookConfigurations exist
โ control plane PodSecurityPolicies exist
linkerd-identity
----------------
โ certificate config is valid
โ trust anchors are using supported crypto algorithm
โ trust anchors are within their validity period
โ trust anchors are valid for at least 60 days
โ issuer cert is using supported crypto algorithm
โ issuer cert is within its validity period
โ issuer cert is valid for at least 60 days
โ issuer cert is issued by the trust anchor
linkerd-identity-data-plane
---------------------------
โ data plane proxies certificate match CA
linkerd-api
-----------
โ control plane pods are ready
โ control plane self-check
โ [kubernetes] control plane can talk to Kubernetes
โ [prometheus] control plane can talk to Prometheus
โ tap api service is running
linkerd-version
---------------
โ can determine the latest version
โผ cli is up-to-date
is running version 2.8.0 but the latest stable version is 2.8.1
see https://linkerd.io/checks/#l5d-version-cli for hints
linkerd-data-plane
------------------
โ data plane namespace exists
โ data plane proxies are ready
โ data plane proxy metrics are present in Prometheus
โผ data plane is up-to-date
Some data plane pods are not running the current version:
* linkerd/linkerd-destination-767bcfbf4-xxqxq (stable-2.8.0)
* linkerd/linkerd-prometheus-6699dfbc44-tcq9j (stable-2.8.0)
* linkerd/linkerd-sp-validator-d5fc9845c-ggknv (stable-2.8.0)
* linkerd/linkerd-tap-6b9dc77844-4kpz5 (stable-2.8.0)
* linkerd/linkerd-identity-8585d57c49-fqzmm (stable-2.8.0)
* linkerd/linkerd-controller-5d6bbdb8b5-4j4d9 (stable-2.8.0)
* linkerd/linkerd-web-67db674d86-lmd4l (stable-2.8.0)
* linkerd/linkerd-proxy-injector-9bd885986-d67wj (stable-2.8.0)
* linkerd/linkerd-grafana-84d56f5794-btq4t (stable-2.8.0)
see https://linkerd.io/checks/#l5d-data-plane-version for hints
โ data plane and cli versions match
linkerd-addons
--------------
โ 'linkerd-config-addons' config map exists
linkerd-grafana
---------------
โ grafana add-on service account exists
โ grafana add-on config map exists
โ grafana pod is running
Status check results are โ
Working on this currently. Looks like it was because K8s updated its go version to 1.15 (i.e latest) which changed how it reads certificates https://github.com/golang/go/issues/39568#issuecomment-671424481
It looks http://masterminds.github.io/sprig/crypto.html references a new function, genSelfSignedCert can replace genCA to support alternateDNS names
But if we updated our linkerd2 repo, and images to use go 1.15, the identity component fails to startup as the trustanchorCerts we generate in the CLI, don't set alternateDNS names and hence the identity component fails to startup with the same error above.
Updating the binary to generate certs with alternateDNS fields should be the solution there, and should be a separate PR I guess.
I've tested the latest edge 20.9.1 all good. I am just wondering if this is also coming to 2.8?
Thanks
@balchua It should land in 2.9, which is planned for early October!
Ok thanks.
Most helpful comment
@balchua It should land in 2.9, which is planned for early October!