Skip to content

Commit c13420a

Browse files
authored
fix preserving required fields from previous plugins (#2994)
1 parent 60dda68 commit c13420a

File tree

5 files changed

+12
-6
lines changed

5 files changed

+12
-6
lines changed

tools/openapi2crd/pkg/plugins/read_write_properties.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@ func (p *ReadWriteProperties) Process(req *PropertyProcessorRequest) error {
3939
}
4040

4141
required := sets.New(req.OpenAPISchema.Required...)
42+
required.Insert(req.Property.Required...)
4243
for name, prop := range req.OpenAPISchema.Properties {
4344
if prop.Value.ReadOnly {
4445
required.Delete(name)
4546
}
4647
}
48+
4749
req.Property.Required = required.UnsortedList()
4850
slices.Sort(req.Property.Required)
4951

tools/openapi2crd/pkg/plugins/read_write_properties_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ import (
1919
"testing"
2020

2121
"github.com/getkin/kin-openapi/openapi3"
22+
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2223
"github.com/stretchr/testify/assert"
2324
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
24-
25-
"github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2625
)
2726

2827
func TestReadWritePropertyName(t *testing.T) {

tools/openapi2crd/pkg/plugins/sesitive_properties.go renamed to tools/openapi2crd/pkg/plugins/sensitive_properties.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ import (
1919
"fmt"
2020
"strings"
2121

22+
configv1alpha1 "github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2223
v1 "k8s.io/api/core/v1"
2324
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
24-
25-
configv1alpha1 "github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2625
)
2726

2827
type SensitiveProperties struct{}
@@ -71,6 +70,7 @@ func (p *SensitiveProperties) Process(req *PropertyProcessorRequest) error {
7170
Description: fmt.Sprintf(`Key of the secret data containing the sensitive field value, defaults to %q.`, req.Path[len(req.Path)-1]),
7271
},
7372
}
73+
req.Property.Required = []string{"name"}
7474

7575
return nil
7676
}

tools/openapi2crd/pkg/plugins/sesitive_properties_test.go renamed to tools/openapi2crd/pkg/plugins/sensitive_properties_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@ import (
1919
"testing"
2020

2121
"github.com/getkin/kin-openapi/openapi3"
22+
configv1alpha1 "github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2223
"github.com/stretchr/testify/assert"
2324
v1 "k8s.io/api/core/v1"
2425
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
25-
26-
configv1alpha1 "github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd/pkg/apis/config/v1alpha1"
2726
)
2827

2928
func TestSensitivePropertyName(t *testing.T) {
@@ -70,6 +69,7 @@ func TestSensitivePropertyProcess(t *testing.T) {
7069
ID: "passwordSecretRef",
7170
Type: "object",
7271
Description: "SENSITIVE FIELD\n\nReference to a secret containing data for the \"password\" field:\n\nthe password",
72+
Required: []string{"name"},
7373
Properties: map[string]apiextensions.JSONSchemaProps{
7474
"name": {
7575
Type: "string",
@@ -120,6 +120,7 @@ func TestSensitivePropertyProcess(t *testing.T) {
120120
ID: "passwordSecretRef",
121121
Type: "object",
122122
Description: "SENSITIVE FIELD\n\nReference to a secret containing data for the \"password\" field:\n\nthe credentials password",
123+
Required: []string{"name"},
123124
Properties: map[string]apiextensions.JSONSchemaProps{
124125
"name": {
125126
Type: "string",

tools/openapi2crd/pkg/plugins/skipped_properties.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ func (p *SkippedProperties) Process(req *PropertyProcessorRequest) error {
3939
requiredPaths[jsonPath(append(req.Path, r))] = r
4040
}
4141

42+
for _, r := range req.Property.Required {
43+
requiredPaths[jsonPath(append(req.Path, r))] = r
44+
}
45+
4246
for _, s := range req.PropertyConfig.Filters.SkipProperties {
4347
delete(requiredPaths, s)
4448
}

0 commit comments

Comments
 (0)