创建新应用
POST /accounts/{account_id}/k8s/v2/apps
指示要创建的 App API 资源的所需值。
参数
| 名称 | Type | 在 | Required | Description |
|---|---|---|---|---|
account_id |
string |
path |
True |
包含帐户资源的 ID
|
请求正文
指示要创建的 App API 资源的所需值。
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
资源的媒体类型。定义的值为:
|
version |
string |
True |
资源的版本。定义的值为:
|
name |
string |
True |
包含应用程序名称的 JSON 字符串。定义的值是:
|
clusterScopedResources |
False |
描述属于此应用程序的集群范围资源的 JSON 对象的 JSON 数组 |
|
namespaceScopedResources |
False |
描述作为此应用一部分的资源的 JSON 对象的 JSON 数组 |
|
namespaceMapping |
False |
JSON 对象的 JSON 数组,每个都将源命名空间映射到目标命名空间以进行克隆操作。定义的值为:
|
|
storageClassMapping |
False |
JSON 对象的 JSON 数组,每个对象将源存储类映射到目标存储类以进行还原操作。如果没有元素或不存在,则将使用原始源存储类名称。定义的值为:
|
|
clusterID |
string |
False |
包含正在运行应用程序的集群 ID 的 JSON 字符串。如果应用程序当前未运行,则不返回。在创建时指定时,clusterID 指示应用程序必须克隆到哪个集群。如果指定的集群不存在,或者指定的集群与请求 URI 中指定的 clusterID 不匹配,则克隆将失败。定义的值为:
|
sourceAppID |
string |
False |
包含源应用程序 ID 的 JSON 字符串。仅当应用程序从另一个应用程序克隆或从备份或快照还原时才返回。在创建时指定时,sourceAppID 与 sourceClusterID 一起使用,并指示将克隆哪个正在运行的应用程序。如果指定的应用程序不存在于指定的源集群上,则克隆将失败。创建应用程序时,只能指定 sourceAppID、backupID 或 snapshotID 中的一个。定义的值是:
|
sourceClusterID |
string |
False |
包含应用程序以前运行的群集 ID 的 JSON 字符串。仅当从另一个群集克隆应用程序时才返回。在 create 上指定时,sourceClusterID 与 sourceAppID 一起使用,并指示要克隆的应用程序的源群集。如果指定的源集群不存在,则克隆将失败。定义的值为:
|
backupID |
string |
False |
包含从中还原应用程序的备份 ID 的 JSON 字符串。仅当应用程序从备份还原时返回。在创建时指定时,backupID 表示将从现有备份克隆应用程序。如果指定的备份不存在,则克隆将失败。创建应用程序时,只能指定 sourceAppID、backupID 或 snapshotID 中的一个。在替换时指定时,backupID 指示将从其就地还原应用程序的应用程序备份。如果指定的备份不存在,则还原将失败。更新应用程序时,只能指定 backupID 或 snapshotID 之一。定义的值为:
|
snapshotID |
string |
False |
包含从中还原应用程序的快照 ID 的 JSON 字符串。仅当应用程序从快照还原时返回。在创建时指定时,snapshotID 表示将从现有快照克隆应用程序。如果指定的快照不存在,则克隆将失败。创建应用程序时,只能指定 sourceAppID、backupID 或 snapshotID 中的一个。当在替换上指定时,snapshotID 指示将从中就地还原应用程序的应用程序快照。如果指定的快照不存在,则还原将失败。更新应用程序时,只能指定 backupID 或 snapshotID 中的一个。定义的值为:
|
restoreFilter |
False |
JSON 对象包含描述选择性还原操作中包括或排除的资源的筛选器列表。包含和排除是相互排斥的,选择性还原只能使用一种筛选器。 |
|
元数据 |
False |
与资源关联的客户端和服务指定的元数据。定义的值为:
|
请求示例
{
"type": "application/astra-app",
"version": "2.2",
"name": "jenkins",
"clusterID": "0f284377-e5dc-4dcd-bacd-3197f2b8a347",
"namespaceScopedResources": [
{
"namespace": "production"
}
]
}
响应
Status: 201, Returns the newly created app resource in the JSON response body.
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
资源的媒体类型。定义的值为:
|
version |
string |
True |
资源的版本。定义的值为:
|
id |
string |
True |
资源的全局唯一标识符。定义的值为:
|
链接 |
True |
描述针对资源的支持操作的链接。 |
|
name |
string |
True |
包含应用程序名称的 JSON 字符串。定义的值是:
|
clusterScopedResources |
False |
描述属于此应用程序的集群范围资源的 JSON 对象的 JSON 数组 |
|
namespaceScopedResources |
True |
描述作为此应用一部分的资源的 JSON 对象的 JSON 数组 |
|
lastResourceCollectionTimestamp |
string |
False |
包含上次执行资源收集时的时间戳的 JSON 字符串。如果尚未为此应用程序执行任何资源收集,则取消设置此字段。定义的值为:
|
状态 |
string |
True |
包含指示应用程序操作状态的值的 JSON 字符串。定义的值是:
|
stateTransitions |
False |
JSON 对象的 JSON 数组,每个表示从给定定义状态的允许状态转换集。每个 JSON 对象都包含"from"和"to"字段,其中"from"值是状态的名称,"to"值是允许的目标状态数组。 |
|
stateDetails |
True |
JSON 对象的 JSON 数组,其中列出有关当前状态的其他详细信息,包括达到当前状态的原因。如果没有可用的详细信息,则此数组将为空。定义的值为:
|
|
protectionState |
string |
True |
包含指示应用程序保护状态的值的 JSON 字符串。定义的值是:
|
protectionStateDetails |
True |
JSON 对象的 JSON 数组,其中列出有关当前保护状态的其他详细信息,包括达到当前状态的原因。如果没有可用的详细信息,此数组将为空。定义的值为:
|
|
appDetectedType |
string |
False |
唯一表示检测到的特定应用程序类型的 JSON 字符串。定义的值为:
|
命名空间 |
数组[string] |
True |
包含运行应用程序的命名空间名称的 JSON 字符串的 JSON 数组。定义的值为:
|
namespaceMapping |
False |
JSON 对象的 JSON 数组,每个都将源命名空间映射到目标命名空间以进行克隆操作。定义的值为:
|
|
storageClassMapping |
False |
JSON 对象的 JSON 数组,每个对象将源存储类映射到目标存储类以进行还原操作。如果没有元素或不存在,则将使用原始源存储类名称。定义的值为:
|
|
clusterName |
string |
False |
包含正在运行应用程序的群集的名称的 JSON 字符串。如果应用程序当前未运行,则不返回。 |
clusterID |
string |
False |
包含正在运行应用程序的集群 ID 的 JSON 字符串。如果应用程序当前未运行,则不返回。在创建时指定时,clusterID 指示应用程序必须克隆到哪个集群。如果指定的集群不存在,或者指定的集群与请求 URI 中指定的 clusterID 不匹配,则克隆将失败。定义的值为:
|
clusterType |
string |
False |
包含指示集群类型的值的 JSON 字符串。定义的值为:
|
sourceAppID |
string |
False |
包含源应用程序 ID 的 JSON 字符串。仅当应用程序从另一个应用程序克隆或从备份或快照还原时才返回。在创建时指定时,sourceAppID 与 sourceClusterID 一起使用,并指示将克隆哪个正在运行的应用程序。如果指定的应用程序不存在于指定的源集群上,则克隆将失败。创建应用程序时,只能指定 sourceAppID、backupID 或 snapshotID 中的一个。定义的值是:
|
sourceClusterName |
string |
False |
包含应用程序先前运行的群集的名称的 JSON 字符串。仅当从另一个群集克隆应用程序时才返回。 |
sourceClusterID |
string |
False |
包含应用程序以前运行的群集 ID 的 JSON 字符串。仅当从另一个群集克隆应用程序时才返回。在 create 上指定时,sourceClusterID 与 sourceAppID 一起使用,并指示要克隆的应用程序的源群集。如果指定的源集群不存在,则克隆将失败。定义的值为:
|
backupID |
string |
False |
包含从中还原应用程序的备份 ID 的 JSON 字符串。仅当应用程序从备份还原时返回。在创建时指定时,backupID 表示将从现有备份克隆应用程序。如果指定的备份不存在,则克隆将失败。创建应用程序时,只能指定 sourceAppID、backupID 或 snapshotID 中的一个。在替换时指定时,backupID 指示将从其就地还原应用程序的应用程序备份。如果指定的备份不存在,则还原将失败。更新应用程序时,只能指定 backupID 或 snapshotID 之一。定义的值为:
|
snapshotID |
string |
False |
包含从中还原应用程序的快照 ID 的 JSON 字符串。仅当应用程序从快照还原时返回。在创建时指定时,snapshotID 表示将从现有快照克隆应用程序。如果指定的快照不存在,则克隆将失败。创建应用程序时,只能指定 sourceAppID、backupID 或 snapshotID 中的一个。当在替换上指定时,snapshotID 指示将从中就地还原应用程序的应用程序快照。如果指定的快照不存在,则还原将失败。更新应用程序时,只能指定 backupID 或 snapshotID 中的一个。定义的值为:
|
replicationSourceAppID |
string |
False |
包含要复制到此应用程序的应用程序 ID 的 JSON 字符串。仅当应用程序当前是 AppMirror 关系中的目标,并且关系未处于 failedOver 状态时才返回。当关系处于 failedOver 状态时,不返回此字段。定义的值为:
|
restoreFilter |
False |
JSON 对象包含描述选择性还原操作中包括或排除的资源的筛选器列表。包含和排除是相互排斥的,选择性还原只能使用一种筛选器。 |
|
元数据 |
True |
与资源关联的客户端和服务指定的元数据。定义的值为:
|
响应示例
{
"type": "application/astra-app",
"version": "2.2",
"id": "39c1c79f-efab-5357-88fb-20e628c4dd96",
"links": [],
"name": "jenkins",
"namespaceScopedResources": [
{
"namespace": "production",
"labelSelectors": []
}
],
"state": "pending",
"stateDetails": [],
"protectionState": "none",
"protectionStateDetails": [],
"namespaces": [
"production"
],
"clusterName": "GKE-22",
"clusterID": "0f284377-e5dc-4dcd-bacd-3197f2b8a347",
"clusterType": "kubernetes",
"metadata": {
"labels": [],
"creationTimestamp": "2022-10-06T20:58:16.305662Z",
"modificationTimestamp": "2022-10-06T20:58:16.305662Z",
"createdBy": "8f84cf09-8036-51e4-b579-bd30cb07b269"
}
}
响应
Status: 401, Unauthorized
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
|
标题 |
string |
True |
|
详细信息 |
string |
True |
|
状态 |
string |
True |
|
correlationID |
string |
False |
响应示例
{
"type": "https://astra.netapp.io/problems/3",
"title": "Missing bearer token",
"detail": "The request is missing the required bearer token.",
"status": "401"
}
响应
Status: 400, Bad request
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
|
标题 |
string |
True |
|
详细信息 |
string |
True |
|
状态 |
string |
True |
|
correlationID |
string |
False |
响应示例
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
响应
Status: 409, Conflict
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
|
标题 |
string |
True |
|
详细信息 |
string |
True |
|
状态 |
string |
True |
|
correlationID |
string |
False |
响应示例
{
"type": "https://astra.netapp.io/problems/10",
"title": "JSON resource conflict",
"detail": "The request body JSON contains a field that conflicts with an idempotent value.",
"status": "409"
}
响应
Status: 403, Forbidden
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
|
标题 |
string |
True |
|
详细信息 |
string |
True |
|
状态 |
string |
True |
|
correlationID |
string |
False |
响应示例
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
错误
Status: 404, Not found
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
|
标题 |
string |
True |
|
详细信息 |
string |
True |
|
状态 |
string |
True |
|
correlationID |
string |
False |
错误响应示例
{
"type": "https://astra.netapp.io/problems/2",
"title": "Collection not found",
"detail": "The collection specified in the request URI wasn't found.",
"status": "404"
}
定义
查看定义
GVK
包含 Kubernetes 组/版本/种类的 JSON 对象。
-
此对象已根据 Astra /apiResources 进行内部验证。
| 名称 | Type | Required | Description |
|---|---|---|---|
group |
string |
True |
包含 Kubernetes 分配的组标识符的 JSON 字符串。
|
类型 |
string |
True |
包含 Kubernetes 分配的类型标识符的 JSON 字符串。
|
version |
string |
True |
包含 Kubernetes 分配的版本标识符的 JSON 字符串。
|
clusterScopedResources
| 名称 | Type | Required | Description |
|---|---|---|---|
GVK |
True |
包含 Kubernetes 组/版本/种类的 JSON 对象。
|
|
labelSelectors |
数组[string] |
False |
JSON 字符串的 JSON 数组,表示集群内集群范围 GroupVersionKinds (GVK) 的标签选择器。如果为空,则包含集群上的所有 GVK 实例。此数组中的每个元素都是 Kubernetes 标签选择器字符串,并遵循这些值的相同语法。示例:
|
namespaceScopedResources
| 名称 | Type | Required | Description |
|---|---|---|---|
namespace |
string |
True |
包含其中定义了应用程序的命名空间名称的 JSON 字符串。定义的值为:
|
labelSelectors |
数组[string] |
False |
JSON 字符串的 JSON 数组,表示命名空间中的标签选择器。如果这是空的,则包含命名空间中的所有资源。此数组中的每个元素都是 Kubernetes 标签选择器字符串,并遵循这些值的语法。示例:
|
namespaceMapping
| 名称 | Type | Required | Description |
|---|---|---|---|
源 |
string |
True |
包含源群集上命名空间名称的 JSON 字符串。定义的值是:
|
目标 |
string |
True |
包含目标集群上命名空间名称的 JSON 字符串。定义的值为:
|
storageClassMapping
| 名称 | Type | Required | Description |
|---|---|---|---|
源 |
string |
True |
包含源存储类名称的 JSON 字符串。也可以是 '*' 来指定所有源存储类。定义的值为:
|
目标 |
string |
True |
包含目标存储类名称的 JSON 字符串。定义的值是:
|
GVKN
| 名称 | Type | Required | Description |
|---|---|---|---|
group |
string |
False |
包含 Kubernetes 分配的组标识符的 JSON 字符串。
|
version |
string |
False |
包含 Kubernetes 分配的版本标识符的 JSON 字符串。
|
类型 |
string |
False |
包含 Kubernetes 分配的类型标识符的 JSON 字符串。
|
命名空间 |
数组[string] |
False |
JSON 字符串的 JSON 数组,描述要包括或排除资源的命名空间。定义的值是:
|
名称 |
数组[string] |
False |
JSON 字符串的 JSON 数组,描述要包括或排除在选择性恢复中的 Kubernetes 资源名称。定义的值是:
|
labelSelectors |
数组[string] |
False |
描述 Kubernetes 标签选择器的 JSON 字符串数组,用于从选择性还原中包括或排除资源。此数组中的每个元素都是 Kubernetes 标签选择器字符串,并遵循这些值的相同语法。示例:
|
restoreFilter
JSON 对象包含描述选择性还原操作中包括或排除的资源的筛选器列表。包含和排除是相互排斥的,选择性还原只能使用一种筛选器。
| 名称 | Type | Required | Description |
|---|---|---|---|
resourceSelectionCriteria |
string |
True |
包含一个值的 JSON 字符串,该值指示资源筛选器如何选择资源。有效值为 include 或 exclude。 |
GVKN |
数组["GVKN"] |
True |
JSON 对象的 JSON 数组,用于描述在选择性还原期间要筛选的资源。如果所有指定的筛选器字段都匹配相应的资源字段,则资源将匹配单个 GVKN 筛选器元素。作为数组的筛选器字段(例如,命名空间和名称)如果其任何元素与相应的资源字段匹配,则匹配。labelSelectors 字段要求所有选择器匹配。与 GVKN 筛选器对象数组中的任何筛选器匹配的资源将根据 resourceSelectionCriteria 值包括在还原中或从还原中排除。指定空的 GVKN 对象会导致验证错误。 |
类型 Astra 标签
| 名称 | Type | Required | Description |
|---|---|---|---|
name |
string |
True |
|
value |
string |
True |
type_astra_metadata_update
与资源关联的客户端和服务指定的元数据。定义的值为:
-
符合 Astra 元数据架构如果在创建时未指定,则将创建没有标签的元数据对象。如果在更新时未指定,则元数据对象的标签、creationTimestamp 和 createdBy 将保留而不进行修改。
| 名称 | Type | Required | Description |
|---|---|---|---|
labels |
数组["类型 Astra 标签"] |
False |
|
creationTimestamp |
string |
False |
|
modificationTimestamp |
string |
False |
|
已创建 |
string |
False |
|
modifiedBy |
string |
False |
targetSchema
接受发布
接受-put
提示
| 名称 | Type | Required | Description |
|---|---|---|---|
状态 |
string |
False |
|
允许 |
数组[string] |
False |
|
接受发布 |
False |
||
权限 |
数组[string] |
False |
|
接受-put |
False |
type_astra_link
| 名称 | Type | Required | Description |
|---|---|---|---|
rel |
string |
True |
|
href |
string |
True |
|
type |
string |
False |
|
targetSchema |
False |
||
标题 |
string |
False |
|
提示 |
False |
namespaceScopedResources
| 名称 | Type | Required | Description |
|---|---|---|---|
namespace |
string |
True |
包含其中定义了应用程序的命名空间名称的 JSON 字符串。定义的值为:
|
labelSelectors |
数组[string] |
True |
JSON 字符串的 JSON 数组,表示命名空间中的标签选择器。如果这是空的,则包含命名空间中的所有资源。此数组中的每个元素都是 Kubernetes 标签选择器字符串,并遵循这些值的语法。示例:
|
type_astra_stateTransition
| 名称 | Type | Required | Description |
|---|---|---|---|
自 |
string |
True |
|
to |
数组[string] |
True |
additionalDetails
type_astra_stateDetail
| 名称 | Type | Required | Description |
|---|---|---|---|
type |
string |
True |
|
标题 |
string |
True |
|
详细信息 |
string |
True |
|
additionalDetails |
False |
restoreFilter
JSON 对象包含描述选择性还原操作中包括或排除的资源的筛选器列表。包含和排除是相互排斥的,选择性还原只能使用一种筛选器。
| 名称 | Type | Required | Description |
|---|---|---|---|
resourceSelectionCriteria |
string |
False |
包含一个值的 JSON 字符串,该值指示资源筛选器如何选择资源。有效值为 include 或 exclude。 |
GVKN |
数组["GVKN"] |
False |
JSON 对象的 JSON 数组,用于描述在选择性还原期间要筛选的资源。如果所有指定的筛选器字段都匹配相应的资源字段,则资源将匹配单个 GVKN 筛选器元素。作为数组的筛选器字段(例如,命名空间和名称)如果其任何元素与相应的资源字段匹配,则匹配。labelSelectors 字段要求所有选择器匹配。与 GVKN 筛选器对象数组中的任何筛选器匹配的资源将根据 resourceSelectionCriteria 值包括在还原中或从还原中排除。指定空的 GVKN 对象会导致验证错误。 |
invalidParams
| 名称 | Type | Required | Description |
|---|---|---|---|
name |
string |
True |
无效查询参数的名称 |
原因 |
string |
True |
查询参数无效的原因 |
invalidFields
| 名称 | Type | Required | Description |
|---|---|---|---|
name |
string |
True |
无效请求正文字段的名称 |
原因 |
string |
True |
请求正文字段无效的原因 |