diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2aab53a5b..1b5e8a6a7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,9 @@ stages: - - deploy-do - - moderator - unit-tests - - deploy-gce-part1 - - deploy-gce-part2 - - deploy-gce-special + - moderator + - deploy-part1 + - deploy-part2 + - deploy-special variables: FAILFASTCI_NAMESPACE: 'kargo-ci' @@ -24,7 +23,7 @@ variables: RESET_CHECK: "false" UPGRADE_TEST: "false" KUBEADM_ENABLED: "false" - LOG_LEVEL: "-vvv" + LOG_LEVEL: "-vv" # asia-east1-a # asia-northeast1-a @@ -58,7 +57,7 @@ before_script: CI_PLATFORM: "gce" PRIVATE_KEY: $GCE_PRIVATE_KEY -.do_variableS: &do_variables +.do_variables: &do_variables PRIVATE_KEY: $DO_PRIVATE_KEY CI_PLATFORM: "do" SSH_USER: root @@ -236,253 +235,74 @@ before_script: <<: *do_variables <<: *testcases -# .do: &do -# <<: *job -# <<: *gce -# cache: -# key: "$CI_BUILD_REF_NAME" -# paths: -# - downloads/ -# - $HOME/.cache -# before_script: -# - docker info -# - pip install ansible==2.2.1.0 -# - pip install netaddr -# - pip install apache-libcloud==0.20.1 -# - pip install boto==2.9.0 -# - pip install dopy==0.3.5 -# - mkdir -p /.ssh -# - mkdir -p $HOME/.ssh -# - echo $DO_PRIVATE_KEY | base64 -d > $HOME/.ssh/id_rsa -# - chmod 400 $HOME/.ssh/id_rsa -# - md5sum ~/.ssh/id_rsa -# - ansible-playbook --version -# - export PYPATH=$([ $BOOTSTRAP_OS = coreos ] && echo /opt/bin/python || echo /usr/bin/python ) -# - echo $PYPATH -# script: -# - pwd -# - ls -# - echo ${PWD} -# - > -# ansible-playbook tests/cloud_playbooks/create-do.yml -i tests/local_inventory/hosts.cfg -c local -# ${LOG_LEVEL} -# -e cloud_image=${CLOUD_IMAGE} -# -e cloud_region=${CLOUD_REGION} -# -e inventory_path=${PWD}/inventory/inventory.ini -# -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# -e mode=${CLUSTER_MODE} -# -e test_id=${TEST_ID} - -# # Check out latest tag if testing upgrade -# # Uncomment when gitlab kargo repo has tags -# #- test "${UPGRADE_TEST}" = "true" && git fetch --all && git checkout $(git describe --tags $(git rev-list --tags --max-count=1)) -# - test "${UPGRADE_TEST}" = "true" && git checkout 031cf565ec3ccd3ebbe80eeef3454c3780e5c598 && pip install ansible==2.2.0 - - -# # Create cluster -# - > -# ansible-playbook -i inventory/inventory.ini -b --become-user=root --private-key=${HOME}/.ssh/id_rsa -u root -# ${SSH_ARGS} -# ${LOG_LEVEL} -# -e state=present -# -e ansible_python_interpreter=${PYPATH} -# -e ansible_ssh_user=root -# -e bootstrap_os=${BOOTSTRAP_OS} -# -e cert_management=${CERT_MGMT:-script} -# -e cloud_provider=gce -# -e deploy_netchecker=true -# -e download_localhost=true -# -e download_run_once=true -# -e etcd_deployment_type=${ETCD_DEPLOYMENT} -# -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# -e kubelet_deployment_type=${KUBELET_DEPLOYMENT} -# -e local_release_dir=${PWD}/downloads -# -e resolvconf_mode=${RESOLVCONF_MODE} -# -e vault_deployment_type=${VAULT_DEPLOYMENT} -# cluster.yml - -# # Repeat deployment if testing upgrade -# #FIXME(mattymo): repeat "Create cluster" above without duplicating code -# - > -# if [ "${UPGRADE_TEST}" = "true" ]; then -# pip install ansible==2.2.1.0; -# git checkout "${CI_BUILD_REF}"; -# ansible-playbook -i inventory/inventory.ini -b --become-user=root --private-key=${HOME}/.ssh/id_rsa -u root -# ${SSH_ARGS} -# ${LOG_LEVEL} -# -e ansible_python_interpreter=${PYPATH} -# -e ansible_ssh_user=root -# -e bootstrap_os=${BOOTSTRAP_OS} -# -e cloud_provider=gce -# -e deploy_netchecker=true -# -e download_localhost=true -# -e download_run_once=true -# -e etcd_deployment_type=${ETCD_DEPLOYMENT} -# -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# -e kubelet_deployment_type=${KUBELET_DEPLOYMENT} -# -e local_release_dir=${PWD}/downloads -# -e resolvconf_mode=${RESOLVCONF_MODE} -# -e weave_cpu_requests=${WEAVE_CPU_LIMIT} -# -e weave_cpu_limit=${WEAVE_CPU_LIMIT} -# cluster.yml; -# fi - -# # Tests Cases -# ## Test Master API -# - ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -u root -e ansible_ssh_user=root $SSH_ARGS -b --become-user=root tests/testcases/010_check-apiserver.yml $LOG_LEVEL - -# ## Ping the between 2 pod -# - ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -u root -e ansible_ssh_user=root $SSH_ARGS -b --become-user=root tests/testcases/030_check-network.yml $LOG_LEVEL - -# ## Advanced DNS checks -# - ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -u root -e ansible_ssh_user=root $SSH_ARGS -b --become-user=root tests/testcases/040_check-network-adv.yml $LOG_LEVEL - -# ## Idempotency checks 1/5 (repeat deployment) -# - > -# if [ "${IDEMPOT_CHECK}" = "true" ]; then -# ansible-playbook -i inventory/inventory.ini -u root -e ansible_ssh_user=root $SSH_ARGS -# -b --become-user=root -e cloud_provider=gce $LOG_LEVEL -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# --private-key=${HOME}/.ssh/id_rsa -# -e bootstrap_os=${BOOTSTRAP_OS} -# -e ansible_python_interpreter=${PYPATH} -# -e download_run_once=true -# -e download_localhost=true -# -e deploy_netchecker=true -# -e resolvconf_mode=${RESOLVCONF_MODE} -# -e local_release_dir=${PWD}/downloads -# -e etcd_deployment_type=${ETCD_DEPLOYMENT} -# -e kubelet_deployment_type=${KUBELET_DEPLOYMENT} -# cluster.yml; -# fi - -# ## Idempotency checks 2/5 (Advanced DNS checks) -# - > -# if [ "${IDEMPOT_CHECK}" = "true" ]; then -# ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -# -u root -e ansible_ssh_user=root $SSH_ARGS -b --become-user=root -# tests/testcases/040_check-network-adv.yml $LOG_LEVEL; -# fi - -# ## Idempotency checks 3/5 (reset deployment) -# - > -# if [ "${IDEMPOT_CHECK}" = "true" ]; then -# ansible-playbook -i inventory/inventory.ini -u root -e ansible_ssh_user=root $SSH_ARGS -# -b --become-user=root -e cloud_provider=gce $LOG_LEVEL -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# --private-key=${HOME}/.ssh/id_rsa -# -e bootstrap_os=${BOOTSTRAP_OS} -# -e ansible_python_interpreter=${PYPATH} -# reset.yml; -# fi - -# ## Idempotency checks 4/5 (redeploy after reset) -# - > -# if [ "${IDEMPOT_CHECK}" = "true" ]; then -# ansible-playbook -i inventory/inventory.ini -u root -e ansible_ssh_user=root $SSH_ARGS -# -b --become-user=root -e cloud_provider=gce $LOG_LEVEL -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# --private-key=${HOME}/.ssh/id_rsa -# -e bootstrap_os=${BOOTSTRAP_OS} -# -e ansible_python_interpreter=${PYPATH} -# -e download_run_once=true -# -e download_localhost=true -# -e deploy_netchecker=true -# -e resolvconf_mode=${RESOLVCONF_MODE} -# -e local_release_dir=${PWD}/downloads -# -e etcd_deployment_type=${ETCD_DEPLOYMENT} -# -e kubelet_deployment_type=${KUBELET_DEPLOYMENT} -# cluster.yml; -# fi - -# ## Idempotency checks 5/5 (Advanced DNS checks) -# - > -# if [ "${IDEMPOT_CHECK}" = "true" ]; then -# ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -# -u root -e ansible_ssh_user=root $SSH_ARGS -b --become-user=root -# tests/testcases/040_check-network-adv.yml $LOG_LEVEL; -# fi - -# after_script: -# - > -# ansible-playbook -i inventory/inventory.ini tests/cloud_playbooks/create-do.yml -c local $LOG_LEVEL -# -e state=absent -# -e mode=${CLUSTER_MODE} -# -e test_id=${TEST_ID} -# -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -# -e gce_project_id=${GCE_PROJECT_ID} -# -e gce_service_account_email=${GCE_ACCOUNT} -# -e gce_credentials_file=${HOME}/.ssh/gce.json -# -e cloud_image=${CLOUD_IMAGE} -# -e inventory_path=${PWD}/inventory/inventory.ini -# -e cloud_region=${CLOUD_REGION} - # Test matrix. Leave the comments for markup scripts. .coreos_calico_aio_variables: &coreos_calico_aio_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 MOVED_TO_GROUP_VARS: "true" .ubuntu_canal_ha_variables: &ubuntu_canal_ha_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 UPGRADE_TEST: "graceful" .centos_weave_kubeadm_variables: ¢os_weave_kubeadm_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 UPGRADE_TEST: "graceful" .ubuntu_canal_kubeadm_variables: &ubuntu_canal_kubeadm_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 MOVED_TO_GROUP_VARS: "true" .ubuntu_contiv_sep_variables: &ubuntu_contiv_sep_variables -# stage: deploy-gce-special +# stage: deploy-special MOVED_TO_GROUP_VARS: "true" .rhel7_weave_variables: &rhel7_weave_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 MOVED_TO_GROUP_VARS: "true" .centos7_flannel_addons_variables: ¢os7_flannel_addons_variables -# stage: deploy-gce-part2 +# stage: deploy-part2 MOVED_TO_GROUP_VARS: "true" .debian8_calico_variables: &debian8_calico_variables -# stage: deploy-gce-part2 +# stage: deploy-part2 MOVED_TO_GROUP_VARS: "true" .coreos_canal_variables: &coreos_canal_variables -# stage: deploy-gce-part2 +# stage: deploy-part2 MOVED_TO_GROUP_VARS: "true" .rhel7_canal_sep_variables: &rhel7_canal_sep_variables -# stage: deploy-gce-special +# stage: deploy-special MOVED_TO_GROUP_VARS: "true" .ubuntu_weave_sep_variables: &ubuntu_weave_sep_variables -# stage: deploy-gce-special +# stage: deploy-special MOVED_TO_GROUP_VARS: "true" .centos7_calico_ha_variables: ¢os7_calico_ha_variables -# stage: deploy-gce-special +# stage: deploy-special MOVED_TO_GROUP_VARS: "true" .coreos_alpha_weave_ha_variables: &coreos_alpha_weave_ha_variables -# stage: deploy-gce-special +# stage: deploy-special MOVED_TO_GROUP_VARS: "true" .ubuntu_rkt_sep_variables: &ubuntu_rkt_sep_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 MOVED_TO_GROUP_VARS: "true" .ubuntu_vault_sep_variables: &ubuntu_vault_sep_variables -# stage: deploy-gce-part1 +# stage: deploy-part1 MOVED_TO_GROUP_VARS: "true" .ubuntu_flannel_variables: &ubuntu_flannel_variables -# stage: deploy-gce-special +# stage: deploy-special MOVED_TO_GROUP_VARS: "true" # Builds for PRs only (premoderated by unit-tests step) and triggers (auto) -coreos-calico-aio: - stage: deploy-do - # stage: deploy-gce-part1 +gce_coreos-calico-aio: + stage: deploy-part1 <<: *job <<: *gce variables: @@ -490,327 +310,327 @@ coreos-calico-aio: <<: *gce_variables when: on_success except: ['triggers'] - # only: [/^pr-.*$/] + only: [/^pr-.*$/] -ubuntu-canal-ha-do: - stage: deploy-do +do_ubuntu-canal-ha: + stage: deploy-part1 <<: *job <<: *do variables: <<: *do_variables when: on_success except: ['triggers'] - # only: [/^pr-.*$/] - -# coreos-calico-sep-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *coreos_calico_aio_variables -# when: on_success -# only: ['triggers'] - -# centos7-flannel-addons: -# stage: deploy-gce-part2 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *centos7_flannel_addons_variables -# when: on_success -# except: ['triggers'] -# only: [/^pr-.*$/] - -# centos7-flannel-addons-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *centos7_flannel_addons_variables -# when: on_success -# only: ['triggers'] - -# ubuntu-weave-sep: -# stage: deploy-gce-special -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_weave_sep_variables -# when: on_success -# except: ['triggers'] -# only: [/^pr-.*$/] - -# ubuntu-weave-sep-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_weave_sep_variables -# when: on_success -# only: ['triggers'] - -# # More builds for PRs/merges (manual) and triggers (auto) -# ubuntu-canal-ha: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_canal_ha_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# ubuntu-canal-ha-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_canal_ha_variables -# when: on_success -# only: ['triggers'] - -# ubuntu-canal-kubeadm: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_canal_kubeadm_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# ubuntu-canal-kubeadm-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_canal_kubeadm_variables -# when: on_success -# only: ['triggers'] - -# centos-weave-kubeadm: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *centos_weave_kubeadm_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# centos-weave-kubeadm-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *centos_weave_kubeadm_variables -# when: on_success -# only: ['triggers'] - -# ubuntu-contiv-sep: -# stage: deploy-gce-special -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_contiv_sep_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# rhel7-weave: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *rhel7_weave_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# rhel7-weave-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *rhel7_weave_variables -# when: on_success -# only: ['triggers'] - -# debian8-calico-upgrade: -# stage: deploy-gce-part2 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *debian8_calico_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# debian8-calico-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *debian8_calico_variables -# when: on_success -# only: ['triggers'] - -# coreos-canal: -# stage: deploy-gce-part2 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *coreos_canal_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# coreos-canal-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *coreos_canal_variables -# when: on_success -# only: ['triggers'] - -# rhel7-canal-sep: -# stage: deploy-gce-special -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *rhel7_canal_sep_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/,] - -# rhel7-canal-sep-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *rhel7_canal_sep_variables -# when: on_success -# only: ['triggers'] - -# centos7-calico-ha: -# stage: deploy-gce-special -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *centos7_calico_ha_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# centos7-calico-ha-triggers: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *centos7_calico_ha_variables -# when: on_success -# only: ['triggers'] - -# # no triggers yet https://github.com/kubernetes-incubator/kargo/issues/613 -# coreos-alpha-weave-ha: -# stage: deploy-gce-special -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *coreos_alpha_weave_ha_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# ubuntu-rkt-sep: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_rkt_sep_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# ubuntu-vault-sep: -# stage: deploy-gce-part1 -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_vault_sep_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# ubuntu-flannel-sep: -# stage: deploy-gce-special -# <<: *job -# <<: *gce -# variables: -# <<: *gce_variables -# <<: *ubuntu_flannel_variables -# when: manual -# except: ['triggers'] -# only: ['master', /^pr-.*$/] - -# # Premoderated with manual actions -# ci-authorized: -# <<: *job -# stage: moderator -# before_script: -# - apt-get -y install jq -# script: -# - /bin/sh scripts/premoderator.sh -# except: ['triggers', 'master'] - -# syntax-check: -# <<: *job -# stage: unit-tests -# script: -# - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root cluster.yml -vvv --syntax-check -# - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root upgrade-cluster.yml -vvv --syntax-check -# - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root reset.yml -vvv --syntax-check -# - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root extra_playbooks/upgrade-only-k8s.yml -vvv --syntax-check -# except: ['triggers', 'master'] - -# yamllint: -# <<: *job -# stage: unit-tests -# script: -# - yamllint roles -# except: ['triggers', 'master'] - -# tox-inventory-builder: -# stage: unit-tests -# <<: *job -# script: -# - pip install tox -# - cd contrib/inventory_builder && tox -# when: manual -# except: ['triggers', 'master'] + only: [/^pr-.*$/] + +gce_coreos-calico-sep-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *coreos_calico_aio_variables + when: on_success + only: ['triggers'] + +gce_centos7-flannel-addons: + stage: deploy-part2 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *centos7_flannel_addons_variables + when: on_success + except: ['triggers'] + only: [/^pr-.*$/] + +gce_centos7-flannel-addons-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *centos7_flannel_addons_variables + when: on_success + only: ['triggers'] + +gce_ubuntu-weave-sep: + stage: deploy-special + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_weave_sep_variables + when: on_success + except: ['triggers'] + only: [/^pr-.*$/] + +gce_ubuntu-weave-sep-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_weave_sep_variables + when: on_success + only: ['triggers'] + +# More builds for PRs/merges (manual) and triggers (auto) +gce_ubuntu-canal-ha: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_canal_ha_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_ubuntu-canal-ha-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_canal_ha_variables + when: on_success + only: ['triggers'] + +gce_ubuntu-canal-kubeadm: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_canal_kubeadm_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_ubuntu-canal-kubeadm-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_canal_kubeadm_variables + when: on_success + only: ['triggers'] + +gce_centos-weave-kubeadm: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *centos_weave_kubeadm_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_centos-weave-kubeadm-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *centos_weave_kubeadm_variables + when: on_success + only: ['triggers'] + +gce_ubuntu-contiv-sep: + stage: deploy-special + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_contiv_sep_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_rhel7-weave: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *rhel7_weave_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_rhel7-weave-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *rhel7_weave_variables + when: on_success + only: ['triggers'] + +gce_debian8-calico-upgrade: + stage: deploy-part2 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *debian8_calico_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_debian8-calico-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *debian8_calico_variables + when: on_success + only: ['triggers'] + +gce_coreos-canal: + stage: deploy-part2 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *coreos_canal_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_coreos-canal-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *coreos_canal_variables + when: on_success + only: ['triggers'] + +gce_rhel7-canal-sep: + stage: deploy-special + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *rhel7_canal_sep_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/,] + +gce_rhel7-canal-sep-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *rhel7_canal_sep_variables + when: on_success + only: ['triggers'] + +gce_centos7-calico-ha: + stage: deploy-special + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *centos7_calico_ha_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_centos7-calico-ha-triggers: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *centos7_calico_ha_variables + when: on_success + only: ['triggers'] + +# no triggers yet https://github.com/kubernetes-incubator/kargo/issues/613 +gce_coreos-alpha-weave-ha: + stage: deploy-special + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *coreos_alpha_weave_ha_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_ubuntu-rkt-sep: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_rkt_sep_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_ubuntu-vault-sep: + stage: deploy-part1 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_vault_sep_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +gce_ubuntu-flannel-sep: + stage: deploy-special + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *ubuntu_flannel_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + +# Premoderated with manual actions +ci-authorized: + <<: *job + stage: moderator + before_script: + - apt-get -y install jq + script: + - /bin/sh scripts/premoderator.sh + except: ['triggers', 'master'] + +syntax-check: + <<: *job + stage: unit-tests + script: + - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root cluster.yml -vvv --syntax-check + - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root upgrade-cluster.yml -vvv --syntax-check + - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root reset.yml -vvv --syntax-check + - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root extra_playbooks/upgrade-only-k8s.yml -vvv --syntax-check + except: ['triggers', 'master'] + +yamllint: + <<: *job + stage: unit-tests + script: + - yamllint roles + except: ['triggers', 'master'] + +tox-inventory-builder: + stage: unit-tests + <<: *job + script: + - pip install tox + - cd contrib/inventory_builder && tox + when: manual + except: ['triggers', 'master'] diff --git a/tests/Makefile b/tests/Makefile index 638a299f5..8d17e243c 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,3 +1,5 @@ +INVENTORY=$(PWD)/../inventory/sample/hosts.ini + $(HOME)/.ssh/id_rsa: mkdir -p $(HOME)/.ssh echo $(PRIVATE_KEY) | base64 -d > $(HOME)/.ssh/id_rsa @@ -17,33 +19,33 @@ create-gce: init-gce -e gce_credentials_file=$(HOME)/.ssh/gce.json \ -e gce_project_id=$(GCE_PROJECT_ID) \ -e gce_service_account_email=$(GCE_ACCOUNT) \ - -e inventory_path=$(PWD)/../inventory/sample/hosts.ini \ + -e inventory_path=$(INVENTORY) \ -e test_id=$(TEST_ID) \ -e preemptible=$(GCE_PREEMPTIBLE) delete-gce: - ansible-playbook -i ../inventory/sample/hosts.ini cloud_playbooks/delete-gce.yml -c local \ + ansible-playbook -i $(INVENTORY) cloud_playbooks/delete-gce.yml -c local \ $(LOG_LEVEL) \ -e @"files/${CI_JOB_NAME}.yml" \ -e test_id=$(TEST_ID) \ -e gce_project_id=$(GCE_PROJECT_ID) \ -e gce_service_account_email=$(GCE_ACCOUNT) \ -e gce_credentials_file=$(HOME)/.ssh/gce.json \ - -e inventory_path=$(PWD)/inventory/sample/hosts.ini + -e inventory_path=$(INVENTORY) create-do: init-do ansible-playbook cloud_playbooks/create-do.yml -i local_inventory/hosts.cfg -c local \ ${LOG_LEVEL} \ -e @"files/${CI_JOB_NAME}.yml" \ - -e inventory_path=${PWD}/../inventory/hosts.ini \ + -e inventory_path=$(INVENTORY) \ -e test_id=${TEST_ID} delete-do: - ansible-playbook -i ../inventory/sample/hosts.ini cloud_playbooks/create-do.yml -c local \ + ansible-playbook -i $(INVENTORY) cloud_playbooks/create-do.yml -c local \ $(LOG_LEVEL) \ -e @"files/${CI_JOB_NAME}.yml" \ -e state=absent \ -e test_id=${TEST_ID} \ - -e inventory_path=${PWD}/../inventory/inventory.ini \ + -e inventory_path=$(INVENTORY) diff --git a/tests/files/ubuntu-canal-ha-do.yml b/tests/files/do_ubuntu-canal-ha.yml similarity index 88% rename from tests/files/ubuntu-canal-ha-do.yml rename to tests/files/do_ubuntu-canal-ha.yml index 94a4af67a..e91dfd7c1 100644 --- a/tests/files/ubuntu-canal-ha-do.yml +++ b/tests/files/do_ubuntu-canal-ha.yml @@ -7,4 +7,4 @@ bootstrap_os: ubuntu kube_network_plugin: canal deploy_netchecker: true kubedns_min_replicas: 1 -cloud_provider: 'do' +# cloud_provider: 'do' diff --git a/tests/files/centos-weave-kubeadm.yml b/tests/files/gce_centos-weave-kubeadm.yml similarity index 100% rename from tests/files/centos-weave-kubeadm.yml rename to tests/files/gce_centos-weave-kubeadm.yml diff --git a/tests/files/centos7-calico-ha.yml b/tests/files/gce_centos7-calico-ha.yml similarity index 100% rename from tests/files/centos7-calico-ha.yml rename to tests/files/gce_centos7-calico-ha.yml diff --git a/tests/files/centos7-flannel-addons.yml b/tests/files/gce_centos7-flannel-addons.yml similarity index 100% rename from tests/files/centos7-flannel-addons.yml rename to tests/files/gce_centos7-flannel-addons.yml diff --git a/tests/files/coreos-alpha-weave-ha.yml b/tests/files/gce_coreos-alpha-weave-ha.yml similarity index 100% rename from tests/files/coreos-alpha-weave-ha.yml rename to tests/files/gce_coreos-alpha-weave-ha.yml diff --git a/tests/files/coreos-calico-aio.yml b/tests/files/gce_coreos-calico-aio.yml similarity index 100% rename from tests/files/coreos-calico-aio.yml rename to tests/files/gce_coreos-calico-aio.yml diff --git a/tests/files/coreos-canal.yml b/tests/files/gce_coreos-canal.yml similarity index 100% rename from tests/files/coreos-canal.yml rename to tests/files/gce_coreos-canal.yml diff --git a/tests/files/debian8-calico-upgrade.yml b/tests/files/gce_debian8-calico-upgrade.yml similarity index 100% rename from tests/files/debian8-calico-upgrade.yml rename to tests/files/gce_debian8-calico-upgrade.yml diff --git a/tests/files/rhel7-canal-sep.yml b/tests/files/gce_rhel7-canal-sep.yml similarity index 100% rename from tests/files/rhel7-canal-sep.yml rename to tests/files/gce_rhel7-canal-sep.yml diff --git a/tests/files/rhel7-weave.yml b/tests/files/gce_rhel7-weave.yml similarity index 100% rename from tests/files/rhel7-weave.yml rename to tests/files/gce_rhel7-weave.yml diff --git a/tests/files/ubuntu-canal-ha.yml b/tests/files/gce_ubuntu-canal-ha.yml similarity index 100% rename from tests/files/ubuntu-canal-ha.yml rename to tests/files/gce_ubuntu-canal-ha.yml diff --git a/tests/files/ubuntu-canal-kubeadm.yml b/tests/files/gce_ubuntu-canal-kubeadm.yml similarity index 100% rename from tests/files/ubuntu-canal-kubeadm.yml rename to tests/files/gce_ubuntu-canal-kubeadm.yml diff --git a/tests/files/ubuntu-contiv-sep.yml b/tests/files/gce_ubuntu-contiv-sep.yml similarity index 100% rename from tests/files/ubuntu-contiv-sep.yml rename to tests/files/gce_ubuntu-contiv-sep.yml diff --git a/tests/files/ubuntu-flannel-sep.yml b/tests/files/gce_ubuntu-flannel-sep.yml similarity index 100% rename from tests/files/ubuntu-flannel-sep.yml rename to tests/files/gce_ubuntu-flannel-sep.yml diff --git a/tests/files/ubuntu-rkt-sep.yml b/tests/files/gce_ubuntu-rkt-sep.yml similarity index 100% rename from tests/files/ubuntu-rkt-sep.yml rename to tests/files/gce_ubuntu-rkt-sep.yml diff --git a/tests/files/ubuntu-vault-sep.yml b/tests/files/gce_ubuntu-vault-sep.yml similarity index 100% rename from tests/files/ubuntu-vault-sep.yml rename to tests/files/gce_ubuntu-vault-sep.yml diff --git a/tests/files/ubuntu-weave-sep.yml b/tests/files/gce_ubuntu-weave-sep.yml similarity index 100% rename from tests/files/ubuntu-weave-sep.yml rename to tests/files/gce_ubuntu-weave-sep.yml diff --git a/tests/requirements.txt b/tests/requirements.txt index 0b6163a5d..37067448d 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -4,3 +4,4 @@ apache-libcloud==2.2.1 boto==2.9.0 tox dopy +PyCrypto