...
1
16
17 package ensurer
18
19 import (
20 flowcontrolv1 "k8s.io/api/flowcontrol/v1"
21 "k8s.io/apimachinery/pkg/api/equality"
22 flowcontrolclient "k8s.io/client-go/kubernetes/typed/flowcontrol/v1"
23 flowcontrollisters "k8s.io/client-go/listers/flowcontrol/v1"
24 flowcontrolapisv1 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1"
25 )
26
27 func NewPriorityLevelConfigurationOps(client flowcontrolclient.PriorityLevelConfigurationInterface, lister flowcontrollisters.PriorityLevelConfigurationLister) ObjectOps[*flowcontrolv1.PriorityLevelConfiguration] {
28 return NewObjectOps[*flowcontrolv1.PriorityLevelConfiguration](client, lister, (*flowcontrolv1.PriorityLevelConfiguration).DeepCopy,
29 plcReplaceSpec, plcSpecEqualish)
30 }
31
32 func plcReplaceSpec(into, from *flowcontrolv1.PriorityLevelConfiguration) *flowcontrolv1.PriorityLevelConfiguration {
33 copy := into.DeepCopy()
34 copy.Spec = *from.Spec.DeepCopy()
35 return copy
36 }
37
38 func plcSpecEqualish(expected, actual *flowcontrolv1.PriorityLevelConfiguration) bool {
39 copiedExpected := expected.DeepCopy()
40 flowcontrolapisv1.SetObjectDefaults_PriorityLevelConfiguration(copiedExpected)
41 if expected.Name == flowcontrolv1.PriorityLevelConfigurationNameExempt {
42 if actual.Spec.Exempt == nil {
43 return false
44 }
45 copiedExpected.Spec.Exempt.NominalConcurrencyShares = actual.Spec.Exempt.NominalConcurrencyShares
46 copiedExpected.Spec.Exempt.LendablePercent = actual.Spec.Exempt.LendablePercent
47 }
48 return equality.Semantic.DeepEqual(copiedExpected.Spec, actual.Spec)
49 }
50
View as plain text