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

PRE*_*SAL 2 kubernetes kubernetes-custom-resources

我有一个示例 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
Run Code Online (Sandbox Code Playgroud)

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

kind: TestConfig
metadata:
  generateName: test-name-
  namespace: testns
spec:
  image: testimage
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助。

gnv*_*nvk 11

您应该使用kubectl create来创建 CR generateName

"kubectl apply在采取行动之前会验证资源是否存在。如果资源不存在,则会先创建资源。如果使用generateName,则验证资源是否存在时尚未生成资源名称。" 来源