@bifos/nhncloud-cli 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/dist/index.js +1229 -381
- package/package.json +1 -1
- package/skills/nhncloud-cli/SKILL.md +2 -4
- package/skills/nhncloud-cli/references/apigateway.md +7 -42
- package/skills/nhncloud-cli/references/common.md +19 -84
- package/skills/nhncloud-cli/references/deploy.md +5 -37
- package/skills/nhncloud-cli/references/iaas.md +58 -9
- package/skills/nhncloud-cli/references/loadbalancer.md +0 -42
- package/skills/nhncloud-cli/references/logncrash.md +3 -48
- package/skills/nhncloud-cli/references/ncr.md +1 -22
- package/skills/nhncloud-cli/references/ncs.md +2 -42
- package/skills/nhncloud-cli/references/nks.md +0 -9
- package/skills/nhncloud-cli/references/troubleshooting.md +15 -23
package/package.json
CHANGED
|
@@ -28,8 +28,7 @@ description: >-
|
|
|
28
28
|
|
|
29
29
|
| 작업 | 읽을 파일 |
|
|
30
30
|
|---|---|
|
|
31
|
-
| CLI
|
|
32
|
-
| 공개 스킬 상태 확인·설치·갱신·제거와 상태별 복구 | [common.md](references/common.md) |
|
|
31
|
+
| CLI 설치·설정·출력, 공개 스킬 관리 | [common.md](references/common.md) |
|
|
33
32
|
| Log & Crash Search v3 커서 검색·scroll 대량 추출·collector 전송<br>반복 조회 자동화의 호출 비용 설계 | [logncrash.md](references/logncrash.md) |
|
|
34
33
|
| Deploy 실행·조회·바이너리 전송 | [deploy.md](references/deploy.md) |
|
|
35
34
|
| Compute, VPC, Block Storage, Floating IP | [iaas.md](references/iaas.md) |
|
|
@@ -37,6 +36,5 @@ description: >-
|
|
|
37
36
|
| Container Registry | [ncr.md](references/ncr.md) |
|
|
38
37
|
| Kubernetes Service | [nks.md](references/nks.md) |
|
|
39
38
|
| Container Service | [ncs.md](references/ncs.md) |
|
|
40
|
-
| API Gateway
|
|
41
|
-
| API Gateway `stage update`·`stage import-resources`·`stage deploy create`·`stage deploy rollback`, `resource set-path-plugin`·`set-method-plugin` | [apigateway.md](references/apigateway.md) |
|
|
39
|
+
| API Gateway 조회·변경·배포·Swagger export | [apigateway.md](references/apigateway.md) |
|
|
42
40
|
| 인증·profile·region·출력·검색 제한 문제 해결 | [troubleshooting.md](references/troubleshooting.md) |
|
|
@@ -17,29 +17,9 @@ API 요청은 공통 UAK로 발급한 Bearer 토큰을 `X-NHN-Authorization` 헤
|
|
|
17
17
|
nhncloud apigateway service list --region kr1 --json
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
## 명령
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
루트 전역 옵션인 `--json`과 `--quiet`도 사용할 수 있다.
|
|
24
|
-
|
|
25
|
-
| 명령 경로 | 인수 | 명령 옵션 |
|
|
26
|
-
|---|---|---|
|
|
27
|
-
| `nhncloud apigateway service list` | 없음 | 공통 옵션 |
|
|
28
|
-
| `nhncloud apigateway service get` | `<service-id>` | 공통 옵션 |
|
|
29
|
-
| `nhncloud apigateway resource list` | `<service-id>` | 공통 옵션 |
|
|
30
|
-
| `nhncloud apigateway resource parameters` | `<service-id> <resource-id>` | 공통 옵션 |
|
|
31
|
-
| `nhncloud apigateway resource responses` | `<service-id> <resource-id>` | 공통 옵션 |
|
|
32
|
-
| `nhncloud apigateway resource set-path-plugin` | `<service-id> <resource-id>` | 공통 옵션, `--config-file <path>`, `--dry-run`, `--yes` |
|
|
33
|
-
| `nhncloud apigateway resource set-method-plugin` | `<service-id> <resource-id>` | 공통 옵션, `--config-file <path>`, `--dry-run`, `--yes` |
|
|
34
|
-
| `nhncloud apigateway stage list` | `<service-id>` | 공통 옵션 |
|
|
35
|
-
| `nhncloud apigateway stage swagger` | `<service-id> <stage-id>` | 공통 옵션, `--output <file>`, `--force` |
|
|
36
|
-
| `nhncloud apigateway stage resources` | `<service-id> <stage-id>` | 공통 옵션 |
|
|
37
|
-
| `nhncloud apigateway stage update` | `<service-id> <stage-id>` | 공통 옵션, `--backend-endpoint-url <url>`, `--description <text>`, `--yes` |
|
|
38
|
-
| `nhncloud apigateway stage import-resources` | `<service-id> <stage-id>` | 공통 옵션, `--yes` |
|
|
39
|
-
| `nhncloud apigateway stage deploy create` | `<service-id> <stage-id>` | 공통 옵션, `--description <text>`, `--no-wait`, `--timeout <sec>`, `--yes` |
|
|
40
|
-
| `nhncloud apigateway stage deploy list` | `<service-id> <stage-id>` | 공통 옵션 |
|
|
41
|
-
| `nhncloud apigateway stage deploy latest` | `<service-id> <stage-id>` | 공통 옵션 |
|
|
42
|
-
| `nhncloud apigateway stage deploy rollback` | `<service-id> <stage-id> <deploy-id>` | 공통 옵션, `--yes` |
|
|
20
|
+
## 명령 탐색
|
|
21
|
+
|
|
22
|
+
정확한 명령 경로와 옵션은 `nhncloud commands --json`에서 확인한다.
|
|
43
23
|
|
|
44
24
|
`--quiet`가 식별자를 출력하는 명령은 다음과 같다.
|
|
45
25
|
|
|
@@ -94,9 +74,7 @@ nhncloud apigateway service list --region kr1 --json
|
|
|
94
74
|
`delete` 가 `true`면 해당 플러그인을 삭제하므로 `pluginConfigJson`을 생략할 수 있다.
|
|
95
75
|
`applyChildPath`는 경로 플러그인에만 사용하며 메서드 설정에 넣으면 입력 오류로 거부된다.
|
|
96
76
|
|
|
97
|
-
|
|
98
|
-
하위 적용 범위를 서버가 판정하고 CORS 플러그인이 기존 OPTIONS 메서드를 삭제·대체하므로,
|
|
99
|
-
다른 위험 명령의 `--yes` 확인만으로는 되돌릴 수 없는 범위를 적용 전에 확인할 수 없기 때문이다.
|
|
77
|
+
플러그인은 `--dry-run`을 먼저 실행해 변경 범위를 확인한다.
|
|
100
78
|
|
|
101
79
|
리소스 플러그인 변경을 스테이지에 반영하려면 별도의 리소스 반영과 배포가 필요하다.
|
|
102
80
|
|
|
@@ -144,22 +122,9 @@ nhncloud apigateway stage deploy rollback <service-id> <stage-id> <deploy-id> --
|
|
|
144
122
|
|
|
145
123
|
## JSON 구조
|
|
146
124
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
| 명령 | API 응답의 최상위 키 | CLI JSON 구조 |
|
|
152
|
-
|---|---|---|
|
|
153
|
-
| `service list` | `apigwServiceList`, `paging` | service 객체 배열 |
|
|
154
|
-
| `service get` | `apigwService` | service 객체 |
|
|
155
|
-
| `resource list` | `resourceList` | resource 객체 배열 |
|
|
156
|
-
| `resource parameters` | `queryStringList`, `headerList`, `formDataList`, `requestBody`, `contentTypeList` | 같은 키를 가진 객체 |
|
|
157
|
-
| `resource responses` | `responseList`, `contentTypeList` | 같은 키를 가진 객체 |
|
|
158
|
-
| `stage list` | `stageList`, `paging` | stage 객체 배열 |
|
|
159
|
-
| `stage swagger` | `swaggerData` | Swagger 객체 |
|
|
160
|
-
| `stage resources` | `stageResourceList` | stage resource 객체 배열 |
|
|
161
|
-
| `stage deploy list` | `stageDeployHistoryList`, `paging` | deploy 객체 배열 |
|
|
162
|
-
| `stage deploy latest` | `latestStageDeployResult` | 최신 deploy 객체 |
|
|
125
|
+
`--json`은 목록을 배열, 단건을 객체로 출력한다.
|
|
126
|
+
`resource parameters`와 `resource responses`는 각각 파라미터와 응답 설정 객체를 반환한다.
|
|
127
|
+
`stage swagger`는 Swagger 객체를, `stage deploy latest`는 최신 배포 객체를 반환한다.
|
|
163
128
|
|
|
164
129
|
`stage list`의 `resourceUpdatedAt`은 배포 시점이 아니다.
|
|
165
130
|
서비스 리소스를 해당 스테이지로 가져온 일시를 뜻하며, 실제 배포 시점은 배포 응답의 `deployedAt`으로 확인한다.
|
|
@@ -73,6 +73,11 @@ nhncloud skills uninstall --quiet
|
|
|
73
73
|
첫 설정은 `nhncloud configure`로 한다.
|
|
74
74
|
대화형 마법사가 profile, UAK, 서비스별 자격증명을 묻고 저장 전 연결을 테스트한다.
|
|
75
75
|
|
|
76
|
+
공공망 profile에는 `~/.nhncloud/credentials.json`의 해당 profile 블록에 `"environment": "gov"`를 명시한다.
|
|
77
|
+
기존 profile은 이 필드를 생략하면 일반망을 사용한다.
|
|
78
|
+
현재 공공망 endpoint 선택 대상은 OAuth, Deploy, NCR, IaaS이며 공공망에서 주소가 확인되지 않은 API는 호출하지 않는다.
|
|
79
|
+
`configure`의 연결 테스트는 일반망 주소를 사용한다. 공공망 자격증명은 `--no-verify`로 저장하고, profile에 `environment`를 추가한 뒤 조회 명령으로 확인한다.
|
|
80
|
+
|
|
76
81
|
```bash
|
|
77
82
|
nhncloud configure
|
|
78
83
|
nhncloud configure --profile staging
|
|
@@ -108,18 +113,8 @@ CLI가 UAK를 OAuth 토큰으로 교환하므로 별도 logncrash secret은 저
|
|
|
108
113
|
}
|
|
109
114
|
```
|
|
110
115
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
| 옵션 | 설명 |
|
|
114
|
-
|------|------|
|
|
115
|
-
| `--profile <name>` | 대상 profile. 기본값은 `default` |
|
|
116
|
-
| `--uak-id <id>` / `--uak-secret <secret>` | 공통 User Access Key |
|
|
117
|
-
| `--logncrash-appkey <key>` | Log & Crash 서비스 appkey |
|
|
118
|
-
| `--logncrash-secret <secret>` | 폐기 예정 호환 옵션. 경고 후 사용·저장하지 않음 |
|
|
119
|
-
| `--ncr-appkey <key>` | NCR appkey |
|
|
120
|
-
| `--iaas-tenant-id <id>` / `--iaas-username <name>` / `--iaas-password <password>` | IaaS/NKS 자격증명 |
|
|
121
|
-
| `--iaas-region <region>` | IaaS 기본 region |
|
|
122
|
-
| `--no-verify` | 연결 테스트 생략 |
|
|
116
|
+
설정 가능한 전체 옵션은 `nhncloud configure --help`에서 확인한다.
|
|
117
|
+
폐기 예정인 `--logncrash-secret`은 경고 후 사용·저장하지 않는다.
|
|
123
118
|
|
|
124
119
|
저장 파일은 `~/.nhncloud/credentials.json`이고 mode 0600으로 관리된다.
|
|
125
120
|
기본 profile은 선택적으로 `~/.nhncloud/config.json`의 `defaultProfile`로 지정한다.
|
|
@@ -143,9 +138,7 @@ profile 해석 순서:
|
|
|
143
138
|
| `--json` | JSON stdout | 파싱, 자동화, AI 에이전트 |
|
|
144
139
|
| `--quiet` | 명령이 문서화한 핵심 값 한 줄을 stdout으로 출력 | 단순 체이닝 |
|
|
145
140
|
|
|
146
|
-
`--json
|
|
147
|
-
API 원본 wrapper를 항상 보존하지 않는다.
|
|
148
|
-
예를 들어 `nhncloud instance get <instance-id> --json`은 `.server.status`가 아니라 `.status`를 읽는다.
|
|
141
|
+
`--json`의 응답 구조는 서비스 reference에서 확인한다.
|
|
149
142
|
|
|
150
143
|
## 요청 타임아웃
|
|
151
144
|
|
|
@@ -184,72 +177,14 @@ nhncloud commands --json | jq '.commands[] | select(.path=="nks cluster list")'
|
|
|
184
177
|
|
|
185
178
|
AI 에이전트는 먼저 `commands --json`으로 실제 command path와 option 이름을 확인하고, 그다음 서비스 reference를 읽는다.
|
|
186
179
|
|
|
187
|
-
##
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
|
192
|
-
|
|
193
|
-
|
|
|
194
|
-
|
|
|
195
|
-
| `deploy
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
| `deploy binaries` | `{ totalCount, binaries }` |
|
|
199
|
-
| `deploy upload` | `{ downloadUrl, binaryKey }` |
|
|
200
|
-
| `instance list` | `servers` wrapper를 언랩한 server 배열 |
|
|
201
|
-
| `instance get` | `server` wrapper를 언랩한 단일 server |
|
|
202
|
-
| `instance create --wait` | `server` wrapper를 언랩한 단일 server |
|
|
203
|
-
| `instance flavors` | `flavors` wrapper를 언랩한 flavor 배열 |
|
|
204
|
-
| `instance images` | `images` wrapper를 언랩한 image 배열 |
|
|
205
|
-
| `instance availability-zones` | `availabilityZoneInfo` wrapper를 언랩한 배열 |
|
|
206
|
-
| `instance keypairs` | `keypairs[].keypair`를 flatten한 keypair 배열 |
|
|
207
|
-
| `instance volumes` | `volumeAttachments` wrapper를 언랩한 attachment 배열 |
|
|
208
|
-
| `network list` | VPC 배열 |
|
|
209
|
-
| `network subnet list` | subnet 배열 |
|
|
210
|
-
| `volume list` | volume 배열 |
|
|
211
|
-
| `volume get` | 단일 volume 객체 |
|
|
212
|
-
| `volume create` | 단일 volume 객체 |
|
|
213
|
-
| `floatingip list` | Floating IP 배열 |
|
|
214
|
-
| `floatingip create` | 단일 Floating IP 객체 |
|
|
215
|
-
| `loadbalancer list` | Load Balancer 배열 |
|
|
216
|
-
| `loadbalancer get` | 단일 Load Balancer 객체 |
|
|
217
|
-
| `loadbalancer ipacl list` | IP ACL 그룹 배열 |
|
|
218
|
-
| `loadbalancer ipacl get` | 단일 IP ACL 그룹 객체 |
|
|
219
|
-
| `loadbalancer ipacl target list` | IP ACL 대상 배열 |
|
|
220
|
-
| `loadbalancer ipacl create/delete` | 작업 상태와 IP ACL 그룹 UUID 객체 |
|
|
221
|
-
| `loadbalancer ipacl target add/remove` | 대상 UUID와 재바인딩 결과 객체 |
|
|
222
|
-
| `loadbalancer set-ipacl/clear-ipacl` | 작업 상태와 Load Balancer UUID·그룹 UUID 객체 |
|
|
223
|
-
| `ncr list` | `registries` wrapper를 언랩한 registry 배열 |
|
|
224
|
-
| `ncr get` | `registry` wrapper를 언랩한 단일 registry |
|
|
225
|
-
| `ncr images` | repository 배열 |
|
|
226
|
-
| `ncr tags` | tag 배열 |
|
|
227
|
-
| `nks supports` | 지원 Kubernetes version / event type 객체 |
|
|
228
|
-
| `nks cluster list` | cluster 배열 |
|
|
229
|
-
| `nks cluster events` | event 배열 |
|
|
230
|
-
| `nks nodegroup list` | nodegroup 배열 |
|
|
231
|
-
| `nks addon-type list` | addon type 배열 |
|
|
232
|
-
| `nks addon list` | addon 배열 |
|
|
233
|
-
| `nks cluster addon list` | cluster addon 배열 |
|
|
234
|
-
|
|
235
|
-
NKS 단건 조회와 일부 설정 조회는 table 출력용 최소 컬럼을 만들고 `--json`에서는 raw 객체를 보존한다.
|
|
236
|
-
NKS 쓰기 명령 중 생성, resize, 설정 변경, 노드 action, 애드온 변경은 `{ uuid }` 응답을 반환한다.
|
|
237
|
-
삭제 명령은 성공 메시지를 stderr에 쓰고 stdout은 비운다.
|
|
238
|
-
`nks cluster kubeconfig`는 kubeconfig 문자열을 stdout 또는 파일로 저장한다.
|
|
239
|
-
|
|
240
|
-
## 에러 코드
|
|
241
|
-
|
|
242
|
-
| 상황 | exit code |
|
|
243
|
-
|------|-----------|
|
|
244
|
-
| API 오류 / 봉투 실패 | 1 |
|
|
245
|
-
| 인증 실패 | 2 |
|
|
246
|
-
| 입력 오류 / 필수 옵션 누락 / confirm 누락 | 3 |
|
|
247
|
-
| 자격증명 또는 config 오류 | 4 |
|
|
248
|
-
|
|
249
|
-
## Agent 기본 규칙
|
|
250
|
-
|
|
251
|
-
- 조회는 먼저 `--json`으로 실행하고 필요한 id를 추출한다.
|
|
252
|
-
- 쓰기 명령 전에 `--profile`, `--region`, 대상 id를 명시한다.
|
|
253
|
-
- `--quiet`는 해당 명령이 핵심 값 한 줄 출력을 문서화한 경우에만 사용한다.
|
|
254
|
-
- 삭제 명령은 비대화형 환경에서 `--yes`를 명시한다.
|
|
255
|
-
- stdout은 데이터로만 취급하고, 진행 메시지는 stderr로 분리된다고 가정한다.
|
|
180
|
+
## 되돌릴 수 없는 명령
|
|
181
|
+
|
|
182
|
+
되돌릴 수 없거나 서비스를 중단시키는 명령이다. 실행 전에 대상과 변경 범위를 조회한다. 확인 방식은 명령마다 다르다.
|
|
183
|
+
|
|
184
|
+
| 확인 방식 | 명령 |
|
|
185
|
+
|---|---|
|
|
186
|
+
| TTY 여부와 관계없이 `--yes` 필수 | `apigateway stage update`, `apigateway stage import-resources`, `apigateway stage deploy create`, `apigateway stage deploy rollback`, `apigateway resource set-path-plugin`, `apigateway resource set-method-plugin` (`--dry-run` 제외), `loadbalancer ipacl delete`, `loadbalancer ipacl target add`, `loadbalancer ipacl target remove`, `loadbalancer set-ipacl`, `loadbalancer clear-ipacl`, `network security-group delete`, `network security-group rule delete`, `instance security-group add`, `instance security-group remove` |
|
|
187
|
+
| 비대화형 환경에서는 `--yes` 필수, TTY에서는 확인 질문 | `instance delete`, `floatingip delete`, `nks cluster delete`, `nks cluster addon remove`, `nks nodegroup delete`, `ncs template delete`, `ncs template version delete`, `ncs workload delete` |
|
|
188
|
+
| 확인 질문과 `--yes` 없음 | `instance keypair delete`, `deploy run`, `nks cluster resize --nodes-to-remove`, `nks nodegroup upgrade`, `ncs workload update` (PUT 전체 교체), `instance volume detach`, `instance resize`, `instance stop`, `instance reboot`, `nks nodegroup update-flavor`, `nks cluster set-ipacl`, `nks cluster set-control-plane-log`, `nks cluster update-sgw`, `ncs workload patch` (JSON Patch `remove` 포함 가능) |
|
|
189
|
+
|
|
190
|
+
`nks cluster resize`는 `--nodes-to-remove`를 생략해도 확인 없이 실행되며, 감축 대상 노드를 API가 선택할 수 있다는 경고를 출력한다.
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
# Deploy Reference
|
|
2
2
|
|
|
3
|
-
`deploy` 명령군은 NHN Cloud Deploy v2.1 API를 호출한다.
|
|
4
|
-
UAK를 OAuth `client_credentials`로 교환한 Bearer token으로 인증하고, token은 만료 전까지 캐시한다.
|
|
5
|
-
|
|
6
3
|
## 설정
|
|
7
4
|
|
|
8
5
|
`~/.nhncloud/credentials.json`에 profile 공통 `userAccessKey`가 필요하다.
|
|
9
6
|
appkey는 `nhncloud configure --deploy-appkey <key>`로 profile에 설정한다.
|
|
10
7
|
`nhncloud configure` 사용을 권장한다.
|
|
8
|
+
공공망에서는 profile에 `"environment": "gov"`를 명시하고 `--profile`로 선택한다.
|
|
11
9
|
|
|
12
10
|
배포 좌표(아티팩트·서버그룹·시나리오 등)는 config에 두지 않는다.
|
|
13
11
|
매 호출마다 명령 옵션으로 넘긴다.
|
|
@@ -37,17 +35,7 @@ nhncloud deploy run --artifact-id <id> --server-group-id <id> --scenario-ids <id
|
|
|
37
35
|
nhncloud deploy run --artifact-id <id> --server-group-id <id> --scenario-ids <id1,id2> --target-hosts <host1,host2>
|
|
38
36
|
```
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|------|------|
|
|
42
|
-
| `--artifact-id <id>` | 배포할 아티팩트 ID (`artifacts`로 확인) |
|
|
43
|
-
| `--server-group-id <id>` | 배포 대상 서버그룹 ID (`server-groups`로 확인) |
|
|
44
|
-
| `--scenario-ids <csv>` | 실행할 시나리오 ID 목록 (쉼표 구분) |
|
|
45
|
-
| `--target-hosts <csv>` | 대상 호스트. 생략 시 서버그룹 전체 |
|
|
46
|
-
| `--concurrent <n>` | 병렬 배포 수. 기본 1 |
|
|
47
|
-
| `--next-when-fail` | 시나리오 실패 시에도 진행 |
|
|
48
|
-
| `--note <s>` | 배포 메모 |
|
|
49
|
-
| `--async` | 즉시 반환. 기본은 완료 대기 |
|
|
50
|
-
| `--profile <name>` | 사용할 profile |
|
|
38
|
+
전체 옵션은 `nhncloud deploy run --help`에서 확인한다.
|
|
51
39
|
|
|
52
40
|
동기 모드는 서버가 배포 완료까지 응답을 보류한다.
|
|
53
41
|
비동기 모드는 `deploying` 상태를 즉시 반환하고, 완료 확인은 `deploy histories`로 한다.
|
|
@@ -57,22 +45,14 @@ nhncloud deploy run --artifact-id <id> --server-group-id <id> --scenario-ids <id
|
|
|
57
45
|
```bash
|
|
58
46
|
nhncloud deploy artifacts --json
|
|
59
47
|
nhncloud deploy server-groups --artifact-id <id> --json
|
|
48
|
+
nhncloud deploy scenarios --artifact-id <id> --server-group-id <id> --json
|
|
60
49
|
nhncloud deploy histories --artifact-id <id> --json
|
|
61
50
|
nhncloud deploy binary-groups --artifact-id <id> --json
|
|
62
51
|
nhncloud deploy binaries --binary-group <key> --artifact-id <id> --json
|
|
63
52
|
```
|
|
64
53
|
|
|
65
|
-
의도별 명령:
|
|
66
|
-
|
|
67
|
-
| 의도 | 명령 |
|
|
68
|
-
|------|------|
|
|
69
|
-
| 아티팩트 목록 | `deploy artifacts` |
|
|
70
|
-
| 서버그룹 목록 | `deploy server-groups --artifact-id <id>` |
|
|
71
|
-
| 배포 이력 | `deploy histories --artifact-id <id>` |
|
|
72
|
-
| 바이너리 그룹 목록 | `deploy binary-groups --artifact-id <id>` |
|
|
73
|
-
| 바이너리 목록 | `deploy binaries --binary-group <key> --artifact-id <id>` |
|
|
74
|
-
|
|
75
54
|
`deploy binary-groups --json`은 `binaryGroups` wrapper를 언랩한 배열이다.
|
|
55
|
+
`deploy scenarios --json`은 시나리오 배열이며, `--quiet`은 시나리오 ID를 한 줄씩 출력한다.
|
|
76
56
|
`deploy binaries --json`은 `{ totalCount, binaries }` 객체다.
|
|
77
57
|
|
|
78
58
|
## 바이너리 전송
|
|
@@ -82,7 +62,7 @@ nhncloud deploy upload --artifact-id <id> --file ./app.tgz --binary-group <key>
|
|
|
82
62
|
nhncloud deploy download --artifact-id <id> --binary-group <key> --binary-key <key> -o ./app.tgz
|
|
83
63
|
```
|
|
84
64
|
|
|
85
|
-
`upload`는
|
|
65
|
+
`upload`는 로컬 파일을 업로드한다.
|
|
86
66
|
`--quiet`이면 `binaryKey`만 출력한다.
|
|
87
67
|
|
|
88
68
|
`download`는 바이너리를 파일로 저장한다.
|
|
@@ -95,15 +75,3 @@ nhncloud deploy artifacts --json | jq -r '.[0].artifactId'
|
|
|
95
75
|
nhncloud deploy run --artifact-id <artifactId> --server-group-id <id> --scenario-ids <ids>
|
|
96
76
|
nhncloud deploy histories --artifact-id <id> --json | jq '.[0] | {deployKey, deployStatus}'
|
|
97
77
|
```
|
|
98
|
-
|
|
99
|
-
## 에러 코드
|
|
100
|
-
|
|
101
|
-
| 상황 | exit code |
|
|
102
|
-
|------|-----------|
|
|
103
|
-
| UAK 누락 또는 profile에 deploy appkey 없음 | 4 |
|
|
104
|
-
| 필수 옵션 누락(좌표, `--binary-group`·`--binary-key`·`--file`·`-o`) | 3 |
|
|
105
|
-
| OAuth 인증 실패 | 2 |
|
|
106
|
-
| Deploy API 오류 또는 봉투 실패 | 1 |
|
|
107
|
-
|
|
108
|
-
필수 옵션 누락은 검증 방식과 관계없이 종료 코드 3으로 끝난다.
|
|
109
|
-
Commander의 조기 검증과 명령 내부 검증은 오류 문구가 다를 수 있지만 자동화는 같은 입력 오류로 처리할 수 있다.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
`instance`, `network`, `volume`, `floatingip`은 IaaS 자격증명과 Keystone token을 공유한다.
|
|
4
4
|
region이 중요하면 `--region <region>`을 명시한다.
|
|
5
|
+
공공망 profile에는 `"environment": "gov"`를 명시한다.
|
|
6
|
+
공식 문서에 endpoint가 있는 공공망 IaaS region은 `kr1`과 `kr2`다.
|
|
5
7
|
|
|
6
8
|
## IaaS 설정
|
|
7
9
|
|
|
@@ -82,11 +84,67 @@ nhncloud instance keypair delete <name>
|
|
|
82
84
|
```bash
|
|
83
85
|
nhncloud network list --json
|
|
84
86
|
nhncloud network subnet list --json
|
|
87
|
+
nhncloud network security-group list --json
|
|
88
|
+
nhncloud network security-group get <group> --json
|
|
89
|
+
nhncloud network security-group rule list <group> --json
|
|
90
|
+
nhncloud network security-group rule get <rule-id> --json
|
|
91
|
+
nhncloud network security-group ports <group> --json
|
|
92
|
+
nhncloud network security-group ports <group> --quiet # 연결된 인스턴스 UUID
|
|
85
93
|
```
|
|
86
94
|
|
|
87
95
|
`instance create --network <uuid>`에는 `network list`의 VPC id를 사용한다.
|
|
88
96
|
subnet id가 아니다.
|
|
89
97
|
|
|
98
|
+
보안그룹 조회의 `<group>`에는 이름 또는 UUID를 지정한다.
|
|
99
|
+
이름이 중복되면 후보 UUID를 보여 주고 종료 코드 3으로 끝난다.
|
|
100
|
+
한 포트에 보안그룹이 여러 개면 모든 그룹의 허용 규칙이 함께 적용된다.
|
|
101
|
+
공유 그룹의 규칙을 바꾸면 그 그룹을 쓰는 모든 포트에 영향을 주므로 먼저 `ports`로 연결 대상을 확인한다.
|
|
102
|
+
`ports`의 `instance_name`은 Compute 인스턴스 목록에서 얻는다.
|
|
103
|
+
인스턴스 조회가 실패하면 이름 칸은 비어 있고 stderr에 경고가 남는다.
|
|
104
|
+
|
|
105
|
+
### 보안그룹 변경
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
nhncloud network security-group create --name <name> --description "<설명>"
|
|
109
|
+
nhncloud network security-group update <group> --name <new-name> --description "<설명>"
|
|
110
|
+
nhncloud network security-group delete <group> --yes
|
|
111
|
+
nhncloud network security-group rule create <group> --direction ingress --protocol tcp --port 22 --cidr <admin-cidr>
|
|
112
|
+
nhncloud network security-group rule delete <rule-id> --yes
|
|
113
|
+
nhncloud instance security-group add <instance-id> <group> --yes
|
|
114
|
+
nhncloud instance security-group remove <instance-id> <group> --yes
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
- 그룹을 만들면 송신 기본 규칙(IPv4, IPv6)이 자동으로 포함된다.
|
|
118
|
+
- `rule create`의 `--direction`은 `ingress` 또는 `egress`이고 필수다.
|
|
119
|
+
- `--protocol`은 `tcp`, `udp`, `icmp`, `any` 중 하나다.
|
|
120
|
+
- 포트(`--port` 또는 `--port-range <start-end>`)는 `tcp`와 `udp`에만 지정할 수 있다.
|
|
121
|
+
- `--cidr`(IPv4 주소나 CIDR)와 `--remote-group` 중 하나만 쓴다. 함께 지정하면 거부된다.
|
|
122
|
+
- 규칙 수정 API가 없다. 규칙을 교체하려면 새 규칙을 먼저 만들고 옛 규칙을 지운다.
|
|
123
|
+
두 단계라 중간에 실패하면 두 규칙이 함께 남거나 허용이 빠질 수 있으므로, 각 단계 뒤 `rule list`로 확인한다.
|
|
124
|
+
- 그룹 삭제는 연결된 포트가 있으면 거부된다.
|
|
125
|
+
다른 그룹 규칙이 삭제할 그룹을 원격 그룹으로 참조하고 있어도 삭제는 진행되고 경고만 남는다.
|
|
126
|
+
- 인스턴스 연결 변경(`add`, `remove`)은 같은 이름의 그룹이 둘 이상이면 요청 전에 거부된다.
|
|
127
|
+
한쪽 이름을 `update --name`으로 먼저 바꾼다.
|
|
128
|
+
- 연결 변경 뒤 `경고: 요청은 접수됐지만 ...`이 stderr에 나오면 요청은 접수된 것이다.
|
|
129
|
+
다시 실행하지 말고 `network security-group ports <group>`으로 반영을 확인한다. 이때 종료 코드는 0이다.
|
|
130
|
+
|
|
131
|
+
#### 공유 그룹을 쓰는 개발 DB를 전용 그룹으로 분리
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
nhncloud network security-group ports <shared-group> --json # 공유 그룹을 쓰는 인스턴스 확인
|
|
135
|
+
nhncloud network security-group rule list <shared-group> --json # 옮길 규칙 확인
|
|
136
|
+
nhncloud network security-group create --name dev-db --description "개발 DB 전용" --quiet
|
|
137
|
+
nhncloud network security-group rule create dev-db --direction ingress --protocol tcp --port 22 --cidr <admin-cidr>
|
|
138
|
+
nhncloud network security-group rule create dev-db --direction ingress --protocol tcp --port 5432 --remote-group <app-group>
|
|
139
|
+
nhncloud instance security-group add <db-instance-id> dev-db --yes
|
|
140
|
+
nhncloud instance security-group remove <db-instance-id> <shared-group> --yes
|
|
141
|
+
nhncloud network security-group ports dev-db
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
- SSH 관리 경로를 새 그룹에 먼저 넣고 새 그룹을 연결한 뒤에 공유 그룹을 해제해야, 해제하는 사이에 접근이 끊기지 않는다.
|
|
145
|
+
- 송신 규칙은 그룹 생성 시 기본 규칙으로 보존되므로 따로 만들지 않는다.
|
|
146
|
+
- 복구: `nhncloud instance security-group add <db-instance-id> <shared-group> --yes`로 공유 그룹을 다시 연결한다.
|
|
147
|
+
|
|
90
148
|
## Volume
|
|
91
149
|
|
|
92
150
|
```bash
|
|
@@ -115,12 +173,3 @@ nhncloud floatingip delete <floatingip-id> --yes
|
|
|
115
173
|
|
|
116
174
|
`floatingip create --quiet`는 발급된 Floating IP id를 출력한다.
|
|
117
175
|
`floatingip associate`는 instance→port_id 매핑 경로 미확정으로 아직 제공하지 않는다.
|
|
118
|
-
|
|
119
|
-
## 에러 코드
|
|
120
|
-
|
|
121
|
-
| 상황 | exit code |
|
|
122
|
-
|------|-----------|
|
|
123
|
-
| IaaS 자격증명 누락 또는 불완전 | 4 |
|
|
124
|
-
| Keystone 인증 실패 | 2 |
|
|
125
|
-
| 미등록 region, 필수 옵션 누락, `--yes` 누락 | 3 |
|
|
126
|
-
| API 오류 또는 wait timeout | 1 |
|
|
@@ -20,22 +20,6 @@ nhncloud loadbalancer ipacl target list <group> \
|
|
|
20
20
|
--json
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
## 명령
|
|
24
|
-
|
|
25
|
-
| 명령 | 용도 | 기본 테이블 컬럼 |
|
|
26
|
-
|------|------|------------------|
|
|
27
|
-
| `loadbalancer list` | Load Balancer 목록 조회 | `id`, `name`, `vip_address`, `provisioning_status`, `operating_status`, `ipacl_group_action` |
|
|
28
|
-
| `loadbalancer get <loadbalancer>` | 이름 또는 UUID로 단건 조회 | `field`, `value` |
|
|
29
|
-
| `loadbalancer ipacl list` | IP ACL 그룹 목록 조회 | `id`, `name`, `action`, `ipacl_target_count`, `loadbalancer_count` |
|
|
30
|
-
| `loadbalancer ipacl get <group>` | 이름 또는 UUID로 IP ACL 그룹 단건 조회 | `field`, `value` |
|
|
31
|
-
| `loadbalancer ipacl target list <group>` | 그룹의 IP ACL 대상 목록 조회 | `id`, `cidr_address`, `description`, `ipacl_group_id` |
|
|
32
|
-
| `loadbalancer ipacl create` | IP ACL 그룹 생성 | `field`, `value` |
|
|
33
|
-
| `loadbalancer ipacl delete <group>` | IP ACL 그룹과 하위 대상·연결 규칙 삭제 | `field`, `value` |
|
|
34
|
-
| `loadbalancer ipacl target add <group>` | 대상 추가 후 관련 Load Balancer 재바인딩 | `field`, `value` |
|
|
35
|
-
| `loadbalancer ipacl target remove <target-id>` | 대상 삭제 후 관련 Load Balancer 재바인딩 | `field`, `value` |
|
|
36
|
-
| `loadbalancer set-ipacl <loadbalancer>` | IP ACL 그룹 연결 전체 교체 | `field`, `value` |
|
|
37
|
-
| `loadbalancer clear-ipacl <loadbalancer>` | IP ACL 그룹 연결 전체 해제 | `field`, `value` |
|
|
38
|
-
|
|
39
23
|
단건 Load Balancer 테이블에는 `id`, `name`, `vip_address`, `provisioning_status`, `operating_status`, `ipacl_group_action`, `ipacl_group_ids`가 행으로 출력된다.
|
|
40
24
|
단건 IP ACL 그룹 테이블에는 `id`, `name`, `action`, `ipacl_target_count`, `loadbalancer_ids`가 행으로 출력된다.
|
|
41
25
|
|
|
@@ -156,22 +140,6 @@ nhncloud loadbalancer ipacl target remove <target-id> \
|
|
|
156
140
|
목록이 비어 있으면 기본 모드는 `결과 없음`을 stdout에 출력하고, `--json`은 빈 배열을 출력하며, `--quiet`는 출력하지 않는다.
|
|
157
141
|
`--json`은 NHN Cloud 응답의 최상위 래퍼를 제거한 객체 또는 배열이다.
|
|
158
142
|
|
|
159
|
-
## 공통 옵션
|
|
160
|
-
|
|
161
|
-
| 옵션 | 설명 |
|
|
162
|
-
|------|------|
|
|
163
|
-
| `--region <region>` | region override. 생략하면 IaaS 자격증명의 region을 사용 |
|
|
164
|
-
| `--profile <name>` | 사용할 profile |
|
|
165
|
-
| `--json` | 객체 또는 배열을 JSON으로 stdout에 출력 |
|
|
166
|
-
| `--quiet` | 리소스 UUID만 stdout에 출력 |
|
|
167
|
-
|
|
168
|
-
## 쓰기 전용 옵션
|
|
169
|
-
|
|
170
|
-
| 옵션 | 적용 명령 | 설명 |
|
|
171
|
-
|------|-----------|------|
|
|
172
|
-
| `--yes` | `ipacl delete`, `ipacl target add/remove`, `set-ipacl`, `clear-ipacl` | 삭제·연결 교체·대상 변경을 비대화형으로 확인 |
|
|
173
|
-
| `--no-rebind` | `ipacl target add/remove` | 대상 변경 후 자동 재바인딩 생략 |
|
|
174
|
-
|
|
175
143
|
## stdout과 stderr
|
|
176
144
|
|
|
177
145
|
- 테이블, JSON, UUID, 정상 빈 결과는 stdout에 출력한다.
|
|
@@ -225,13 +193,3 @@ stdout JSON의 `status`는 `partial`이며, 실패마다 기계 실행용 `retry
|
|
|
225
193
|
AI 에이전트는 `retry_command`를 셸에서 다시 해석하지 말고 `retry_argv` 배열을 직접 실행한다.
|
|
226
194
|
빈 그룹 snapshot의 복구 배열은 `clear-ipacl`을 사용한다.
|
|
227
195
|
복구 명령이 성공한 뒤 원래 대상 추가·삭제를 반복하지 않는다.
|
|
228
|
-
|
|
229
|
-
## 에러 코드
|
|
230
|
-
|
|
231
|
-
| 상황 | exit code |
|
|
232
|
-
|------|-----------|
|
|
233
|
-
| Load Balancer 또는 IP ACL API 오류 | 1 |
|
|
234
|
-
| 대상 변경 후 재바인딩 부분 실패 | 1 |
|
|
235
|
-
| Keystone 인증 실패 | 2 |
|
|
236
|
-
| 빈 이름·UUID, 리소스 없음, 중복 이름 | 3 |
|
|
237
|
-
| IaaS 자격증명 누락 또는 미등록 region | 4 |
|
|
@@ -22,18 +22,6 @@ nhncloud logncrash search \
|
|
|
22
22
|
--json
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
옵션:
|
|
26
|
-
|
|
27
|
-
| 옵션 | 필수 | 설명 |
|
|
28
|
-
|------|:---:|------|
|
|
29
|
-
| `--query <lucene>` | 예 | Lucene 질의 문자열. API에 그대로 전달 |
|
|
30
|
-
| `--from <time>` | 예 | 검색 시작. 초와 시간대를 갖춘 ISO8601 또는 상대시간 |
|
|
31
|
-
| `--to <time>` | 예 | 검색 끝. 초와 시간대를 갖춘 ISO8601, 상대시간, `now` |
|
|
32
|
-
| `--page <n>` | 아니오 | 전환 호환용 pageNumber. 기본 0이며 0만 허용 |
|
|
33
|
-
| `--size <n>` | 아니오 | pageSize. 기본 10, 범위 1~100 |
|
|
34
|
-
| `--cursor <value>` | 아니오 | 직전 JSON 응답의 불투명한 `nextCursor` |
|
|
35
|
-
| `--profile <name>` | 아니오 | 사용할 profile |
|
|
36
|
-
|
|
37
25
|
CLI는 REAL API 실측 계약에 따라 모든 커서 요청을 `logTime DESC`로 고정 정렬한다.
|
|
38
26
|
사용자 정렬 옵션은 제공하지 않는다.
|
|
39
27
|
|
|
@@ -117,7 +105,7 @@ nhncloud logncrash available-token --quiet
|
|
|
117
105
|
호출 비용을 사전에 계산할 공식 규칙이 없고, 성공한 한 번의 호출이 잔량을 음수로 만들 수 있다.
|
|
118
106
|
잔량 조회가 실패하면 CLI는 검색을 강행하지 않고 그 오류로 끝난다.
|
|
119
107
|
|
|
120
|
-
**검색 기간만
|
|
108
|
+
**검색 기간만 줄이는 것을 보장된 해법으로 보지 않는다.**
|
|
121
109
|
공식 가이드는 기간, 크기와 쿼리 복잡도가 함께 비용에 영향을 준다고 설명하지만 산정식은 공개하지 않는다.
|
|
122
110
|
기간을 나누면 한 호출의 비용이 줄 수 있지만 호출 수가 늘어난다.
|
|
123
111
|
`available-token`의 추정 시간을 확인한 뒤 사용자가 다시 실행해야 한다.
|
|
@@ -128,21 +116,15 @@ CLI는 자동으로 다시 시도하지 않는다.
|
|
|
128
116
|
### 반복 조회를 설계할 때
|
|
129
117
|
|
|
130
118
|
주기적으로 로그를 수집하는 자동화라면 아래를 전제로 짠다.
|
|
131
|
-
실패한 워크플로에서 되짚어 얻은 것이다.
|
|
132
119
|
|
|
133
120
|
**호출 비용을 이전 실측값으로 예측하지 않는다.**
|
|
134
|
-
같은 프로젝트에서도
|
|
121
|
+
같은 프로젝트에서도 범위를 줄인 쿼리의 비용이 호출당 약 85에서 약 21,870까지 다르게 관측됐다.
|
|
135
122
|
쿼리와 기간은 필요한 데이터 범위에 맞추되, 다음 호출 전에 `available-token`을 다시 확인한다.
|
|
136
123
|
|
|
137
124
|
**전수 수집은 `search` 반복이 아니라 `export` 한 번이다.**
|
|
138
125
|
`search`를 페이지마다 부르면 호출 수가 페이지 수만큼 늘어난다.
|
|
139
126
|
`export`는 같은 양을 훨씬 적은 호출로 받고, 기간 재분할과 페이지 순회를 CLI가 처리한다.
|
|
140
127
|
|
|
141
|
-
**`--page`로 페이지네이션을 직접 만들지 않는다.**
|
|
142
|
-
Search v3에서 `--page`는 `0`만 받는다.
|
|
143
|
-
`1` 이상을 넘기면 입력 오류(종료 코드 3)로 거부되며, 이것은 시간이 지나도 풀리지 않는다.
|
|
144
|
-
100건을 넘겨 받아야 하면 `export`를 쓴다.
|
|
145
|
-
|
|
146
128
|
**재시도할 때 오류를 구분한다.**
|
|
147
129
|
조회 횟수 제한은 토큰 회복 뒤 다시 시도할 수 있고, 서버 500은 export의 기간 분할 대상이다.
|
|
148
130
|
입력 오류와 설정 오류는 기다려도 풀리지 않는다.
|
|
@@ -171,14 +153,7 @@ nhncloud logncrash export \
|
|
|
171
153
|
--output logs.jsonl
|
|
172
154
|
```
|
|
173
155
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
| 옵션 | 설명 |
|
|
177
|
-
|------|------|
|
|
178
|
-
| `--output <file>` | 필수. 출력 파일 |
|
|
179
|
-
| `--format json` | JSON 배열로 저장. 기본은 JSON Lines |
|
|
180
|
-
| `--force` | 기존 파일 덮어쓰기 |
|
|
181
|
-
| `--size <n>` | 폐기 예정 호환 옵션. 10~100 검증 후 경고하고 v3 요청에는 미전달 |
|
|
156
|
+
기본 파일 형식은 JSON Lines이며, `--format json`을 지정하면 JSON 배열로 저장한다.
|
|
182
157
|
|
|
183
158
|
scroll 시작이나 계속 요청에서 서버가 500 응답을 반환하면 CLI가 해당 기간을 절반으로
|
|
184
159
|
줄여 자동으로 다시 시도한다. 성공한 기간 크기는 남은 구간에도 재사용하므로 사용자가
|
|
@@ -241,24 +216,4 @@ nhncloud logncrash send --file ./error.log --level ERROR
|
|
|
241
216
|
본문이 없거나 비어 있으면 입력 오류다.
|
|
242
217
|
단일 로그 본문은 8MB 한도이며 초과 시 전송 전 차단된다.
|
|
243
218
|
|
|
244
|
-
옵션:
|
|
245
|
-
|
|
246
|
-
| 옵션 | 설명 |
|
|
247
|
-
|------|------|
|
|
248
|
-
| `--body <text>` | 로그 본문 |
|
|
249
|
-
| `--file <path>` | 본문 파일 |
|
|
250
|
-
| `--level <level>` | DEBUG, INFO, WARN, ERROR, FATAL |
|
|
251
|
-
| `--app-version <ver>` | projectVersion |
|
|
252
|
-
| `--source <s>` / `--type <t>` / `--host <h>` | 부가 필드 |
|
|
253
|
-
| `--profile <name>` | 사용할 profile |
|
|
254
|
-
|
|
255
219
|
`--json`이면 `{ ok: true, bytes }`를 stdout에 출력한다.
|
|
256
|
-
|
|
257
|
-
## 에러 코드
|
|
258
|
-
|
|
259
|
-
| 상황 | exit code |
|
|
260
|
-
|------|-----------|
|
|
261
|
-
| 검색 appkey 또는 공통 UAK 누락 | 4 |
|
|
262
|
-
| 인증 실패 | 2 |
|
|
263
|
-
| 시간 범위 초과, 본문 없음, 8MB 초과 | 3 |
|
|
264
|
-
| API 오류 또는 봉투 실패 | 1 |
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# NCR Reference
|
|
2
2
|
|
|
3
|
-
`ncr` 명령군은 NHN Container Registry 레지스트리, 이미지, 태그를 조회한다.
|
|
4
|
-
Management API는 공통 UAK 정적 헤더를 사용한다.
|
|
5
|
-
이미지와 태그 조회는 Harbor REST `/api/v2.0` 데이터플레인을 직접 호출하고 UAK Basic Auth를 사용한다.
|
|
6
|
-
|
|
7
3
|
## 설정
|
|
8
4
|
|
|
9
5
|
공통 UAK와 NCR appkey가 필요하다.
|
|
@@ -13,6 +9,7 @@ nhncloud configure --uak-id <uak-id> --uak-secret <uak-secret> --ncr-appkey <app
|
|
|
13
9
|
```
|
|
14
10
|
|
|
15
11
|
기본 region은 `kr1`이고, `kr1`, `kr2`, `kr3`를 지원한다.
|
|
12
|
+
공공망 profile(`"environment": "gov"`)의 NCR API는 `kr1`만 지원한다.
|
|
16
13
|
|
|
17
14
|
## Registry 조회
|
|
18
15
|
|
|
@@ -47,25 +44,7 @@ nhncloud ncr tags <registry> <repository> --json | jq -r '.[].tag'
|
|
|
47
44
|
nhncloud ncr tags <registry> <repository> --json | jq 'sort_by(.push_time) | last | .tag'
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
## 옵션
|
|
51
|
-
|
|
52
|
-
| 옵션 | 설명 |
|
|
53
|
-
|------|------|
|
|
54
|
-
| `--region <region>` | NCR region. 기본 `kr1` |
|
|
55
|
-
| `--profile <name>` | 사용할 profile |
|
|
56
|
-
|
|
57
47
|
## 주의사항
|
|
58
48
|
|
|
59
|
-
- appkey는 NCR service appkey다.
|
|
60
|
-
- 인증 secret은 공통 UAK secret을 사용한다.
|
|
61
49
|
- Harbor REST 경로는 NHN 공통 봉투가 아니므로 wrapper unwrap을 기대하지 않는다.
|
|
62
50
|
- registry나 repository 인수는 공백 또는 빈값이면 입력 오류다.
|
|
63
|
-
|
|
64
|
-
## 에러 코드
|
|
65
|
-
|
|
66
|
-
| 상황 | exit code |
|
|
67
|
-
|------|-----------|
|
|
68
|
-
| UAK 누락 또는 NCR appkey 미설정 | 4 |
|
|
69
|
-
| UAK 인증 실패 | 2 |
|
|
70
|
-
| 지원하지 않는 region, 빈 registry/repository 인수 | 3 |
|
|
71
|
-
| NCR API 또는 Harbor API 오류 | 1 |
|