Refactor Terraform CI (#4654)

This commit is contained in:
Maxime Guyot 2019-05-02 13:26:19 -06:00 committed by Kubernetes Prow Robot
parent 50bdaa573c
commit 3f45122d0d
5 changed files with 29 additions and 8 deletions

View file

@ -4,12 +4,10 @@
extends: .job extends: .job
before_script: before_script:
- ./tests/scripts/rebase.sh - ./tests/scripts/rebase.sh
- ./tests/scripts/testcases_prepare.sh
- ./tests/scripts/terraform_install.sh
# Set Ansible config # Set Ansible config
- cp ansible.cfg ~/.ansible.cfg - cp ansible.cfg ~/.ansible.cfg
# Install Terraform
- apt-get install -y unzip
- curl https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_linux_amd64.zip > /tmp/terraform.zip
- unzip /tmp/terraform.zip && mv ./terraform /usr/local/bin/ && terraform --version
# Prepare inventory # Prepare inventory
- cp -LRp contrib/terraform/$PROVIDER/sample-inventory inventory/$CLUSTER - cp -LRp contrib/terraform/$PROVIDER/sample-inventory inventory/$CLUSTER
- cd inventory/$CLUSTER - cd inventory/$CLUSTER
@ -36,13 +34,14 @@
only: [/^pr-.*$/] only: [/^pr-.*$/]
variables: variables:
ANSIBLE_INVENTORY_UNPARSED_FAILED: "true" ANSIBLE_INVENTORY_UNPARSED_FAILED: "true"
ANSIBLE_INVENTORY: hosts
CI_PLATFORM: tf
script: script:
- terraform apply -auto-approve ../../contrib/terraform/$PROVIDER - cd ../../tests && make create-${CI_PLATFORM} -s ; cd -
- ansible-playbook -i hosts ../../cluster.yml --become - ansible-playbook ../../cluster.yml --become
after_script: after_script:
# Cleanup regardless of exit code # Cleanup regardless of exit code
- cd inventory/$CLUSTER - ./tests/scripts/testcases_cleanup.sh
- terraform destroy -auto-approve ../../contrib/terraform/$PROVIDER
tf-validate-openstack: tf-validate-openstack:
extends: .terraform_validate extends: .terraform_validate

View file

@ -16,6 +16,12 @@ init-packet:
echo $(PACKET_VM_SSH_PRIVATE_KEY) | base64 -d > $(HOME)/.ssh/id_rsa echo $(PACKET_VM_SSH_PRIVATE_KEY) | base64 -d > $(HOME)/.ssh/id_rsa
chmod 400 $(HOME)/.ssh/id_rsa chmod 400 $(HOME)/.ssh/id_rsa
create-tf:
./scripts/create-tf.sh
delete-tf:
./scripts/delete-tf.sh
create-gce: init-gce create-gce: init-gce
ansible-playbook cloud_playbooks/create-gce.yml -i local_inventory/hosts.cfg -c local \ ansible-playbook cloud_playbooks/create-gce.yml -i local_inventory/hosts.cfg -c local \
$(LOG_LEVEL) \ $(LOG_LEVEL) \

5
tests/scripts/create-tf.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
set -euxo pipefail
cd "../inventory/$CLUSTER"
terraform apply -auto-approve "../../contrib/terraform/$PROVIDER"

5
tests/scripts/delete-tf.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
set -euxo pipefail
cd "../inventory/$CLUSTER"
terraform destroy -auto-approve "../../contrib/terraform/$PROVIDER"

View file

@ -0,0 +1,6 @@
#!/bin/bash
set -euxo pipefail
apt-get install -y unzip
curl https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_linux_amd64.zip > /tmp/terraform.zip
unzip /tmp/terraform.zip && mv ./terraform /usr/local/bin/ && terraform --version