2017-12-27 3 views
0

resourcesフィールドのヘルム検証に関する質問がCronJobチャートにありました。k8s:CronJobチャートを作成するときのエラー

私が使用apiVersionバッチ/ v1beta1

私はvalues.yaml

エラーから値をretriveしようとすると、私はエラーを取得する:Error: error validating "": error validating data: found `invalid field requests for v1.Container

コマンド私が実行します。helm install --dry-run --debug my_chart

私のcronジョブ図表:

apiVersion: batch/v1beta1 
kind: CronJob 
metadata: 
    name: {{ .Chart.Name }} 
spec: 
    schedule: "0 */2 * * *" 
    concurrencyPolicy: Forbid 
    jobTemplate: 
    spec: 
     template: 
     metadata: 
    ... 
    spec: 
    containers: 
    ... 
    spec: 
     resources: 
{{ toYaml .Values.resources | indent 12 }} 

エラーdisapierd私は

resources: 
     requests: 
     cpu: 300m 
     memory: 1024Mi 

へのリソースの設定を変更したときに、私は最後の変更を好きではないと私はvalues.yamlに

クラスタバージョンを私の定期的なコンフィギュレーションガイドおよびストア値を追跡したいと思います

Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.4", GitCommit:"9befc2b8928a9426501d3bf62f72849d5cbcd5a3", GitTreeState:"clean", BuildDate:"2017-11-20T05:28:34Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.4-gke.0", GitCommit:"04502ae78d522a3d410de3710e1550cfb16dad4a", GitTreeState:"clean", BuildDate:"2017-11-27T19:19:56Z", GoVersion:"go1.8.3b4", Compiler:"gc", Platform:"linux/amd64"}

ヘルムバージョンは次のとおりです。

Client: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}

Server: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}

予め

答えて

1

TLのおかげで、DR:(代わりに12の)14個のスペースでインデントして、コンテナの定義に追加specプロパティを削除します。


あなたのYAML定義で正しいインデントを気にしてください。例えば、(containersプロパティがspec.jobTemplateJobオブジェクト(またはJobTemplateためテンプレートあるとcronジョブのspec.jobTemplate.spec.templateプロパティ()のサブプロパティである必要がある、とspec.jobTemplate.spec.templateは、そのジョブのPodオブジェクトのテンプレートありますまたはPodTemplate)。

さらに、Pod's containers attributeは、追加specを必要としない。これらのオブジェクトタイプの正確な仕様のための上記のリンク各オブジェクトのAPIリファレンス()を見てください。

CronJobの場合、これはHelmテンプレートがどのように表示されるかです(インデントが重要です)。また、この場合、.spec.jobTemplate.spec.template.spec.resources.requestsプロパティは、12ではなく、のスペースでインデントする必要があります。あなたが受け取ったエラーについて

apiVersion: batch/v1beta1 
kind: CronJob 
metadata: 
    name: {{ .Chart.Name }} 
spec: 
    schedule: "0 */2 * * *" 
    concurrencyPolicy: Forbid 
    jobTemplate: 
    spec: 
     template: 
     metadata: 
      # ... 
     spec: 
      containers: 
      - name: foo 
      # ... 
      resources: 
{{ toYaml .Values.resources | indent 14 }} 

 spec: 
      containers: 
      - name: foo 
      # ... 
      resources: 
      requests: 
       cpu: 300m 
       memory: 1024Mi 

として:12個のスペース(indent 12)のインデントでは、ヘルムは、次のようにあなたの仕事のためのYAMLの定義を作成します。 requestsプロパティ(resourcesプロパティのサブプロパティであることが意図されています)は、実際にはContainer定義のプロパティになりました。ただし、コンテナリソースにはrequestsというフィールドがありません。その結果、エラーメッセージが表示されます。

関連する問題