@@ -213,11 +213,9 @@ type OptimizationGoal struct {
213213
214214 // +optional
215215
216- // +kubebuilder:validation:Minimum=0.0
216+ // +kubebuilder:validation:Pattern=`^(0(\.[0-9]+)?|1(\.0+)?)$`
217217
218- // +kubebuilder:validation:Maximum=1.0
219-
220- Weight * float64 `json:"weight,omitempty"`
218+ Weight * string `json:"weight,omitempty"`
221219
222220 // Target specifies the target value.
223221
@@ -349,11 +347,11 @@ type SLARequirements struct {
349347
350348 // +optional
351349
352- // +kubebuilder:validation:Minimum=0.0
350+
353351
354- // +kubebuilder:validation:Maximum=100.0
352+
355353
356- AvailabilityTarget * float64 `json:"availabilityTarget,omitempty"`
354+ AvailabilityTarget * string `json:"availabilityTarget,omitempty"`
357355
358356 // MaxLatency in milliseconds.
359357
@@ -375,11 +373,11 @@ type SLARequirements struct {
375373
376374 // +optional
377375
378- // +kubebuilder:validation:Minimum=0.0
376+
379377
380- // +kubebuilder:validation:Maximum=100.0
378+
381379
382- MaxPacketLoss * float64 `json:"maxPacketLoss,omitempty"`
380+ MaxPacketLoss * string `json:"maxPacketLoss,omitempty"`
383381
384382 // RecoveryTimeObjective in seconds.
385383
@@ -574,11 +572,11 @@ type ResourcePlanStatus struct {
574572
575573 // +optional
576574
577- // +kubebuilder:validation:Minimum=0.0
575+
578576
579- // +kubebuilder:validation:Maximum=1.0
577+
580578
581- QualityScore * float64 `json:"qualityScore,omitempty"`
579+ QualityScore * string `json:"qualityScore,omitempty"`
582580
583581 // ObservedGeneration reflects the generation observed.
584582
@@ -660,9 +658,9 @@ type PlannedResource struct {
660658
661659 // +optional
662660
663- // +kubebuilder:validation:Minimum=0.0
661+
664662
665- EstimatedCost * float64 `json:"estimatedCost,omitempty"`
663+ EstimatedCost * string `json:"estimatedCost,omitempty"`
666664}
667665
668666// ResourceSpec defines resource specifications.
@@ -746,11 +744,11 @@ type CostEstimate struct {
746744
747745 // +optional
748746
749- // +kubebuilder:validation:Minimum=0.0
747+
750748
751- // +kubebuilder:validation:Maximum=1.0
749+
752750
753- Confidence * float64 `json:"confidence,omitempty"`
751+ Confidence * string `json:"confidence,omitempty"`
754752}
755753
756754// PerformanceEstimate represents performance estimation.
@@ -760,27 +758,27 @@ type PerformanceEstimate struct {
760758
761759 // +optional
762760
763- // +kubebuilder:validation:Minimum=0.0
761+
764762
765- ExpectedThroughput * float64 `json:"expectedThroughput,omitempty"`
763+ ExpectedThroughput * string `json:"expectedThroughput,omitempty"`
766764
767765 // ExpectedLatency in milliseconds.
768766
769767 // +optional
770768
771- // +kubebuilder:validation:Minimum=0.0
769+
772770
773- ExpectedLatency * float64 `json:"expectedLatency,omitempty"`
771+ ExpectedLatency * string `json:"expectedLatency,omitempty"`
774772
775773 // ExpectedAvailability as percentage (0.0-100.0).
776774
777775 // +optional
778776
779- // +kubebuilder:validation:Minimum=0.0
777+
780778
781- // +kubebuilder:validation:Maximum=100.0
779+
782780
783- ExpectedAvailability * float64 `json:"expectedAvailability,omitempty"`
781+ ExpectedAvailability * string `json:"expectedAvailability,omitempty"`
784782
785783 // ResourceUtilization estimates.
786784
@@ -826,11 +824,11 @@ type ScalingRecommendation struct {
826824
827825 // +optional
828826
829- // +kubebuilder:validation:Minimum=0.0
827+
830828
831- // +kubebuilder:validation:Maximum=1.0
829+
832830
833- Confidence * float64 `json:"confidence,omitempty"`
831+ Confidence * string `json:"confidence,omitempty"`
834832}
835833
836834// ResourceComplianceStatus represents compliance validation status.
@@ -910,11 +908,11 @@ type OptimizationResult struct {
910908
911909 // +optional
912910
913- // +kubebuilder:validation:Minimum=0.0
911+
914912
915- // +kubebuilder:validation:Maximum=100.0
913+
916914
917- ImprovementPercent * float64 `json:"improvementPercent,omitempty"`
915+ ImprovementPercent * string `json:"improvementPercent,omitempty"`
918916
919917 // Description of the optimization.
920918
0 commit comments