8000 [Bugfix] Fix IntOrString Schema Type (#1806) · arangodb/kube-arangodb@e3d9fc0 · GitHub
[go: up one dir, main page]

Skip to content

Commit e3d9fc0

Browse files
authored
[Bugfix] Fix IntOrString Schema Type (#1806)
1 parent a4c62c6 commit e3d9fc0

15 files changed

+556
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
- (Maintenance) Bump Go Image to 1.22.11
5353
- (Feature) Split Helm and KClient
5454
- (Bugfix) Fix ArangoRoute Target switch in case of temporary error
55+
- (Bugfix) Fix IntOrString Schema Type
5556
- (Feature) Enable Operator Handler StackTraces
5657

5758
## [1.2.43](https://github.com/arangodb/kube-arangodb/tree/1.2.43) (2024-10-14)
@@ -135,7 +136,6 @@
135136
- (Feature) DebugPackage ArangoProfiles
136137
- (Feature) Scheduler CLI
137138
- (Feature) Parametrize ForceDelete timeout
138-
<<<<<<< HEAD
139139
- (Feature) Scheduler BatchJob Integration Definition
140140
- (Feature) Scheduler CronJob Integration Definition
141141
- (Feature) Scheduler BatchJob Integration Service

internal/schema_builder_test.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//
22
// DISCLAIMER
33
//
4-
// Copyright 2023-2024 ArangoDB GmbH, Cologne, Germany
4+
// Copyright 2023-2025 ArangoDB GmbH, Cologne, Germany
55
//
66
// Licensed under the Apache License, Version 2.0 (the "License");
77
// you may not use this file except in compliance with the License.
@@ -72,6 +72,9 @@ func (b *schemaBuilder) tryGetKubeOpenAPIV2Definitions(t *testing.T, obj interfa
7272
type openAPISchemaFormatGetter interface {
7373
OpenAPISchemaFormat() string
7474
}
75+
type openApiSchemaV3OneOfTypes interface {
76+
OpenAPIV3OneOfTypes() []string
77+
}
7578
var typ, frmt string
7679
if o, ok := obj.(openAPISchemaTypeGetter); ok {
7780
strs := o.OpenAPISchemaType()
@@ -90,6 +93,15 @@ func (b *schemaBuilder) tryGetKubeOpenAPIV2Definitions(t *testing.T, obj interfa
9093
}
9194
}
9295

96+
if o, ok := obj.(openApiSchemaV3OneOfTypes); ok {
97+
if b.isV3IntOrString(o.OpenAPIV3OneOfTypes()) {
98+
return &apiextensions.JSONSchemaProps{
99+
Type: typ,
100+
XIntOrString: true,
101+
}
102+
}
103+
}
104+
93105
return &apiextensions.JSONSchemaProps{
94106
Type: typ,
95107
Format: frmt,
@@ -98,6 +110,10 @@ func (b *schemaBuilder) tryGetKubeOpenAPIV2Definitions(t *testing.T, obj interfa
98110
return nil
99111
}
100112

113+
func (b *schemaBuilder) isV3IntOrString(types []string) bool {
114+
return len(types) == 2 && util.ContainsList(types, "number") && util.ContainsList(types, "string")
115+
}
116+
101117
func (b *schemaBuilder) openAPIDefToSchemaPros(t *testing.T, _ *openapi.OpenAPIDefinition) *apiextensions.JSONSchemaProps {
102118
require.Fail(t, "openAPIDefToSchemaPros is not implemented because there were no calls to this function. Add the impl if needed.")
103119
return nil

pkg/crd/crds/analytics-graphanalyticsengine.schema.generated.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ v1alpha1:
382382
type: string
383383
divisor:
384384
type: string
385+
x-kubernetes-int-or-string: true
385386
resource:
386387
type: string
387388
type: object
@@ -785,10 +786,12 @@ v1alpha1:
785786
limits:
786787
additionalProperties:
787788
type: string
789+
x-kubernetes-int-or-string: true
788790
type: object
789791
requests:
790792
additionalProperties:
791793
type: string
794+
x-kubernetes-int-or-string: true
792795
type: object
793796
type: object
794797
schedulerName:
@@ -1127,6 +1130,7 @@ v1alpha1:
11271130
type: string
11281131
divisor:
11291132
type: string
1133+
x-kubernetes-int-or-string: true
11301134
resource:
11311135
type: string
11321136
type: object
@@ -1139,6 +1143,7 @@ v1alpha1:
11391143
type: string
11401144
sizeLimit:
11411145
type: string
1146+
x-kubernetes-int-or-string: true
11421147
type: object
11431148
ephemeral:
11441149
properties:
@@ -1251,10 +1256,12 @@ v1alpha1:
12511256
limits:
12521257
additionalProperties:
12531258
type: string
1259+
x-kubernetes-int-or-string: true
12541260
type: object
12551261
requests:
12561262
additionalProperties:
12571263
type: string
1264+
x-kubernetes-int-or-string: true
12581265
type: object
12591266
type: object
12601267
selector:
@@ -1521,6 +1528,7 @@ v1alpha1:
15211528
type: string
15221529
divisor:
15231530
type: string
1531+
x-kubernetes-int-or-string: true
15241532
resource:
15251533
type: string
15261534
type: object
@@ -1726,6 +1734,7 @@ v1alpha1:
17261734
type: string
17271735
divisor:
17281736
type: string
1737+
x-kubernetes-int-or-string: true
17291738
resource:
17301739
type: string
17311740
type: object
@@ -2025,10 +2034,12 @@ v1alpha1:
20252034
limits:
20262035
additionalProperties:
20272036
type: string
2037+
x-kubernetes-int-or-string: true
20282038
type: object
20292039
requests:
20302040
additionalProperties:
20312041
type: string
2042+
x-kubernetes-int-or-string: true
20322043
type: object
20332044
type: object
20342045
securityContext:

pkg/crd/crds/apps-job.schema.generated.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,7 @@ v1:
559559
type: string
560560
divisor:
561561
type: string
562+
x-kubernetes-int-or-string: true
562563
resource:
563564
type: string
564565
type: object
@@ -864,10 +865,12 @@ v1:
864865
limits:
865866
additionalProperties:
866867
type: string
868+
x-kubernetes-int-or-string: true
867869
type: object
868870
requests:
869871
additionalProperties:
870872
type: string
873+
x-kubernetes-int-or-string: true
871874
type: object
872875
type: object
873876
restartPolicy:
@@ -1111,6 +1114,7 @@ v1:
11111114
type: string
11121115
divisor:
11131116
type: string
1117+
x-kubernetes-int-or-string: true
11141118
resource:
11151119
type: string
11161120
type: object
@@ -1416,10 +1420,12 @@ v1:
14161420
limits:
14171421
additionalProperties:
14181422
type: string
1423+
x-kubernetes-int-or-string: true
14191424
type: object
14201425
requests:
14211426
additionalProperties:
14221427
type: string
1428+
x-kubernetes-int-or-string: true
14231429
type: object
14241430
type: object
14251431
restartPolicy:
@@ -1669,6 +1675,7 @@ v1:
16691675
type: string
16701676
divisor:
16711677
type: string
1678+
x-kubernetes-int-or-string: true
16721679
resource:
16731680
type: string
16741681
type: object
@@ -1974,10 +1981,12 @@ v1:
19741981
limits:
19751982
additionalProperties:
19761983
type: string
1984+
x-kubernetes-int-or-string: true
19771985
type: object
19781986
requests:
19791987
additionalProperties:
19801988
type: string
1989+
x-kubernetes-int-or-string: true
19811990
type: object
19821991
type: object
19831992
restartPolicy:
@@ -2169,6 +2178,7 @@ v1:
21692178
overhead:
21702179
additionalProperties:
21712180
type: string
2181+
x-kubernetes-int-or-string: true
21722182
type: object
21732183
preemptionPolicy:
21742184
type: string
@@ -2487,6 +2497,7 @@ v1:
24872497
type: string
24882498
divisor:
24892499
type: string
2500+
x-kubernetes-int-or-string: true
24902501
resource:
24912502
type: string
24922503
type: object
@@ -2499,6 +2510,7 @@ v1:
24992510
type: string
25002511
sizeLimit:
25012512
type: string
2513+
x-kubernetes-int-or-string: true
25022514
type: object
25032515
ephemeral:
25042516
properties:
@@ -2611,10 +2623,12 @@ v1:
26112623
limits:
26122624
additionalProperties:
26132625
type: string
2626+
x-kubernetes-int-or-string: true
26142627
type: object
26152628
requests:
26162629
additionalProperties:
26172630
type: string
2631+
x-kubernetes-int-or-string: true
26182632
type: object
26192633
type: object
26202634
selector:
@@ -2881,6 +2895,7 @@ v1:
28812895
type: string
28822896
divisor:
28832897
type: string
2898+
x-kubernetes-int-or-string: true
28842899
resource:
28852900
type: string
28862901
type: object

0 commit comments

Comments
 (0)
0