-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
UPSTREAM: 59316: Exit if no client cert is available for 5m #18430
UPSTREAM: 59316: Exit if no client cert is available for 5m #18430
Conversation
/retest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, but please wait for upstream approval first
Upstream has merged. Any comments? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: smarterclayton, soltysh The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@smarterclayton you want to cherry-pick that to 3.9? |
Automatic merge from submit-queue (batch tested with PRs 18666, 18810, 18430, 18517, 18653). |
Automatic merge from submit-queue. Make openshift-ansible use static pods to install the control plane, make nodes prefer bootstrapping 1. Nodes continue to be configured for bootstrapping (as today) 2. For bootstrap nodes, we write a generic bootstrap-node-config.yaml that contains static pod references and any bootstrap config, and then use that to start a child kubelet using `--write-flags` instead of launching the node ourselves. If a node-config.yaml is laid down in `/etc/origin/node` it takes precedence. 3. For 3.10 we want dynamic node config from Kubernetes to pull down additional files, but there are functional gaps. For now, the openshift SDN container has a sidecar that syncs node config to disk and updates labels (kubelet doesn't update labels, kubernetes/kubernetes#59314) 4. On the masters, if openshift_master_bootstrap_enabled we generate the master-config.yaml and the etcd config, but we don't start etcd or the masters (no services installed) 5. On the masters, we copy the static files into the correct pod-manifest-path (/etc/origin/node/pods) or similar 6. The kubelet at that point should automatically pick up the new static files and launch the components 7. We wait for them to converge 8. We install openshift-sdn as the first component, which allows nodes to go ready and start installing things. There is a gap here where the masters are up, the nodes can bootstrap, but the nodes are not ready because no network plugin is installed. Challenges at this point: * The master shims (`master-logs` and `master-restart`) need to deal with CRI-O and systemd. Ideally this is a temporary shim until we remove systemd for these components and have cri-ctl installed. * We need to test failure modes of the static pods * Testing Further exploration things: * need to get all the images using image streams or properly replaced into the static pods * need to look at upgrades and updates * disk locations become our API (`/var/lib/origin`, `/var/lib/etcd`) - how many customers have fiddled with this? * may need to make the kubelet halt if it hasn't been able to get server/client certs within a bounded window (5m?) so to ensure that autoheals happen (openshift/origin#18430) * have to figure out whether dynamic kubelet config is a thing we can rely on for 3.10 (@liggitt), and what gaps there are with dynamic reconfig * client-ca.crt is not handled by bootstrapping or dynamic config. This needs a solution unless we keep the openshift-sdn sidecar around * kubelet doesn't send sd notify to systemd (kubernetes/kubernetes#59079) @derekwaynecarr @sdodson @liggitt @deads2k this is the core of self-hosting.
No description provided.