Skip to content

Commit 45ee5d2

Browse files
authored
Merge pull request #7 from Electronic-Waste/feat/codegen
feat: Provide the client-go library for the Tenant and Warehouse.
2 parents a7d5850 + f8410b5 commit 45ee5d2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+3723
-21
lines changed

Makefile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,13 @@ help: ## Display this help.
4545

4646
.PHONY: manifests
4747
manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
48-
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
48+
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." \
49+
output:crd:artifacts:config=config/crd/bases
4950

5051
.PHONY: generate
51-
generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
52+
generate: controller-gen go-mod-tidy manifests ## Generate client and code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
5253
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
54+
hack/update-codegen.sh
5355

5456
.PHONY: fmt
5557
fmt: ## Run go fmt against code.
@@ -180,6 +182,10 @@ kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary.
180182
$(KUSTOMIZE): $(LOCALBIN)
181183
$(call go-install-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/v5,$(KUSTOMIZE_VERSION))
182184

185+
.PHONY: go-mod-tidy
186+
go-mod-tidy:
187+
go mod tidy
188+
183189
.PHONY: controller-gen
184190
controller-gen: $(CONTROLLER_GEN) ## Download controller-gen locally if necessary.
185191
$(CONTROLLER_GEN): $(LOCALBIN)

PROJECT

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@
22
# This file is used to track the info used to scaffold your project
33
# and allow the plugins properly work.
44
# More info: https://book.kubebuilder.io/reference/project-config.html
5-
domain: databendlabs.io
5+
domain: github.com/databendcloud
66
layout:
77
- go.kubebuilder.io/v4
88
projectName: databend-operator
9-
repo: databendlabs.io/databend-operator
9+
repo: github.com/databendcloud/databend-operator
1010
resources:
1111
- api:
1212
crdVersion: v1
1313
namespaced: true
1414
controller: true
15-
domain: databendlabs.io
15+
domain: github.com/databendcloud
1616
kind: Warehouse
17-
path: databendlabs.io/databend-operator/api/v1alpha1
17+
path: github.com/databendcloud/databend-operator/apis/databend.io/v1alpha1
1818
version: v1alpha1
1919
- api:
2020
crdVersion: v1
2121
namespaced: true
2222
controller: true
23-
domain: databendlabs.io
23+
domain: github.com/databendcloud
2424
kind: Tenant
25-
path: databendlabs.io/databend-operator/api/v1alpha1
25+
path: github.com/databendcloud/databend-operator/apis/databend.io/v1alpha1
2626
version: v1alpha1
2727
version: "3"

cmd/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ import (
3535
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3636
"sigs.k8s.io/controller-runtime/pkg/webhook"
3737

38-
databendv1alpha1 "databendlabs.io/databend-operator/pkg/api/v1alpha1"
39-
tenant "databendlabs.io/databend-operator/pkg/controller/tenant"
40-
warehouse "databendlabs.io/databend-operator/pkg/controller/warehouse"
38+
databendv1alpha1 "github.com/databendcloud/databend-operator/pkg/apis/databendlabs.io/v1alpha1"
39+
tenant "github.com/databendcloud/databend-operator/pkg/controller/tenant"
40+
warehouse "github.com/databendcloud/databend-operator/pkg/controller/warehouse"
4141
// +kubebuilder:scaffold:imports
4242
)
4343

go.mod

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module databendlabs.io/databend-operator
1+
module github.com/databendcloud/databend-operator
22

33
go 1.22.0
44

@@ -8,7 +8,9 @@ require (
88
k8s.io/api v0.31.0
99
k8s.io/apimachinery v0.31.0
1010
k8s.io/client-go v0.31.0
11+
k8s.io/code-generator v0.31.0
1112
sigs.k8s.io/controller-runtime v0.19.1
13+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1
1214
)
1315

1416
require (
@@ -69,6 +71,7 @@ require (
6971
go.uber.org/multierr v1.11.0 // indirect
7072
go.uber.org/zap v1.26.0 // indirect
7173
golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
74+
golang.org/x/mod v0.17.0 // indirect
7275
golang.org/x/net v0.26.0 // indirect
7376
golang.org/x/oauth2 v0.21.0 // indirect
7477
golang.org/x/sync v0.7.0 // indirect
@@ -82,17 +85,18 @@ require (
8285
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
8386
google.golang.org/grpc v1.65.0 // indirect
8487
google.golang.org/protobuf v1.34.2 // indirect
88+
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
8589
gopkg.in/inf.v0 v0.9.1 // indirect
8690
gopkg.in/yaml.v2 v2.4.0 // indirect
8791
gopkg.in/yaml.v3 v3.0.1 // indirect
8892
k8s.io/apiextensions-apiserver v0.31.0 // indirect
8993
k8s.io/apiserver v0.31.0 // indirect
9094
k8s.io/component-base v0.31.0 // indirect
95+
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
9196
k8s.io/klog/v2 v2.130.1 // indirect
9297
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
9398
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
9499
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
95100
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
96-
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
97101
sigs.k8s.io/yaml v1.4.0 // indirect
98102
)

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6R
161161
golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
162162
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
163163
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
164+
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
165+
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
164166
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
165167
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
166168
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -231,8 +233,12 @@ k8s.io/apiserver v0.31.0 h1:p+2dgJjy+bk+B1Csz+mc2wl5gHwvNkC9QJV+w55LVrY=
231233
k8s.io/apiserver v0.31.0/go.mod h1:KI9ox5Yu902iBnnyMmy7ajonhKnkeZYJhTZ/YI+WEMk=
232234
k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8=
233235
k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
236+
k8s.io/code-generator v0.31.0 h1:w607nrMi1KeDKB3/F/J4lIoOgAwc+gV9ZKew4XRfMp8=
237+
k8s.io/code-generator v0.31.0/go.mod h1:84y4w3es8rOJOUUP1rLsIiGlO1JuEaPFXQPA9e/K6U0=
234238
k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs=
235239
k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo=
240+
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=
241+
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
236242
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
237243
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
238244
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=

hack/update-codegen.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
# This shell is used to auto generate some useful tools for k8s, such as clientset, lister, informer and so on.
4+
# We don't use this tool to generate deepcopy because kubebuilder (controller-tools) has covered that part.
5+
6+
set -o errexit
7+
set -o nounset
8+
set -o pipefail
9+
10+
CURRENT_DIR=$(dirname "${BASH_SOURCE[0]}")
11+
DATABEND_OPERATOR_ROOT=$(realpath "${CURRENT_DIR}/..")
12+
DATABEND_OPERATOR_PKG="github.com/databendcloud/databend-operator"
13+
14+
cd "$CURRENT_DIR/.."
15+
16+
# Get the code-generator binary.
17+
CODEGEN_PKG=$(go list -m -mod=readonly -f "{{.Dir}}" k8s.io/code-generator)
18+
source "${CODEGEN_PKG}/kube_codegen.sh"
19+
echo ">> Using ${CODEGEN_PKG}"
20+
21+
# Generate clients for Databend Operator v1alpha1
22+
echo "Generating clients for v1alpha1"
23+
kube::codegen::gen_client \
24+
--boilerplate "${DATABEND_OPERATOR_ROOT}/hack/boilerplate.go.txt" \
25+
--output-dir "${DATABEND_OPERATOR_ROOT}/pkg/client" \
26+
--output-pkg "${DATABEND_OPERATOR_PKG}/pkg/client" \
27+
--with-watch \
28+
--with-applyconfig \
29+
"${DATABEND_OPERATOR_ROOT}/pkg/apis"

pkg/api/v1alpha1/groupversion_info.go renamed to pkg/apis/databendlabs.io/v1alpha1/groupversion_info.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,12 @@ var (
3333

3434
// AddToScheme adds the types in this group-version to the given scheme.
3535
AddToScheme = SchemeBuilder.AddToScheme
36+
37+
// SchemeGroupVersion is group version used to register these objects.
38+
SchemeGroupVersion = GroupVersion
3639
)
40+
41+
// Resource takes an unqualified resource and returns a Group-qualified GroupResource.
42+
func Resource(resource string) schema.GroupResource {
43+
return GroupVersion.WithResource(resource).GroupResource()
44+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)