mirror of
https://github.com/rancher/rke.git
synced 2025-09-01 15:06:23 +00:00
Addresses following issues:
1. Compare maxUnavailable with powered off hosts before attempting to reconcile NotReady hosts 2. Include powered off hosts as failed hosts for controlplane upgrade to return error 3. Change coredns upgrade strategy. With addons changes it was changed to have the k8s default value for a deployment of 25% maxUnavailable and maxSurge. This commit changes it back to maxUnavailable of 1 to avoid dns addon upgrade issues
This commit is contained in:
@@ -166,6 +166,7 @@ func (c *Cluster) UpgradeControlPlane(ctx context.Context, kubeClient *kubernete
|
||||
inactiveHosts := make(map[string]bool)
|
||||
var controlPlaneHosts, notReadyHosts []*hosts.Host
|
||||
var notReadyHostNames []string
|
||||
var err error
|
||||
|
||||
for _, host := range c.InactiveHosts {
|
||||
// include only hosts with controlplane role
|
||||
@@ -173,6 +174,10 @@ func (c *Cluster) UpgradeControlPlane(ctx context.Context, kubeClient *kubernete
|
||||
inactiveHosts[host.HostnameOverride] = true
|
||||
}
|
||||
}
|
||||
c.MaxUnavailableForControlNodes, err = services.ResetMaxUnavailable(c.MaxUnavailableForControlNodes, len(inactiveHosts), services.ControlRole)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
for _, host := range c.ControlPlaneHosts {
|
||||
if !c.HostsLabeledToIgnoreUpgrade[host.Address] {
|
||||
controlPlaneHosts = append(controlPlaneHosts, host)
|
||||
@@ -265,6 +270,7 @@ func (c *Cluster) UpgradeWorkerPlane(ctx context.Context, kubeClient *kubernetes
|
||||
inactiveHosts := make(map[string]bool)
|
||||
var notReadyHosts []*hosts.Host
|
||||
var notReadyHostNames []string
|
||||
var err error
|
||||
|
||||
for _, host := range c.InactiveHosts {
|
||||
// if host has controlplane role, it already has worker components upgraded
|
||||
@@ -272,6 +278,10 @@ func (c *Cluster) UpgradeWorkerPlane(ctx context.Context, kubeClient *kubernetes
|
||||
inactiveHosts[host.HostnameOverride] = true
|
||||
}
|
||||
}
|
||||
c.MaxUnavailableForWorkerNodes, err = services.ResetMaxUnavailable(c.MaxUnavailableForWorkerNodes, len(inactiveHosts), services.WorkerRole)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
for _, host := range append(etcdAndWorkerHosts, workerOnlyHosts...) {
|
||||
if c.NewHosts[host.HostnameOverride] {
|
||||
continue
|
||||
|
Reference in New Issue
Block a user