__ __ __ __ __ __ _ / /__ / /_ / / ____ / / ___ __ __ ___/ / ____ ____ / / (_) / '_// __/ / _ \/ __/ / / / _ \/ // // _ / /___// __/ / / / / /_/\_\ \__/ /_//_/\__/ /_/ \___/\_,_/ \_,_/ \__/ /_/ /_/
Note
This project is in the very early stages of development. Features are incomplete, and things may change frequently.
kthcloud-cli
is a command-line interface tool for interacting with kthcloud’s API. It allows you to perform various operations such as listin deployments, creating api keys, and creating deployments from docker-compose
files.
The clis core functionality is to parse docker compose
files and create deployments from the content.
For example, if i have this docker-compose.yaml
file:
services:
testingcompose1:
image: registry.cloud.cbh.kth.se/waitapp/cicd:latest
ports:
- "8080:8080"
testingcompose:
image: postgres:15
environment:
POSTGRES_USER: supersecretuserhere
POSTGRES_PASSWORD: supersecretpassword
POSTGRES_DB: WAIT
KTHCLOUD_VISIBILITY: private
command: ["sleep", "infinity"]
ports:
- "5432:5432"
volumes:
- dbdata:/var/lib/postgresql/data
Note
The above example showcases what is supported but does not provide a functional application. The database service will simply run the sleep
command.
The tool will create two deployments and set up their environment variables, port, start commands and persistent storage.
or Mac and Linux, there is an installation script that can be run to install the CLI.
- bash
- curl
curl -fsSL https://raw.githubusercontent.com/Phillezi/kthcloud-cli/main/scripts/install.sh | bash
Check out what the script does here.
There is a PowerShell installation script that can be run to install the CLI.
powershell -c "irm https://raw.githubusercontent.com/Phillezi/kthcloud-cli/main/scripts/install.ps1 | iex"
Check out what the script does here.
If the above command fails, you might need to change your ExecutionPolicy
to run the script. This can be done by running:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Before running the install command again.
-
Clone the repository:
git clone https://github.com/Phillezi/kthcloud-cli.git cd kthcloud-cli
-
Build the application:
make
-
Run the application:
./bin/kthcloud
Tip
Alternatively you can add it to the PATH to be able to use it globally. The installation script automatically does this.
Logs in to kthcloud and retrieves an authentication token, the token gets saved to a file named session.json
inside the configuration path. It opens a browser window to let you login through the kthcloud keycloak login page.
kthcloud login
Parses a docker-compose.yaml
or docker-compose.yml
file and gives the ability to bring up these services on kthcloud
.
kthcloud compose # lists all options
Brings up the services defined in the Docker Compose file.
Note
This feature is not implemented yet.
(TODO) Brings down the services defined in the Docker Compose file.
Parses a Docker Compose file and prints the Services, Envs, Ports and Volumes. And prints out the resulting deployments.
Checks for newer releases than the release of the binary running the command. If a newer release is found it will prompt you to install it, (can be bypassed wit the -y
flag).
Warning
This currently doesnt work as expected on Windows.
Warning
This does not verify against a hash to confirm the integrity of the bibary (yet).
kthcloud update
Displays the version of the binary.
kthcloud version
The kthcloud-cli
uses a configuration file named config.yaml
it is located in the configuration directory. You can specify the following fields:
api-url
: The URL of the API endpoint.api-token
: The api token from kthcloud.loglevel
: The logging level (info, warn, error, debug) (default "info")session-path
: The filepath where the session should be loaded and saved to (default "~/.config/.kthcloud/session.json")zone
: The preferred kthcloud zone to use, will usese-flem2
by default
Example config.yaml
:
api-url: https://api.example.com
api-token: your-api-key-from-kthcloud
loglevel: error