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