REST Resource: projects.locations.fleetPackages

资源:FleetPackage

Config Delivery API 中的 FleetPackage 资源。

FleetPackage 用于定义一个软件包,通过该软件包将 Kubernetes 配置部署到 Kubernetes 集群舰队。

JSON 表示法
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "resourceBundleSelector": {
    object (ResourceBundleSelector)
  },
  "target": {
    object (Target)
  },
  "rolloutStrategy": {
    object (RolloutStrategy)
  },
  "variantSelector": {
    object (VariantSelector)
  },
  "info": {
    object (FleetPackageInfo)
  },
  "deletionPropagationPolicy": enum (DeletionPropagationPolicy),
  "state": enum (State)
}
字段
name

string

标识符。FleetPackage 的名称。格式为 projects/{project}/locations/{location}/fleetPackages/{fleetPackage}fleetPackage 组件必须与 [a-z][a-z0-9\-]{0,62} 匹配

createTime

string (Timestamp format)

仅限输出。FleetPackage 的创建时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

仅限输出。FleetPackage 的最近更新时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

labels

map (key: string, value: string)

可选。标签是用户和配置交付服务都可以设置和使用的属性。标签必须满足以下限制条件:

  • 键和值只能包含小写字母、数字字符、下划线和短划线。
  • 所有字符必须使用 UTF-8 编码,允许使用国际字符。
  • 键必须以小写字母或国际字符开头。
  • 每项资源最多只能有 64 个标签。

此外,键和值都不得超过 128 个字节。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

resourceBundleSelector

object (ResourceBundleSelector)

必需。用于指定要部署的 Kubernetes 配置来源的信息。

target

object (Target)

可选。用于选择要将 Kubernetes 配置部署到的目标集群的配置。

rolloutStrategy

object (RolloutStrategy)

可选。用于将 Kubernetes 配置部署到集群的策略。

variantSelector

object (VariantSelector)

必需。用于指定如何将 ResourceBundle 变体映射到目标集群的信息。

info

object (FleetPackageInfo)

仅限输出。包含所有目标集群中 FleetPackage 的发布状态的信息。

deletionPropagationPolicy

enum (DeletionPropagationPolicy)

可选。有关删除 FleetPackage 时如何处理目标集群中的 Kubernetes 资源的信息。

state

enum (State)

可选。舰队软件包的所需状态。

ResourceBundleSelector

用于指定要部署的 Kubernetes 配置来源的信息。

JSON 表示法
{

  // Union field source can be only one of the following:
  "resourceBundle": {
    object (ResourceBundleTag)
  },
  "cloudBuildRepository": {
    object (CloudBuildRepository)
  }
  // End of list of possible types for union field source.
}
字段
联合字段 source。来源可以是直接推送的 ResourceBundle 或包含 Kubernetes 配置的 CloudBuildRepositorysource 只能是下列其中一项:
resourceBundle

object (ResourceBundleTag)

指定 ResourceBundle 的信息。

cloudBuildRepository

object (CloudBuildRepository)

指定 CloudBuildRepository 的信息。

ResourceBundleTag

ResourceBundleTag 包含用于引用 ResourceBundle 的发布版本的信息。

JSON 表示法
{
  "name": string,
  "tag": string
}
字段
name

string

必需。ResourceBundle 的名称。格式为 projects/{p}/locations/{l}/resourceBundles/{r}。

tag

string

必需。ResourceBundle 中发布版本的 Git 标记。标记必须遵循语义化版本控制格式 vX.Y.Z。

CloudBuildRepository

CloudBuildRepository 包含有关从 CloudBuildRepository 中提取 Kubernetes 配置的信息。

JSON 表示法
{
  "name": string,
  "path": string,
  "tag": string,
  "serviceAccount": string,

  // Union field variants can be only one of the following:
  "variantsPattern": string
  // End of list of possible types for union field variants.
}
字段
name

string

必需。云端 build 代码库的名称。格式为 projects/{p}/locations/{l}/connections/{c}/repositories/{r}。

path

string

可选。代码库中包含 Kubernetes 配置的目录或文件的路径。如果未指定,则假定路径为代码库的顶级根目录。

tag

string

必需。底层 Git 代码库的 Git 标记。Git 标记必须采用语义版本格式 vX.Y.Z

serviceAccount

string

必需。在 CloudBuild 触发器中用于提取和存储 Kubernetes 配置的 Google 服务账号。

联合字段 variants。指定如何查找代码库中的变体的配置。variants 只能是下列其中一项:
variantsPattern

string

可选。用于在代码库中查找变体的 glob 模式。示例:variants/*.yamlus-*

目标

目标定义了定位一组 Kubernetes 集群的不同方式。

JSON 表示法
{

  // Union field target can be only one of the following:
  "fleet": {
    object (Fleet)
  }
  // End of list of possible types for union field target.
}
字段
联合字段 target。舰队软件包的目标。target 只能是下列其中一项:
fleet

object (Fleet)

用于指定 FleetPackage 发布目标的 GKE 舰队信息。

舰队

应部署 FleetPackage 的舰队。

JSON 表示法
{
  "project": string,
  "selector": {
    object (LabelSelector)
  }
}
字段
project

string

必需。GKE 舰队的宿主项目。格式为 projects/{project}

selector

object (LabelSelector)

可选。选择器允许使用舰队成员的标签来定位部分舰队成员。

LabelSelector

标签选择器是针对一组资源的标签查询。空标签选择器会匹配所有对象。

JSON 表示法
{
  "matchLabels": {
    string: string,
    ...
  }
}
字段
matchLabels

map (key: string, value: string)

可选。{key,value} 对的映射。每个 {key,value} 对都必须与现有的标签键和值完全一致,才能满足匹配条件。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

VariantSelector

VariantSelector 包含用于在 ResourceBundle 中选择要部署到目标集群的变体的信息。

JSON 表示法
{

  // Union field strategy can be only one of the following:
  "variantNameTemplate": string
  // End of list of possible types for union field strategy.
}
字段
联合字段 strategy。用于选择变体的策略。strategy 只能是下列其中一项:
variantNameTemplate

string

必需。variantNameTemplate 是一个模板,可以指包含集群成员元数据(如位置、名称和标签)的变量,用于生成目标集群的变体名称。变量语法与 Unix shell 变量类似。

可用的变量包括 ${membership.name}${membership.location}${membership.project}${membership.labels['label_name']}

如果要对所有集群部署一个特定的变体,例如“default”,则可以使用“default”(不含任何变量的字符串)作为 variantNameTemplate。

FleetPackageInfo

FleetPackageInfo 表示 FleetPackage 在所有目标集群中的状态。

JSON 表示法
{
  "activeRollout": string,
  "lastCompletedRollout": string,
  "state": enum (State),
  "errors": [
    {
      object (FleetPackageError)
    }
  ]
}
字段
activeRollout

string

可选。有效的发布版本(如果有)。格式为 projects/{project}/locations/{location}/fleetPackages/{fleetPackage}/rollouts/{rollout}

lastCompletedRollout

string

可选。上次已完成的发布作业(如有)。格式为 projects/{project}/locations/{location}/fleetPackages/{fleetPackage}/rollouts/{rollout}

state

enum (State)

可选。仅限输出。FleetPackage 的当前状态。

errors[]

object (FleetPackageError)

可选。仅限输出。配置部署期间遇到的错误(如果有)。

FleetPackage 状态的可能值。

枚举
STATE_UNSPECIFIED 未指定状态。
ACTIVE FleetPackage”处于有效状态。
SUSPENDED FleetPackage已暂停。
FAILED FleetPackage 未能完成对账。
DELETING 正在删除“FleetPackage”。

FleetPackageError

表示在推出配置期间遇到的错误的信息。

JSON 表示法
{
  "errorMessage": string
}
字段
errorMessage

string

可选。错误说明。

State 表示相应软件包的预期状态。未指定的值相当于 ACTIVE。如果状态设置为 SUSPENDED,则系统会继续执行有效的发布(如果有),但不会安排新的发布。

枚举
STATE_UNSPECIFIED 未指定状态。
ACTIVE FleetPackage 旨在处于有效状态。
SUSPENDED FleetPackage 旨在暂停。

方法

create

在给定的项目和位置中创建新的 FleetPackage。

delete

删除单个 FleetPackage。

get

获取单个 FleetPackage 的详细信息。

list

列出给定项目和位置中的 FleetPackage。

patch

更新单个 FleetPackage 的参数。