gcloud apply spec 字段

本页面介绍了您可以在 Config Sync 的配置文件中设置的不同字段。使用 Google Cloud CLI 配置 Config Sync 组件时,您将使用此文件。用于应用配置文件的 gcloud CLI 命令也有参考文档

这些命令也可以配置 Policy Controller,但建议您改用 Policy Controller gcloud 命令

与 gcloud CLI 配合使用的文件格式类似于 ConfigManagement 对象的格式。但是,两者的格式并不相同,而且不能互换使用。

Config Sync 的配置

说明
spec.upgrades 预览版)Config Sync 的升级设置。如果设置为 auto,则 Config Sync 版本会自动升级。如需了解自动升级的工作原理,请参阅升级 Config Sync。设置为 manual 可手动升级 Config Sync 版本。默认值为 manual。只有 Google Cloud 上的 GKE 集群支持此标志。
spec.configSync.enabled 如果为 true,则启用 Config Sync。如果为 false,则停用 Config Sync。 对于 gcloud CLI 429.0.0 及更低版本是必需的。对于 gcloud CLI 430.0.0 及更高版本是可选的。默认值:true
spec.configSync.sourceType Config Sync 应同步的来源类型。接受 gitoci。默认值:git
spec.configSync.syncRepo 要用作可靠来源的 Git 代码库、OCI 映像或 Helm 图表的网址。如果您没有准备好代码库,则可以省略此字段。
spec.configSync.syncBranch 要用作同步来源的 Git 代码库分支。如果 .spec.configSync.sourceType 设置为 oci,则此字段将被忽略。此字段是可选字段,默认值为 master。为简单起见,从 Config Sync 版本 1.17.0 开始,建议使用 spec.configSync.syncRev 字段指定分支名称。如果同时指定了 spec.configSync.syncRev 字段和 spec.configSync.syncBranch 字段,则 spec.configSync.syncRev 的优先级高于 spec.configSync.syncBranch
spec.configSync.policyDir Git 代码库或 OCI 映像中的路径,其中包含您要同步的配置。默认值:代码库的根目录。
spec.configSync.syncWait 连续两次同步操作之间的间隔时长(以秒为单位)。默认值:15。
spec.configSync.syncRev 要同步的 Git 修订版本(标记或哈希)。如果 .spec.configSync.sourceType 设置为 oci,则此字段将被忽略。此字段是可选字段,默认值为 HEAD。从 Config Sync 1.17.0 版开始,您还可以在 spec.configSync.syncRev 字段中指定分支名称。在 1.17.0 版或更高版本中使用哈希时,它必须是完整的哈希,而不能是缩写形式。
spec.configSync.preventDrift 如果为 true,则允许 Config Sync 准入网络钩子通过拒绝有冲突的更改推送到活跃集群来防止偏移。默认值:false。无论此字段的值如何,Config Sync 始终会修复偏移。
spec.configSync.secretType 为访问 .spec.configSync.syncRepo 而配置的 Secret 类型。如果选择 git 作为来源类型,该值必须为 sshcookiefilegcenodegcpserviceaccounttokennone。如果您选择了 oci 作为来源类型,则值必须为 gcenodegcpserviceaccountnone。此字段的验证区分大小写。必填。
spec.configSync.gcpServiceAccountEmail 用于为 RootSync 或 RepoSync 控制器的 Kubernetes 服务账号添加注释的 Google Cloud 服务账号。此字段仅在 spec.configSync.secretTypegcpserviceaccount 时使用。
spec.configSync.metricsGcpServiceAccountEmail 用于将 Config Sync 指标导出到 Cloud Monitoring 的 Google Cloud 服务账号 (GSA) 的电子邮件。GSA 应具有 Monitoring Metric Writer (roles/monitoring.metricWriter) IAM 角色。命名空间 config-management-monitoring 中的 Kubernetes ServiceAccount default绑定到 GSA
spec.configSync.sourceFormat 设置为 unstructured 时,配置 non-hierarchical repo。默认值:hierarchy

Git 代码库的代理配置

如果您的组织的安全政策要求您通过 HTTPS 代理路由流量,则可以使用该代理的 URI 将 Config Sync 配置为与 Git 主机进行通信。仅当使用 cookiefilenonetoken 授权类型时才支持代理。

说明
spec.configSync.httpsProxy 定义用于访问 Git 代码库的 HTTPS_PROXY 环境变量。例如 https://proxy.internal.business.co:443
HTTPS 代理仅接受 https 或未修饰的网址。包含 http:// 的网址会被拒绝。
如果使用未修饰的网址,请确保代理服务器和 Git 主机之间的通信安全。

政策控制器的配置

说明
spec.policyController.enabled 如果为 true,则启用政策控制器。默认值为 false
spec.policyController.templateLibraryInstalled 如果为 true,则安装用于常用政策类型的限制条件模板。默认值为 true
spec.policyController.referentialRulesEnabled 如果为 true,则启用对参照限制条件的支持。请务必了解关于最终一致性的注意事项。默认值为 false
spec.policyController.auditIntervalSeconds 前后两次限制条件违规审核之间的间隔时长(以秒为单位)。将其设置为 0 可停用审核。默认值:60。
spec.policyController.logDeniesEnabled 如果为 true,则记录所有拒绝及试运行失败。默认值为 false
spec.policyController.mutationEnabled 如果为 true,则启用对变更的支持。默认值为 false
spec.policyController.exemptableNamespaces 要从政策控制器准许网络钩子强制执行的命名空间列表。所有违规行为仍会在审核中报告。默认为空列表。
spec.policyController.monitoring.backends 政策控制器要将指标导出到的受监控后端的列表。默认值:[cloudmonitoring, prometheus]

层次结构控制器的配置

说明
spec.hierarchyController.enabled 如果为 true,则启用层次结构控制器。默认值为 false
spec.hierarchyController.enableHierarchicalResourceQuota 如果为 true,则启用分层资源配额。默认值为 false
spec.hierarchyController.enablePodTreeLabels 如果为 true,则启用工作负载的分层观察。默认值为 false

gcloud apply spec 的示例

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    sourceFormat: unstructured
    syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    syncBranch: main
    secretType: none
    policyDir: config-sync-quickstart/multirepo/root
  hierarchyController:
    enabled: false