Refactor Terraform CI (#4654)
This commit is contained in:
parent
50bdaa573c
commit
3f45122d0d
5 changed files with 29 additions and 8 deletions
|
@ -4,12 +4,10 @@
|
|||
extends: .job
|
||||
before_script:
|
||||
- ./tests/scripts/rebase.sh
|
||||
- ./tests/scripts/testcases_prepare.sh
|
||||
- ./tests/scripts/terraform_install.sh
|
||||
# Set Ansible config
|
||||
- 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
|
||||
- cp -LRp contrib/terraform/$PROVIDER/sample-inventory inventory/$CLUSTER
|
||||
- cd inventory/$CLUSTER
|
||||
|
@ -36,13 +34,14 @@
|
|||
only: [/^pr-.*$/]
|
||||
variables:
|
||||
ANSIBLE_INVENTORY_UNPARSED_FAILED: "true"
|
||||
ANSIBLE_INVENTORY: hosts
|
||||
CI_PLATFORM: tf
|
||||
script:
|
||||
- terraform apply -auto-approve ../../contrib/terraform/$PROVIDER
|
||||
- ansible-playbook -i hosts ../../cluster.yml --become
|
||||
- cd ../../tests && make create-${CI_PLATFORM} -s ; cd -
|
||||
- ansible-playbook ../../cluster.yml --become
|
||||
after_script:
|
||||
# Cleanup regardless of exit code
|
||||
- cd inventory/$CLUSTER
|
||||
- terraform destroy -auto-approve ../../contrib/terraform/$PROVIDER
|
||||
- ./tests/scripts/testcases_cleanup.sh
|
||||
|
||||
tf-validate-openstack:
|
||||
extends: .terraform_validate
|
||||
|
|
|
@ -16,6 +16,12 @@ init-packet:
|
|||
echo $(PACKET_VM_SSH_PRIVATE_KEY) | base64 -d > $(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
|
||||
ansible-playbook cloud_playbooks/create-gce.yml -i local_inventory/hosts.cfg -c local \
|
||||
$(LOG_LEVEL) \
|
||||
|
|
5
tests/scripts/create-tf.sh
Executable file
5
tests/scripts/create-tf.sh
Executable 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
5
tests/scripts/delete-tf.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
set -euxo pipefail
|
||||
|
||||
cd "../inventory/$CLUSTER"
|
||||
terraform destroy -auto-approve "../../contrib/terraform/$PROVIDER"
|
6
tests/scripts/terraform_install.sh
Executable file
6
tests/scripts/terraform_install.sh
Executable 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
|
Loading…
Reference in a new issue