github.com/cilium/cilium@v1.16.2/operator/pkg/gateway-api/routechecks/conditions.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package routechecks 5 6 import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 7 8 func merge(existingConditions []metav1.Condition, updates ...metav1.Condition) []metav1.Condition { 9 var additions []metav1.Condition 10 for i, update := range updates { 11 found := false 12 for j, cond := range existingConditions { 13 if cond.Type == update.Type { 14 found = true 15 if conditionChanged(cond, update) { 16 existingConditions[j].Status = update.Status 17 existingConditions[j].Reason = update.Reason 18 existingConditions[j].Message = update.Message 19 existingConditions[j].ObservedGeneration = update.ObservedGeneration 20 existingConditions[j].LastTransitionTime = update.LastTransitionTime 21 } 22 break 23 } 24 } 25 if !found { 26 additions = append(additions, updates[i]) 27 } 28 } 29 existingConditions = append(existingConditions, additions...) 30 return existingConditions 31 } 32 33 func conditionChanged(a, b metav1.Condition) bool { 34 return a.Status != b.Status || 35 a.Reason != b.Reason || 36 a.Message != b.Message || 37 a.ObservedGeneration != b.ObservedGeneration 38 }