kuma
1DOCS_PROTOS ?= api/mesh/v1alpha1/*.proto
2DOCS_CP_CONFIG ?= pkg/config/app/kuma-cp/kuma-cp.defaults.yaml
3
4.PHONY: clean/docs
5clean/docs:
6rm -rf docs/generated
7
8.PHONY: docs
9docs: helm-docs docs/generated/raw docs/generated/openapi.yaml ## Dev: Generate local documentation
10
11.PHONY: helm-docs
12helm-docs: ## Dev: Runs helm-docs generator
13$(HELM_DOCS) -s="file" --chart-search-root=./deployments/charts
14
15.PHONY: docs/generated/raw
16docs/generated/raw:
17mkdir -p $@
18cp $(DOCS_CP_CONFIG) $@/kuma-cp.yaml
19cp $(HELM_VALUES_FILE) $@/helm-values.yaml
20
21mkdir -p $@/crds
22for f in $$(find deployments/charts -name '*.yaml' | grep '/crds/'); do cp $$f $@/crds/; done
23
24mkdir -p $@/protos
25$(PROTOC) \
26--jsonschema_out=$@/protos \
27--plugin=protoc-gen-jsonschema=$(PROTOC_GEN_JSONSCHEMA) \
28$(DOCS_PROTOS)
29
30OAPI_TMP_DIR ?= $(BUILD_DIR)/oapitmp
31API_DIRS="$(TOP)/api/openapi/specs:base"
32
33.PHONY: docs/generated/openapi.yaml
34docs/generated/openapi.yaml:
35rm -rf $(OAPI_TMP_DIR)
36mkdir -p $(dir $@)
37mkdir -p $(OAPI_TMP_DIR)/policies
38for i in $(API_DIRS); do mkdir -p $(OAPI_TMP_DIR)/$$(echo $${i} | cut -d: -f2); cp -R $$(echo $${i} | cut -d: -f1) $(OAPI_TMP_DIR)/$$(echo $${i} | cut -d: -f2); done
39for i in $$( find $(POLICIES_DIR) -name '*.yaml' | grep '/api/'); do DIR=$(OAPI_TMP_DIR)/policies/$$(echo $${i} | awk -F/ '{print $$(NF-3)}'); mkdir -p $${DIR}; cp $${i} $${DIR}/$$(echo $${i} | awk -F/ '{print $$(NF)}'); done
40
41ifdef BASE_API
42docker run --rm -v $$PWD/$(dir $(BASE_API)):/base -v $(OAPI_TMP_DIR):/specs ghcr.io/kumahq/openapi-tool:v0.8.0 generate /base/$(notdir $(BASE_API)) '/specs/**/*.yaml' '!/specs/kuma/**' > $@
43else
44docker run --rm -v $(OAPI_TMP_DIR):/specs ghcr.io/kumahq/openapi-tool:v0.8.0 generate '/specs/**/*.yaml' > $@
45endif
46