새로운 AppMirror 리소스를 생성하세요
POST /accounts/{account_id}/k8s/v1/appMirrors
생성할 AppMirror API 리소스에 대해 원하는 값을 나타냅니다.
매개변수
| 이름 | 유형 | 에서 | 필수 요소입니다 | 설명 |
|---|---|---|---|---|
account_id |
문자열 |
경로 |
참 |
포함하는 계정 리소스의 ID
|
요청 본문
생성할 AppMirror API 리소스에 대해 원하는 값을 나타냅니다.
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
리소스의 미디어 유형입니다. 정의된 값은 다음과 같습니다.
|
버전 |
문자열 |
참 |
리소스 버전입니다. 정의된 값은 다음과 같습니다.
|
sourceAppID |
문자열 |
참 |
소스 애플리케이션의 식별자입니다. sourceAppID를 destinationAppID로 교체할 때만 업데이트됩니다. 정의된 값은 다음과 같습니다.
|
타겟클러스터ID |
문자열 |
참 |
타겟 애플리케이션을 호스팅할 관리형 클러스터의 식별자입니다. 타겟 애플리케이션이 생성될 클러스터를 결정하므로 생성 시 반드시 제공해야 합니다. 업데이트 시 제공하는 경우 타겟 애플리케이션의 클러스터 ID와 일치해야 하므로 sourceAppID와 destinationAppID를 교환할 때만 변경할 수 있습니다. 정의된 값은 다음과 같습니다.
|
namespaceMapping |
거짓 |
소스 애플리케이션의 네임스페이스에 해당하는 타겟 애플리케이션을 생성할 때 사용할 네임스페이스입니다. 각 JSON 객체에는 "clusterID" 및 "namespaces" 필드가 포함되어 있으며, 여기서 "clusterID" 값은 소스 또는 타겟 클러스터의 JSON 문자열 ID이고 "namespaces" 값은 JSON 문자열의 JSON 배열입니다. 각 클러스터에 대해 정확히 하나의 JSON 객체가 있어야 하며 네임스페이스는 인덱스별로 상호 연결됩니다. 제공되지 않은 경우 소스 클러스터의 동일한 네임스페이스가 타겟 클러스터에서 사용됩니다. 정의된 값은 다음과 같습니다.
|
|
storageClasses |
배열["storageClasses"] |
거짓 |
새로운 영구 볼륨 클레임(PVC)을 생성할 때 타겟 클러스터에서 사용할 스토리지 클래스입니다. 각 JSON 객체에는 "clusterID" 및 "storageClassName" 필드가 포함되어 있으며, "clusterID" 값은 소스 또는 타겟 클러스터의 JSON 문자열 ID이고, "storageClassName"은 해당 클러스터에서 PVC를 생성할 때 사용할 스토리지 클래스입니다. 제공되지 않거나 클러스터에 대한 값이 없는 경우 해당 클러스터에 기본 스토리지 클래스가 사용됩니다. 정의된 값은 다음과 같습니다.
|
stateDesired |
문자열 |
참 |
관계의 원하는 상태입니다. 생성 시 유효한 값은 "established"뿐입니다. 정의된 값은 다음과 같습니다.
|
메타데이터 |
거짓 |
리소스와 연결된 클라이언트 및 서비스 지정 메타데이터입니다. 정의된 값은 다음과 같습니다.
|
요청 예시
{
"type": "application/astra-appMirror",
"version": "1.1",
"sourceAppID": "efd639b6-fc92-4112-8841-0c0ab7890ae0",
"destinationClusterID": "c5d023a9-4061-4a8a-bfbf-3be11ff06226",
"stateDesired": "established"
}
응답
Status: 201, Returns the newly created appMirror resource in the JSON response body.
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
리소스의 미디어 유형입니다. 정의된 값은 다음과 같습니다.
|
버전 |
문자열 |
참 |
리소스 버전입니다. 정의된 값은 다음과 같습니다.
|
ID입니다 |
문자열 |
참 |
리소스의 전역 고유 식별자입니다. 정의된 값은 다음과 같습니다.
|
sourceAppID |
문자열 |
참 |
소스 애플리케이션의 식별자입니다. sourceAppID를 destinationAppID로 교체할 때만 업데이트됩니다. 정의된 값은 다음과 같습니다.
|
sourceClusterID |
문자열 |
참 |
소스 애플리케이션을 호스팅하는 관리형 클러스터의 식별자입니다. 이 필드는 읽기 전용이며 소스 애플리케이션의 호스트 클러스터를 기준으로 결정됩니다. 업데이트 시 제공되는 경우 소스 애플리케이션의 클러스터 ID와 일치해야 하므로 sourceAppID를 destinationAppID로 교체할 때만 변경될 수 있습니다. 정의된 값은 다음과 같습니다.
|
타겟AppID |
문자열 |
거짓 |
타겟 애플리케이션의 식별자입니다. 관계 초기화 과정에서 새 앱 ID가 생성되므로 생성 시에는 제공할 수 없습니다. sourceAppID를 destinationAppID로 교체할 때만 업데이트할 수 있습니다. 정의된 값은 다음과 같습니다.
|
타겟클러스터ID |
문자열 |
참 |
타겟 애플리케이션을 호스팅할 관리형 클러스터의 식별자입니다. 타겟 애플리케이션이 생성될 클러스터를 결정하므로 생성 시 반드시 제공해야 합니다. 업데이트 시 제공하는 경우 타겟 애플리케이션의 클러스터 ID와 일치해야 하므로 sourceAppID와 destinationAppID를 교환할 때만 변경할 수 있습니다. 정의된 값은 다음과 같습니다.
|
namespaceMapping |
거짓 |
소스 애플리케이션의 네임스페이스에 해당하는 타겟 애플리케이션을 생성할 때 사용할 네임스페이스입니다. 각 JSON 객체에는 "clusterID" 및 "namespaces" 필드가 포함되어 있으며, 여기서 "clusterID" 값은 소스 또는 타겟 클러스터의 JSON 문자열 ID이고 "namespaces" 값은 JSON 문자열의 JSON 배열입니다. 각 클러스터에 대해 정확히 하나의 JSON 객체가 있어야 하며 네임스페이스는 인덱스별로 상호 연결됩니다. 제공되지 않은 경우 소스 클러스터의 동일한 네임스페이스가 타겟 클러스터에서 사용됩니다. 정의된 값은 다음과 같습니다.
|
|
storageClasses |
배열["storageClasses"] |
거짓 |
새로운 영구 볼륨 클레임(PVC)을 생성할 때 타겟 클러스터에서 사용할 스토리지 클래스입니다. 각 JSON 객체에는 "clusterID" 및 "storageClassName" 필드가 포함되어 있으며, "clusterID" 값은 소스 또는 타겟 클러스터의 JSON 문자열 ID이고, "storageClassName"은 해당 클러스터에서 PVC를 생성할 때 사용할 스토리지 클래스입니다. 제공되지 않거나 클러스터에 대한 값이 없는 경우 해당 클러스터에 기본 스토리지 클래스가 사용됩니다. 정의된 값은 다음과 같습니다.
|
상태 |
문자열 |
참 |
관계의 상태입니다. 정의된 값은 다음과 같습니다.
|
stateTransitions |
거짓 |
허용되는 상태 전환. 이 리소스에 대해 가능한 상태 전환은 다음과 같습니다.
|
|
stateDesired |
문자열 |
참 |
관계의 원하는 상태입니다. 생성 시 유효한 값은 "established"뿐입니다. 정의된 값은 다음과 같습니다.
|
stateAllowed |
배열[string] |
거짓 |
주어진 상태에서 요청할 수 있는 상태들입니다. 정의된 각 상태에서 다음과 같은 상태를 요청할 수 있습니다.
|
stateDetails |
참 |
현재 상태에 도달한 이유를 포함하여 현재 상태에 대한 추가 정보입니다. 정보가 없는 경우 이 배열은 비어 있습니다. 정의된 값은 다음과 같습니다.
|
|
transferState |
문자열 |
거짓 |
현재 또는 가장 최근 스냅샷 전송 상태입니다. 정의된 값은 다음과 같습니다.
|
transferStateTransitions |
거짓 |
주어진 정의된 상태에서 허용되는 상태 전환입니다. 이 리소스에 대해 가능한 상태 전환은 다음과 같습니다.
|
|
transferStateDetails |
거짓 |
현재 상태에 도달한 이유를 포함하여 현재 상태에 대한 추가 정보입니다. 정보가 없는 경우 이 배열은 비어 있습니다. 정의된 값은 다음과 같습니다.
|
|
healthState |
문자열 |
참 |
리소스의 상태입니다. 정의된 값은 다음과 같습니다.
|
healthStateTransitions |
참 |
주어진 정의된 상태에서 허용되는 상태 전환입니다. 이 리소스에 대해 가능한 상태 전환은 다음과 같습니다.
|
|
healthStateDetails |
참 |
현재 상태에 도달한 이유를 포함하여 현재 상태에 대한 추가 정보입니다. 정보가 없는 경우 이 배열은 비어 있습니다. 정의된 값은 다음과 같습니다.
|
|
메타데이터 |
참 |
리소스와 연결된 클라이언트 및 서비스 지정 메타데이터입니다. 정의된 값은 다음과 같습니다.
|
응답 예
{
"type": "application/astra-appMirror",
"version": "1.1",
"id": "512c8dac-b7d4-5be9-836e-ee672965866a",
"sourceAppID": "efd639b6-fc92-4112-8841-0c0ab7890ae0",
"sourceClusterID": "5789e026-c2e2-41e9-ab00-9766bcfa8951",
"destinationAppID": "cd7b6d91-fc19-4983-a754-9a7bb4d80a7b",
"destinationClusterID": "c5d023a9-4061-4a8a-bfbf-3be11ff06226",
"state": "establishing",
"stateTransitions": [
{
"from": "establishing",
"to": [
"established",
"deleting"
]
},
{
"from": "established",
"to": [
"failingOver",
"deleting"
]
},
{
"from": "failingOver",
"to": [
"failedOver",
"deleting"
]
},
{
"from": "failedOver",
"to": [
"establishing",
"deleting"
]
},
{
"from": "deleting",
"to": [
"deleted"
]
}
],
"stateDesired": "established",
"stateAllowed": [
"deleted"
],
"stateDetails": [
{
"type": "https://astra.netapp.io/stateDetails/3",
"title": "AppMirror is being established",
"detail": "The AppMirror relationship is in the process of being established."
}
],
"healthState": "warning",
"healthStateTransitions": [
{
"from": "indeterminate",
"to": [
"normal",
"warning",
"critical"
]
},
{
"from": "normal",
"to": [
"indeterminate",
"warning",
"critical"
]
},
{
"from": "warning",
"to": [
"indeterminate",
"normal",
"critical"
]
},
{
"from": "critical",
"to": [
"indeterminate",
"normal",
"warning"
]
}
],
"healthStateDetails": [
{
"type": "https://astra.netapp.io/stateDetails/4",
"title": "AppMirror not yet established",
"detail": "The relationship is in the process of being established, so it's not protecting the app data yet."
}
],
"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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
correlationID |
문자열 |
거짓 |
|
invalidFields |
배열["invalidFields"] |
거짓 |
유효하지 않은 요청 본문 필드 목록 |
응답 예
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
응답
Status: 409, Conflict
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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"
}
정의
정의를 참조하세요
namespaceMapping
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
clusterID |
문자열 |
거짓 |
네임스페이스가 지정된 클러스터의 식별자입니다. 정의된 값은 다음과 같습니다.
|
네임스페이스 |
배열[string] |
거짓 |
클러스터에서 사용할 네임스페이스 목록입니다. 인덱스를 기준으로 다른 클러스터 네임스페이스 목록과 연관되어 있습니다. 정의된 값은 다음과 같습니다.
|
역할 |
문자열 |
거짓 |
이 네임스페이스 정의의 초기 역할입니다. 이 매개변수는 동일 클러스터 복제 구성을 사용하는 경우를 제외하고는 선택 사항입니다. 정의된 값은 다음과 같습니다.
|
storageClasses
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
clusterID |
문자열 |
거짓 |
스토리지 클래스가 지정된 클러스터의 식별자입니다. 정의된 값은 다음과 같습니다.
|
storageClassName |
문자열 |
거짓 |
"clusterID"에 지정된 클러스터에 PVC를 생성할 때 사용할 스토리지 클래스의 이름입니다. 정의된 값은 다음과 같습니다.
|
역할 |
문자열 |
거짓 |
이 스토리지 클래스 정의의 초기 역할입니다. 이 매개변수는 동일 클러스터 복제 구성을 사용하는 경우를 제외하고는 선택 사항입니다. 정의된 값은 다음과 같습니다.
|
type_astra_label
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
이름 |
문자열 |
참 |
|
값 |
문자열 |
참 |
type_astra_메타데이터_업데이트
리소스와 연결된 클라이언트 및 서비스 지정 메타데이터입니다. 정의된 값은 다음과 같습니다.
-
Astra 메타데이터 스키마를 준수합니다. 생성 시 지정하지 않으면 레이블이 없는 메타데이터 객체가 생성됩니다. 업데이트 시 지정하지 않으면 메타데이터 객체의 레이블인 creationTimestamp와 createdBy는 수정 없이 유지됩니다.
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
라벨 |
거짓 |
||
CreationTimestamp 를 클릭합니다 |
문자열 |
거짓 |
|
modificationTimestamp |
문자열 |
거짓 |
|
생성 시 |
문자열 |
거짓 |
|
modifiedBy |
문자열 |
거짓 |
type_astra_stateTransition
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
에서 |
문자열 |
참 |
|
~ |
배열[string] |
참 |
additionalDetails
type_astra_stateDetail
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
additionalDetails |
거짓 |
invalidParams
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
이름 |
문자열 |
참 |
잘못된 쿼리 매개변수의 이름 |
이유 |
문자열 |
참 |
쿼리 매개변수가 유효하지 않은 이유 |
invalidFields
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
이름 |
문자열 |
참 |
유효하지 않은 요청 본문 필드의 이름 |
이유 |
문자열 |
참 |
요청 본문 필드가 유효하지 않은 이유 |