Skip to content

Commit d838c50

Browse files
tenstadthbkrkr
authored andcommitted
fix: support both types of default marker (elastic#164)
Co-authored-by: Thibault Richard <thbkrkr@users.noreply.github.com>
1 parent 23c00bc commit d838c50

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

processor/processor.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,14 @@ func parseMarkers(markers markers.MarkerValues) (string, []string) {
562562
validation = append(validation, fmt.Sprintf("%s: %v", name, value))
563563
}
564564

565-
// Handle standalone +required and +k8s:required marker
565+
switch v := value.(type) {
566+
case crdmarkers.KubernetesDefault:
567+
defaultValue = fmt.Sprintf("%v", v.Value)
568+
case crdmarkers.Default:
569+
defaultValue = fmt.Sprintf("%v", v.Value)
570+
}
571+
572+
// Handle standalone +required and +k8s:required marker
566573
// This is equivalent to +kubebuilder:validation:Required
567574
if name == "required" || name == "k8s:required" {
568575
validation = append(validation, "Required: {}")
@@ -572,17 +579,12 @@ func parseMarkers(markers markers.MarkerValues) (string, []string) {
572579
if name == "optional" || name == "k8s:optional" {
573580
validation = append(validation, "Optional: {}")
574581
}
582+
}
575583

576-
if name == "kubebuilder:default" {
577-
if value, ok := value.(crdmarkers.Default); ok {
578-
defaultValue = fmt.Sprintf("%v", value.Value)
579-
if strings.HasPrefix(defaultValue, "map[") {
580-
defaultValue = strings.TrimPrefix(defaultValue, "map[")
581-
defaultValue = strings.TrimSuffix(defaultValue, "]")
582-
defaultValue = fmt.Sprintf("{ %s }", defaultValue)
583-
}
584-
}
585-
}
584+
if strings.HasPrefix(defaultValue, "map[") {
585+
defaultValue = strings.TrimPrefix(defaultValue, "map[")
586+
defaultValue = strings.TrimSuffix(defaultValue, "]")
587+
defaultValue = fmt.Sprintf("{ %s }", defaultValue)
586588
}
587589

588590
return defaultValue, validation

test/api/v1/guestbook_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ type Rating int
8787
// +kubebuilder:validation:XValidation:rule="self.page < 200", message="Please start a new book."
8888
type GuestbookSpec struct {
8989
// Page indicates the page number
90-
// +kubebuilder:default=1
90+
// +default=1
9191
// +kubebuilder:example=3
9292
Page *PositiveInt `json:"page,omitempty"`
9393
// Entries contain guest book entries for the page

0 commit comments

Comments
 (0)