上QQ阅读APP看书,第一时间看更新
2.7.4 使用crd-install来定义一个CRD
自定义资源(CRD)是Kubernetes中的一种特殊类型,它提供了定义其他类型的方法。
有时,Chart需要定义一种类型并使用,可以通过crd-install hook来完成。
crd-install hook在安装期间很早就执行完毕,然后验证其余资源。用户可以使用该Hooks对CRD进行创建,以便在引用该CRD的任何实例前安装它们。通过这种方式,在后面的资源需要使用该CRD的时候,CRD的定义就已经安装完毕了。
以下是使用Hooks定义CRD和CRD实例的示例。
如下所示为CRD定义:
apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: crontabs.stable.example.com annotations: "helm.sh/hook": crd-install spec: group: stable.example.com version: v1 scope: Namespaced names: plural: crontabs singular: crontab kind: CronTab shortNames: - ct
如下所示为CRD实例:
apiVersion: stable.example.com/v1 kind: CronTab metadata: name: {{ .Release.Name }}-inst
这样通过先安装CRD的定义再安装对应资源的方式,就可以正确安装Chart了。