有时候从github上面将k8s的源码下载下来进行查看的时候,发现报错,没有openapi.GetOpenAPIDefinitions
的方法。这个是因为down下来没有去做make操作。在Makefile中定义了一系列的generated_files、生成二进制文件的脚本。如果不嫌弃麻烦,可以直接使用make将所有的都生成一次。如果嫌麻烦,可以使用make generated_files
只生成相应的源码文件,如下所示:
➜ kubernetes-1.21.2 make generated_files
+++ [0709 09:34:19] Building go targets for darwin/amd64:
./vendor/k8s.io/code-generator/cmd/prerelease-lifecycle-gen
Generating prerelease lifecycle code for 27 targets
+++ [0709 09:34:24] Building go targets for darwin/amd64:
./vendor/k8s.io/code-generator/cmd/deepcopy-gen
Generating deepcopy code for 227 targets
+++ [0709 09:34:34] Building go targets for darwin/amd64:
./vendor/k8s.io/code-generator/cmd/defaulter-gen
Generating defaulter code for 89 targets
+++ [0709 09:34:45] Building go targets for darwin/amd64:
./vendor/k8s.io/code-generator/cmd/conversion-gen
Generating conversion code for 124 targets
+++ [0709 09:35:08] Building go targets for darwin/amd64:
./vendor/k8s.io/kube-openapi/cmd/openapi-gen
Generating openapi code for KUBE
Generating openapi code for AGGREGATOR
Generating openapi code for APIEXTENSIONS
Generating openapi code for CODEGEN
Generating openapi code for SAMPLEAPISERVER
+++ [0709 09:35:20] Building go targets for darwin/amd64:
./vendor/github.com/go-bindata/go-bindata/go-bindata
再查看相应的目录,发现对应的源码文件已经生成。
➜ kubernetes-1.21.2 ls -l pkg/generated/openapi
total 4856
-rw-r--r--@ 1 makesure10 staff 131 6 16 20:52 OWNERS
drwxr-xr-x@ 3 makesure10 staff 96 6 16 20:52 cmd
-rw-r--r--@ 1 makesure10 staff 621 6 16 20:52 doc.go
-rw-r--r--@ 1 makesure10 staff 1533 6 16 20:52 openapi_test.go
-rw-r--r-- 1 makesure10 staff 2472575 7 9 09:35 zz_generated.openapi.go