在 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 DefinitionPeek Definition

应用 YAML 文件

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

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

查看 YAML 文件之间的差异

如需查看源代码控制中的 YAML 文件与已部署的 YAML 文件之间的区别,请打开命令面板(按 Ctrl/Cmd+Shift+P 或点击视图 > 命令面板),然后运行 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 上提问。