bitovi/bitops

Ops Repo Catalog

mickmcgrath13 opened this issue · 1 comments

Purpose

Operations repos give an opportunity to configure sets of configurations across multiple IaC tools. The power of BitOps grows substantially when you have a strong set of existing configuration stacks for various use-cases. Bitovi, for example, has found enormous value in speeding up our ability to kick off a new project because we have an internal set of ops repos to copy from.

This issue is to implement an open source catalog of operations repositories (or operations repo environments) and allow contributors to add their own stacks that others can use.

Value

The core value of an ops repo catalog would be to provide a growing set of examples for people to clone/copy and use for their own needs. They'd act as a great starting point for bootstrapping infrastructure.

Examples

  • StackStorm HA (terraform to create clusters, helm to deploy stackstorm)
    • There could be a separate ops repo environment per cloud provider
  • StackStorm HA - VM based (terraform to spin up VMs, ansible to deploy stackstorm)
    • There could be a separate ops repo environment per cloud provider
  • StackStorm Single VM (terraform to spin up VMs, ansible to deploy stackstorm)
    • There could be a separate ops repo environment per cloud provider
  • Single VM running a docker image (terraform to spin up VMs, ansible to pull and start Docker)
  • HeyEmoji hosted on a VM
  • Kubernetes cluster with various tools baked in (prometheus, nginx, etc)

Approach

Option 1: We could create a dedicated github org to house sets of operations repositories and provide an avenue for the community to create new repos
Option 2: We could create a single ops repo, and each catalog item would be an ops repo environment

I believe approach 1 in the long term will be more successful.

My reasoning is that, by separating the actions they become distinct entities that can be participated with distinctly and with minimal hassle. In the same way that plugins are individual components that users could work on.