@@ -48,9 +48,14 @@ SIDECAR_TAG ?= cosi-provisioner-sidecar:latest
4848# #@ Development
4949
5050.PHONY : generate
51- generate : controller/Dockerfile sidecar/Dockerfile # # Generate files
51+ generate : crd-ref-docs  controller/Dockerfile sidecar/Dockerfile # # Generate files
5252	$(MAKE )  -C client crds
5353	$(MAKE )  -C proto generate
54+ 	$(CRD_REF_DOCS )  \ 
55+ 		--config=./docs/.crd-ref-docs.yaml \ 
56+ 		--source-path=./client/apis \ 
57+ 		--renderer=markdown \ 
58+ 		--output-path=./docs/src/api/
5459% /Dockerfile
5560	hack/gen-dockerfile.sh $*  >  " $@ " 
5661
@@ -107,6 +112,16 @@ build.controller: controller/Dockerfile ## Build only the controller container i
107112build.sidecar : sidecar/Dockerfile # # Build only the sidecar container image
108113	$(DOCKER )  build --file sidecar/Dockerfile --platform $(PLATFORM )  $(BUILD_ARGS )  --tag $(SIDECAR_TAG )  . 
109114
115+ .PHONY : build-docs
116+ build-docs : generate mdbook
117+ 	cd  docs;  $(MDBOOK )  build
118+ 
119+ MDBOOK_PORT  ?= 3000
120+ 
121+ .PHONY : serve-docs
122+ serve-docs : generate mdbook build-docs
123+ 	cd  docs;  $(MDBOOK )  serve --port $(MDBOOK_PORT ) 
124+ 
110125.PHONY : clean
111126clean : # # Clean build environment
112127	$(MAKE )  -C proto clean
@@ -121,11 +136,11 @@ clobber: ## Clean build environment and cached tools
121136
122137.PHONY : cluster
123138cluster : kind ctlptl # # Create Kind cluster and local registry
124- 	$(CTLPTL )  apply -f ctlptl.yaml
139+ 	PATH= $( TOOLBIN ) : $( PATH )   $(CTLPTL )  apply -f ctlptl.yaml
125140
126141.PHONY : cluster-reset
127142cluster-reset : kind ctlptl # # Delete Kind cluster
128- 	$(CTLPTL )  delete -f ctlptl.yaml
143+ 	PATH= $( TOOLBIN ) : $( PATH )   $(CTLPTL )  delete -f ctlptl.yaml
129144
130145.PHONY : deploy
131146deploy : kustomize # # Deploy controller to the K8s cluster specified in ~/.kube/config
@@ -145,44 +160,58 @@ $(TOOLBIN):
145160	mkdir -p $(TOOLBIN ) 
146161
147162#  Tool Binaries
148- CHAINSAW  ?= $(TOOLBIN ) /chainsaw
149- CTLPTL  ?= $(TOOLBIN ) /ctlptl
163+ CHAINSAW       ?= $(TOOLBIN ) /chainsaw
164+ CRD_REF_DOCS   ?= $(TOOLBIN ) /crd-ref-docs
165+ CTLPTL         ?= $(TOOLBIN ) /ctlptl
150166GOLANGCI_LINT  ?= $(TOOLBIN ) /golangci-lint
151- KIND  ?= $(TOOLBIN ) /kind
152- KUSTOMIZE  ?= $(TOOLBIN ) /kustomize
167+ KIND           ?= $(TOOLBIN ) /kind
168+ KUSTOMIZE      ?= $(TOOLBIN ) /kustomize
169+ MDBOOK         ?= $(TOOLBIN ) /mdbook
153170
154171#  Tool Versions
155- CHAINSAW_VERSION  ?= $(shell  grep 'github.com/kyverno/chainsaw ' ./hack/tools/go.mod | cut -d ' ' -f 2) 
156- CTLPTL_VERSION  ?= $(shell  grep 'github.com/tilt-dev/ctlptl ' ./hack/tools/go.mod | cut -d ' ' -f 2) 
157- GOLANGCI_LINT_VERSION  ?= $(shell  grep 'github.com/golangci/golangci-lint ' ./hack/tools/go.mod | cut -d ' ' -f 2) 
158- KIND_VERSION  ?= $(shell  grep 'sigs.k8s.io/kind ' ./hack/tools/go.mod | cut -d ' ' -f 2) 
159- KUSTOMIZE_VERSION  ?= $(shell  grep 'sigs.k8s.io/kustomize/kustomize/v5 ' ./hack/tools/go.mod | cut -d ' ' -f 2) 
172+ CHAINSAW_VERSION       ?= v0.2.12
173+ CRD_REF_DOCS_VERSION   ?= v0.1.0
174+ CTLPTL_VERSION         ?= v0.8.39
175+ GOLANGCI_LINT_VERSION  ?= v1.64.7
176+ KIND_VERSION           ?= v0.27.0
177+ KUSTOMIZE_VERSION      ?= v5.6.0
178+ MDBOOK_VERSION         ?= v0.4.47
160179
161180.PHONY : chainsaw
162- chainsaw : $(CHAINSAW )$(CHAINSAW_VERSION ) 
163- $(CHAINSAW )$(CHAINSAW_VERSION ) $(TOOLBIN ) 
181+ chainsaw : $(CHAINSAW ) - $(CHAINSAW_VERSION ) 
182+ $(CHAINSAW ) - $(CHAINSAW_VERSION ) $(TOOLBIN ) 
164183	$(call  go-install-tool,$(CHAINSAW ) ,github.com/kyverno/chainsaw,$(CHAINSAW_VERSION ) ) 
165184
185+ .PHONY : crd-ref-docs
186+ crd-ref-docs : $(CRD_REF_DOCS ) -$(CRD_REF_DOCS_VERSION ) 
187+ $(CRD_REF_DOCS ) -$(CRD_REF_DOCS_VERSION ) $(TOOLBIN ) 
188+ 	$(call  go-install-tool,$(CRD_REF_DOCS ) ,github.com/elastic/crd-ref-docs,$(CRD_REF_DOCS_VERSION ) ) 
189+ 
166190.PHONY : ctlptl
167- ctlptl : $(CTLPTL )$(CTLPTL_VERSION ) 
168- $(CTLPTL )$(CTLPTL_VERSION ) $(TOOLBIN ) 
191+ ctlptl : $(CTLPTL ) - $(CTLPTL_VERSION ) 
192+ $(CTLPTL ) - $(CTLPTL_VERSION ) $(TOOLBIN ) 
169193	$(call  go-install-tool,$(CTLPTL ) ,github.com/tilt-dev/ctlptl/cmd/ctlptl,$(CTLPTL_VERSION ) ) 
170194
171195.PHONY : golangci-lint
172- golangci-lint : $(GOLANGCI_LINT )$(GOLANGCI_LINT_VERSION ) 
173- $(GOLANGCI_LINT )$(GOLANGCI_LINT_VERSION ) $(TOOLBIN ) 
174- 	$( call  go-install-tool, $( GOLANGCI_LINT ) ,github.com/golangci/golangci-lint/cmd/ golangci-lint, $( GOLANGCI_LINT_VERSION ) 
196+ golangci-lint : $(GOLANGCI_LINT ) - $(GOLANGCI_LINT_VERSION ) 
197+ $(GOLANGCI_LINT ) - $(GOLANGCI_LINT_VERSION ) $(TOOLBIN ) 
198+ 	./hack/tools/install- golangci-lint.sh  $( TOOLBIN )   $( GOLANGCI_LINT )   $( GOLANGCI_LINT_VERSION )
175199
176200.PHONY : kind
177- kind : $(KIND )$(KIND_VERSION ) 
178- $(KIND )$(KIND_VERSION ) $(TOOLBIN ) 
201+ kind : $(KIND ) - $(KIND_VERSION ) 
202+ $(KIND ) - $(KIND_VERSION ) $(TOOLBIN ) 
179203	$(call  go-install-tool,$(KIND ) ,sigs.k8s.io/kind,$(KIND_VERSION ) ) 
180204
181205.PHONY : kustomize
182- kustomize : $(KUSTOMIZE )$(KUSTOMIZE_VERSION ) 
183- $(KUSTOMIZE )$(KUSTOMIZE_VERSION ) $(TOOLBIN ) 
206+ kustomize : $(KUSTOMIZE ) - $(KUSTOMIZE_VERSION ) 
207+ $(KUSTOMIZE ) - $(KUSTOMIZE_VERSION ) $(TOOLBIN ) 
184208	$(call  go-install-tool,$(KUSTOMIZE ) ,sigs.k8s.io/kustomize/kustomize/v5,$(KUSTOMIZE_VERSION ) ) 
185209
210+ .PHONY : mdbook
211+ mdbook : $(MDBOOK ) -$(MDBOOK_VERSION ) 
212+ $(MDBOOK ) -$(MDBOOK_VERSION ) $(TOOLBIN ) 
213+ 	./hack/tools/install-mdbook.sh $(MDBOOK )  $(MDBOOK_VERSION ) 
214+ 
186215#  go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
187216#  $1 - target path with name of binary
188217#  $2 - package url which can be installed
0 commit comments