使用 generateName 字段在 kubernetes 中创建自定义资源

create a custom resource in kubernetes using generateName field

我有一个示例 crd 定义为

crd.yaml

kind: CustomResourceDefinition
metadata:
  name: testconfig.demo.k8s.com
  namespace: testns
spec:
  group: demo.k8s.com
  versions:
    - name: v1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: testconfigs
    singular: testconfig
    kind: TestConfig

我想基于上述 crd 创建自定义资源,但我不想为资源分配固定名称,而是使用 generateName 字段。所以我生成了下面的 cr.yaml。但是当我应用时它给出错误名称字段是强制性的

kind: TestConfig
metadata:
  generateName: test-name-
  namespace: testns
spec:
  image: testimage

非常感谢任何帮助。

您应该使用 kubectl create 创建带有 generateName 的 CR。

"kubectl apply会先验证资源是否存在,如果资源不存在,会先创建。如果使用generateName,资源名还没有生成验证资源是否存在时。” source