Skip to content

Commit 102fb19

Browse files
authored
refactor: Move generic handlers into generic directory (#171)
1 parent 127f8c7 commit 102fb19

40 files changed

+35
-28
lines changed

api/v1alpha1/clusterconfig_types.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,19 +215,14 @@ type CNI struct {
215215
func (CNI) VariableSchema() clusterv1.VariableSchema {
216216
supportedCNIProviders := []string{CNIProviderCalico}
217217

218-
cniProviderEnumVals, err := variables.ValuesToEnumJSON(supportedCNIProviders...)
219-
if err != nil {
220-
panic(err)
221-
}
222-
223218
return clusterv1.VariableSchema{
224219
OpenAPIV3Schema: clusterv1.JSONSchemaProps{
225220
Type: "object",
226221
Properties: map[string]clusterv1.JSONSchemaProps{
227222
"provider": {
228223
Description: "CNI provider to deploy",
229224
Type: "string",
230-
Enum: cniProviderEnumVals,
225+
Enum: variables.MustMarshalValuesToEnumJSON(supportedCNIProviders...),
231226
},
232227
},
233228
Required: []string{"provider"},

cmd/main.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ import (
2727
"github.com/d2iq-labs/capi-runtime-extensions/common/pkg/capi/clustertopology/handlers"
2828
"github.com/d2iq-labs/capi-runtime-extensions/common/pkg/capi/clustertopology/handlers/mutation"
2929
"github.com/d2iq-labs/capi-runtime-extensions/common/pkg/server"
30-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/auditpolicy"
31-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/clusterconfig"
32-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/cni/calico"
33-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/etcd"
34-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/extraapiservercertsans"
35-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/httpproxy"
36-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/kubernetesimagerepository"
37-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/nfd"
38-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/servicelbgc"
30+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/clusterconfig"
31+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/lifecycle/cni/calico"
32+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/lifecycle/nfd"
33+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/lifecycle/servicelbgc"
34+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/mutation/auditpolicy"
35+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/mutation/etcd"
36+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/mutation/extraapiservercertsans"
37+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/mutation/httpproxy"
38+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/mutation/kubernetesimagerepository"
3939
)
4040

4141
// Flags.

common/pkg/capi/clustertopology/variables/enums.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,15 @@
44
package variables
55

66
import (
7-
"encoding/json"
8-
"fmt"
9-
107
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
118
)
129

13-
func ValuesToEnumJSON[T any](vals ...T) ([]apiextensionsv1.JSON, error) {
10+
func MustMarshalValuesToEnumJSON[T any](vals ...T) []apiextensionsv1.JSON {
1411
enumJSON := make([]apiextensionsv1.JSON, 0, len(vals))
1512

1613
for _, v := range vals {
17-
enumVal, err := json.Marshal(v)
18-
if err != nil {
19-
return nil, fmt.Errorf("failed to marshal enum value: %v", v)
20-
}
21-
enumJSON = append(enumJSON, apiextensionsv1.JSON{Raw: enumVal})
14+
enumJSON = append(enumJSON, *MustMarshal(v))
2215
}
2316

24-
return enumJSON, nil
17+
return enumJSON
2518
}

common/pkg/capi/clustertopology/variables/eums_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ func TestValuesToEnumJSON(t *testing.T) {
5858
g := gomega.NewWithT(t)
5959

6060
// Call the function under test
61-
jsonData, err := ValuesToEnumJSON(tt.input...)
62-
g.Expect(err).NotTo(gomega.HaveOccurred())
61+
jsonData := MustMarshalValuesToEnumJSON(tt.input...)
6362

6463
// Assert the result
6564
g.Expect(jsonData).To(gomega.HaveLen(len(tt.expected)))
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright 2023 D2iQ, Inc. All rights reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package variables
5+
6+
import (
7+
"encoding/json"
8+
"fmt"
9+
10+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
11+
)
12+
13+
func MustMarshal(val any) *apiextensionsv1.JSON {
14+
marshaled, err := json.Marshal(val)
15+
if err != nil {
16+
panic(fmt.Errorf("failed to marshal enum value: %w", err))
17+
}
18+
19+
return &apiextensionsv1.JSON{Raw: marshaled}
20+
}

pkg/handlers/cni/calico/handler.go renamed to pkg/handlers/generic/lifecycle/cni/calico/handler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
"github.com/d2iq-labs/capi-runtime-extensions/common/pkg/k8s/client"
3131
"github.com/d2iq-labs/capi-runtime-extensions/common/pkg/k8s/parser"
3232
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers"
33-
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/cni"
33+
"github.com/d2iq-labs/capi-runtime-extensions/pkg/handlers/generic/lifecycle/cni"
3434
)
3535

3636
const (

0 commit comments

Comments
 (0)