WEBROOT=${K8S_WEBROOT} K8SROOT=${K8S_ROOT} K8SRELEASE=${K8S_RELEASE} # change . to _ getversion: echo $(K8SRELEASE) | sed "s/\./_/g" > b.tmp K8SVERDIR=$(shell cat b.tmp) sepversion: getversion echo $(K8SVERDIR) | sed "s/[0-9]_//g" > minor.tmp echo $(K8SVERDIR) | sed "s/_[0-9]*//g" > major.tmp MINOR_VERSION := $(shell cat minor.tmp) MAJOR_VERSION := $(shell cat major.tmp) ONE := 1 PREV_MINOR_VERSION := $(shell echo $$(( $(MINOR_VERSION) - $(ONE) ))) cleantmp: rm minor.tmp; rm major.tmp; rm b.tmp APISRC=gen-apidocs APIDST=$(WEBROOT)/static/docs/reference/generated/kubernetes-api/v$(K8SRELEASE) CLISRC=gen-kubectldocs/generators/build CLIDST=$(WEBROOT)/static/docs/reference/generated/kubectl CLISRCFONT=$(CLISRC)/node_modules/font-awesome CLIDSTFONT=$(CLIDST)/node_modules/font-awesome default: @echo "Support commands:\ncli api comp copycli copyapi updateapispec" # Set up versioned directories for new release # kubectl-command static-includes, toc.yaml createkubectldir: sepversion @echo version $(K8SVERDIR) mkdir -p $(shell pwd)/gen-kubectldocs/generators/v$(K8SVERDIR) if ! [ -f "$(shell pwd)/gen-kubectldocs/generators/v1_$(PREV_MINOR_VERSION)/config.yaml" ]; then \ cp -r $(shell pwd)/gen-kubectldocs/generators/v1_15/* $(shell pwd)/gen-kubectldocs/generators/v$(K8SVERDIR)/; \ else \ cp -r $(shell pwd)/gen-kubectldocs/generators/v1_$(PREV_MINOR_VERSION)/* $(shell pwd)/gen-kubectldocs/generators/v$(K8SVERDIR)/; \ fi # api-ref versioned dir, swagger.json, config.yaml createapidir: sepversion @echo version $(K8SVERDIR) mkdir -p $(shell pwd)/gen-apidocs/config/v$(K8SVERDIR) # config.yaml if ! [ -f "$(APISRC)/config/v1_$(MINOR_VERSION)/config.yaml" ]; then \ if [ -f "$(shell pwd)/gen-apidocs/config/v1_$(PREV_MINOR_VERSION)/config.yaml" ]; then \ cp $(shell pwd)/gen-apidocs/config/v1_$(PREV_MINOR_VERSION)/config.yaml $(APISRC)/config/v1_$(MINOR_VERSION)/config.yaml; \ echo "Using config file: $(shell pwd)/gen-apidocs/config/v1_$(PREV_MINOR_VERSION)/config.yaml"; \ else \ cp $(APISRC)/config/config.yaml $(APISRC)/config/v1_$(MINOR_VERSION)/config.yaml; \ fi \ fi # swagger.json if ! [ -f "$(APISRC)/config/v1_$(MINOR_VERSION)/swagger.json" ]; then \ cp $(K8SROOT)/api/openapi-spec/swagger.json $(APISRC)/config/v1_$(MINOR_VERSION)/swagger.json; \ fi # copy versioned files to the base config dir before generating api ref stageapifiles: createapidir cp $(APISRC)/config/v1_$(MINOR_VERSION)/config.yaml $(APISRC)/config/config.yaml cp $(APISRC)/config/v1_$(MINOR_VERSION)/swagger.json $(APISRC)/config/swagger.json # Build kubectl docs cleancli: sudo rm -f main sudo rm -rf $(shell pwd)/gen-kubectldocs/generators/includes sudo rm -rf $(shell pwd)/gen-kubectldocs/generators/build sudo rm -rf $(shell pwd)/gen-kubectldocs/generators/manifest.json cli: createkubectldir cleancli go run gen-kubectldocs/main.go --kubernetes-version v1_$(MINOR_VERSION) docker run -v $(shell pwd)/gen-kubectldocs/generators/includes:/source -v $(shell pwd)/gen-kubectldocs/generators/build:/build -v $(shell pwd)/gen-kubectldocs/generators/:/manifest pwittrock/brodocs copycli: cli cp gen-kubectldocs/generators/build/index.html $(WEBROOT)/static/docs/reference/generated/kubectl/kubectl-commands.html cp gen-kubectldocs/generators/build/navData.js $(WEBROOT)/static/docs/reference/generated/kubectl/navData.js cp $(CLISRC)/scroll.js $(CLIDST)/scroll.js cp $(CLISRC)/stylesheet.css $(CLIDST)/stylesheet.css cp $(CLISRC)/tabvisibility.js $(CLIDST)/tabvisibility.js cp $(CLISRC)/node_modules/bootstrap/dist/css/bootstrap.min.css $(CLIDST)/node_modules/bootstrap/dist/css/bootstrap.min.css cp $(CLISRC)/node_modules/highlight.js/styles/default.css $(CLIDST)/node_modules/highlight.js/styles/default.css cp $(CLISRC)/node_modules/jquery.scrollto/jquery.scrollTo.min.js $(CLIDST)/node_modules/jquery.scrollto/jquery.scrollTo.min.js cp $(CLISRC)/node_modules/jquery/dist/jquery.min.js $(CLIDST)/node_modules/jquery/dist/jquery.min.js cp $(CLISRCFONT)/css/font-awesome.min.css $(CLIDSTFONT)/css/font-awesome.min.css # Build kube component,tool docs cleancomp: rm -rf $(shell pwd)/gen-compdocs/build comp: cleancomp mkdir -p gen-compdocs/build go run gen-compdocs/main.go gen-compdocs/build kube-apiserver go run gen-compdocs/main.go gen-compdocs/build kube-controller-manager go run gen-compdocs/main.go gen-compdocs/build cloud-controller-manager go run gen-compdocs/main.go gen-compdocs/build kube-scheduler go run gen-compdocs/main.go gen-compdocs/build kubelet go run gen-compdocs/main.go gen-compdocs/build kube-proxy go run gen-compdocs/main.go gen-compdocs/build kubeadm go run gen-compdocs/main.go gen-compdocs/build kubectl # Build api docs updateapispec: cp $(K8SROOT)/api/openapi-spec/swagger.json gen-apidocs/config/swagger.json api: cleanapi stageapifiles go run gen-apidocs/main.go --work-dir=gen-apidocs --munge-groups=false cleanapi: rm -rf $(shell pwd)/gen-apidocs/build copyapi: api mkdir -p $(APIDST) cp $(APISRC)/build/index.html $(APIDST)/index.html # copy scroll.js, jquery.scrollTo.min.js and the new navData.js mkdir -p $(APIDST)/js cp $(APISRC)/build/navData.js $(APIDST)/js/ cp $(APISRC)/static/js/* $(APIDST)/js/ # copy stylesheet.css, bootstrap.min.css, font-awesome.min.css mkdir -p $(APIDST)/css cp $(APISRC)/static/css/* $(APIDST)/css/ # copy fonts data mkdir -p $(APIDST)/fonts cp $(APISRC)/static/fonts/* $(APIDST)/fonts/