是否可以在 vscode 中对 kubernetes 清单执行严格验证?

问题描述 投票:0回答:0

我有一个(无效的)kubernetes 清单:

apiVersion: v1
kind: Service
metadata:
  name: foo
  labels:
    app: foo
spec:
  poarts:
  - name: http
    protocol: TCP
    port: 80
    targetPoart: 80
  selector:
    app: foo

我可以用 kubeconform 验证这个清单:

> docker run --rm -v $(pwd):/src ghcr.io/yannh/kubeconform:master -strict /src/foo-service.yaml
/src/foo-service.yaml - Service foo is invalid: For field spec: Additional property poarts is not allowed

我想在 vscode 中验证这个清单。

  1. 我已经安装了官方 Kubernetes (v1.3.11) 和 Red Hat YAML (v1.12.2) 扩展。
  2. 我尝试在 settings.json 中指定严格模式:
    "yaml.schemas": {
        "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.24.9-standalone-strict/service-v1.json": ["*-service.yaml", "*-service.yml"],
        "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.24.9-standalone-strict/deployment-apps-v1.json": ["*-deployment.yaml", "*-deployment.yml"],
        "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.24.9-standalone-strict/configmap-v1.json": ["*-configmap.yaml", "*-configmap.yml"],
        ...
        "https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/argoproj.io/application_v1alpha1.json": ["app-of-apps.yaml", "*-app-of-apps.yml", "/app-of-apps/*.yaml", "/app-of-apps/*.yml"],
        "https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/monitoring.coreos.com/servicemonitor_v1.json": ["*-servicemonitor.yaml", "*-servicemonitor.yml"]

但是 a) 这非常麻烦,并且 b) 在编辑 settings.json 后立即出现红色波浪线和“问题”下列出的错误,但是当我关闭并重新打开我的 yaml 文件时,验证消失了。看起来 Kubernetes 扩展正在自动检测模式并覆盖 settings.json 中的设置。

我能否以类似于 kubeconform 中的

-strict
标志的方式严格验证 vscode 中的 kubernetes 清单?

validation kubernetes visual-studio-code yaml
© www.soinside.com 2019 - 2024. All rights reserved.