deploy/apiserver-apiservice.yaml registers the aggregated API with insecureSkipTLSVerify: true, so kube-apiserver does not verify the aggregated API server's serving certificate. The docs already call this development-only, but it is what every documented install applies.
With authentication now required (#136), front-proxy mTLS still stops a network attacker from forging identities. But anyone who can hijack the coder-k8s-apiserver Service endpoints or sit on the network path could read relayed requests and the X-Remote-* identity headers.
Proposal: give the aggregated API server a serving certificate signed by a CA that the APIService trusts through caBundle, and drop insecureSkipTLSVerify. Options include cert-manager with a CA injector, or a self-managed CA Secret with an injected caBundle. Document the chosen path and keep a development shortcut only if it is clearly labelled.
Acceptance:
- The documented install registers the APIService with a
caBundle and no insecureSkipTLSVerify.
- The Kind E2E shows the APIService
Available with verification on, and failing with a wrong CA.
- Docs describe certificate rotation.
Owner: maintainer desk. Trigger: after v0.1.1 is released.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium
deploy/apiserver-apiservice.yamlregisters the aggregated API withinsecureSkipTLSVerify: true, so kube-apiserver does not verify the aggregated API server's serving certificate. The docs already call this development-only, but it is what every documented install applies.With authentication now required (#136), front-proxy mTLS still stops a network attacker from forging identities. But anyone who can hijack the
coder-k8s-apiserverService endpoints or sit on the network path could read relayed requests and theX-Remote-*identity headers.Proposal: give the aggregated API server a serving certificate signed by a CA that the APIService trusts through
caBundle, and dropinsecureSkipTLSVerify. Options include cert-manager with a CA injector, or a self-managed CA Secret with an injectedcaBundle. Document the chosen path and keep a development shortcut only if it is clearly labelled.Acceptance:
caBundleand noinsecureSkipTLSVerify.Availablewith verification on, and failing with a wrong CA.Owner: maintainer desk. Trigger: after v0.1.1 is released.
Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:medium