github.com/cilium/cilium@v1.16.2/operator/pkg/gateway-api/gatewayclass_status.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package gateway_api 5 6 import ( 7 "time" 8 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 gatewayv1 "sigs.k8s.io/gateway-api/apis/v1" 11 ) 12 13 const ( 14 gatewayClassAcceptedMessage = "Valid GatewayClass" 15 gatewayClassNotAcceptedMessage = "Invalid GatewayClass" 16 ) 17 18 // setGatewayClassAccepted inserts or updates the Accepted condition 19 // for the provided GatewayClass. 20 func setGatewayClassAccepted(gwc *gatewayv1.GatewayClass, accepted bool) *gatewayv1.GatewayClass { 21 gwc.Status.Conditions = merge(gwc.Status.Conditions, gatewayClassAcceptedCondition(gwc, accepted)) 22 return gwc 23 } 24 25 // gatewayClassAcceptedCondition returns the GatewayClass with Accepted status condition. 26 // TODO(tam): Update GatewayClassReasonInvalidParameters message when parameter support is added. 27 func gatewayClassAcceptedCondition(gwc *gatewayv1.GatewayClass, accepted bool) metav1.Condition { 28 switch accepted { 29 case true: 30 return metav1.Condition{ 31 Type: string(gatewayv1.GatewayClassConditionStatusAccepted), 32 Status: metav1.ConditionTrue, 33 Reason: string(gatewayv1.GatewayClassReasonAccepted), 34 Message: gatewayClassAcceptedMessage, 35 ObservedGeneration: gwc.Generation, 36 LastTransitionTime: metav1.NewTime(time.Now()), 37 } 38 default: 39 return metav1.Condition{ 40 Type: string(gatewayv1.GatewayClassConditionStatusAccepted), 41 Status: metav1.ConditionFalse, 42 Reason: string(gatewayv1.GatewayClassReasonInvalidParameters), 43 Message: gatewayClassNotAcceptedMessage, 44 ObservedGeneration: gwc.Generation, 45 LastTransitionTime: metav1.NewTime(time.Now()), 46 } 47 } 48 }