Skip to content

Commit 87c7e71

Browse files
authored
Use controller-utils crd management (#12)
* use controller-utils crd management * use controller-utils crd management * use controller-utils crd management * use controller-utils crd management
1 parent 9b64c81 commit 87c7e71

File tree

6 files changed

+163
-96
lines changed

6 files changed

+163
-96
lines changed

api/crds/crds.go

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,14 @@ package crds
22

33
import (
44
"embed"
5-
"fmt"
6-
"path/filepath"
75

6+
crdutil "github.com/openmcp-project/controller-utils/pkg/crds"
87
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
9-
"sigs.k8s.io/yaml"
108
)
119

1210
//go:embed manifests
1311
var CRDFS embed.FS
1412

15-
// CRDs returns the generated CustomResourceDefinitions as go structs.
16-
// Panics if anything goes wrong trying to read the CRD files, as an error here is likely related to a wrong build or invalid generated CRDs.
17-
func CRDs() []*apiextv1.CustomResourceDefinition {
18-
files, err := CRDFS.ReadDir("manifests")
19-
if err != nil {
20-
panic(err)
21-
}
22-
res := []*apiextv1.CustomResourceDefinition{}
23-
for _, f := range files {
24-
data, err := CRDFS.ReadFile(filepath.Join("manifests", f.Name()))
25-
if err != nil {
26-
panic(fmt.Errorf("error reading CRD file '%s': %w", f.Name(), err))
27-
}
28-
crd := &apiextv1.CustomResourceDefinition{}
29-
if err := yaml.Unmarshal(data, crd); err != nil {
30-
panic(fmt.Errorf("error parsing file '%s' into CRD: %w", f.Name(), err))
31-
}
32-
res = append(res, crd)
33-
}
34-
return res
13+
func CRDs() ([]*apiextv1.CustomResourceDefinition, error) {
14+
return crdutil.CRDsFromFileSystem(CRDFS, "manifests")
3515
}

api/go.mod

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,64 @@ module github.com/openmcp-project/openmcp-operator/api
33
go 1.24.2
44

55
require (
6+
github.com/openmcp-project/controller-utils v0.0.0-20250514103840-36be6cfff45a
67
k8s.io/api v0.33.0
78
k8s.io/apiextensions-apiserver v0.33.0
89
k8s.io/apimachinery v0.33.0
910
k8s.io/client-go v0.33.0
1011
sigs.k8s.io/controller-runtime v0.20.4
11-
sigs.k8s.io/yaml v1.4.0
1212
)
1313

1414
require (
15+
github.com/beorn7/perks v1.0.1 // indirect
16+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
17+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
18+
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
19+
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
20+
github.com/fsnotify/fsnotify v1.8.0 // indirect
1521
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
1622
github.com/go-logr/logr v1.4.2 // indirect
23+
github.com/go-logr/zapr v1.3.0 // indirect
24+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
25+
github.com/go-openapi/jsonreference v0.21.0 // indirect
26+
github.com/go-openapi/swag v0.23.0 // indirect
1727
github.com/gogo/protobuf v1.3.2 // indirect
28+
github.com/google/btree v1.1.3 // indirect
29+
github.com/google/gnostic-models v0.6.9 // indirect
30+
github.com/google/go-cmp v0.7.0 // indirect
31+
github.com/google/uuid v1.6.0 // indirect
32+
github.com/josharian/intern v1.0.0 // indirect
1833
github.com/json-iterator/go v1.1.12 // indirect
19-
github.com/kr/text v0.2.0 // indirect
34+
github.com/mailru/easyjson v0.9.0 // indirect
2035
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
2136
github.com/modern-go/reflect2 v1.0.2 // indirect
37+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
38+
github.com/pkg/errors v0.9.1 // indirect
39+
github.com/prometheus/client_golang v1.22.0 // indirect
40+
github.com/prometheus/client_model v0.6.1 // indirect
41+
github.com/prometheus/common v0.62.0 // indirect
42+
github.com/prometheus/procfs v0.15.1 // indirect
43+
github.com/spf13/pflag v1.0.6 // indirect
2244
github.com/x448/float16 v0.8.4 // indirect
23-
golang.org/x/net v0.38.0 // indirect
24-
golang.org/x/text v0.23.0 // indirect
45+
go.uber.org/multierr v1.11.0 // indirect
46+
go.uber.org/zap v1.27.0 // indirect
47+
golang.org/x/net v0.40.0 // indirect
48+
golang.org/x/oauth2 v0.27.0 // indirect
49+
golang.org/x/sync v0.14.0 // indirect
50+
golang.org/x/sys v0.33.0 // indirect
51+
golang.org/x/term v0.32.0 // indirect
52+
golang.org/x/text v0.25.0 // indirect
53+
golang.org/x/time v0.10.0 // indirect
54+
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
55+
google.golang.org/protobuf v1.36.6 // indirect
56+
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
2557
gopkg.in/inf.v0 v0.9.1 // indirect
58+
gopkg.in/yaml.v3 v3.0.1 // indirect
2659
k8s.io/klog/v2 v2.130.1 // indirect
27-
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
28-
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
60+
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
61+
k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979 // indirect
62+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
2963
sigs.k8s.io/randfill v1.0.0 // indirect
30-
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
64+
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
65+
sigs.k8s.io/yaml v1.4.0 // indirect
3166
)

0 commit comments

Comments
 (0)