建立新應用程式
POST /accounts/{account_id}/k8s/v2/apps
指示要建立的 App API 資源的期望值。
參數
| Name | 類型 | 在 | 必要 | 說明 |
|---|---|---|---|---|
account_id |
字串 |
路徑 |
True |
包含帳戶資源的 ID
|
請求本文
指示要建立的 App API 資源的期望值。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
資源的媒體類型。定義的值為:
|
版本 |
字串 |
True |
資源版本。定義的值為:
|
姓名 |
字串 |
True |
包含應用程式名稱的 JSON 字串。定義的值為:
|
clusterScopedResources |
錯誤 |
描述此應用程式所屬叢集範圍資源的 JSON 物件 JSON 陣列 |
|
namespaceScopedResources |
錯誤 |
描述此應用程式所包含資源的 JSON 物件 JSON 陣列 |
|
namespaceMapping |
錯誤 |
JSON 物件的 JSON 陣列,每個物件將來源命名空間對應到複製操作的目的地命名空間。定義的值為:
|
|
storageClassMapping |
錯誤 |
JSON 物件的 JSON 陣列,每個物件將來源儲存類別對應至還原作業的目的地儲存類別。如果沒有元素或不存在,將使用原始來源儲存類別名稱。定義的值為:
|
|
clusterID |
字串 |
錯誤 |
包含應用程式執行所在叢集 ID 的 JSON 字串。如果應用程式目前未執行,則不會傳回此值。在建立時指定時,clusterID 會指示應用程式必須複製到哪個叢集。如果指定的叢集不存在,或指定的叢集與請求 URI 中指定的 clusterID 不符,則複製將失敗。定義的值為:
|
來源應用程式 ID |
字串 |
錯誤 |
包含來源應用程式 ID 的 JSON 字串。只有當應用程式是從另一個應用程式複製而來,或從備份或快照還原而來時才會返回。在建立時指定 sourceAppID 時,它會與 sourceClusterID 結合使用,以指示要複製哪個正在執行的應用程式。如果指定的應用程式不存在於指定的來源叢集上,則複製將失敗。建立應用程式時,只能指定 sourceAppID、backupID 或 snapshotID 中的一個。定義的值為:
|
sourceClusterID |
字串 |
錯誤 |
包含應用程式先前執行所在叢集 ID 的 JSON 字串。僅當應用程式是從另一個叢集複製而來時才會傳回。在建立時指定 sourceClusterID 時,它會與 sourceAppID 結合使用,指示要複製的應用程式的來源叢集。如果指定的來源叢集不存在,則複製將失敗。定義的值為:
|
backupID |
字串 |
錯誤 |
包含應用程式還原來源備份 ID 的 JSON 字串。僅當應用程式是從備份還原時返回。在建立應用程式時指定 backupID 時,表示應用程式將從現有備份複製。如果指定的備份不存在,則複製將失敗。建立應用程式時,只能指定 sourceAppID、backupID 或 snapshotID 中的一個。在替換應用程式時指定 backupID 時,表示應用程式將從該應用程式備份就地還原。如果指定的備份不存在,則還原將會失敗。更新應用程式時,只能指定 backupID 或 snapshotID 中的一個。已定義的值包括:
|
snapshotID |
字串 |
錯誤 |
包含應用程式還原來源快照 ID 的 JSON 字串。僅當應用程式是從快照還原時返回。在建立應用程式時指定 snapshotID 時,表示應用程式將從現有快照複製。如果指定的快照不存在,則複製將失敗。建立應用程式時,只能指定 sourceAppID、backupID 或 snapshotID 中的一個。在替換應用程式時指定 snapshotID 時,表示應用程式將從應用程式快照中就地還原。如果指定的快照不存在,則還原將失敗。更新應用程式時,只能指定 backupID 或 snapshotID 中的一個。定義的值為:
|
restoreFilter |
錯誤 |
包含篩選器清單的 JSON 物件,用於描述選擇性還原作業中包含或排除哪些資源。包含和排除是互斥的,選擇性還原只能使用一種篩選器。 |
|
中繼資料 |
錯誤 |
與資源相關聯的用戶端和服務指定中繼資料。定義的值為:
|
範例請求
{
"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.
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
資源的媒體類型。定義的值為:
|
版本 |
字串 |
True |
資源版本。定義的值為:
|
ID |
字串 |
True |
資源的全域唯一識別碼。定義的值為:
|
連結 |
True |
描述針對資源所支援作業的連結。 |
|
姓名 |
字串 |
True |
包含應用程式名稱的 JSON 字串。定義的值為:
|
clusterScopedResources |
錯誤 |
描述此應用程式所屬叢集範圍資源的 JSON 物件 JSON 陣列 |
|
namespaceScopedResources |
True |
描述此應用程式所包含資源的 JSON 物件 JSON 陣列 |
|
lastResourceCollectionTimestamp |
字串 |
錯誤 |
包含上次資源收集時間戳記的 JSON 字串。如果此應用程式尚未執行任何資源收集,則此欄位為空。定義的值為:
|
狀態 |
字串 |
True |
包含指示應用程式運作狀態的值的 JSON 字串。定義的值為:
|
stateTransitions |
錯誤 |
JSON 物件的 JSON 陣列,每個物件代表從給定已定義狀態允許的狀態轉換集。每個 JSON 物件包含「from」和「to」欄位,其中「from」值是狀態名稱,「to」值是允許的目標狀態陣列。 |
|
stateDetails |
True |
JSON 物件的 JSON 陣列,列出有關目前狀態的其他詳細資訊,包括達到目前狀態的原因。如果沒有可用的詳細資料,此陣列將為空白。定義的值為:
|
|
protectionState |
字串 |
True |
包含一個值的 JSON 字串,該值指示應用程式的保護狀態。定義的值為:
|
protectionStateDetails |
True |
JSON 物件的 JSON 陣列,其中列出有關目前保護狀態的其他詳細資料,包括達到目前狀態的原因。如果沒有可用的詳細資料,此陣列將為空白。定義的值為:
|
|
appDetectedType |
字串 |
錯誤 |
用於唯一標識所偵測到的特定應用程式類型的 JSON 字串。定義的值為:
|
命名空間 |
陣列[string] |
True |
包含應用程式執行所在命名空間名稱的 JSON 字串 JSON 陣列。定義的值為:
|
namespaceMapping |
錯誤 |
JSON 物件的 JSON 陣列,每個物件將來源命名空間對應到複製操作的目的地命名空間。定義的值為:
|
|
storageClassMapping |
錯誤 |
JSON 物件的 JSON 陣列,每個物件將來源儲存類別對應至還原作業的目的地儲存類別。如果沒有元素或不存在,將使用原始來源儲存類別名稱。定義的值為:
|
|
clusterName |
字串 |
錯誤 |
包含應用程式執行所在叢集名稱的 JSON 字串。如果應用程式目前未執行,則不會傳回此值。 |
clusterID |
字串 |
錯誤 |
包含應用程式執行所在叢集 ID 的 JSON 字串。如果應用程式目前未執行,則不會傳回此值。在建立時指定時,clusterID 會指示應用程式必須複製到哪個叢集。如果指定的叢集不存在,或指定的叢集與請求 URI 中指定的 clusterID 不符,則複製將失敗。定義的值為:
|
clusterType |
字串 |
錯誤 |
包含指示叢集類型值的 JSON 字串。定義的值為:
|
來源應用程式 ID |
字串 |
錯誤 |
包含來源應用程式 ID 的 JSON 字串。只有當應用程式是從另一個應用程式複製而來,或從備份或快照還原而來時才會返回。在建立時指定 sourceAppID 時,它會與 sourceClusterID 結合使用,以指示要複製哪個正在執行的應用程式。如果指定的應用程式不存在於指定的來源叢集上,則複製將失敗。建立應用程式時,只能指定 sourceAppID、backupID 或 snapshotID 中的一個。定義的值為:
|
sourceClusterName |
字串 |
錯誤 |
包含應用程式先前執行所在叢集名稱的 JSON 字串。僅當應用程式是從另一個叢集複製而來時才會傳回。 |
sourceClusterID |
字串 |
錯誤 |
包含應用程式先前執行所在叢集 ID 的 JSON 字串。僅當應用程式是從另一個叢集複製而來時才會傳回。在建立時指定 sourceClusterID 時,它會與 sourceAppID 結合使用,指示要複製的應用程式的來源叢集。如果指定的來源叢集不存在,則複製將失敗。定義的值為:
|
backupID |
字串 |
錯誤 |
包含應用程式還原來源備份 ID 的 JSON 字串。僅當應用程式是從備份還原時返回。在建立應用程式時指定 backupID 時,表示應用程式將從現有備份複製。如果指定的備份不存在,則複製將失敗。建立應用程式時,只能指定 sourceAppID、backupID 或 snapshotID 中的一個。在替換應用程式時指定 backupID 時,表示應用程式將從該應用程式備份就地還原。如果指定的備份不存在,則還原將會失敗。更新應用程式時,只能指定 backupID 或 snapshotID 中的一個。已定義的值包括:
|
snapshotID |
字串 |
錯誤 |
包含應用程式還原來源快照 ID 的 JSON 字串。僅當應用程式是從快照還原時返回。在建立應用程式時指定 snapshotID 時,表示應用程式將從現有快照複製。如果指定的快照不存在,則複製將失敗。建立應用程式時,只能指定 sourceAppID、backupID 或 snapshotID 中的一個。在替換應用程式時指定 snapshotID 時,表示應用程式將從應用程式快照中就地還原。如果指定的快照不存在,則還原將失敗。更新應用程式時,只能指定 backupID 或 snapshotID 中的一個。定義的值為:
|
replicationSourceAppID |
字串 |
錯誤 |
包含要複製到此應用程式的應用程式 ID 的 JSON 字串。僅當該應用程式目前是 AppMirror 關係中的目標,且該關係未處於 failedOver 狀態時才傳回此欄位。當關係處於 failedOver 狀態時,不會傳回此欄位。定義的值為:
|
restoreFilter |
錯誤 |
包含篩選器清單的 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
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例回應
{
"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
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例回應
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
回應
Status: 409, Conflict
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例回應
{
"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
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例回應
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
錯誤
Status: 404, Not found
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例錯誤回應
{
"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 進行內部驗證。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
群組 |
字串 |
True |
包含 Kubernetes 指派的群組識別碼的 JSON 字串。
|
種類 |
字串 |
True |
包含 Kubernetes 指派的 kind 識別碼的 JSON 字串。
|
版本 |
字串 |
True |
包含 Kubernetes 指派的版本識別碼的 JSON 字串。
|
clusterScopedResources
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
GVK |
True |
包含 Kubernetes 群組 / 版本 / 類型的 JSON 物件。
|
|
labelSelectors |
陣列[string] |
錯誤 |
此 JSON 陣列包含多個 JSON 字串,表示叢集範圍 GroupVersionKinds(GVK)在叢集內的標籤選擇器。如果此陣列為空,則包含叢集上的所有 GVK 實例。此陣列中的每個元素都是 Kubernetes 標籤選擇器字串,並遵循這些值的相同語法。範例:
|
namespaceScopedResources
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
命名空間 |
字串 |
True |
包含應用程式所在命名空間名稱的 JSON 字串。定義的值為:
|
labelSelectors |
陣列[string] |
錯誤 |
一個 JSON 陣列,其中包含表示命名空間內標籤選擇器的 JSON 字串。如果此陣列為空,則包含命名空間中的所有資源。陣列中的每個元素都是一個 Kubernetes 標籤選擇器字串,並遵循對應的語法。範例:
|
namespaceMapping
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
來源 |
字串 |
True |
包含來源叢集上命名空間名稱的 JSON 字串。定義的值為:
|
目的地 |
字串 |
True |
包含目的地叢集上命名空間名稱的 JSON 字串。定義的值為:
|
storageClassMapping
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
來源 |
字串 |
True |
包含來源儲存類別名稱的 JSON 字串。也可以使用 '*' 來指定所有來源儲存類別。定義的值為:
|
目的地 |
字串 |
True |
包含目的地儲存類別名稱的 JSON 字串。定義的值為:
|
GVKN
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
群組 |
字串 |
錯誤 |
包含 Kubernetes 指派的群組識別碼的 JSON 字串。
|
版本 |
字串 |
錯誤 |
包含 Kubernetes 指派的版本識別碼的 JSON 字串。
|
種類 |
字串 |
錯誤 |
包含 Kubernetes 指派的 kind 識別碼的 JSON 字串。
|
命名空間 |
陣列[string] |
錯誤 |
JSON 字串的 JSON 陣列,用於描述要包含或排除資源的命名空間。定義的值為:
|
名稱 |
陣列[string] |
錯誤 |
JSON 字串的 JSON 陣列,描述要包含在選擇性還原中或排除的 Kubernetes 資源名稱。定義的值為:
|
labelSelectors |
陣列[string] |
錯誤 |
JSON 陣列,包含描述 Kubernetes 標籤選擇器的 JSON 字串,用於在選擇性還原中包含或排除資源。此陣列中的每個元素都是 Kubernetes 標籤選擇器字串,並遵循這些值的相同語法。範例:
|
restoreFilter
包含篩選器清單的 JSON 物件,用於描述選擇性還原作業中包含或排除哪些資源。包含和排除是互斥的,選擇性還原只能使用一種篩選器。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
resourceSelectionCriteria |
字串 |
True |
JSON 字串包含一個值,該值指示資源篩選器如何選取資源。有效值為 include 或 exclude。 |
GVKN |
陣列["GVKN"] |
True |
包含 JSON 物件的 JSON 陣列,用於描述選擇性還原期間要篩選的資源。如果所有指定的篩選欄位都與相應的資源欄位相符,則該資源與單一 GVKN 篩選元素相符。篩選欄位(例如命名空間和名稱)如果是陣列,則只要其任何元素與相應的資源欄位相符即可相符。labelSelectors 欄位要求所有選擇器都相符。與 GVKN 篩選物件陣列中任何篩選器相符的資源將根據 resourceSelectionCriteria 值包含在還原中或從還原中排除。指定空的 GVKN 物件會導致驗證錯誤。 |
type_astra_label
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
姓名 |
字串 |
True |
|
值 |
字串 |
True |
type_astra_metadata_update
與資源相關聯的用戶端和服務指定中繼資料。定義的值為:
-
符合 Astra Metadata Schema。如果在建立時未指定、則會建立沒有標籤的中繼資料物件。如果在更新時未指定,元資料物件的標籤、creationTimestamp 和 createdBy 將保持不變。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
標籤 |
錯誤 |
||
建立時間戳記 |
字串 |
錯誤 |
|
修改時間戳記 |
字串 |
錯誤 |
|
建立者 |
字串 |
錯誤 |
|
modifiedBy |
字串 |
錯誤 |
targetSchema
接受 POST
接受放置
提示
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
狀態 |
字串 |
錯誤 |
|
允許 |
陣列[string] |
錯誤 |
|
接受 POST |
錯誤 |
||
權限 |
陣列[string] |
錯誤 |
|
接受放置 |
錯誤 |
type_astra_link
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
rel |
字串 |
True |
|
href |
字串 |
True |
|
類型 |
字串 |
錯誤 |
|
targetSchema |
錯誤 |
||
標題 |
字串 |
錯誤 |
|
提示 |
錯誤 |
namespaceScopedResources
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
命名空間 |
字串 |
True |
包含應用程式所在命名空間名稱的 JSON 字串。定義的值為:
|
labelSelectors |
陣列[string] |
True |
一個 JSON 陣列,其中包含表示命名空間內標籤選擇器的 JSON 字串。如果此陣列為空,則包含命名空間中的所有資源。陣列中的每個元素都是一個 Kubernetes 標籤選擇器字串,並遵循對應的語法。範例:
|
type_astra_stateTransition
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
從 |
字串 |
True |
|
到 |
陣列[string] |
True |
additionalDetails
type_astra_stateDetail
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
additionalDetails |
錯誤 |
restoreFilter
包含篩選器清單的 JSON 物件,用於描述選擇性還原作業中包含或排除哪些資源。包含和排除是互斥的,選擇性還原只能使用一種篩選器。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
resourceSelectionCriteria |
字串 |
錯誤 |
JSON 字串包含一個值,該值指示資源篩選器如何選取資源。有效值為 include 或 exclude。 |
GVKN |
陣列["GVKN"] |
錯誤 |
包含 JSON 物件的 JSON 陣列,用於描述選擇性還原期間要篩選的資源。如果所有指定的篩選欄位都與相應的資源欄位相符,則該資源與單一 GVKN 篩選元素相符。篩選欄位(例如命名空間和名稱)如果是陣列,則只要其任何元素與相應的資源欄位相符即可相符。labelSelectors 欄位要求所有選擇器都相符。與 GVKN 篩選物件陣列中任何篩選器相符的資源將根據 resourceSelectionCriteria 值包含在還原中或從還原中排除。指定空的 GVKN 物件會導致驗證錯誤。 |
invalidParams
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
姓名 |
字串 |
True |
無效查詢參數的名稱 |
原因 |
字串 |
True |
查詢參數無效的原因 |
invalidFields
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
姓名 |
字串 |
True |
無效請求內文欄位的名稱 |
原因 |
字串 |
True |
請求本文欄位無效的原因 |