Envoy router verifies ate apiserver's serving cert#237
Envoy router verifies ate apiserver's serving cert#237Zoe Zhao (zoez7) wants to merge 3 commits into
Conversation
df3d9a0 to
dfb1db1
Compare
ate-system pods. - atesystem.podcert.ate.dev/identity: Issues identity certificates for ate-system control-plane pods, backed by a local CA. Every certificate carries the pod's SPIFFE URI; projections with the atesystem.podcert.ate.dev/expects-service userAnnotation additionally receive DNS SANs for the Services that select the pod. - workerpool.podcert.ate.dev/identity: Issues SPIFFE identity certificates for worker pods backed by a local CA.
|
Can you talk a little bit about the background of splitting out separate CAs / signers for the workerpools and ate-system components? If at all possible, I would prefer to restrict us to two signers:
The reason is that we can be reasonably confident that signers like these will land in upstream K8s in the near-ish future. The certificates here aren't special or unique to substrate, and they aren't part of the value proposition of the project. So I think we should plan to rebase on native K8s capabilities as they become available. That's easiest if we don't get very custom with the signers. |
|
I think the main motivations for splitting out separate CAs / signers was, if I mount the "podidentity" CA bundle as trusted client CAs in ate-system services, workerpool pods (therefore actors) would also be able to connect to ate-system servers like the Valkey cluster and atelet server. But after typing it out loud - it seems this needs to be solved anyway (probably in a later milestone) by authorization inside servers such as valkey, instead of using separate CAs. Does that make sense to you? |
Part of #170
Establishes mutual TLS between the atenet router and ate-apiserver, and updates the certificate plumbing it depends on.
Main changes:
InsecureSkipVerify. - This change is in commit c8ee6eb.servicednssigner intoatesystemsigner. It only issuescerts for pods in
ate-system, every cert carries the pod's SPIFFE URI, and DNSSANs are opted into via the
atesystem.podcert.ate.dev/expects-serviceuserAnnotation (rather than inferred from Service membership). This change is in commit 88c6034.
Minor bug fixes:
servicednssignerfrom signing a cert with no DNS SANs.