diff --git a/mk/dependencies/deps.lock b/mk/dependencies/deps.lock index b2d01ef89505..72120d2446c3 100644 --- a/mk/dependencies/deps.lock +++ b/mk/dependencies/deps.lock @@ -1 +1 @@ -3bcba4e63538e069f7d03297dff78125582730dc +69f69317d27266bf487ee42fdf83f52880d614f2 diff --git a/mk/dependencies/go-deps.sh b/mk/dependencies/go-deps.sh index f50dab8e6791..a4f398a02b17 100755 --- a/mk/dependencies/go-deps.sh +++ b/mk/dependencies/go-deps.sh @@ -19,7 +19,9 @@ for i in \ sigs.k8s.io/controller-tools/cmd/controller-gen@$(go list -f '{{.Version}}' -m sigs.k8s.io/controller-tools) \ github.com/mikefarah/yq/v4@v4.30.8 \ github.com/norwoodj/helm-docs/cmd/helm-docs@v1.11.0 \ - golang.stackrox.io/kube-linter/cmd/kube-linter@v0.0.0-20220513142942-846f273ed465; do + golang.stackrox.io/kube-linter/cmd/kube-linter@v0.0.0-20220513142942-846f273ed465 \ + github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.15.0 \ + ; do echo "install go dep: ${i}" GOBIN=${OUTPUT_BIN_DIR} go install "${i}" & done diff --git a/mk/generate.mk b/mk/generate.mk index 15a30ce8f7c0..7a20c4451f99 100644 --- a/mk/generate.mk +++ b/mk/generate.mk @@ -26,7 +26,7 @@ clean/protos: ## Dev: Remove auto-generated Protobuf files find $(PROTO_DIRS) -name '*.pb.validate.go' -delete .PHONY: generate -generate: generate/protos $(if $(findstring ./api,$(PROTO_DIRS)),resources/type generate/builtin-crds) generate/policies $(EXTRA_GENERATE_DEPS_TARGETS) ## Dev: Run all code generation +generate: generate/protos $(if $(findstring ./api,$(PROTO_DIRS)),resources/type generate/builtin-crds) generate/policies generate/oas $(EXTRA_GENERATE_DEPS_TARGETS) ## Dev: Run all code generation $(POLICY_GEN): cd $(KUMA_DIR) && go build -o ./build/tools-${GOOS}-${GOARCH}/policy-gen/generator ./tools/policy-gen/generator/main.go @@ -94,8 +94,13 @@ generate/kumapolicy-gen/%: $(POLICY_GEN) generate/dirs/% $(POLICY_GEN) plugin-file --plugin-dir $(POLICIES_DIR)/$* --gomodule $(GO_MODULE) && \ $(POLICY_GEN) helpers --plugin-dir $(POLICIES_DIR)/$* --gomodule $(GO_MODULE) +endpoints = $(foreach dir,$(shell find api/openapi/specs -type f | sort),$(basename $(dir))) + generate/oas: - $(POLICY_GEN) k8s-resource --plugin-dir pkg/api-server/specs/types/$* --gomodule $(GO_MODULE) + for endpoint in $(endpoints); do \ + DEST=$${endpoint#"api/openapi/specs"}; \ + PATH=$(CI_TOOLS_BIN_DIR):$$PATH oapi-codegen -config api/openapi/openapi.cfg.yaml -o api/openapi/types/$$(dirname $${DEST}})/zz_generated.$$(basename $${DEST}).go $${endpoint}.yaml; \ + done generate/dirs/%: for version in $(foreach dir,$(wildcard $(POLICIES_DIR)/$*/api/*),$(notdir $(dir))); do \