首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubebuilder create webhook需要先前创建的API

kubebuilder create webhook需要先前创建的API
EN

Stack Overflow用户
提问于 2021-11-15 13:00:07
回答 1查看 273关注 0票数 3

我正在尝试创建一个验证webhook

代码语言:javascript
复制
kubebuilder create webhook batch \
            --version v1 \
            --kind Webhook \
            --defaulting \
            --programmatic-validation

但它总是给我一个错误。

代码语言:javascript
复制
failed to create webhook: unable to inject the resource to. 
"base.go.kubebuilder.io/v3": kubebuilder create webhook requires. 
a previously created API

并且我不确定要在kubebuilder命令中添加额外的内容。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-11-17 06:26:03

我刚刚遇到了同样的问题,似乎kubebuilder在你的项目根目录下查看了一个名为PROJECT的文件,以验证这个API是否已经创建。因此,在创建默认的webhook之前,请确保您在创建webhook之前已经创建了API,我很难解释这一点,但我认为一些示例会清楚地说明这一点

因此,在项目的根目录中,如果您运行$ cat PROJECT,它将如下所示

代码语言:javascript
复制
domain: example.org
layout:
- go.kubebuilder.io/v3
projectName: khello
repo: example.com/khello
version: "3"

现在如果我们运行你的命令

代码语言:javascript
复制
kubebuilder create webhook batch \
            --version v1 \
            --kind Webhook \
            --defaulting \
            --programmatic-validation

它会抱怨并说出类似这样的话

代码语言:javascript
复制
....
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,那么可以使用

代码语言:javascript
复制
kubebuilder create api  --version v1 --kind Webhook

现在,如果您注意到项目目录的根目录中有一个名为PROJECT的文件,它将显示如下内容

代码语言:javascript
复制
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,我们可以运行您的命令了

代码语言:javascript
复制
kubebuilder create webhook batch \
            --version v1 \
            --kind Webhook \
            --defaulting \
            --programmatic-validation

瞧,它现在起作用了

并且PROJECT文件将变成如下所示

代码语言:javascript
复制
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文件的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69974777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档