After the test driven provisioning of servers has been accomplished (e.g. with rspec & ServerSpec / Goss ), what is missing is the validation of the whole cloud - a CloudSpec.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
mach_extensions
main
test
.gitignore
LICENSE.md
Machfile.edn
Machfile_not_working_modulatization.edn
README.md
project.clj

README.md

dda-cloudspec

Slack | DevOps Hacking with Clojure Meetup DevOps Hacking with Clojure | Website & Blog

Features

dda-cloudpec can test whole infrastructures, clouds and networks. It provides a close integration with terraform to instantiate probes and dda-serverspec a remote testing framework. This enables you to test remotely from freshly spawned probes eg.

  • services listening to ip & port
  • validity of certificate files
  • validity of certificates by https
  • network connectivity to remote systems

Blog

Find a detailed setup howto here: https://domaindrivenarchitecture.org/posts/2018-06-24-dda-cloudspec/

Setup in short

Install mach

sudo apt-get install npm
sudo npm install -g @juxt/mach

sudo bash -c "cd /usr/local/bin && curl -fsSLo boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh && chmod 755 boot"

Install awscli & terraform

apt install awscli

vi ~/.aws/credentials
[default]
aws_access_key_id = ACCESS_KEY
aws_secret_access_key = SECRET_KEY

curl -L -o /tmp/terraform_0.11.7_linux_amd64.zip https://releases.hashicorp.com/terraform/0.11.7/terraform_0.11.7_linux_amd64.zip
cd /tmp
unzip terraform_0.11.7_linux_amd64.zip
mv terraform /usr/local/bin/

Precondition

  1. you should have ssh-client installed and a public ssh-key avail at ~/.ssh/id_rsa.pub
  2. Your aws credentials should be configured

Usage

mach test               # tf apply & serverspec
mach terraform-destroy  # destroy server after test

License

Published under apache2.0 license