.. image:: ./docs/background.png
.. image:: http://www.repostatus.org/badges/latest/active.svg :alt: Project Status: Active – The project has reached a stable, usable state and is being actively developed. :target: http://www.repostatus.org/#active
.. PyPI version — https://badge.fury.io/py/
.. image:: https://img.shields.io/github/v/release/riotkit-org/riotkit-do?include_prereleases :target: https://img.shields.io/github/v/release/riotkit-org/riotkit-do?include_prereleases :alt: Github Release
.. image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg :target: https://img.shields.io/badge/Made%20with-Python-1f425f.svg :alt: Made with Python
.. image:: https://img.shields.io/pypi/l/rkd.svg :target: https://img.shields.io/pypi/l/rkd.svg :alt: License
.. image:: https://github.com/riotkit-org/riotkit-do/workflows/Test%20and%20release%20a%20package/badge.svg :target: https://github.com/riotkit-org/riotkit-do/actions?query=workflow%3A%22Test+and+release+a+package%22 :alt: Test and release a package
.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square :target: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square :alt: PRs welcome
.. image:: https://img.shields.io/github/issues-pr/riotkit-org/riotkit-do.svg :target: https://img.shields.io/github/issues-pr/riotkit-org/riotkit-do.svg :alt: PRs open
.. image:: https://img.shields.io/github/issues/riotkit-org/riotkit-do.svg :target: https://img.shields.io/github/issues/riotkit-org/riotkit-do.svg :alt: Issues open
Hi! This project needs you! We are sorry - our goals have changed, we need to focus on delivering docker images and Kubernetes operators for our partner-organizations to let them host their services securely, therefore we do not have resources to maintain such big project as RKD. RKD has a potential especially with it's plugin-based architecture (https://github.com/riotkit-org/riotkit-do/pull/78 and https://github.com/riotkit-org/riotkit-do/pull/76)
Easiest and cleanest way to write management scripts and share them between projects, teams and even organizations
RKD is a stable, open-source, multi-purpose automation tool which balance flexibility with simplicity. The primary language is Python and YAML syntax.
RiotKit-Do can be compared to Gradle and to GNU Make, by allowing both Python and Makefile-like YAML syntax.
Can be used on PRODUCTION, for development, for testing, to replace some of Bash scripts inside docker containers, and for many more, where Makefile was used.
It is not a build tool for Java, but more a DevOps multi-purpose tool. At this time it will not replace Gradle, but maybe in the future this can be achieved by building community packages with support for building eg. Java applications.
Example use cases
- `Docker based production environment <https://github.com/riotkit-org/riotkit-harbor>`_ with multiple configuration files, procedures
- Database administrator workspace (importing dumps, creating new user accounts, plugging/unplugging databases)
- Development environment (executing migrations, importing test database, splitting tests and running parallel)
- On CI (prepare project to run on eg. Jenkins or Gitlab CI) - RKD is reproducible on local computer which makes inspection easier
- `Kubernetes/OKD deployment workspace <https://github.com/riotkit-org/riotkit-do-example-kubernetes-workspace>`_ (create shared YAML parts with JINJA2 between multiple environments and deploy from RKD)
- Automate things like certificate regeneration on production server, RKD can generate any application configs using JINJA2
- `Installers <https://riotkit-do.readthedocs.io/en/latest/usage/wizard.html>`_ (RKD has built-in commands for replacing lines in files, modifying .env files)
Quick start
.. code:: bash
# 1) via PIP
pip install rkd
# 2) Create project (will create a virtual env and prepare files that could be commited to git)
rkd :rkd:create-structure
Please check available releases there: https://pypi.org/project/rkd/#history
Goals:
.. image:: ./docs/syntax.png
YAML syntax example
.. image:: ./docs/yaml-example.jpg
Python syntax example (makefile.py)
.. image:: ./docs/makefile.png
Please read the documentation here.
.. _documentation: https://riotkit-do.readthedocs.io/en/latest/ .. _here: https://riotkit-do.readthedocs.io/en/latest/
Check our github milestones_, to see what's actually planned for next releases.
.. _milestones: https://github.com/riotkit-org/riotkit-do/milestones
Taiga - automatic packaging into PRODUCTION docker image <https://github.com/riotkit-org/docker-taiga>
_Taiga Events - automatic packaging into PRODUCTION docker image <https://github.com/riotkit-org/docker-taiga-events>
_RiotKit Harbor (upcoming 2.0 version uses RKD) - Automated docker-compose PRODUCTION environment with Service Discovery, automatic SSL, rolling deployments and more! <https://github.com/riotkit-org/riotkit-harbor>
_Harbor Simple Router - NGINX image with predefined templates, controlled by environment variables <https://github.com/riotkit-org/harbor-simple-router>
_Kubernetes/OKD workspace - create deployments with reusable YAMLs <https://github.com/riotkit-org/riotkit-do-example-kubernetes-workspace>
_Arch Linux AUR package <https://aur.archlinux.org/packages/riotkit-do/>
made by ragouel <https://github.com/ragouel>
We are grassroot activists for social change, so we created RKD especially in mind for those fantastic initiatives:
Special thanks to Working Class History <https://twitter.com/wrkclasshistory>
_ for very powerful samples that we could use in our unit tests.