问题标签 [kubebuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
273 浏览

go - kubebuilder create webhook 需要之前创建的 API

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

但它总是给我一个错误。

而且我不确定在 kubebuilder 命令中添加什么额外内容。任何帮助表示赞赏。

0 投票
0 回答
60 浏览

kubernetes - Webhook 错误与 Make deploy [kubebuilder] 上的 CurrentId 不匹配

我正在尝试在现有项目中实现 webhook,我遵循了可用的步骤,但是当我尝试执行时它失败了make deploy

-

我尝试webhookcainjection_patch.yaml按照其他帖子添加命名空间,但它仍然保持不变,不知道如何解决这个问题,感谢任何帮助,谢谢。

0 投票
0 回答
135 浏览

go - webhook 缺少文件或目录 [kubebuilder]

我正在尝试为我现有的项目创建 webhook,并且在执行每个步骤后我收到一个错误 2021-12-06T12:37:06.624Z ERROR setup problem running manager {"error": "open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or directory"} 不确定如何解决此问题,感谢任何帮助。谢谢。

`

0 投票
2 回答
58 浏览

go - PersistemVolumeClaim 元数据无法正确解码

环境

Kubectl 版本

Kubernetes 版本(种类集群)

Kubebuilder 版本

操作系统

我使用 kubebuilder 来定义我自己的CRD,如下所示,它包含 VolumeClaimTemplates类型为的字段[]coreV1.PersistentVolumeClaim

但是当我像下面这样申请 CR 时,我发现该 metadata文件是空的

这是从k8s ectd获取的yaml,可以发现它的元数据volumeClaimTemplates是空的。

有谁知道为什么?</p>

当我用下面的评论标记volumeclaimtemplate字段时,metada可以正确解码

0 投票
0 回答
22 浏览

kubernetes - kubebuilder create api 错误:并非所有生成器都成功运行

当我运行 kubebuilder create api xxxx 命令时,sh 出现以下错误。谁能告诉我如何解决它?

0 投票
1 回答
165 浏览

kubernetes - 使用 Kubectl 时如何打印 Kubebuilder 中定义的状态字段以显示

如何指定注释,例如+kubebuilder:printcolumn在命令的输出中添加列kubectl get my-crd.my-group.my-domain.com

我有一个 CRD(自定义资源定义),struct其规格和状态通常为 s(类似于此处的 Kubebuilder 教程https://book.kubebuilder.io/cronjob-tutorial/new-api.html#添加新的 api)。

我有这样的状态 struct

其中有几个问题:

时间场

  • 我已经尝试将其设为类型metav1.Time(方便的格式,如他们在https://book.kubebuilder.io/cronjob-tutorial/api-design.html?highlight=metav1.Time#designing-an-api中所述),但是然后此注释// +kubebuilder:printcolumn:name="Last Deploy",type="date",JSONPath=.status.lastDeployTime`` 在 .status.lastDeployTime 的输出中显示为空kubectl
  • 所以我将类型更改为string(然后在控制器中执行oess.Status.LastDeployTime = fmt.Sprintf("%s", metav1.Time{Time: time.Now().UTC()})),然后添加注释+kubebuilder:printcolumn:name="Last Deploy",type=string,JSONPath=.status.lastDeployTime`` 但该字段在 .status.lastDeployTime 的输出中仍然显示为空kubectl

切片字段[]string和地图字段map[string]string

  • 我该如何配置这些?这里没有提及(点击“显示详细参数帮助”时):https ://book.kubebuilder.io/reference/markers/crd.html
  • 如果这些不是在使用时出现格式问题的“简单类型” kubectl,这是否意味着我唯一的选择是string用某种方式制作它们fmt.Sprintf(...)
  • 还有其他选择吗?
0 投票
2 回答
90 浏览

kubernetes - 如何使用 Kubebuilder-v3 / operator-sdk 发送事件

Kubebuilder V3 文档解释说它讨论了“如何将多个事件批处理到单个协调调用中”。但是,我在本文档中找不到有关事件管理的任何信息。

您能否提供有关如何发送事件的信息/代码示例Kubebuilder-v3/operator-sdk

0 投票
0 回答
62 浏览

kubernetes - 如何将 CRD 的规范包含到另一个 CRD 中?

我正在使用 Kubebuilder 构建一个运算符,它将与一个包含一些自定义字段以及ArgoWorkflowTemplate的所有字段的 CRD 一起使用。这些字段基本上是ArgoWorkflow的所有字段,因为规范中的字段是相同的,除了我不关心的一个字段。操作员将使用这些WorkflowTemplate字段来创建一个实际的 ArgoWorkflowTemplate资源,但在此之前它需要对自定义字段执行一些操作。如何WorkflowTemplate在我的 CRD 中包含所有字段,而无需逐字复制所有字段并将其手动粘贴到我的 CRD 规范中?

我尝试在我的 CRD 中使用它(我只是添加了与手头问题无关的某些其他字段)

如果我这样做,我会在安装 CRD 时收到此错误

我从其他 SO 和 GitHub 问题中发现,我可以通过使用 create 而不是 apply 来解决注释问题。

0 投票
1 回答
59 浏览

kubernetes - 在 Kubebuilder 验证 webhook 中管理不可变字段

根据Kubebuilder 文档,可以为给定的 CRD 实现不可变字段:

我们将 ValidateCreate 从 ValidateUpdate 中分离出来,以允许诸如使某些字段不可变的行为,以便它们只能在创建时设置。

你们中的一些人会有一些关于实现这一点的示例或代码示例吗?

0 投票
1 回答
216 浏览

kubernetes - 如何在 Kubebuilder 中将 RBAC 角色添加到控制器以获取不同类型的资源

我正在使用 Kubebuilder 创建一个新的 Operator 来部署 Kubernetes 控制器来管理新的 CRD 自定义资源定义。

这个新的 CRD(假设被称为MyNewResource)需要列出/创建/删除 CronJobs。

因此,在定义该方法的 Controller Go 代码中,Reconcile(...)我添加了一个新的 RBAC 注释以允许对 CronJobs 进行协调(请参见此处):

然而,在构建推送和部署 Docker/Kubernetes 控制器(repo myrepomake manifests、 then make install、 then make docker-build docker-push、 then make deploy)之后,我仍然在日志中看到:

我还看到有关缓存的问题,但它们可能不相关(不确定):

如何让我的新 Operator 处理 CronJobs 资源?

目前,当我通过调用为我的 CRD 的新实例提供一些 YAML 时,基本上我无法以编程方式(Go 代码)创建新的 CronJobs: