在 Cloud Code for VS Code 中使用 Google Cloud 和 Kubernetes YAML

Cloud Code for VS Code 旨在通过对结构和有效值的架构执行 lint 请求并提供描述性错误,简化 Kubernetes 和 Cloud Build 配置。Cloud Code 提供针对常用架构的开箱即用解决方案、智能补全功能和通过悬停鼠标查看文档的功能。

支持的 YAML 配置文件

Cloud Code 还支持常见的 Kubernetes 自定义资源定义 (CRD),例如 Kubeflow,开箱即可使用。

使用自定义架构

借助 Cloud Code,您可以使用 settings.json 文件中的 cloudcode.yaml.crdSchemaLocations 设置提供自己的 CRD 架构。您可以指向本地文件或网址。指向 github.com 的网址会自动转换为 raw.githubusercontent.com

从集群中拉取架构

在 Kubernetes 视图中切换到运行 Kubernetes v1.16 及更高版本的集群时,Cloud Code 会自动拉取所有已安装的 CRD 的架构。

使用代码段进行配置

借助针对常用 YAML 架构的开箱即用代码段(使用 Command/Ctrl+Space 即可查看选项),您可以轻松启动新的 YAML 文件或向现有的 YAML 文件添加内容而不会产生错误,同时仍然遵循最佳做法。Cloud Code 可让您在填写第一个字段后填写其余实例,从而更轻松地处理重复字段。

Cloud Code 提供以下代码段:

  • Anthos Config Management - Cluster
  • Anthos Config Management - Cluster Selector
  • Anthos Config Management - Config Management
  • Anthos Config Management - Namespace Selector
  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Secret
  • Kubernetes - Service
  • Migrate to Containers - Export
  • Migrate to Containers - PersistentVolumeClaim
  • Migrate to Containers - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

补充背景信息

Cloud Code 会根据当前架构提供上下文补全信息和相关文档,以帮助您选择合适的选项。

针对 Kubernetes 架构补全上下文

验证 YAML 架构

Cloud Code 通过标记 YAML 文件中的无效标记和值并尽可能给出修正建议,来提供架构验证支持。

名称字段的值带红色下划线,以突出显示无效值 1234;悬停文本显示:类型不正确。应为字符串。

通过悬停鼠标浏览文档

当您将指针悬停在架构中的某个值上时,Cloud Code 会显示相关文档。

将指针悬停在架构中的某个值上时的文档信息

访问资源定义

如需查看某项资源的定义,请右键点击该资源,然后选择 Go to Definition(转到定义)或 Peek Definition(查看定义)。

应用 YAML 文件

如需使用当前文件应用配置更改,请打开命令面板(按 Ctrl/Cmd+Shift+P 或点击 View > Command Palette),然后运行 Cloud Code: Apply Current JSON/YAML File to K8s Deployed Resource

此命令将显示一个比较差异视图,供您查看更改。当系统提示您是否要应用此更改时,请点击应用。这将运行 kubectl apply -f

查看 YAML 文件之间的差异

如需查看源代码控制中的 YAML 文件与已部署的 YAML 文件之间的区别,请打开命令面板(按 Ctrl/Cmd+Shift+P 或点击查看 > Command Palette),然后运行 Cloud Code: Diff Current JSON/YAML File with K8s Deployed Resource

对 YAML 文件执行试运行

当您在 YAML 文件中输入信息时,Cloud Code 会自动执行试运行,并为所有错误添加黄色波浪线下划线。

当服务器根据试运行结果将代码的一部分视为错误时,会出现黄色的波浪线。这可能包括违反政策、名称重复或 Cloud Code 在客户端并未执行的验证(例如端口号上限)。

如需在 YAML 文件中查看错误说明,请将指针悬停在带有黄色下划线的代码上。

“hello.deployment.yaml”上的服务器端试运行验证失败,并以消息框通知形式显示错误消息。错误详情可在输出通道中找到;命名空间“random-namespace”不存在

在 Cloud Code 与 Kubernetes 服务器检查之前,检测到的错误会出现红色波浪线。例如,在需要字符串的位置输入数字会触发一条红色的波浪线。

使用 Secret

使用配置映射和secrets是使用 Kubernetes 的关键部分。如需使用 Cloud Code 查看 base64 Secret 的上下文,请将指针悬停在 Secret 上以对其进行解码。

将指针悬停在密钥上方,以解码密钥

后续步骤

获取帮助

如需发送反馈,请在 GitHub 上报告问题,或者在 Stack Overflow 上提问。