默认方式
安装k8s.io/code-generator$
go get -u k8s.io/code-generator/ ...
但是由于网络原因 这种情况一般实现不了
github方式安装
mkdir -p /home/gocode/src/k8s.io
git clone https://github.com/kubernetes/code-generator
这种方式只安装了code-generator的go模块 code-generator依赖的go模块没有被安装
执行生成代码的时候提示依赖包找不到
需要手动从github上搜索包并下载到指定目录
示例安装缺少gengo
安装步骤
如果git clone下载不了 也可以通过本地下载仓库 然后上传到指定目录
实际成功案例
1.首先要安装Go环境
2.配置linux访问网络
[root@node2 src]# export http_proxy=http://100.200.8.1:1080/
[root@node2 src]# export https_proxy=http://100.200.8.1:1080/
[root@node2 src]# export ftp_proxy=http://100.200.8.1:1080/
cd $GOPATH/src
所有步骤操作结束
代码兼容性问题解决方案
code-generator 生成的代码会由于版本问题 在执行go build 的时候会体现出来 如下图
这是因为安装code-generator的时候默认安装的是最新版本的 它生成的代码可能和当前go模块不兼容 这个时候只能手动去下载一个低版本的code-generator
下载地址:https://github.com/kubernetes/code-generator/releases?after=kubernetes-1.16.3-beta.0 选一个之前的release 下载
然后上传到/root/gopath/src/k8s.io目录下 给执行脚本添加执行权限
[root@k8s-master k8s.io]# mv code-generator-kubernetes-1.13.12/ code-generator
[root@k8s-master k8s.io]# cd code-generator/
[root@k8s-master code-generator]# ./generate-groups.sh all "$ROOT_PACKAGE/pkg/client" "$ROOT_PACKAGE/pkg/apis" "$CUSTOM_RESOURCE_NAME:$CUSTOM_RESOURCE_VERSION"
用这个版本的code-generator生成的clientset再去build即可成功
【感谢龙石为本站提供数据中台建设http://www.longshidata.com/pages/government.html】