登录
首页 >  Golang >  Go问答

使用Kubebuilder创建Webhook时需要先创建的API

来源:stackoverflow

时间:2024-02-15 20:00:22 412浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《使用Kubebuilder创建Webhook时需要先创建的API》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在尝试创建一个验证网络钩子

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 命令中添加额外的内容。 如有任何帮助,我们将不胜感激。


正确答案


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

所以在你的项目的根目录下,如果你运行 $ 猫项目 它看起来像这样

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,请使用 one make one

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 文件,确保创建了 api,如果创建了,请确保在 kubebuilder create weboook 命令中输入正确的参数以匹配 project 文件的内容。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《使用Kubebuilder创建Webhook时需要先创建的API》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>