Opsilon
A customizable CLI for collaboratively running container-native workflows
For full usage, please refer to the: Docs.
This project serves the purpose of giving developers, operations and other personal the ability to run custom workflows on their personal computer using a container environment, without them writing code and having to understand the meaning behind the script.
Download
Quickstart
Download the latest release for your os: (this example uses version v0.3.0
).
For Mac:
$ curl -L https://github.com/jatalocks/opsilon/releases/download/v0.3.0-alpha/opsilon_0.3.0-alpha_Darwin_x86_64.tar.gz \
| tar -xz opsilon | chmod u+x opsilon
Test if the Opsilon CLI works: (When it doesn't work, you may have downloaded the wrong file or your device/os isn't supported)
$ ./opsilon version
Move the executable to a folder on your $PATH
:
$ mv opsilon /usr/local/bin/opsilon # or /usr/bin/opsilon
Usage
Make sure you have Docker installed on your computer (Or Connected to a kubernetes cluster --kubernetes
).
EITHER
- Connect to the examples folder present in this repository
$ opsilon repo add --git -n examples -d examples -s examples/workflows -p https://github.com/jatalocks/opsilon.git -b main
# For private repositories, use https://myuser:github_token@github.com/myprivateorg/>myprivaterepo.git
- List available workflows
$ opsilon list
- Run a workflow!
$ opsilon run # --kubernetes (kubernetes instead of docker)
OR
- Start the web server
$ opsilon server -p 8080 # --kubernetes (kubernetes instead of docker) --database (update results in mongodb) --consul (connect to a remote configuration)
- List available API actions
$ Go to http://localhost:8080/api/v1/docs
Demo
$> opsilon
A customizable CLI for collaboratively running container-native workflows
Usage:
opsilon [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
list List all workflows available in your repositories
repo Operate on workflow repositories
run Run an available workflow
server Runs an api server that functions the same as the CLI
version Displays opsilon version
Flags:
--config string config file (default is $HOME/.opsilon.yaml)
-h, --help help for opsilon
Use "opsilon [command] --help" for more information about a command.
Contribution
I would always welcome an issue or a PR! Every contribution is welcome. Below is some information to help you get started.
Development Features
Project Layout
- assets/ => docs
- cmd/ => commandline configurartions (flags, subcommands)
- pkg/ => the entrypoints of the CLI commands
- internal/ => packages that are the main core function of the project
Makefile Targets
$> make
bootstrap install build deps
build build golang binary
clean clean up environment
cover display test coverage
docker-build dockerize golang application
fmt format go files
help list makefile targets
install install golang binary
lint lint go files
pre-commit run pre-commit hooks
run run the app
test display test coverage
Thanks
This project was made possible by https://github.com/FalcoSuessgott/golang-cli-template