Skip to content

Commit 719293c

Browse files
committed
add capacity client sdk
1 parent 42ebac7 commit 719293c

File tree

10 files changed

+1820
-2
lines changed

10 files changed

+1820
-2
lines changed

Makefile

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,22 @@ ENVTEST_VER = v0.0.0-20240317073005-bd9ea79e8d18
8383
ENVTEST_BIN := setup-envtest
8484
ENVTEST := $(abspath $(TOOLS_BIN_DIR)/$(ENVTEST_BIN)-$(ENVTEST_VER))
8585

86+
PROTOC_GEN_GO_VER := v1.36.10
87+
PROTOC_GEN_GO_BIN := protoc-gen-go
88+
PROTOC_GEN_GO := $(abspath $(TOOLS_BIN_DIR)/$(PROTOC_GEN_GO_BIN)-$(PROTOC_GEN_GO_VER))
89+
90+
PROTOC_GEN_GO_GRPC_VER := v1.5.1
91+
PROTOC_GEN_GO_GRPC_BIN := protoc-gen-go-grpc
92+
PROTOC_GEN_GO_GRPC := $(abspath $(TOOLS_BIN_DIR)/$(PROTOC_GEN_GO_GRPC_BIN)-$(PROTOC_GEN_GO_GRPC_VER))
93+
94+
PROTOC_GEN_GRPC_GATEWAY_VER := v2.27.3
95+
PROTOC_GEN_GRPC_GATEWAY_BIN := protoc-gen-grpc-gateway
96+
PROTOC_GEN_GRPC_GATEWAY := $(abspath $(TOOLS_BIN_DIR)/$(PROTOC_GEN_GRPC_GATEWAY_BIN)-$(PROTOC_GEN_GRPC_GATEWAY_VER))
97+
98+
PROTOC_VER := 28.0
99+
PROTOC_BIN := protoc
100+
PROTOC := $(abspath $(TOOLS_BIN_DIR)/$(PROTOC_BIN)-$(PROTOC_VER))
101+
86102
# Scripts
87103
GO_INSTALL := ./hack/go-install.sh
88104

@@ -108,6 +124,23 @@ $(GOIMPORTS):
108124
$(ENVTEST):
109125
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) sigs.k8s.io/controller-runtime/tools/setup-envtest $(ENVTEST_BIN) $(ENVTEST_VER)
110126

127+
# PROTOC_GEN_GO
128+
$(PROTOC_GEN_GO):
129+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) google.golang.org/protobuf/cmd/protoc-gen-go $(PROTOC_GEN_GO_BIN) $(PROTOC_GEN_GO_VER)
130+
131+
# PROTOC_GEN_GO_GRPC
132+
$(PROTOC_GEN_GO_GRPC):
133+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) google.golang.org/grpc/cmd/protoc-gen-go-grpc $(PROTOC_GEN_GO_GRPC_BIN) $(PROTOC_GEN_GO_GRPC_VER)
134+
135+
# PROTOC_GEN_GRPC_GATEWAY
136+
$(PROTOC_GEN_GRPC_GATEWAY):
137+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway $(PROTOC_GEN_GRPC_GATEWAY_BIN) $(PROTOC_GEN_GRPC_GATEWAY_VER)
138+
139+
# PROTOC
140+
$(PROTOC):
141+
curl -L -o $(TOOLS_BIN_DIR)/protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v$(PROTOC_VER)/protoc-$(PROTOC_VER)-linux-x86_64.zip && \
142+
unzip $(TOOLS_BIN_DIR)/protoc.zip -d $(TOOLS_BIN_DIR)/protoc_tmp && mv $(TOOLS_BIN_DIR)/protoc_tmp/bin/protoc $(PROTOC) && rm -rf $(TOOLS_BIN_DIR)/protoc.zip $(TOOLS_BIN_DIR)/protoc_tmp
143+
111144
.PHONY: help
112145
help: ## Display this help.
113146
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
@@ -285,8 +318,16 @@ manifests: $(CONTROLLER_GEN)
285318
$(CONTROLLER_GEN) \
286319
$(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/..." output:crd:artifacts:config=config/crd/bases
287320

321+
# Generate protobuf code
322+
.PHONY: protos
323+
protos: $(PROTOC_GEN_GO) $(PROTOC_GEN_GO_GRPC) $(PROTOC_GEN_GRPC_GATEWAY) $(PROTOC)
324+
PATH=$$PATH:$(TOOLS_BIN_DIR) $(PROTOC) --go_out=. --go_opt=paths=source_relative \
325+
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
326+
--grpc-gateway_out=grpc_api_configuration=pkg/protos/azure/compute/v1/vmsizerecommender_http.yaml,logtostderr=true:. --grpc-gateway_opt=paths=source_relative,generate_unbound_methods=true \
327+
pkg/protos/azure/compute/v1/vmsizerecommender.proto
328+
288329
# Generate code
289-
generate: $(CONTROLLER_GEN)
330+
generate: $(CONTROLLER_GEN) protos
290331
$(CONTROLLER_GEN) \
291332
object:headerFile="hack/boilerplate.go.txt" paths="./..."
292333

go.mod

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ require (
1010
github.com/evanphx/json-patch/v5 v5.9.11
1111
github.com/go-logr/logr v1.4.3
1212
github.com/google/go-cmp v0.7.0
13+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0
1314
github.com/onsi/ginkgo/v2 v2.23.4
1415
github.com/onsi/gomega v1.37.0
1516
github.com/prometheus/client_golang v1.22.0
@@ -26,6 +27,8 @@ require (
2627
golang.org/x/sync v0.15.0
2728
golang.org/x/time v0.11.0
2829
gomodules.xyz/jsonpatch/v2 v2.4.0
30+
google.golang.org/grpc v1.70.0
31+
google.golang.org/protobuf v1.36.6
2932
k8s.io/api v0.32.3
3033
k8s.io/apiextensions-apiserver v0.32.3
3134
k8s.io/apimachinery v0.32.3
@@ -112,7 +115,8 @@ require (
112115
golang.org/x/term v0.32.0 // indirect
113116
golang.org/x/text v0.25.0 // indirect
114117
golang.org/x/tools v0.31.0 // indirect
115-
google.golang.org/protobuf v1.36.6 // indirect
118+
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a // indirect
119+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
116120
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
117121
gopkg.in/inf.v0 v0.9.1 // indirect
118122
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J
179179
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
180180
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
181181
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
182+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
183+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
182184
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
183185
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
184186
github.com/jongio/azidext/go/azidext v0.5.0 h1:uPInXD4NZ3J0k79FPwIA0YXknFn+WcqZqSgs3/jPgvQ=
@@ -358,6 +360,10 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
358360
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
359361
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
360362
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
363+
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a h1:OAiGFfOiA0v9MRYsSidp3ubZaBnteRUyn3xB2ZQ5G/E=
364+
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a/go.mod h1:jehYqy3+AhJU9ve55aNOaSml7wUXjF9x6z2LcCfpAhY=
365+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o=
366+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
361367
google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
362368
google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
363369
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=

0 commit comments

Comments
 (0)