diff --git a/internal/controller/predicates.go b/internal/controller/predicates.go index 7b4662f..ea63131 100644 --- a/internal/controller/predicates.go +++ b/internal/controller/predicates.go @@ -57,6 +57,10 @@ func (p SveltosClusterPredicate) Update(e event.UpdateEvent) bool { return false } + if oldSveltosCluster.Spec.Paused != newSveltosCluster.Spec.Paused { + return true + } + // Trigger reconciliation if the Ready status has changed. if oldSveltosCluster.Status.Ready != newSveltosCluster.Status.Ready { return true @@ -115,6 +119,5 @@ func (p ClusterStatusPredicate) Update(e event.UpdateEvent) bool { return true } - // If none of the monitored fields have changed, do not trigger a reconciliation. - return false + return oldCluster.Spec.Paused != newCluster.Spec.Paused } diff --git a/internal/server/manager.go b/internal/server/manager.go index 77e71f7..ea1bd25 100644 --- a/internal/server/manager.go +++ b/internal/server/manager.go @@ -39,6 +39,7 @@ type ClusterInfo struct { Labels map[string]string `json:"labels"` Version string `json:"version"` Ready bool `json:"ready"` + Paused bool `json:"paused"` FailureMessage *string `json:"failureMessage"` } @@ -238,6 +239,7 @@ func (m *instance) AddSveltosCluster(sveltosCluster *libsveltosv1beta1.SveltosCl Labels: sveltosCluster.Labels, Version: sveltosCluster.Status.Version, Ready: sveltosCluster.Status.Ready, + Paused: sveltosCluster.Spec.Paused, FailureMessage: sveltosCluster.Status.FailureMessage, } @@ -267,6 +269,7 @@ func (m *instance) AddCAPICluster(cluster *clusterv1.Cluster) { info := ClusterInfo{ Labels: cluster.Labels, Ready: cluster.Status.ControlPlaneReady, + Paused: cluster.Spec.Paused, FailureMessage: examineClusterConditions(cluster), } diff --git a/internal/server/utils.go b/internal/server/utils.go index fb5abc7..275f81d 100644 --- a/internal/server/utils.go +++ b/internal/server/utils.go @@ -17,31 +17,12 @@ limitations under the License. package server import ( - "fmt" - "github.com/gin-gonic/gin" - corev1 "k8s.io/api/core/v1" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta1" //nolint:staticcheck // SA1019: We are unable to update the dependency at this time. ) func examineClusterConditions(cluster *clusterv1.Cluster) *string { - if cluster == nil { - return nil - } - - message := "" - - for i := range cluster.Status.Conditions { - c := cluster.Status.Conditions[i] - if c.Status == corev1.ConditionFalse && c.Message != "" { - message = fmt.Sprintf("%s\n%s", message, c.Message) - } - } - - if message != "" { - return &message - } - + // Do not look at CAPI cluster conditions return nil }