cfctl init proxy
cfctl setting init
의 하위 명령어 중 하나인 proxy
는 SpaceONE의 도메인 URL을 이용하여 환경을 초기화하는 명령어입니다.
01. 플래그 종류
proxy
하위 명령어에는 세 가지 플래그가 있습니다.
cfctl setting init proxy {endpoint} {-app|--user|--internal}
--app
: 애플리케이션 Token을 이용한 구성으로 초기화cfctl setting init proxy http[s]://example.com --app
--user
: User ID, Password를 이용한 구성으로 초기화cfctl setting init proxy http[s]://example.com --user
--internal
: 내부 엔드포인트 사용 (단독 혹은--app
플래그와 함께 사용 가능)cfctl setting init proxy http[s]://example.com --internal
1.1. --app
SpaceONE 으로 부터 제공받은 도메인 URL을 이용하여 환경을 초기화하는 예시입니다.
❯ cfctl setting init proxy https://spaceone.-.com --app
Environment name: spaceone
SUCCESS Successfully initialized proxy connection to https://spaceone.-.com
SUCCESS Environment 'spaceone-app' successfully initialized.
INFO Configuration saved to: /Users/yjinjo/.cfctl/setting.yaml
Envrionment name
의 경우 기본적으로default
로 설정되어 있으며, 사용자가 원하는 이름으로 변경할 수 있습니다.- 위 예시에서는
spaceone
으로 설정하였습니다.
- 위 예시에서는
--app
플래그로 설정한 경우Environment name
뒤에-app
이 붙습니다.- 위 예시에서는
Environmnet name
을spaceone
, 그리고--app
플래그로 설정하였으므로spaceone-app
으로 설정되었습니다.
- 위 예시에서는
cfctl setting init
명령어를 이용하여 환경을 초기화하면 설정 파일이 생성되며, 이 설정 파일은 $HOME/.cfctl/setting.yaml
에 저장됩니다.
- setting.yaml
environment: spaceone-app
environments:
cloudone-app:
endpoint: https://spaceone.-.com
proxy: true
token: no_token
token: no_token
에는 앱 생성을 통해 발급받은 앱 토큰을 복사해서 no_token
을 대체하면 됩니다.
environment: spaceone-app
environments:
spaceone-app:
endpoint: https://spaceone.-.com
proxy: true
token: eyJ...
1.2. --user
--user
플래그의 경우 Admin 페이지에서 Local(ID) 혹은 Local(Email)로 사용자를 생성하고, 생성한 User ID, Password를 이용하여 환경을 초기화하는 플래그입니다.
Admin 페이지에서 사용자 추가하기
사용자 추가는 Local(ID) 혹은 Local(Email)로 추가할 수 있습니다.
사용자 추가 후, --user
플래그를 이용하여 환경을 초기화합니다.
❯ cfctl setting init proxy https://spaceone.-.com --user
Environment name: spaceone
SUCCESS Successfully initialized proxy connection to https://spaceone.-.com
SUCCESS Environment 'spaceone-user' successfully initialized.
INFO Configuration saved to: /Users/yjinjo/.cfctl/setting.yaml
Envrionment name
의 경우 기본적으로default
로 설정되어 있으며, 사용자가 원하는 이름으로 변경할 수 있습니다.- 위 예시에서는
spaceone
으로 설정하였습니다.
- 위 예시에서는
--user
플래그로 설정한 경우Environment name
뒤에-user
이 붙습니다.- 위 예시에서는
Environmnet name
을spaceone
, 그리고--user
플래그로 설정하였으므로spaceone-user
으로 설정되었습니다.
- 위 예시에서는
--user
플래그로 환경을 초기화한 경우는 --app
플래그로 환경을 초기화한 것과는 달리 token
key 값이 없습니다. 초기화한 경우 바로 환경이 기존의 spaceone-app
에서 spaceone-user
로 변경된 것을 확인할 수 있습니다.
environment: spaceone-user
environments:
spaceone-app:
endpoint: https://spaceone.-.com
proxy: true
token: eyJ...
spaceone-user:
endpoint: https://spaceone.-.com
proxy: true
--user
플래그로 환경을 초기화한 경우 앱 토큰을 사용하지 않으므로token
key 값이 없습니다. 대신cfctl login
으로 이후에 로그인을 진행할 수 있습니다.- 접미사가
spaceone-user
와 같이-user
일 때 User ID, Password로 로그인하는 것은login
섹션에서 확인할 수 있습니다.
1.3. --internal
--internal
플래그는 내부 엔드포인트를 사용하는 경우에 사용합니다. 예를 들어 쿠버네티스 클러스터 내부에 있는 SpaceONE 서비스에 접근할 때 사용합니다.
이번에는 이미 존재하는 환경에 덮어 씌어 봅시다.
❯ cfctl setting init proxy https://spaceone.-.com --internal
Environment name: spaceone
SUCCESS Successfully initialized proxy connection to https://spaceone.-.com
┌─────────── Environment Already Exists ───────────┐
| Environment 'spaceone-app' already exists. |
| Do you want to overwrite it? |
└──────────────────────────────────────────────────┘
INFO Current configuration:
environment: spaceone-app
environments:
spaceone-app:
endpoint: https://spaceone.-.com
proxy: false
token: no_token
Enter (y/n): y
SUCCESS Environment 'spaceone-app' successfully initialized.
INFO Configuration saved to: /Users/yjinjo/.cfctl/setting.yaml
--internal
플래그의 경우Environment name
뒤에-app
이 붙습니다.- 기존에
spaceone-app
환경이 존재했으므로, 이미 환경이 존재한다고 경고가 뜨고,y
를 입력하면 기존 환경을 덮어씁니다. endpoint
의 경우 내부 엔드포인트인grpc:/-.-.:[PORT]
로 설정됩니다. 이는 내부 엔드포인트를 사용하므로 Domain URL을 입력했다 하더라도grpc
프로토콜로 설정됩니다.- 여기서는 일부러 환경 정보를 덮어 씌울 때 어떤식으로 동작하는지 보여주기 위해서 같은 환경 이름으로 작성했지만, 실제로는 다른 환경 이름으로 설정하는 것을 권장합니다. (예: Environment name을
spaceone-internal
로 설정할 경우spaceone-internal-app
으로 설정됩니다.)
--internal
플래그로 초기화한 환경 역시 -app
플래그로 초기화한 환경과 마찬가지로 token
key 값이 있습니다.
--app
을 통해 환경을 초기화한 경우와 마찬가지로 token: no_token
에는 앱 생성을 통해 발급받은 앱 토큰을 복사해서 no_token
을 대체하면 됩니다.
environment: spaceone-app
environments:
spaceone-app:
endpoint: grpc://-.-.:[PORT]
proxy: false
token: eyJ...
spaceone-user:
endpoint: https://spaceone.-.com
proxy: true