我正在尝试创建一个验证webhook
kubebuilder create webhook batch \
--version v1 \
--kind Webhook \
--defaulting \
--programmatic-validation但它总是给我一个错误。
failed to create webhook: unable to inject the resource to.
"base.go.kubebuilder.io/v3": kubebuilder create webhook requires.
a previously created API并且我不确定要在kubebuilder命令中添加额外的内容。任何帮助都是非常感谢的。
发布于 2021-11-17 06:26:03
我刚刚遇到了同样的问题,似乎kubebuilder在你的项目根目录下查看了一个名为PROJECT的文件,以验证这个API是否已经创建。因此,在创建默认的webhook之前,请确保您在创建webhook之前已经创建了API,我很难解释这一点,但我认为一些示例会清楚地说明这一点
因此,在项目的根目录中,如果您运行$ cat PROJECT,它将如下所示
domain: example.org
layout:
- go.kubebuilder.io/v3
projectName: khello
repo: example.com/khello
version: "3"现在如果我们运行你的命令
kubebuilder create webhook batch \
--version v1 \
--kind Webhook \
--defaulting \
--programmatic-validation它会抱怨并说出类似这样的话
....
2021/11/17 13:15:03 failed to create webhook: unable to inject the resource to "base.go.kubebuilder.io/v3": kubebuilder create webhook requires a previously created API好的,酷,现在我们处于相同的状态,现在怎么办?
现在,如果您还没有创建API,那么可以使用
kubebuilder create api --version v1 --kind Webhook现在,如果您注意到项目目录的根目录中有一个名为PROJECT的文件,它将显示如下内容
domain: example.org
layout:
- go.kubebuilder.io/v3
projectName: khello
repo: example.com/khello
resources:
- api:
crdVersion: v1
namespaced: true
controller: true
domain: example.org
kind: Webhook
path: example.com/khello/api/v1
version: v1
version: "3"现在我们已经创建了api,我们可以运行您的命令了
kubebuilder create webhook batch \
--version v1 \
--kind Webhook \
--defaulting \
--programmatic-validation瞧,它现在起作用了
并且PROJECT文件将变成如下所示
domain: example.org
layout:
- go.kubebuilder.io/v3
projectName: khello
repo: example.com/khello
resources:
- api:
crdVersion: v1
namespaced: true
controller: true
domain: example.org
kind: Webhook
path: example.com/khello/api/v1
version: v1
webhooks:
defaulting: true
validation: true
webhookVersion: v1
version: "3"话虽如此,但我不确定kubebuilder是如何在幕后工作的,但据我所知,无论何时发生create命令,都要检查是否从该PROJECT创建了某些内容。因此,我的建议是检查您的PROJECT文件,确保已创建该应用程序接口,如果已创建,请确保在kubebuilder create weboook命令中输入正确的参数以匹配PROJECT文件的内容。
https://stackoverflow.com/questions/69974777
复制相似问题