Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TLS certs for handlers we run #78

Open
miekg opened this issue Jan 28, 2021 · 8 comments
Open

TLS certs for handlers we run #78

miekg opened this issue Jan 28, 2021 · 8 comments
Labels
enhancement New feature or request

Comments

@miekg
Copy link
Collaborator

miekg commented Jan 28, 2021

For the log handler we have the tls-cert and tls-key flags that read a cert. It would be nice(r) if we just embed a ACME client that gets these certs from a CA.

Alternatively this could be outsourced, but then we would need to periodically re-read the key and cert from disk.

I think at this point I prefer ACME as I need to run my own CA anyhow.

@miekg miekg added the enhancement New feature or request label Jan 28, 2021
@pires
Copy link
Member

pires commented Jan 29, 2021

In my testbed, I'm outsourcing this to cert-manager, as detailed in the README.md.

If you're getting ACME support maybe you could explore caddy server?

@miekg
Copy link
Collaborator Author

miekg commented Jan 30, 2021 via email

@pires
Copy link
Member

pires commented Jan 30, 2021

I don't think you can run cert-manager without an API server given it requires CRDs to function - cert-manager uses Kubernetes object store as its storage backend.

Anyways, it seems you're hinting at first adding support for static pods #27.

@pires
Copy link
Member

pires commented Jan 30, 2021

But you may be missing something here. Yes, you can use your own CA for signing systemk HTTPS endpoint but it must be validated by the API server (there's a flag for client CA certificate), meaning that CA must be known to the API server before systemk registers as a Node.

Also, and unless the CA is shared w/ Kubernetes, you can't use said CA to bootstrap TLS for authenticating systemk as a Node against the API server.

If I'm not missing anything, that seems like a lot of work for very little gain.

@miekg
Copy link
Collaborator Author

miekg commented Jan 30, 2021

yes i'm looking to share the root-ca with k8s. I.e. I have step-ca running somewhere providing this. The problem is I don't like 'running somewhere' so it needs to run under systemk. Now for bootstrapping it may not run under systemk, but once that's done everything should be running in-cluster and manageable via kubectl

@pires
Copy link
Member

pires commented Jan 30, 2021

OK so your goal is to have systemk setup the CA and then bring up the API server with that CA? If yes, that's totally doable. The problem later is how to join other systemk instances, maybe even kubelets, as the CA lives only on one machine.

@miekg
Copy link
Collaborator Author

miekg commented Feb 1, 2021 via email

@pires
Copy link
Member

pires commented Feb 1, 2021

A suggestion is for this to be implemented as an opt-in vs opt-out feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants