undefined: “k8s.io/kubernetes/pkg/generated/openapi”.GetOpenAPIDefinitions

有时候从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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注