cfctl init proxy

proxy, one of the subcommands of cfctl setting init, is a command that initializes the environment using SpaceONE’s domain URL.

01. Flag Types

The proxy subcommand has three flags.

cfctl setting init proxy {endpoint} {-app|--user|--internal}
  • --app: Initialize with application token configuration
    • cfctl setting init proxy http[s]://example.com --app
  • --user: Initialize with User ID and Password configuration
    • cfctl setting init proxy http[s]://example.com --user
  • --internal: Use internal endpoint (can be used alone or with the --app flag)
    • cfctl setting init proxy http[s]://example.com --internal

1.1. --app

Here’s an example of initializing the environment using a domain URL provided by SpaceONE .

❯ 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
  • The Environment name is set to default by default, but can be changed to any name you want.
    • In this example, it’s set to spaceone.
  • When set with the --app flag, -app is appended to the Environment name.
    • In this example, since we set the Environment name to spaceone and used the --app flag, it’s set to spaceone-app.

When you initialize the environment using the cfctl setting init command, a configuration file is created and saved in $HOME/.cfctl/setting.yaml.

    • setting.yaml

  • ~/.cfctl/setting.yaml
    environment: spaceone-app
    environments:
      cloudone-app:
        endpoint: https://spaceone.-.com
        proxy: true
        token: no_token

    Replace no_token in token: no_token with the app token received through Creating an App.

    ~/.cfctl/setting.yaml
    environment: spaceone-app
    environments:
      spaceone-app:
        endpoint: https://spaceone.-.com
        proxy: true
        token: eyJ...

    1.2. --user

    The --user flag is used to initialize the environment using User ID and Password after creating a user with Local(ID) or Local(Email) in the Admin page.

    Adding Users in Admin Page

    Users can be added using either Local(ID) or Local(Email).

    After adding a user, initialize the environment using the --user flag.

    ❯ 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
    • The Environment name is set to default by default, but can be changed to any name you want.
      • In this example, it’s set to spaceone.
    • When set with the --user flag, -user is appended to the Environment name.
      • In this example, since we set the Environment name to spaceone and used the --user flag, it’s set to spaceone-user.

    Unlike initializing with the --app flag, when initializing with the --user flag, there is no token key value. You can see that the environment has immediately changed from spaceone-app to spaceone-user.

    ~/.cfctl/setting.yaml
    environment: spaceone-user
    environments:
      spaceone-app:
        endpoint: https://spaceone.-.com
        proxy: true
        token: eyJ...
      spaceone-user:
        endpoint: https://spaceone.-.com
        proxy: true
    • When initializing with the --user flag, there is no token key value since it doesn’t use an app token. Instead, you can log in later using cfctl login.
    • You can learn more about logging in with User ID and Password when the suffix is -user (like spaceone-user) in the login section.

    1.3. --internal

    The --internal flag is used when using internal endpoints, for example, when accessing SpaceONE services within a Kubernetes cluster. Let’s try overwriting an existing environment this time.

    ❯ 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
    • With the --internal flag, -app is appended to the Environment name.
    • Since the spaceone-app environment already exists, a warning appears, and entering y will overwrite the existing environment.
    • The endpoint is set to the internal endpoint grpc:/-.-.:[PORT]. Even if you enter a Domain URL, it’s set to the grpc protocol because it uses an internal endpoint.
    • While we used the same environment name here to demonstrate how overwriting environment information works, it’s recommended to use different environment names in practice. (For example, if you set the Environment name to spaceone-internal, it will be set as spaceone-internal-app.)

    Like environments initialized with the -app flag, environments initialized with the --internal flag also have a token key value. As with environments initialized through --app, replace token: no_token with the app token received through Creating an App.

    ~/.cfctl/setting.yaml
    environment: spaceone-app
    environments:
      spaceone-app:
        endpoint: grpc://-.-.:[PORT]
        proxy: false
        token: eyJ...
      spaceone-user:
        endpoint: https://spaceone.-.com
        proxy: true