Tested and released images are published to dockerhub as kudulab/terraform-dojo
- Setup docker.
- Install Dojo binary.
- Provide a Dojofile:
- Create and enter the container by running
dojoat the root of project.
- Work with terraform as usual:
terraform --version terraform init terraform plan
By default, current directory in docker container is
- base image is alpine, to make this image as small as possible
- terraform binary on the PATH
- terraform plugins: consul, openstack, aws, null, external, local, template, vault.
jqto parse JSON from bash scripts
dotto generate infrastructure graphs from terraform
- a minimal ssh and git setup - to clone terraform modules
Those files are used inside the docker image:
~/.ssh/-- is copied from host to dojo's home
~/.ssh/config-- will be generated on docker container start. SSH client is configured to ignore known ssh hosts.
~/.aws/-- is copied from host to dojo's home
~/.gitconfig-- if exists locally, will be copied
~/.profile-- will be generated on docker container start, in order to ensure current directory is
- For openstack access - environment variables must be locally set:
[ 'OS_AUTH_URL', 'OS_TENANT_NAME', 'OS_USERNAME', 'OS_PASSWORD']. Dojo will pass them to the docker image.
- For AWS access
AWS_SECRET_ACCESS_KEYmust be set.
To enable debug output:
Why not just use official terraform image?
So that packer-dojo and terraform-dojo are similar and thus easier to maintain.
- Docker daemon
Full spec is ops-base
- In a feature branch:
- you make changes
- and run tests:
- You decide that your changes are ready and you:
- merge into master branch
- run locally:
./tasks set_versionto set version in CHANGELOG, bump patch version
./tasks set_version 1.2.3to set version in CHANGELOG to 1.2.3
- push to master onto private git server
- CI server (GoCD) tests and releases.
Copyright 2019 Ewa Czechowska, Tomasz Sętkowski
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.