Refine controller template and probe listeners
This commit is contained in:
@@ -65,13 +65,20 @@ func handleOSUpgradeProgressLocked(
|
||||
}
|
||||
|
||||
if osup.Spec.NodeName != nodeName {
|
||||
klog.V(4).InfoS("skipping osupgradeprogress due to nodeName mismatch",
|
||||
"name", osup.Name,
|
||||
"node", nodeName,
|
||||
"target", osup.Spec.NodeName,
|
||||
)
|
||||
return nil
|
||||
}
|
||||
|
||||
if osup.Status.Phase != "" &&
|
||||
osup.Status.Phase != monov1alpha1.OSUpgradeProgressPhasePending &&
|
||||
osup.Status.Phase != monov1alpha1.OSUpgradeProgressPhaseDownloading {
|
||||
// tune this logic however you want
|
||||
if !shouldProcessProgress(osup) {
|
||||
klog.V(2).InfoS("skipping osupgradeprogress due to phase",
|
||||
"name", osup.Name,
|
||||
"node", nodeName,
|
||||
"phase", osup.StatusPhase(),
|
||||
)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -124,7 +131,9 @@ func handleOSUpgradeProgressLocked(
|
||||
now := metav1.Now()
|
||||
cur.Status.CurrentVersion = buildinfo.KubeVersion
|
||||
cur.Status.TargetVersion = plan.ResolvedTarget
|
||||
cur.Status.PlannedPath = plannedPath(plan)
|
||||
cur.Status.Phase = monov1alpha1.OSUpgradeProgressPhaseDownloading
|
||||
cur.Status.ObservedRetryNonce = cur.Spec.RetryNonce
|
||||
cur.Status.Message = fmt.Sprintf("downloading image: %s", first.URL)
|
||||
cur.Status.LastUpdatedAt = &now
|
||||
})
|
||||
@@ -238,6 +247,26 @@ func handleOSUpgradeProgressLocked(
|
||||
select {}
|
||||
}
|
||||
|
||||
func shouldProcessProgress(osup *monov1alpha1.OSUpgradeProgress) bool {
|
||||
if osup == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if osup.Status == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
switch osup.Status.Phase {
|
||||
case "",
|
||||
monov1alpha1.OSUpgradeProgressPhasePending:
|
||||
return true
|
||||
case monov1alpha1.OSUpgradeProgressPhaseFailed:
|
||||
return osup.Spec.RetryNonce != osup.Status.ObservedRetryNonce
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func triggerReboot() error {
|
||||
_ = os.WriteFile("/proc/sysrq-trigger", []byte("s\n"), 0)
|
||||
_ = os.WriteFile("/proc/sysrq-trigger", []byte("u\n"), 0)
|
||||
|
||||
Reference in New Issue
Block a user