Merge "Use upgraded kubelet on unlock after kubelet upgrade"
This commit is contained in:
commit
23406f3a07
|
@ -393,7 +393,8 @@ class KubeUpgradeController(rest.RestController):
|
|||
kube_host_upgrades = \
|
||||
pecan.request.dbapi.kube_host_upgrade_get_list()
|
||||
for kube_host_upgrade in kube_host_upgrades:
|
||||
if kube_host_upgrade.status is not None:
|
||||
if kube_host_upgrade.status != \
|
||||
kubernetes.KUBE_HOST_UPGRADED_KUBELET:
|
||||
raise wsme.exc.ClientSideError(_(
|
||||
"At least one host has not completed the kubernetes "
|
||||
"upgrade"))
|
||||
|
@ -411,6 +412,11 @@ class KubeUpgradeController(rest.RestController):
|
|||
kube_cmd_versions.kubelet_version = kube_upgrade_obj.to_version.lstrip('v')
|
||||
kube_cmd_versions.save()
|
||||
|
||||
# The global kubelet version is set, clear the per-host status.
|
||||
for kube_host_upgrade in kube_host_upgrades:
|
||||
pecan.request.dbapi.kube_host_upgrade_update(
|
||||
kube_host_upgrade.id, {'status': None})
|
||||
|
||||
# All is well, mark the upgrade as complete
|
||||
kube_upgrade_obj.state = kubernetes.KUBE_UPGRADE_COMPLETE
|
||||
kube_upgrade_obj.save()
|
||||
|
|
|
@ -88,6 +88,7 @@ KUBE_HOST_UPGRADING_CONTROL_PLANE = 'upgrading-control-plane'
|
|||
KUBE_HOST_UPGRADING_CONTROL_PLANE_FAILED = 'upgrading-control-plane-failed'
|
||||
KUBE_HOST_UPGRADING_KUBELET = 'upgrading-kubelet'
|
||||
KUBE_HOST_UPGRADING_KUBELET_FAILED = 'upgrading-kubelet-failed'
|
||||
KUBE_HOST_UPGRADED_KUBELET = 'upgraded-kubelet'
|
||||
|
||||
# Kubernetes rootca update states
|
||||
KUBE_ROOTCA_UPDATE_STARTED = 'update-started'
|
||||
|
|
|
@ -13665,7 +13665,7 @@ class ConductorManager(service.PeriodicService):
|
|||
# The kubelet update was successful
|
||||
kube_host_upgrade_obj = objects.kube_host_upgrade.get_by_host_id(
|
||||
context, host_obj.id)
|
||||
kube_host_upgrade_obj.status = None
|
||||
kube_host_upgrade_obj.status = kubernetes.KUBE_HOST_UPGRADED_KUBELET
|
||||
kube_host_upgrade_obj.save()
|
||||
|
||||
def kube_upgrade_networking(self, context, kube_version):
|
||||
|
|
|
@ -380,7 +380,9 @@ class KubernetesPuppet(base.BasePuppet):
|
|||
if kube_upgrade_state:
|
||||
kube_host_upgrade = objects.kube_host_upgrade.get_by_host_id(
|
||||
self.context, host.id)
|
||||
if kube_host_upgrade.status == kubernetes.KUBE_HOST_UPGRADING_KUBELET:
|
||||
if kube_host_upgrade.status in [
|
||||
kubernetes.KUBE_HOST_UPGRADING_KUBELET,
|
||||
kubernetes.KUBE_HOST_UPGRADED_KUBELET]:
|
||||
kubelet_version = kube_host_upgrade.target_version.lstrip('v')
|
||||
|
||||
config.update({'platform::kubernetes::params::kubeadm_version': kubeadm_version})
|
||||
|
|
|
@ -728,6 +728,12 @@ class TestPatch(TestKubeUpgrade,
|
|||
state=kubernetes.KUBE_UPGRADING_KUBELETS)
|
||||
uuid = kube_upgrade.uuid
|
||||
|
||||
# Mark the kube host upgrade as upgraded-kubelet
|
||||
values = {
|
||||
'status': kubernetes.KUBE_HOST_UPGRADED_KUBELET
|
||||
}
|
||||
self.dbapi.kube_host_upgrade_update(1, values)
|
||||
|
||||
# Update state
|
||||
new_state = kubernetes.KUBE_UPGRADE_COMPLETE
|
||||
response = self.patch_json('/kube_upgrade',
|
||||
|
|
|
@ -1222,9 +1222,10 @@ class ManagerTestCase(base.DbTestCase):
|
|||
self.assertEqual(updated_upgrade.state,
|
||||
kubernetes.KUBE_UPGRADED_SECOND_MASTER)
|
||||
|
||||
# Verify that the host upgrade status was cleared
|
||||
# Verify that the host upgrade status is upgraded-kubelet
|
||||
updated_host_upgrade = self.dbapi.kube_host_upgrade_get(1)
|
||||
self.assertEqual(updated_host_upgrade.status, None)
|
||||
self.assertEqual(updated_host_upgrade.status,
|
||||
kubernetes.KUBE_HOST_UPGRADED_KUBELET)
|
||||
|
||||
def test_kube_upgrade_kubelet_second_master(self):
|
||||
# Create an upgrade
|
||||
|
|
Loading…
Reference in New Issue