Skip to content
/ bitops Public

Automate the provisioning and configuration of cloud infrastructure with BitOps docker image

License

Notifications You must be signed in to change notification settings

bitovi/bitops

Repository files navigation


Build Status LICENSE Python 3.8 linting: pylint Latest Release Docker Pulls GitHub Discussions Join our Community Discord

tl;dr

BitOps is an automated orchestrator for deployment tools using GitOps.

It leverages a way to describe infrastructure for many environments and IaC tools called an Operations Repository.

Getting Started - Youtube


Features

  • Configurable: Configure how you want BitOps to deploy your application with yaml or environment variables.
  • Event Hooks: If BitOps doesn't have built-in support for your usecase, execute arbitrary bash scripts at different points using BitOps' lifecycle.
  • Pipeline Runner Agnostic: By bundling all logic in BitOps, you can have the same experience regardless of which pipeline service runs your deployment pipeline. You can even run BitOps locally!
  • Customizable: Configure what tools you want installed in your BitOps image. Only take what you need, leave the bloat behind.

How it works

BitOps is a deployment tool orchestrator packaged in a Docker image. An Operations Repository is mounted to a BitOps container's /opt/bitops_deployment directory, and BitOps will parse through a given environment directory and;

  • Auto-detect BitOps configuration files within tool directories
  • Loop through each tool and
    • Read in yaml configuration
    • Run any pre-execute hooks
    • Execute the tool
    • Run any post-execute hooks

Quick Start

BitOps is packaged as a docker image and is available on Dockerhub.

docker pull bitovi/bitops:latest
cd $YOUR_OPERATIONS_REPO
docker run bitovi/bitops:latest -v .:/opt/bitops_deployment

Need an example? We got you! Check out our Example Operation Repos

Configure BitOps

BitOps is configured in 3 steps:

  1. Define configuration for each tool in your environments
  2. Configure access to your cloud provider
  3. Configure how you want your deployment tools to execute

From there, the contents of the tool directories in your environments can exist exactly how the tool expects.

Ready to dive deeper? Check out our Docs

Still not enough? Why not try building and running a local version of BitOps

Need a hand with implementation? We can help

Supported Plugins

Don't see a plugin you want? Submit an issue or build your own!

Supported Cloud Providers

Support / Contributing

We welcome any contributions from the community with open arms. Take a look at our Contributing guide.

Come hangout with us in Discord!

Updating Documentation

https://bitovi.github.io/bitops/ is auto-generated using MKDocs. Updating markdown in docs/* and ensuring the page is defined in mkdocs.yml will auto update the site when pushed to the master branch.

Testing Documentation Locally with Docker

Using Docker to test the docs is easy. Just run:

docker-compose -f docker-compose.docs.yaml up

Then load http://localhost:8000

Community

📅 Office Hours

Join us weekly for free DevOps office hours, organized by Bitovi. The BitOps core team will be there to answer any questions you have about BitOps, GitOps, project plans, features, and support. See #288 for the schedule and calendar link.

📝 Survey

We are always looking for ways to improve BitOps. If you have a few minutes, please fill out our user survey: https://forms.gle/mDLBE63UF9CdcqdG7 By submitting you help us understand how BitOps is being used and what we can do to improve it like new features, documentation, and more.

License

MIT License.