Skip to main content

Setup

otoroshictl is capable of managing multiple otoroshi clusters with multiple users, but the first thing we need to make is to create the otoroshictl config file.

To do that, try

$ otoroshictl config reset

then you'll be able to list the otoroshi cluster you can manage with

$ otoroshictl config list

+---------+---------+------------+
| name    | current | cloud_apim |
+---------+---------+------------+
| default | yes     |            |
+---------+---------+------------+

and display the current one

$ otoroshictl config current-config

---
apiVersion: v1
kind: OtoroshiCtlConfig
metadata: {}
cloud_apim: ~
users:
  - name: default
    client_id: admin-api-apikey-id
    client_secret: admin-api-apikey-secret
    health_key: ~
contexts:
  - name: default
    cluster: default
    user: default
    cloud_apim: false
clusters:
  - name: default
    hostname: otoroshi-api.oto.tools
    ip_addresses: ~
    port: 8080
    tls: false
    client_cert: ~
    routing_hostname: ~
    routing_port: ~
    routing_tls: ~
    routing_ip_addresses: ~
current_context: default

by default the registered otoroshi cluster is supposed to be local and use default credentials, but you can modify it of even create a new one

Create a new cluster

to create a new cluster configuration just do the following

$ otoroshictl config add new-cluster --hostname otoroshi.foo.bar --port 8443 --tls --client-id xxx --client-secret xxxxx

you can even add --current to make it the current one

now if you list your clusters you have

$ otoroshictl config list

+-------------+---------+------------+
| name        | current | cloud_apim |
+-------------+---------+------------+
| default     |         |            |
+-------------+---------+------------+
| new-cluster | yes     |            |
+-------------+---------+------------+

with the content

$ otoroshictl config current-config

---
apiVersion: v1
kind: OtoroshiCtlConfig
metadata: {}
cloud_apim: ~
users:
  - name: default
    client_id: admin-api-apikey-id
    client_secret: admin-api-apikey-secret
    health_key: ~
  - name: new-cluster
    client_id: xxx
    client_secret: xxxxx
    health_key: ~
contexts:
  - name: default
    cluster: default
    user: default
    cloud_apim: false
  - name: new-cluster
    cluster: new-cluster
    user: new-cluster
    cloud_apim: false
clusters:
  - name: default
    hostname: otoroshi-api.oto.tools
    ip_addresses: ~
    port: 8080
    tls: false
    client_cert: ~
    routing_hostname: ~
    routing_port: ~
    routing_tls: ~
    routing_ip_addresses: ~
  - name: new-cluster
    hostname: otoroshi.foo.bar
    ip_addresses: ~
    port: 8443
    tls: true
    client_cert: ~
    routing_hostname: ~
    routing_port: ~
    routing_tls: false
    routing_ip_addresses: ~
current_context: new-cluster

Change the current config.

you can change the current config at any moment using the use command

$ otoroshictl config list

+-------------+---------+------------+
| name        | current | cloud_apim |
+-------------+---------+------------+
| default     | yes     |            |
+-------------+---------+------------+
| new-cluster |         |            |
+-------------+---------+------------+

$ otoroshictl config use new-cluster
$ otoroshictl config list

+-------------+---------+------------+
| name        | current | cloud_apim |
+-------------+---------+------------+
| default     |         |            |
+-------------+---------+------------+
| new-cluster | yes     |            |
+-------------+---------+------------+

Modify an existing cluster

you can also change an existing configuration with the commands set-cluster, set-user, set-context

$ otoroshictl config set-cluster new-cluster --hostname otoroshi.bar.foo --port 8080 --tls false
$ otoroshictl config set-user new-cluster --client-id yyy ---client-id yyyyyyy
$ otoroshictl config current-config

---
apiVersion: v1
kind: OtoroshiCtlConfig
metadata: {}
cloud_apim: ~
users:
  - name: default
    client_id: admin-api-apikey-id
    client_secret: admin-api-apikey-secret
    health_key: ~
  - name: new-cluster
    client_id: yyy
    client_secret: yyyyyyy
    health_key: ~
contexts:
  - name: default
    cluster: default
    user: default
    cloud_apim: false
  - name: new-cluster
    cluster: new-cluster
    user: new-cluster
    cloud_apim: false
clusters:
  - name: default
    hostname: otoroshi-api.oto.tools
    ip_addresses: ~
    port: 8080
    tls: false
    client_cert: ~
    routing_hostname: ~
    routing_port: ~
    routing_tls: ~
    routing_ip_addresses: ~
  - name: new-cluster
    hostname: otoroshi.bar.foo
    ip_addresses: ~
    port: 8080
    tls: false
    client_cert: ~
    routing_hostname: ~
    routing_port: ~
    routing_tls: false
    routing_ip_addresses: ~
current_context: new-cluster

All possible config. subcommands

$ otoroshictl config -h

Manage all the otoroshi cluster configurations you want to connect to with otoroshictl

Usage: otoroshictl config [OPTIONS] <COMMAND>

Commands:
  current-config       Display the current config. file content
  edit-current-config  Edit the current config. file
  current-location     Display current config. location
  current-context      Display current context
  use-context          Set the current context
  use                  Set the current context
  rename-context       Rename a context
  list                 Display the list of usable contexts
  list-clusters        Display the list of clusters
  list-users           Display the list of users
  list-contexts        Display the list of contexts
  set-cluster          Create or update a cluster
  set-user             Create or update a user
  set-context          Create or update a context
  add                  Create and set a full config
  delete-cluster       Delete a cluster
  delete-user          Delete a user
  delete-context       Delete a context
  delete               Delete a full context with the associated cluster and user
  reset                Delete configuration and start with a clean one
  import               Import a context file with current context file
  help                 Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose
          Turn debugging information on
  -o, --ouput <FORMAT>
          Change the rendering format (can be one of: json, yaml, json_pretty)
  -c, --config-file <FILE or URL>
          Sets a custom config file
      --otoroshi-cluster-tls
          Sets the tls flag to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-hostname <HOSTNAME>
          Sets the hostname to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-port <PORT>
          Sets the port to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-routing-tls
          Sets the tls flag to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-routing-hostname <HOSTNAME>
          Sets the hostname to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-routing-port <PORT>
          Sets the port to connect to a custom otoroshi cluster without using a config file
      --otoroshi-user-client-id <CLIENT_ID>
          Sets the client_id to connect to a custom otoroshi cluster without using a config file
      --otoroshi-user-client-secret <CLIENT_SECRET>
          Sets the client_secret to connect to a custom otoroshi cluster without using a config file
      --otoroshi-user-health-key <HEALTH_KEY>
          Sets the health_key to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-cert-location <FILE>
          Sets the client cert location to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-key-location <FILE>
          Sets the client cert key location to connect to a custom otoroshi cluster without using a config file
      --otoroshi-cluster-ca-location <FILE>
          Sets the client cert ca location to connect to a custom otoroshi cluster without using a config file
  -h, --help
          Print help