Skip to content

Commit eae7776

Browse files
committed
regenerate crds
1 parent adf669f commit eae7776

File tree

4 files changed

+38
-61
lines changed

4 files changed

+38
-61
lines changed

config/openapi2crd.yaml

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -136,51 +136,6 @@ spec:
136136
- $.tags
137137
- $.terminationProtectionEnabled
138138
- $.versionReleaseSystem
139-
- majorVersion: v20250312
140-
openAPIRef:
141-
name: v20250312
142-
parameters:
143-
path:
144-
name: '/api/atlas/v2/groups/{groupId}/clusters'
145-
verb: post
146-
references:
147-
- *groupRef
148-
entry:
149-
schema: 'ClusterDescription20240805'
150-
filters:
151-
skipProperties:
152-
- $.connectionStrings
153-
- $.createDate
154-
- $.groupId
155-
- $.id
156-
- $.links
157-
- $.mongoDBVersion
158-
- $.replicationSpecs[*].id
159-
- $.stateName
160-
status:
161-
schema: 'ClusterDescription20240805'
162-
filters:
163-
skipProperties:
164-
- $.acceptDataRisksAndForceReplicaSetReconfig
165-
- $.backupEnabled
166-
- $.biConnector
167-
- $.clusterType
168-
- $.diskSizeGB
169-
- $.diskWarmingMode
170-
- $.encryptionAtRestProvider
171-
- $.labels
172-
- $.links
173-
- $.mongoDBMajorVersion
174-
- $.name
175-
- $.paused
176-
- $.pitEnabled
177-
- $.replicationSpecs[*].numShards
178-
- $.replicationSpecs[*].regionConfigs
179-
- $.replicationSpecs[*].zoneName
180-
- $.rootCertType
181-
- $.tags
182-
- $.terminationProtectionEnabled
183-
- $.versionReleaseSystem
184139

185140
- gvk:
186141
version: v1

internal/generated/crds/crds.yaml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ spec:
244244
description: |-
245245
Specification of the cluster supporting the following versions:
246246
247-
- v20250312
248247
- v20250312
249248
250249
At most one versioned spec can be specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
@@ -942,14 +941,6 @@ spec:
942941
&& has(self.groupRef))
943942
type: object
944943
x-kubernetes-validations:
945-
- message: 'Only one of the following entries can be set: "v20250312,
946-
v20250312"'
947-
rule: '!has(self.v20250312) && has(self.v20250312) || has(self.v20250312)
948-
&& !has(self.v20250312)'
949-
- message: spec.connectionSecretRef must be set if spec.v20250312.groupId
950-
is set.
951-
rule: (has(self.v20250312.groupId) && has(self.connectionSecretRef))
952-
|| (!has(self.v20250312.groupId))
953944
- message: spec.connectionSecretRef must be set if spec.v20250312.groupId
954945
is set.
955946
rule: (has(self.v20250312.groupId) && has(self.connectionSecretRef))

tools/openapi2crd/pkg/generator/generator.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ import (
2121
"log"
2222

2323
"github.com/getkin/kin-openapi/openapi3"
24-
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
25-
"sigs.k8s.io/yaml"
26-
2724
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2825
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/config"
2926
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/plugins"
27+
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
28+
"k8s.io/apimachinery/pkg/util/sets"
29+
"sigs.k8s.io/yaml"
3030
)
3131

3232
type Generator struct {
@@ -66,7 +66,14 @@ func (g *Generator) Generate(ctx context.Context, crdConfig *v1alpha1.CRDConfig)
6666
}
6767
}
6868

69+
majorVersions := sets.New[string]()
6970
for _, mapping := range crdConfig.Mappings {
71+
if majorVersions.Has(mapping.MajorVersion) {
72+
return nil, fmt.Errorf("duplicate mapping for major version %q for %v", mapping.MajorVersion, crdConfig.GVK)
73+
}
74+
75+
majorVersions.Insert(mapping.MajorVersion)
76+
7077
def, ok := g.definitions[mapping.OpenAPIRef.Name]
7178
if !ok {
7279
return nil, fmt.Errorf("no OpenAPI definition named %q found", mapping.OpenAPIRef.Name)

tools/openapi2crd/pkg/generator/generator_test.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@ import (
2020
"testing"
2121

2222
"github.com/getkin/kin-openapi/openapi3"
23+
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
24+
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/config"
25+
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/plugins"
2326
"github.com/stretchr/testify/assert"
2427
"github.com/stretchr/testify/mock"
2528
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
2629
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27-
28-
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
29-
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/config"
30-
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/plugins"
3130
)
3231

3332
func TestGeneratorMajorVersions(t *testing.T) {
@@ -233,6 +232,31 @@ func TestGeneratorGenerate(t *testing.T) {
233232
},
234233
},
235234
},
235+
"duplicate major versions": {
236+
apiDefinitions: map[string]v1alpha1.OpenAPIDefinition{
237+
"Pet": {
238+
Name: "Pet",
239+
Path: "testdata/openapi.yaml",
240+
},
241+
},
242+
config: &v1alpha1.CRDConfig{
243+
Mappings: []v1alpha1.CRDMapping{
244+
{
245+
OpenAPIRef: v1alpha1.LocalObjectReference{
246+
Name: "Pet",
247+
},
248+
MajorVersion: "v1",
249+
},
250+
{
251+
OpenAPIRef: v1alpha1.LocalObjectReference{
252+
Name: "Pet",
253+
},
254+
MajorVersion: "v1",
255+
},
256+
},
257+
},
258+
expectError: true,
259+
},
236260
}
237261
for name, tt := range tests {
238262
t.Run(name, func(t *testing.T) {

0 commit comments

Comments
 (0)