Terrafire is a GitOps continuous delivery tool for terraform.
Create docker-compose.yml as follows:
version: "3"
services:
server:
image: "mitene/terrafire"
command: ["server"]
environment:
TERRAFIRE_PROJECT_default: "https://github.com/mitene/terrafire"
TERRAFIRE_PROJECT_default_PATH: "examples/manifest"
TERRAFIRE_PROJECT_default_BRANCH: "master"
ports:
- "8080:8080"
- "8081:8081"
controller:
image: "mitene/terrafire"
command: ["controller"]
environment:
TERRAFIRE_SCHEDULER_ADDRESS: "server:8081"
TERRAFIRE_PROJECT_default: "https://github.com/mitene/terrafire"
TERRAFIRE_PROJECT_default_PATH: "examples/manifest"
TERRAFIRE_PROJECT_default_BRANCH: "master"
Start services:
docker-compose up
Now, open http://localhost:8080
You can customize all Terrafire configurations by environment variables.
TERRAFIRE_SERVER_PORT: | Terrafire server port. Web browser accesses to this port. Default: |
---|---|
TERRAFIRE_SCHEDULER_PORT: | Terrafire scheduler port. Only terrafire controller and runner access to this port. Default: |
TERRAFIRE_DB_DRIVER: | Database driver type. Available values: Default: |
TERRAFIRE_DB_ADDRESS: | Database address. Default: |
TERRAFIRE_PROJECT_<project_name>: | Terrafire manifest repository URL. (required) Supported repository is GitHub only currently. |
TERRAFIRE_PROJECT_<project_name>_BRANCH: | Branch name of manifest repository. Default: |
TERRAFIRE_PROJECT_<project_name>_PATH: | Relative path from manifest repository root. (optional) |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_PROTOCOL: | Git credentials protocol. Required if you have private repository. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_HOST: | Git credentials host. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_USER: | Git credentials user. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_PASSWORD: | Git credentials password. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_SCHEDULER_ADDRESS: | Terrafire scheduler address. Default: |
---|---|
TERRAFIRE_CONCURRENCY: | Max concurrency that terrafire runners run in parallel. Default: |
TERRAFIRE_EXECUTOR_TYPE: | Launch type that terrafire controller starts terrafire runners. Available Values: Default: |
TERRAFIRE_EXECUTOR_ECS_CLUSTER: | ECS custer name. Effects only when executor type is |
TERRAFIRE_EXECUTOR_ECS_TASK_DEFINITION: | ECS task definition ARN. Required if executor type is |
TERRAFIRE_EXECUTOR_ECS_CONTAINER_NAME: | ECS container name. Default: |
TERRAFIRE_EXECUTOR_ECS_CAPACITY_PROVIDER: | ECS capacit¥ provider Default: |
TERRAFIRE_EXECUTOR_ECS_SUBNETS: | Comma separated values of subnet ids that ECS tasks use. Required if executor type is |
TERRAFIRE_EXECUTOR_ECS_SECURITY_GROUPS: | Comma separated values of security groups ids that ECS tasks use. |
TERRAFIRE_EXECUTOR_ECS_ASSIGN_PUBLIC_IP: | ECS assign public IP option. Default: |
TERRAFIRE_SCHEDULER_ADDRESS: | Terrafire scheduler address. Default: |
---|---|
TERRAFIRE_PROJECT_<project_name>: | Terrafire manifest repository URL. (required) Supported repository is GitHub only currently. |
TERRAFIRE_PROJECT_<project_name>_BRANCH: | Branch name of manifest repository. Default: |
TERRAFIRE_PROJECT_<project_name>_PATH: | Relative path from manifest repository root. (optional) |
TERRAFIRE_PROJECT_<project_name>_ENV_<var name>: | Environment values applied when terraform plan/apply are executed. |
TERRAFIRE_BLOB_TYPE: | Blob type. Blob is an object storage where terraform plan results are stored. If the blob type is Available values: Default: |
TERRAFIRE_BLOB_LOCAL_ROOT: | Root directory of local blob. Effects only when the blob type is Default: |
TERRAFIRE_BLOB_S3_BUCKET: | S3 bucket name for s3 blob. Required if the blob type is |
TERRAFIRE_BLOB_S3_PREFIX: | S3 prefix under which plan results are stored. Default: |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_PROTOCOL: | Git credentials protocol. Required if you have private repository. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_HOST: | Git credentials host. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_USER: | Git credentials user. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
TERRAFIRE_GIT_CREDENTIAL_<credential_id>_PASSWORD: | Git credentials password. See https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage |
See development.
This project is licensed under the MIT License - see the LICENSE file for details.