问题标签 [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.
go - kubebuilder create webhook 需要之前创建的 API
我正在尝试创建一个验证 webhook
但它总是给我一个错误。
而且我不确定在 kubebuilder 命令中添加什么额外内容。任何帮助表示赞赏。
kubernetes - Webhook 错误与 Make deploy [kubebuilder] 上的 CurrentId 不匹配
我正在尝试在现有项目中实现 webhook,我遵循了可用的步骤,但是当我尝试执行时它失败了make deploy
-
我尝试webhookcainjection_patch.yaml
按照其他帖子添加命名空间,但它仍然保持不变,不知道如何解决这个问题,感谢任何帮助,谢谢。
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"}
不确定如何解决此问题,感谢任何帮助。谢谢。
`
go - PersistemVolumeClaim 元数据无法正确解码
环境
Kubectl 版本
Kubernetes 版本(种类集群)
Kubebuilder 版本
操作系统
我使用 kubebuilder 来定义我自己的CRD
,如下所示,它包含 VolumeClaimTemplates
类型为的字段[]coreV1.PersistentVolumeClaim
但是当我像下面这样申请 CR 时,我发现该 metadata
文件是空的
这是从k8s ectd获取的yaml,可以发现它的元数据volumeClaimTemplates
是空的。
有谁知道为什么?</p>
当我用下面的评论标记volumeclaimtemplate字段时,metada
可以正确解码
kubernetes - kubebuilder create api 错误:并非所有生成器都成功运行
当我运行 kubebuilder create api xxxx 命令时,sh 出现以下错误。谁能告诉我如何解决它?
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(...)
? - 还有其他选择吗?
kubernetes - 如何使用 Kubebuilder-v3 / operator-sdk 发送事件
Kubebuilder V3 文档解释说它讨论了“如何将多个事件批处理到单个协调调用中”。但是,我在本文档中找不到有关事件管理的任何信息。
您能否提供有关如何发送事件的信息/代码示例Kubebuilder-v3/operator-sdk
?
kubernetes - 如何将 CRD 的规范包含到另一个 CRD 中?
我正在使用 Kubebuilder 构建一个运算符,它将与一个包含一些自定义字段以及ArgoWorkflowTemplate
的所有字段的 CRD 一起使用。这些字段基本上是ArgoWorkflow
的所有字段,因为规范中的字段是相同的,除了我不关心的一个字段。操作员将使用这些WorkflowTemplate
字段来创建一个实际的 ArgoWorkflowTemplate
资源,但在此之前它需要对自定义字段执行一些操作。如何WorkflowTemplate
在我的 CRD 中包含所有字段,而无需逐字复制所有字段并将其手动粘贴到我的 CRD 规范中?
我尝试在我的 CRD 中使用它(我只是添加了与手头问题无关的某些其他字段)
如果我这样做,我会在安装 CRD 时收到此错误
我从其他 SO 和 GitHub 问题中发现,我可以通过使用 create 而不是 apply 来解决注释问题。
kubernetes - 在 Kubebuilder 验证 webhook 中管理不可变字段
根据Kubebuilder 文档,可以为给定的 CRD 实现不可变字段:
我们将 ValidateCreate 从 ValidateUpdate 中分离出来,以允许诸如使某些字段不可变的行为,以便它们只能在创建时设置。
你们中的一些人会有一些关于实现这一点的示例或代码示例吗?
kubernetes - 如何在 Kubebuilder 中将 RBAC 角色添加到控制器以获取不同类型的资源
我正在使用 Kubebuilder 创建一个新的 Operator 来部署 Kubernetes 控制器来管理新的 CRD 自定义资源定义。
这个新的 CRD(假设被称为MyNewResource
)需要列出/创建/删除 CronJobs。
因此,在定义该方法的 Controller Go 代码中,Reconcile(...)
我添加了一个新的 RBAC 注释以允许对 CronJobs 进行协调(请参见此处):
然而,在构建推送和部署 Docker/Kubernetes 控制器(repo myrepo
、make manifests
、 then make install
、 then make docker-build docker-push
、 then make deploy
)之后,我仍然在日志中看到:
我还看到有关缓存的问题,但它们可能不相关(不确定):
如何让我的新 Operator 处理 CronJobs 资源?
目前,当我通过调用为我的 CRD 的新实例提供一些 YAML 时,基本上我无法以编程方式(Go 代码)创建新的 CronJobs: