gpt4 book ai didi

go - 使用嵌入式 core.v1.PodSpec 验证 CRD

转载 作者:数据小太阳 更新时间:2023-10-29 03:19:36 25 4
gpt4 key购买 nike

我正在开发一个带有 CRD 的 Controller 。 CRD 包括我们的自定义内容以及嵌入式 core.v1.PodSpec。 (v1.13.1)

我在 CRD 中定义了一个验证部分,它可以验证我们的自定义字段并强制执行约束,但我不知道如何为嵌入式 PodSpec 执行此操作。 PodSpec 太大且选项太多,无法手动将其添加到 CRD 的验证部分:

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: mystuff.example.com
spec:
group: mystuff.example.com
versions:
- name: v1alpha1
served: true
storage: true
names:
kind: MyStuff
plural: mystuffs
singular: mystuff
shortNames:
- ms
scope: Namespaced
additionalPrinterColumns:
- JSONPath: .status.phase
name: Status
type: string
- JSONPath: .metadata.resourceVersion
name: Version
type: string
validation:
openAPIV3Schema:
properties:
spec:
required:
- myVar1
- myVar2
- podSpec
properties:
myVar1:
type: boolean
myVar2:
type: boolean
# Here I need to validate a valid core.v1.PodSpec
podSpec:
type: core.v1.PodSpec

其他人如何处理这个问题?

我还需要验证用户可以提交工作负载的任何机制,即直接使用 kube apiserver 或 kubectl。

感谢您的帮助。

最佳答案

一般来说,CRD 不允许引用其他对象。对此进行了讨论:https://github.com/kubernetes/kubernetes/issues/54579 .决定不添加引用。

此评论中描述了解决方法:https://github.com/kubernetes/kubernetes/issues/54579#issuecomment-370372942我没用过,你可以试试。

关于go - 使用嵌入式 core.v1.PodSpec 验证 CRD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com