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
|
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
|
||||||
|
|
|
@ -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
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