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

WIP - Use encrypted certs on join #1407

Closed
fabriziopandini opened this issue Feb 13, 2019 · 1 comment · Fixed by kubernetes/kubernetes#74168
Closed

WIP - Use encrypted certs on join #1407

fabriziopandini opened this issue Feb 13, 2019 · 1 comment · Fixed by kubernetes/kubernetes#74168
Assignees
Labels
area/HA area/UX help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone

Comments

@fabriziopandini
Copy link
Member

This issue defines implementation details for "Upload encrypted certs on init" activity defined in #1373

  • Add a new flag --certificate-key; this flag could be used in conjuction with the --config flag
  • If --control-plane flag is set and the new --certificate-key is set, it will trigger a new certs-download subphase (to be added to the control-plane-prepare phase as first subphase, before the certs subphase)
  • the new phase should access the cluster using the bootstrap token as identity, read the kubeadm-certs secret, decript the values using the certificate-key and store secrets on the disk

Some more details to be considered while implementing:

  • in case the kubeadm-certs secret does not exists it should be returned a message explaining the user how to create it (use kubeadm init phase upload-certs on one control-plane node)
  • The list of items in kubeadm-certs secret depends on the cluster variant in use (external etcd vs local etcd)
  • The kubeadm-certs secret can contain empty entries In case of External CA mode; empty entry should not generate corresponding file
  • in case of external etcd, certs should be placed in the location specified by the user; we can assume this location must exists and error out this isn't true or if the folder is not set with the proper permissions
  • it will be great if we can implement a way to validate the provided key is actually the right key (e.g. it decrypts CA cert and CA certs match the CA cert already discovered by the join process)
@fabriziopandini fabriziopandini added help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. area/HA area/UX kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. labels Feb 13, 2019
@fabriziopandini fabriziopandini added this to the v1.14 milestone Feb 13, 2019
@ereslibre
Copy link
Contributor

PR submitted for early feedback: kubernetes/kubernetes#74168. Based on top of still WIP PR kubernetes/kubernetes#73907

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/HA area/UX help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants