@@ -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 : hack/Dockerfile.in hack/gen-dockerfile.sh
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