-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy path.travis.yml
107 lines (99 loc) · 3.82 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
language: python
sudo: required
services:
- docker
branches:
only:
- master
env:
global:
# Software versions
- TERRAFORM_VERSION=0.11.10
- YAMLLINT_VERSION=1.8.1
- TERRAFORM_PROVIDER_RKE_VERSION=0.5.0
- KUBECTL_VERSION=v1.12.3
- HEML_VERSION=v2.10.0
# SSH
- TF_VAR_ssh_key="ssh_key"
- TF_VAR_ssh_key_pub="ssh_key.pub"
# OpenStack environment
- OS_AUTH_URL="https://extcloud05.ebi.ac.uk:13000/v3"
- OS_PROJECT_ID="599a5ed79ef24064be8cdc1a7052a76e"
- OS_PROJECT_NAME="PhenoMeNal-Mesos"
- OS_USER_DOMAIN_NAME="Default"
- OS_USERNAME="[email protected]"
- OS_REGION_NAME="regionOne"
- OS_IDENTITY_API_VERSION=3
- TF_VAR_external_network_id="2d771d9c-f279-498f-8b8a-f5c6d83da6e8"
- TF_VAR_floating_ip_pool="ext-net"
- TF_VAR_image_name="Ubuntu_1604_LTS_latest"
- TF_VAR_master_flavor_name="s1.large"
- TF_VAR_service_flavor_name="s1.large"
- TF_VAR_edge_flavor_name="s1.large"
- secure: >
utajVM7Lv1UNBYG4+uCm/vW7kr9cbDfRdjOMaqYFtzX0+rR/YICiNZ0SLJRUovFQ8YQ
3p6grN0tkswuN3o1qde9cXC9XpJvjQMZXNELRlNyBBvo0k5t+x7pFCtD6OwXCzOCrDE
Jwvns07WwOMRnS6eEEU5lUEf9vrNjMKmgKnwJn+/p07Vd36J6deJULdS3h4+eSYqth+
jjUNIGw2+HXonFgEA7XXD65HBT6z3Ff+Q8EKQQPF6WklfF7UmeQWIlYtphNZMzHqyLX
fifubSIzLSwFdRmrK0j/p7qEgN5db8Gzw899i6doEuIfIhZ84GefTTQnOO8Co9OBPY3
77HYGUfOMGQDHtEc3EO16riqKAJMPT3c1yVcaMRAMSfPCSWh19l2rQrloDgKnYcxYCF
hbiv2sCZ8EelVs1Jk6E1Skjn3bgS53oKz/Z5bjyPVglDbTJ72MyKpa+uUYnbLO9Mokz
rDO9q2gh9o2esmlzbrurXjvnaB19AyTD7uudneBiz/KU2sND7H2ztO27NvJRQa9Db3t
2KXlrqJxJJ04NpMzTPlCUHP2jSOa50n6vBp+6GH0Dh3XtYnmigy90p0a3DYo6cBXz8/
Awab6UU3ZYdtDdSGaqwHQ3mVHhzqwThdNuYW8vZrhjWo7+nf62SduebsPhimrJqdGPZ
jmCr/o9OvryHM=
matrix:
# Single master
- >
TF_VAR_cluster_prefix=rke-ci-$TRAVIS_BUILD_NUMBER
TF_VAR_master_count=1
TF_VAR_service_count=1
TF_VAR_edge_count=1
install:
# Install Terraform
- >
travis_retry curl -L
"https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
-o /tmp/terraform.zip
- sudo unzip /tmp/terraform.zip -d /usr/bin
- sudo chmod +x /usr/bin/terraform
# Install terraform-provider-rke
- travis_retry curl -L
"https://github.com/yamamoto-febc/terraform-provider-rke/releases/download/${TERRAFORM_PROVIDER_RKE_VERSION}/terraform-provider-rke_${TERRAFORM_PROVIDER_RKE_VERSION}_linux-amd64.zip"
-o /tmp/teraform-provider-rke.zip
- mkdir -p "$HOME/.terraform.d/plugins/"
- unzip /tmp/teraform-provider-rke.zip -d $HOME/.terraform.d/plugins/
# Install yamllint
- sudo pip install yamllint==$YAMLLINT_VERSION
# Configure SSH key
- ssh-keygen -t rsa -N '' -f ssh_key
- eval "$(ssh-agent -s)"
- ssh-add ssh_key
# Install kubectl
- curl -LO https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl
- chmod +x ./kubectl
- sudo mv ./kubectl /usr/local/bin/kubectl
# Install helm
- curl -LO https://kubernetes-helm.storage.googleapis.com/helm-${HEML_VERSION}-linux-amd64.tar.gz
- tar -xf ./helm-${HEML_VERSION}-linux-amd64.tar.gz -C /tmp/
- sudo mv /tmp/linux-amd64/helm /usr/local/bin/
before_script:
# Terraform init, validate, and format check
- terraform init
- terraform validate
- terraform fmt -check=true -diff
# Check YAMLs
- yamllint -c .yamllint.yml -s $(find . -type f -name '*.yml')
script:
# Deploy
- terraform apply -auto-approve # this also runs sanity checks
# Scale up
- export TF_VAR_service_count=$((TF_VAR_service_count+1))
- terraform apply -auto-approve # this also runs sanity checks
# Scale down
- export TF_VAR_service_count=$((TF_VAR_service_count-1))
- terraform apply -auto-approve # this also runs sanity checks
after_script:
# Destroy
- terraform destroy -force