From fd59556222631ded14fef2b6ac54b630f4ae4151 Mon Sep 17 00:00:00 2001 From: Maxime Guyot Date: Wed, 3 Jun 2020 09:00:17 +0200 Subject: [PATCH] Add Elastx CI (#6127) --- .gitlab-ci/terraform.yml | 68 +++++++++++++++++++---- tests/files/tf-elastx_ubuntu18-calico.yml | 7 +++ tests/scripts/create-tf.sh | 2 +- tests/testcases/040_check-network-adv.yml | 6 +- 4 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 tests/files/tf-elastx_ubuntu18-calico.yml diff --git a/.gitlab-ci/terraform.yml b/.gitlab-ci/terraform.yml index 4f4c07c1f..9230f976e 100644 --- a/.gitlab-ci/terraform.yml +++ b/.gitlab-ci/terraform.yml @@ -18,6 +18,7 @@ - echo "$PACKET_PRIVATE_KEY" | base64 -d > ~/.ssh/id_rsa - chmod 400 ~/.ssh/id_rsa - echo "$PACKET_PUBLIC_KEY" | base64 -d > ~/.ssh/id_rsa.pub + - mkdir -p group_vars .terraform_validate: extends: .terraform_install @@ -109,16 +110,63 @@ tf-validate-aws: # OS_INTERFACE: public # OS_IDENTITY_API_VERSION: "3" -# tf-ovh_cleanup: -# stage: unit-tests -# tags: [light] -# image: python -# variables: -# <<: *ovh_variables -# before_script: -# - pip install -r scripts/openstack-cleanup/requirements.txt -# script: -# - ./scripts/openstack-cleanup/main.py +# Elastx is generously donating resources for Kubespray on Openstack CI +# Contacts: @gix @bl0m1 +.elastx_variables: &elastx_variables + OS_AUTH_URL: https://ops.elastx.cloud:5000 + OS_PROJECT_ID: 564c6b461c6b44b1bb19cdb9c2d928e4 + OS_PROJECT_NAME: kubespray_ci + OS_USER_DOMAIN_NAME: Default + OS_PROJECT_DOMAIN_ID: default + OS_USERNAME: kubespray@root314.com + OS_REGION_NAME: se-sto + OS_INTERFACE: public + OS_IDENTITY_API_VERSION: "3" + TF_VAR_router_id: "ab95917c-41fb-4881-b507-3a6dfe9403df" + # Since ELASTX is in Stockholm, Mitogen helps with latency + MITOGEN_ENABLE: "true" + +tf-elastx_cleanup: + stage: unit-tests + tags: [light] + image: python + variables: + <<: *elastx_variables + before_script: + - pip install -r scripts/openstack-cleanup/requirements.txt + script: + - ./scripts/openstack-cleanup/main.py + +tf-elastx_ubuntu18-calico: + extends: .terraform_apply + when: on_success + variables: + <<: *elastx_variables + TF_VERSION: 0.12.24 + PROVIDER: openstack + CLUSTER: $CI_COMMIT_REF_NAME + ANSIBLE_TIMEOUT: "60" + SSH_USER: ubuntu + TF_VAR_number_of_k8s_masters: "1" + TF_VAR_number_of_k8s_masters_no_floating_ip: "0" + TF_VAR_number_of_k8s_masters_no_floating_ip_no_etcd: "0" + TF_VAR_number_of_etcd: "0" + TF_VAR_number_of_k8s_nodes: "1" + TF_VAR_number_of_k8s_nodes_no_floating_ip: "0" + TF_VAR_number_of_gfs_nodes_no_floating_ip: "0" + TF_VAR_number_of_bastions: "0" + TF_VAR_number_of_k8s_masters_no_etcd: "0" + TF_VAR_floatingip_pool: "elx-public1" + TF_VAR_dns_nameservers: '["1.1.1.1", "8.8.8.8", "8.8.4.4"]' + TF_VAR_use_access_ip: "0" + TF_VAR_external_net: "600b8501-78cb-4155-9c9f-23dfcba88828" + TF_VAR_network_name: "ci-$CI_JOB_ID" + TF_VAR_az_list: '["sto1"]' + TF_VAR_az_list_node: '["sto1"]' + TF_VAR_flavor_k8s_master: 3f73fc93-ec61-4808-88df-2580d94c1a9b # v1-standard-2 + TF_VAR_flavor_k8s_node: 3f73fc93-ec61-4808-88df-2580d94c1a9b # v1-standard-2 + TF_VAR_image: ubuntu-18.04-server-latest + TF_VAR_k8s_allowed_remote_ips: '["0.0.0.0/0"]' # tf-ovh_ubuntu18-calico: # extends: .terraform_apply diff --git a/tests/files/tf-elastx_ubuntu18-calico.yml b/tests/files/tf-elastx_ubuntu18-calico.yml new file mode 100644 index 000000000..53e03d7fe --- /dev/null +++ b/tests/files/tf-elastx_ubuntu18-calico.yml @@ -0,0 +1,7 @@ +--- +dns_min_replicas: 1 +deploy_netchecker: true +sonobuoy_enabled: true + +# Ignore ping errors +ignore_assert_errors: true \ No newline at end of file diff --git a/tests/scripts/create-tf.sh b/tests/scripts/create-tf.sh index d5c2d949a..5f84647fa 100755 --- a/tests/scripts/create-tf.sh +++ b/tests/scripts/create-tf.sh @@ -2,4 +2,4 @@ set -euxo pipefail cd .. -terraform apply -auto-approve "contrib/terraform/$PROVIDER" +terraform apply -auto-approve -parallelism=1 "contrib/terraform/$PROVIDER" diff --git a/tests/testcases/040_check-network-adv.yml b/tests/testcases/040_check-network-adv.yml index 3bdf9cce4..e6ea13a24 100644 --- a/tests/testcases/040_check-network-adv.yml +++ b/tests/testcases/040_check-network-adv.yml @@ -188,7 +188,7 @@ EOF when: - inventory_hostname == groups['kube-master'][0] - - kube_network_plugin_multus|bool|default(false) + - kube_network_plugin_multus|default(false)|bool - name: Annotate pod with macvlan network # We cannot use only shell: below because Ansible will render the text @@ -212,7 +212,7 @@ EOF when: - inventory_hostname == groups['kube-master'][0] - - kube_network_plugin_multus|bool|default(false) + - kube_network_plugin_multus|default(false)|bool - name: Check secondary macvlan interface shell: "{{ bin_dir }}/kubectl exec samplepod -- ip addr show dev net1" @@ -222,4 +222,4 @@ changed_when: false when: - inventory_hostname == groups['kube-master'][0] - - kube_network_plugin_multus|bool|default(false) + - kube_network_plugin_multus|default(false)|bool