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

时间:2019-11-25 10:50:00

标签: 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

我想基于上述crd创建一个自定义资源,但是我不想为该资源分配一个固定的名称,而是使用generateName字段。所以我生成了以下cr.yaml。但是当我应用它时,错误提示名称字段为必填

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

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您应该使用kubectl creategenerateName创建CR。

kubectl apply将在执行操作之前验证资源是否存在。如果资源不存在,则会首先创建它们。如果使用generateName,则验证时尚未生成资源名称资源的存在。” source