func (c Condition) Equal(other Condition) bool {
	return c.Type == other.Type &&
		c.Status == other.Status &&
		c.Reason == other.Reason &&
		c.Message == other.Message
}
Equal returns true if the condition is identical to the supplied condition,
ignoring the LastTransitionTime.
package condition
import (
	"sort"
	"time"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type ConditionType string
const (
	TypeReady ConditionType = "Ready"
	TypeSynced ConditionType = "Synced"
)
type ConditionReason string
const (
	ReasonAvailable   ConditionReason = "Available"
	ReasonUnavailable ConditionReason = "Unavailable"
	ReasonCreating    ConditionReason = "Creating"
	ReasonDeleting    ConditionReason = "Deleting"
)
const (
	ReasonReconcileSuccess ConditionReason = "ReconcileSuccess"
	ReasonReconcileError   ConditionReason = "ReconcileError"
)
type Condition struct {
	Type ConditionType `json:"type"`
	Status corev1.ConditionStatus `json:"status"`
	LastTransitionTime metav1.Time `json:"lastTransitionTime"`
	Reason ConditionReason `json:"reason"`
	Message string `json:"message,omitempty"`
}