Core Concepts
Bentoctl performs two types of operations:
- bentoctl builds deployable images or artifacts based on the cloud services' requirements.
- bentoctl managages cloud service deployment with Terraform
In the following sections, we will discuss the concepts of operators and deployment configurations.
Operators
Operators are plugins that interact with the external services, typcially a cloud service. It abstracts the specifics implmentation details of the external service and provides an unified interface for bentoctl. The operator provide 2 core actions that are:
- Create deployable image or artifact base on the cloud service's requirements.
- Generate Terraform projects based on the deployment configuration.
The operator also provides a set of schema that bentoctl uses to validate the deployment configuration. Operators page provides more details on supported platforms and their current status.
The operator designed to be customizable and extensible. Users can install non-offical operators from git url or from a local file path. Users can create their own operator from the operator template on Github.
Deployment Configuration
bentoctl uses deployment configuration to specify the deployment properties. The deployment configuration stores in local system using yaml format
An Anatomy of a Deployment Config file
Here is a sample deployment config for the EC2 operator.
1 :- api_version
specifies deployment configuration version.
2 :- name
Deployment's name. bentoctl recommends to keep deployment name unqiue within each operator to avoid any potential issues.
3 :- operator
Operator used for the deployment. bentoctl will automatically install official operator if it is not installed.
4 :- template
The template for the deployment. It determines what the generated terraform project will look like.
5 :- spec
specifics the deployment details. The deployment detail options are provided by the operator listed.
6 :- spec.*
- Deployment options specific to the operator.