Skip to content

Commit d5dfdcf

Browse files
Merge pull request #5744 from isabella-janssen/ocpbugs-77839
OCPBUGS-77839: Fix node degrades due to file and OS update failures
2 parents cd082ec + 88c2def commit d5dfdcf

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

pkg/daemon/update.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,7 +1184,7 @@ func (dn *Daemon) update(oldConfig, newConfig *mcfgv1.MachineConfig, skipCertifi
11841184
if err := dn.updateFiles(oldIgnConfig, newIgnConfig, addedOrChangedUnits, skipCertificateWrite, forceFilePresent); err != nil {
11851185
// When ImageModeStatusReporting is enabled, update the `MachineConfigNodeUpdateFiles` condition to report the experienced error
11861186
if imageModeStatusReportingEnabled {
1187-
err = upgrademonitor.GenerateAndApplyMachineConfigNodes(
1187+
mcnErr := upgrademonitor.GenerateAndApplyMachineConfigNodes(
11881188
&upgrademonitor.Condition{State: mcfgv1.MachineConfigNodeUpdateExecuted, Reason: string(mcfgv1.MachineConfigNodeUpdateFiles), Message: fmt.Sprintf("Error updating the Files on disk as a part of the in progress phase")},
11891189
&upgrademonitor.Condition{State: mcfgv1.MachineConfigNodeUpdateFiles, Reason: fmt.Sprintf("%s%s", string(mcfgv1.MachineConfigNodeUpdateExecuted), string(mcfgv1.MachineConfigNodeUpdateFiles)), Message: fmt.Sprintf("Update failed applying files to node: %s", err.Error())},
11901190
metav1.ConditionUnknown,
@@ -1194,6 +1194,9 @@ func (dn *Daemon) update(oldConfig, newConfig *mcfgv1.MachineConfig, skipCertifi
11941194
dn.fgHandler,
11951195
pool,
11961196
)
1197+
if mcnErr != nil {
1198+
klog.Errorf("Error making MCN for failed file apply: %v", err)
1199+
}
11971200
}
11981201
return err
11991202
}
@@ -1219,7 +1222,7 @@ func (dn *Daemon) update(oldConfig, newConfig *mcfgv1.MachineConfig, skipCertifi
12191222
if err := dn.updateSSHKeys(newIgnConfig.Passwd.Users, oldIgnConfig.Passwd.Users); err != nil {
12201223
// When ImageModeStatusReporting is enabled, update the `MachineConfigNodeUpdateFiles` condition to report the experienced error
12211224
if imageModeStatusReportingEnabled {
1222-
err = upgrademonitor.GenerateAndApplyMachineConfigNodes(
1225+
mcnErr := upgrademonitor.GenerateAndApplyMachineConfigNodes(
12231226
&upgrademonitor.Condition{State: mcfgv1.MachineConfigNodeUpdateExecuted, Reason: string(mcfgv1.MachineConfigNodeUpdateFiles), Message: fmt.Sprintf("Error updating the Files on disk as a part of the in progress phase")},
12241227
&upgrademonitor.Condition{State: mcfgv1.MachineConfigNodeUpdateFiles, Reason: fmt.Sprintf("%s%s", string(mcfgv1.MachineConfigNodeUpdateExecuted), string(mcfgv1.MachineConfigNodeUpdateFiles)), Message: fmt.Sprintf("Update failed applying files to node: %s", err.Error())},
12251228
metav1.ConditionUnknown,
@@ -1229,6 +1232,9 @@ func (dn *Daemon) update(oldConfig, newConfig *mcfgv1.MachineConfig, skipCertifi
12291232
dn.fgHandler,
12301233
pool,
12311234
)
1235+
if mcnErr != nil {
1236+
klog.Errorf("Error making MCN for failed SSH update: %v", err)
1237+
}
12321238
}
12331239
return err
12341240
}
@@ -1269,7 +1275,7 @@ func (dn *Daemon) update(oldConfig, newConfig *mcfgv1.MachineConfig, skipCertifi
12691275
if err := coreOSDaemon.applyOSChanges(*diff, oldConfig, newConfig); err != nil {
12701276
// When ImageModeStatusReporting is enabled, update the `MachineConfigNodeUpdateOS` condition to report the experienced error
12711277
if imageModeStatusReportingEnabled {
1272-
err = upgrademonitor.GenerateAndApplyMachineConfigNodes(
1278+
mcnErr := upgrademonitor.GenerateAndApplyMachineConfigNodes(
12731279
&upgrademonitor.Condition{State: mcfgv1.MachineConfigNodeUpdateExecuted, Reason: string(mcfgv1.MachineConfigNodeUpdateOS), Message: fmt.Sprintf("Error the OS on disk as a part of the in progress phase")},
12741280
&upgrademonitor.Condition{State: mcfgv1.MachineConfigNodeUpdateOS, Reason: fmt.Sprintf("%s%s", string(mcfgv1.MachineConfigNodeUpdateExecuted), string(mcfgv1.MachineConfigNodeUpdateOS)), Message: fmt.Sprintf("Update failed applying new OS config to node: %s", err.Error())},
12751281
metav1.ConditionUnknown,
@@ -1279,6 +1285,9 @@ func (dn *Daemon) update(oldConfig, newConfig *mcfgv1.MachineConfig, skipCertifi
12791285
dn.fgHandler,
12801286
pool,
12811287
)
1288+
if mcnErr != nil {
1289+
klog.Errorf("Error making MCN for failed OS update: %v", err)
1290+
}
12821291
}
12831292
return err
12841293
}

0 commit comments

Comments
 (0)