diff --git a/lib/resourcebuilder/apps.go b/lib/resourcebuilder/apps.go index dd5bea2506..31ee5c5bc3 100644 --- a/lib/resourcebuilder/apps.go +++ b/lib/resourcebuilder/apps.go @@ -123,6 +123,15 @@ func (b *builder) checkDeploymentHealth(ctx context.Context, deployment *appsv1. } } + if progressingCondition != nil && progressingCondition.Status == corev1.ConditionFalse && progressingCondition.Reason == "ProgressDeadlineExceeded" { + return &payload.UpdateError{ + Nested: fmt.Errorf("deployment %s is %s=%s: %s: %s", iden, progressingCondition.Type, progressingCondition.Status, progressingCondition.Reason, progressingCondition.Message), + Reason: "WorkloadNotProgressing", + Message: fmt.Sprintf("deployment %s is %s=%s: %s: %s", iden, progressingCondition.Type, progressingCondition.Status, progressingCondition.Reason, progressingCondition.Message), + Name: iden, + } + } + if availableCondition == nil && progressingCondition == nil && replicaFailureCondition == nil { klog.Warningf("deployment %s is not setting any expected conditions, and is therefore in an unknown state", iden) } diff --git a/lib/resourcemerge/core.go b/lib/resourcemerge/core.go index 01451e65bb..665cabf4f7 100644 --- a/lib/resourcemerge/core.go +++ b/lib/resourcemerge/core.go @@ -141,9 +141,6 @@ func ensureContainer(modified *bool, existing *corev1.Container, required corev1 } func ensureEnvVar(modified *bool, existing *[]corev1.EnvVar, required []corev1.EnvVar) { - if required == nil { - return - } if !equality.Semantic.DeepEqual(required, *existing) { *existing = required *modified = true @@ -151,9 +148,6 @@ func ensureEnvVar(modified *bool, existing *[]corev1.EnvVar, required []corev1.E } func ensureEnvFromSource(modified *bool, existing *[]corev1.EnvFromSource, required []corev1.EnvFromSource) { - if required == nil { - return - } if !equality.Semantic.DeepEqual(required, *existing) { *existing = required *modified = true