安装k8s的自动代码生成器

默认方式

   安装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环境  https://www.cnblogs.com/yxh168/p/8954132.html

     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/

     3.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即可成功

     

原文地址:https://www.cnblogs.com/yxh168/p/12200208.html