OpenTaaS (Tool-as-a-Service) is a platform that provides tools & frameworks on demand (lego style), relieving you from manually configuring and tinkering with the tools and their config files. It should also deploy, monitor, and secure them for you on the platform of choice (e.g., hosted ~ [k8s, compose, swarm, etc] or cloud-based ~ [AWS, OpenStack, Azure, etc]). The goal of OpenTaaS is to provide a market place of tools and frameworks with built-in monitoring and security based on common best practices on-demand.
OpenTaaS provides three important workflows:
- Create configuration files (including Dockerfiles) for supported tools.
- Compose multiple tools together as a service (composing a compose file).
- Automate the deployment of the compose services locally or to the cloud.
- Monitor deployed tools.
- Provide Built-in security for deployed tools.
Note: This project is still under developement and not meant for production in its current state.
To get started with OpenTaaS, you can download the corresponding binary for your OS (Darwin, Linux, Windows). Or you can clone this repository and build the project locally.
You need to install make
and optionally Go
on your system before proceeding.
git clone https://github.com/zanetworker/opentaas.git
cd opentaas
# build OpenTaaS binary if you have go installed
make OS=<darwin|linux|windows> install
# execute taas for command overview
taas
# build OpenTaaS binary
make OS=<darwin|linux|windows> dry
# execute taas command for overview
./taas
Let's go through the workflows mentioned above to understand how to use OpenTaaS:
- Create configuration files (including Dockerfiles) for supported tools (e.g, Jenkins, Nginx, Goss)
taas create jenkins --user user --secret pass
taas create nginx --frontend "jenkins:8081" --backend "jenkins:8080"
taas create goss --conn "tcp:jenkins:8080" --conn "tcp:nginx:8081"
This will create all the configuration files needed for all the tools under configs/tools_name/out (e.g., taas create goss) creates config files and Dockerfile for the goss tool.
├── Dockerfile
├── out
│ └── gossconfig.yml
Now that we have all the configuration file we need, we can compose our tools into a serivce.
- Compose multiple tools together as a service (composing a compose file).
taas compose --jenkins --nginx --goss
# or
taas compose -j -n -g
This will create (compose) a compose file with all the services specified on the command line
- Automate the deployment of the compose services locally or to the cloud.
- Monitor deployed tools.
- Provide Built-in security for deployed tools.
To run the tests you can simply use make test
.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Coming soon!
See also the list of contributors who participated in this project.
This project is licensed under the Apache License - see the LICENSE file for details
The idea for this project was inspired to me by reviewing this repo https://github.com/michaellihs/jenkins-swarm.