Skip to content

Commit c12804d

Browse files
authored
CLOUDP-358677: Use generation tools as go tools (#2899)
Signed-off-by: jose.vazquez <[email protected]>
1 parent f895a24 commit c12804d

File tree

5 files changed

+266
-49
lines changed

5 files changed

+266
-49
lines changed

Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ endif
206206

207207
# GO TOOLS
208208
CRD2GO := go tool -modfile=tools/toolbox/go.mod crd2go
209+
OPENAPI2CRD := go tool -modfile=tools/toolbox/go.mod openapi2crd
210+
SCAFFOLDER := go tool -modfile=tools/toolbox/go.mod scaffolder
209211

210212
.DEFAULT_GOAL := help
211213
.PHONY: help
@@ -861,15 +863,20 @@ $(ALL_IN_ONE_AUTOGENERATED_CONFIG): manifests update-manager-kustomization rbac-
861863
@echo "Created $@"
862864

863865
gen-crds:
864-
BINARY_DIR=$(realpath .)/bin CRD_FILE=$(realpath .)/config/generated/crd/bases/crds.yaml $(MAKE) -C tools/openapi2crd crds
866+
@echo "==> Generating CRDs..."
867+
$(OPENAPI2CRD) --config tools/openapi2crd/config.yaml \
868+
--output $(realpath .)/config/generated/crd/bases/crds.yaml
865869

866870
gen-go-types:
867871
@echo "==> Generating Go models from CRDs..."
868872
$(CRD2GO) --input $(realpath .)/config/generated/crd/bases/crds.yaml \
869873
--output $(realpath .)/internal/nextapi/generated/v1
870874

871875
run-scaffolder:
872-
BINARY_DIR=$(realpath .)/bin CRD_FILE=$(realpath .)/config/generated/crd/bases/crds.yaml $(MAKE) -C tools/scaffolder generate-all
876+
@echo "==> Generating Go controller scaffolding and indexers..."
877+
$(SCAFFOLDER) --input $(realpath .)/config/generated/crd/bases/crds.yaml \
878+
--all --indexer-out $(realpath .)/internal/generated/controller \
879+
--controller-out $(realpath .)/internal/generated/indexer
873880

874881
gen-all: gen-crds gen-go-types run-scaffolder
875882

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ require (
9595
github.com/x448/float16 v0.8.4 // indirect
9696
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
9797
github.com/yudai/pp v2.0.1+incompatible // indirect
98+
go.mongodb.org/atlas-sdk/v20250312008 v20250312008.0.0 // indirect
9899
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
99100
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect
100101
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
361361
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
362362
go.mongodb.org/atlas-sdk/v20250312006 v20250312006.1.0 h1:PcVxslw4G7/I9SbUi5y81i4YZnL1dKRnGpeHVyNSTh4=
363363
go.mongodb.org/atlas-sdk/v20250312006 v20250312006.1.0/go.mod h1:UZYSaCimjGs3j+wMwgHSKUSIvoJXzmy/xrer0t5TLgo=
364+
go.mongodb.org/atlas-sdk/v20250312008 v20250312008.0.0 h1:Pzrb2bPXtkw1vDTiFxovZyYD4BIA4l0o6c2/HBqxe0I=
365+
go.mongodb.org/atlas-sdk/v20250312008 v20250312008.0.0/go.mod h1:o1ExR4zmunAhRHXF5hlkVUNoJNkmyQ9vRScDGahstyQ=
364366
go.mongodb.org/mongo-driver v1.17.6 h1:87JUG1wZfWsr6rIz3ZmpH90rL5tea7O3IHuSwHUpsss=
365367
go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
366368
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=

tools/toolbox/go.mod

Lines changed: 78 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,56 @@ module toolbox
22

33
go 1.25.3
44

5-
tool github.com/daixiang0/gci
6-
75
tool (
86
fybrik.io/crdoc
97
github.com/crd2go/crd2go/cmd/crd2go
8+
github.com/daixiang0/gci
9+
github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd
10+
github.com/mongodb/mongodb-atlas-kubernetes/tools/scaffolder/cmd/scaffolder
1011
github.com/vektra/mockery/v2
1112
)
1213

1314
require (
15+
cel.dev/expr v0.24.0 // indirect
1416
dario.cat/mergo v1.0.1 // indirect
1517
fybrik.io/crdoc v0.6.4 // indirect
1618
github.com/Masterminds/goutils v1.1.1 // indirect
1719
github.com/Masterminds/semver/v3 v3.4.0 // indirect
1820
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
21+
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
22+
github.com/beorn7/perks v1.0.1 // indirect
23+
github.com/blang/semver/v4 v4.0.0 // indirect
24+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
25+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
1926
github.com/chigopher/pathlib v0.19.1 // indirect
2027
github.com/crd2go/crd2go v0.0.0-20251111142436-d5d083fc9afb // indirect
2128
github.com/daixiang0/gci v0.13.7 // indirect
2229
github.com/dave/jennifer v1.7.1 // indirect
30+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
31+
github.com/felixge/httpsnoop v1.0.4 // indirect
2332
github.com/fsnotify/fsnotify v1.9.0 // indirect
2433
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
34+
github.com/getkin/kin-openapi v0.131.0 // indirect
2535
github.com/go-logr/logr v1.4.3 // indirect
36+
github.com/go-logr/stdr v1.2.2 // indirect
37+
github.com/go-openapi/jsonpointer v0.21.2 // indirect
38+
github.com/go-openapi/jsonreference v0.20.5 // indirect
39+
github.com/go-openapi/swag v0.23.1 // indirect
2640
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
41+
github.com/goccy/go-yaml v1.18.0 // indirect
2742
github.com/gogo/protobuf v1.3.2 // indirect
43+
github.com/google/cel-go v0.26.0 // indirect
44+
github.com/google/gnostic-models v0.7.0 // indirect
2845
github.com/google/uuid v1.6.0 // indirect
46+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
2947
github.com/hexops/gotextdiff v1.0.3 // indirect
3048
github.com/huandu/xstrings v1.5.0 // indirect
3149
github.com/iancoleman/strcase v0.3.0 // indirect
3250
github.com/inconshreveable/mousetrap v1.1.0 // indirect
3351
github.com/jinzhu/copier v0.4.0 // indirect
52+
github.com/josharian/intern v1.0.0 // indirect
3453
github.com/json-iterator/go v1.1.12 // indirect
54+
github.com/mailru/easyjson v0.9.1 // indirect
3555
github.com/mattn/go-colorable v0.1.14 // indirect
3656
github.com/mattn/go-isatty v0.0.20 // indirect
3757
github.com/mitchellh/copystructure v1.2.0 // indirect
@@ -40,7 +60,21 @@ require (
4060
github.com/mitchellh/reflectwalk v1.0.2 // indirect
4161
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4262
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
63+
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
64+
github.com/mongodb-forks/digest v1.1.0 // indirect
65+
github.com/mongodb/mongodb-atlas-kubernetes/tools/openapi2crd v0.0.0-20251112134736-16000f7c00ae // indirect
66+
github.com/mongodb/mongodb-atlas-kubernetes/tools/scaffolder v0.0.0-20251112145103-f895a2491477 // indirect
67+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
68+
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect
69+
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect
4370
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
71+
github.com/perimeterx/marshmallow v1.1.5 // indirect
72+
github.com/pkg/errors v0.9.1 // indirect
73+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
74+
github.com/prometheus/client_golang v1.22.0 // indirect
75+
github.com/prometheus/client_model v0.6.2 // indirect
76+
github.com/prometheus/common v0.62.0 // indirect
77+
github.com/prometheus/procfs v0.15.1 // indirect
4478
github.com/rs/zerolog v1.33.0 // indirect
4579
github.com/sagikazarmark/locafero v0.7.0 // indirect
4680
github.com/shopspring/decimal v1.4.0 // indirect
@@ -50,31 +84,58 @@ require (
5084
github.com/spf13/cast v1.7.1 // indirect
5185
github.com/spf13/cobra v1.10.1 // indirect
5286
github.com/spf13/pflag v1.0.10 // indirect
53-
github.com/spf13/viper v1.20.0 // indirect
87+
github.com/spf13/viper v1.20.1 // indirect
88+
github.com/stoewer/go-strcase v1.3.1 // indirect
89+
github.com/stretchr/objx v0.5.2 // indirect
90+
github.com/stretchr/testify v1.11.1 // indirect
5491
github.com/subosito/gotenv v1.6.0 // indirect
5592
github.com/vektra/mockery/v2 v2.53.5 // indirect
5693
github.com/x448/float16 v0.8.4 // indirect
94+
go.mongodb.org/atlas-sdk/v20250312005 v20250312005.0.0 // indirect
95+
go.mongodb.org/atlas-sdk/v20250312006 v20250312006.1.0 // indirect
96+
go.mongodb.org/atlas-sdk/v20250312008 v20250312008.0.0 // indirect
97+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
98+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
99+
go.opentelemetry.io/otel v1.35.0 // indirect
100+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect
101+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect
102+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
103+
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
104+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
105+
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
57106
go.uber.org/multierr v1.11.0 // indirect
58107
go.uber.org/zap v1.27.0 // indirect
59-
go.yaml.in/yaml/v2 v2.4.2 // indirect
60-
golang.org/x/crypto v0.42.0 // indirect
61-
golang.org/x/mod v0.28.0 // indirect
62-
golang.org/x/net v0.44.0 // indirect
108+
go.yaml.in/yaml/v2 v2.4.3 // indirect
109+
go.yaml.in/yaml/v3 v3.0.4 // indirect
110+
golang.org/x/crypto v0.43.0 // indirect
111+
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
112+
golang.org/x/mod v0.29.0 // indirect
113+
golang.org/x/net v0.46.0 // indirect
114+
golang.org/x/oauth2 v0.31.0 // indirect
63115
golang.org/x/sync v0.17.0 // indirect
64-
golang.org/x/sys v0.36.0 // indirect
65-
golang.org/x/term v0.35.0 // indirect
66-
golang.org/x/text v0.29.0 // indirect
67-
golang.org/x/tools v0.37.0 // indirect
116+
golang.org/x/sys v0.37.0 // indirect
117+
golang.org/x/term v0.36.0 // indirect
118+
golang.org/x/text v0.30.0 // indirect
119+
golang.org/x/time v0.9.0 // indirect
120+
golang.org/x/tools v0.38.0 // indirect
121+
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
122+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
123+
google.golang.org/grpc v1.72.1 // indirect
124+
google.golang.org/protobuf v1.36.10 // indirect
68125
gopkg.in/inf.v0 v0.9.1 // indirect
69126
gopkg.in/yaml.v2 v2.4.0 // indirect
70127
gopkg.in/yaml.v3 v3.0.1 // indirect
71-
k8s.io/api v0.34.0 // indirect
72-
k8s.io/apiextensions-apiserver v0.34.0 // indirect
73-
k8s.io/apimachinery v0.34.0 // indirect
74-
k8s.io/client-go v0.34.0 // indirect
128+
k8s.io/api v0.34.1 // indirect
129+
k8s.io/apiextensions-apiserver v0.34.1 // indirect
130+
k8s.io/apimachinery v0.34.1 // indirect
131+
k8s.io/apiserver v0.34.1 // indirect
132+
k8s.io/client-go v0.34.1 // indirect
133+
k8s.io/component-base v0.34.1 // indirect
75134
k8s.io/klog/v2 v2.130.1 // indirect
76-
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
77-
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
135+
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
136+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
137+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.3 // indirect
138+
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
78139
sigs.k8s.io/randfill v1.0.0 // indirect
79140
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
80141
sigs.k8s.io/yaml v1.6.0 // indirect

0 commit comments

Comments
 (0)