我正试图在Kubebuilder中构建我的自定义资源项目,但是每当我构建它时,我似乎都错过了我的控制器代码。我不断地发现错误:
/Users/*****/Kubernetes/postgres-writer-operator/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
bash: /Users/****/Kubernetes/postgres-writer-operator/bin/controller-gen: No such file or directory
make: *** [generate] Error 127
Error: failed to create API: unable to run post-scaffold tasks of "base.go.kubebuilder.io/v3": exit status 2
Usage:
kubebuilder create api [flags]我是Kubernetes的新手,下面是教程:https://yash-kukreja-98.medium.com/develop-on-kubernetes-series-operator-dev-understanding-and-dissecting-kubebuilder-4321d3ecd7d6
首先,我运行了引导我的项目的以下命令:
kubebuilder init \
--domain yash.com \
--repo github.com/yashvardhan-kukreja/postgres-writer-operator \
--project-name postgres-writer-operator \
--license apache2 \
--skip-go-version-check运行该命令后,我进入我的目录并找到以下文件和文件夹:

然后,下一步是为我的自定义资源PostgresWriter运行引导程序,并将其附加到操作符。
kubebuilder create api \
--group demo \
--version v1 \
--kind PostgresWriter \
--resource true \
--controller true \
--namespaced true这导致了上面列出的错误。如何使用kubebuilder生成我的控制器gen?我是不是错过了一步?
按go计算的FYI为1.18。
发布于 2022-03-29 05:13:28
这不是一个完美的解决方案,这应该适用于最新的go版本,但它不适用,所以我不得不将go版本降级到1.17,然后它就起作用了。
总结我从这篇关于降级你的围棋版本的文章中学到的东西。https://blog.notmyhostna.me/posts/downgrade-go-installed-with-homebrew/
安装版本1.17 go
brew install go@1.17您仍然会看到版本没有更改,因此需要通过运行
brew unlink go现在,您可以链接Go的1.17版本,所以当您真正使用go版本时,您将得到1.17。
brew link --force go@1.17瞧!现在您应该看到您的当前版本是1.17,您将能够成功地运行Kubebuilder。
发布于 2022-03-26 19:20:08
我遇到了一个类似的问题,并将go版本重置为v1.17。*帮助我解决了这个问题。
步骤1:通过查找go位于何处$ which go来卸载go
步骤2:从PATH环境变量中删除任何与go相关的路径
步骤3:使用这个链接中的pkg重新安装go。
在go安装完成后,再试一次您的kubebuilder步骤。
https://stackoverflow.com/questions/71608442
复制相似问题