Currently, there are 4 major types of components in Bunnyshell:

  • Kubernetes-compatible components, designed to deploy in Kubernetes in a native way
  • Build components, which produce artefacts for other components to use
  • Docker-compose components, which are based on services from docker-compose definitions
  • Customizable components, which allow the user complete control of what is executed in the workflows

Kubernetes-compatible components

These components are used for creating resources within Kubernetes.

  • KubernetesManifest - used with plain Kubernetes manifests
  • Helm - used with Helm Charts

Build components

Currently, the single artefact-producing component is the Docker image one:

  • DockerImage - handle Docker image builds, to be used in other components

Docker-compose components

There are 3 types of components based on services from docker-compose

  • Application - used for git-stored code that needs to be built
  • Database - used for databases, which need persistence and seeding
  • Service- used for services (such as caches, queues etc)

Customizable components

  • GenericComponent - completely customizable, by writing scripts for each of the workflows