Skip to content

Commit d7d6ab8

Browse files
authored
feat: add attributed based recommender client sdk (#1213)
2 parents 00397b6 + 493d04f commit d7d6ab8

File tree

11 files changed

+1706
-2
lines changed

11 files changed

+1706
-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=apis/protos/azure/compute/v1/vmsizerecommender_http.yaml,logtostderr=true:. --grpc-gateway_opt=paths=source_relative,generate_unbound_methods=true \
327+
apis/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

0 commit comments

Comments
 (0)