gpt4 book ai didi

kubernetes - 如何在我自己的 CRD Controller 中重用 k8s 验证

转载 作者:行者123 更新时间:2023-12-02 12:01:34 27 4
gpt4 key购买 nike

我创建了一个 CRD像这样:

import v1 "k8s.io/api/core/v1"

type ApplicationSpec struct {
Name string `json:"name"`

PodSpec v1.PodSpec `json:"podSpec"`

...
}

请注意,我重用了 PodSpec来自我 CRD 中的核心 apigroup

为了避免用户应用无效的 yaml 文件,我决定在我的 CRD Controller 中添加验证逻辑,用于 Name 等简单字段。 , 使用正则表达式很容易检查它的正确性,而对于像 PodSpec 这样的复杂和原生类型,由于 k8s 已经有验证逻辑,我觉得正确的方法是在我的 Controller 中重用它,但我该怎么做呢?

最佳答案

您可以重复使用 upstream ValidatePodSpec directly .

您需要先导入几个包:

import (
"k8s.io/kubernetes/pkg/apis/core/validation"
"k8s.io/apimachinery/pkg/util/validation/field"
)

然后使用 ValidatePodSpec在您的 Controller 方法中:

errs := validation.ValidatePodSpec(instance.podSpec, field.NewPath("podSpec"))

关于kubernetes - 如何在我自己的 CRD Controller 中重用 k8s 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61113732/

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