alo*_*rma 7 go kubernetes kubebuilder
我正在尝试创建一个验证网络钩子
kubebuilder create webhook batch \
--version v1 \
--kind Webhook \
--defaulting \
--programmatic-validation
Run Code Online (Sandbox Code Playgroud)
但它总是给我一个错误。
failed to create webhook: unable to inject the resource to.
"base.go.kubebuilder.io/v3": kubebuilder create webhook requires.
a previously created API
Run Code Online (Sandbox Code Playgroud)
我不确定在 kubebuilder 命令中添加额外的内容。任何帮助表示赞赏。
小智 5
我刚刚遇到了同样的问题,似乎 kubebuilder 会查看PROJECT
项目根目录下调用的文件来验证 API 是否已创建。因此,在创建默认 Webhook 之前,请确保在创建 Webhook 之前已创建 API,我很难解释这一点,但我认为一些示例会清楚地说明这一点
所以在你的项目的根目录下,如果你运行
$ cat PROJECT
它会看起来像这样
domain: example.org
layout:
- go.kubebuilder.io/v3
projectName: khello
repo: example.com/khello
version: "3"
Run Code Online (Sandbox Code Playgroud)
现在如果我们运行你的命令
kubebuilder create webhook batch \
--version v1 \
--kind Webhook \
--defaulting \
--programmatic-validation
Run Code Online (Sandbox Code Playgroud)
它会抱怨并说类似的话
....
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
Run Code Online (Sandbox Code Playgroud)
好吧,很酷,现在我们处于相同的状态,现在怎么办?
现在,如果您还没有创建 API,请使用 one make one
kubebuilder create api --version v1 --kind Webhook
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
现在我们已经创建了 api,我们可以运行您的命令
kubebuilder create webhook batch \
--version v1 \
--kind Webhook \
--defaulting \
--programmatic-validation
Run Code Online (Sandbox Code Playgroud)
瞧,现在可以了
该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"
Run Code Online (Sandbox Code Playgroud)
话虽这么说,我不确定 kubebuilder 在幕后是如何工作的,但根据我的理解,它会检查PROJECT
每当create
命令发生时是否从中创建了一些东西。因此,我的建议是检查您的PROJECT
文件,确保创建了 API,如果创建了,请确保在命令中添加正确的参数以匹配 thta文件kubebuilder create weboook
的内容。PROJECT
归档时间: |
|
查看次数: |
2724 次 |
最近记录: |