Skip to content

Commit 97f29d5

Browse files
Merge pull request openshift#6757 from eranco74/MGMT-13131
Shorten SNO installation duration by releasing CVO lease
2 parents 7cdbc1c + 687b32d commit 97f29d5

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

data/data/bootstrap/bootstrap-in-place/files/opt/openshift/bootstrap-in-place/bootstrap-in-place-post-reboot.sh

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,33 @@ function signal_bootstrap_complete {
2424
done
2525
}
2626

27+
function release_cvo_lease {
28+
if [ ! -f /opt/openshift/release_cvo_lease.done ]
29+
then
30+
until [ "$(oc get leases -n openshift-cluster-version version | grep -c "version")" -eq 0 ];
31+
do
32+
echo "Deleting openshift-cluster-version version lease"
33+
oc delete leases -n openshift-cluster-version version || sleep 5
34+
done
35+
until [ "$(oc get cm -n openshift-cluster-version version | grep -c "version")" -eq 0 ];
36+
do
37+
echo "Deleting openshift-cluster-version version cm"
38+
oc delete cm -n openshift-cluster-version version || sleep 5
39+
done
40+
touch /opt/openshift/expedite_bootstrapping.done
41+
fi
42+
}
43+
2744
function restart_kubelet {
28-
echo "Restarting kubelet"
29-
until [ "$(oc get pod -n openshift-kube-apiserver-operator --selector='app=kube-apiserver-operator' -o jsonpath='{.items[0].status.conditions[?(@.type=="Ready")].status}' | grep -c "True")" -eq 1 ];
45+
echo "Waiting for kube-apiserver-operator"
46+
until [ "$(oc get pod -n openshift-kube-apiserver-operator --selector='app=kube-apiserver-operator' -o jsonpath='{.items[*].status.conditions[?(@.type=="Ready")].status}' | grep -c "True")" -eq 1 ];
3047
do
3148
echo "Waiting for kube-apiserver-operator ready condition to be True"
49+
oc get --raw='/readyz' &> /dev/null || echo "Api is not available"
3250
sleep 10
3351
done
52+
53+
echo "Restarting kubelet"
3454
# daemon-reload is required because /etc/systemd/system/kubelet.service.d/20-nodenet.conf is added after kubelet started
3555
systemctl daemon-reload
3656
systemctl restart kubelet
@@ -40,26 +60,31 @@ function restart_kubelet {
4060
echo "Waiting for kube-apiserver to apply the new static pod configuration"
4161
sleep 10
4262
done
63+
64+
echo "Restarting kubelet"
4365
systemctl restart kubelet
4466
}
4567

4668
function approve_csr {
47-
echo "Approving csrs ..."
69+
echo "Waiting for node to report ready status"
4870
# use [*] and not [0] in the jsonpath because the node resource may not have been created yet
4971
until [ "$(oc get nodes --selector='node-role.kubernetes.io/master' -o jsonpath='{.items[*].status.conditions[?(@.type=="Ready")].status}' | grep -c "True")" -eq 1 ];
5072
do
5173
echo "Approving csrs ..."
5274
oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve &> /dev/null || true
53-
sleep 30
75+
sleep 10
5476
done
77+
echo "node is ready"
5578
}
5679

5780
function wait_for_cvo {
5881
echo "Waiting for cvo"
59-
until [ "$(oc get clusterversion -o jsonpath='{.items[0].status.conditions[?(@.type=="Available")].status}')" == "True" ];
82+
until [ "$(oc get clusterversion -o jsonpath='{.items[*].status.conditions[?(@.type=="Available")].status}')" == "True" ];
6083
do
6184
echo "Still waiting for cvo ..."
62-
sleep 30
85+
# print the not ready operators names and message
86+
oc get clusteroperator -o jsonpath='{range .items[*]}{@.metadata.name}: {range @.status.conditions[?(@.type=="Available")]}{@.type}={@.status} {@.message}{"\n"}{end}{end}' | grep -v "Available=True" || true
87+
sleep 20
6388
done
6489
}
6590

@@ -83,12 +108,14 @@ function clean {
83108
rm -rf /usr/local/bin/installer-gather.sh
84109
rm -rf /usr/local/bin/installer-masters-gather.sh
85110
rm -rf /var/log/log-bundle-bootstrap.tar.gz
111+
rm -rf /opt/openshift
86112

87113
systemctl disable bootkube.service
88114
}
89115

90116
wait_for_api
91117
signal_bootstrap_complete
118+
release_cvo_lease
92119
restore_cvo_overrides
93120
approve_csr
94121
restart_kubelet

0 commit comments

Comments
 (0)