You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

624 lines
16 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
contiv network support (#1914) * Add Contiv support Contiv is a network plugin for Kubernetes and Docker. It supports vlan/vxlan/BGP/Cisco ACI technologies. It support firewall policies, multiple networks and bridging pods onto physical networks. * Update contiv version to 1.1.4 Update contiv version to 1.1.4 and added SVC_SUBNET in contiv-config. * Load openvswitch module to workaround on CentOS7.4 * Set contiv cni version to 0.1.0 Correct contiv CNI version to 0.1.0. * Use kube_apiserver_endpoint for K8S_API_SERVER Use kube_apiserver_endpoint as K8S_API_SERVER to make contiv talks to a available endpoint no matter if there's a loadbalancer or not. * Make contiv use its own etcd Before this commit, contiv is using a etcd proxy mode to k8s etcd, this work fine when the etcd hosts are co-located with contiv etcd proxy, however the k8s peering certs are only in etcd group, as a result the etcd-proxy is not able to peering with the k8s etcd on etcd group, plus the netplugin is always trying to find the etcd endpoint on localhost, this will cause problem for all netplugins not runnign on etcd group nodes. This commit make contiv uses its own etcd, separate from k8s one. on kube-master nodes (where net-master runs), it will run as leader mode and on all rest nodes it will run as proxy mode. * Use cp instead of rsync to copy cni binaries Since rsync has been removed from hyperkube, this commit changes it to use cp instead. * Make contiv-etcd able to run on master nodes * Add rbac_enabled flag for contiv pods * Add contiv into CNI network plugin lists * migrate contiv test to tests/files Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> * Add required rules for contiv netplugin * Better handling json return of fwdMode * Make contiv etcd port configurable * Use default var instead of templating * roles/download/defaults/main.yml: use contiv 1.1.7 Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
6 years ago
7 years ago
7 years ago
7 years ago
contiv network support (#1914) * Add Contiv support Contiv is a network plugin for Kubernetes and Docker. It supports vlan/vxlan/BGP/Cisco ACI technologies. It support firewall policies, multiple networks and bridging pods onto physical networks. * Update contiv version to 1.1.4 Update contiv version to 1.1.4 and added SVC_SUBNET in contiv-config. * Load openvswitch module to workaround on CentOS7.4 * Set contiv cni version to 0.1.0 Correct contiv CNI version to 0.1.0. * Use kube_apiserver_endpoint for K8S_API_SERVER Use kube_apiserver_endpoint as K8S_API_SERVER to make contiv talks to a available endpoint no matter if there's a loadbalancer or not. * Make contiv use its own etcd Before this commit, contiv is using a etcd proxy mode to k8s etcd, this work fine when the etcd hosts are co-located with contiv etcd proxy, however the k8s peering certs are only in etcd group, as a result the etcd-proxy is not able to peering with the k8s etcd on etcd group, plus the netplugin is always trying to find the etcd endpoint on localhost, this will cause problem for all netplugins not runnign on etcd group nodes. This commit make contiv uses its own etcd, separate from k8s one. on kube-master nodes (where net-master runs), it will run as leader mode and on all rest nodes it will run as proxy mode. * Use cp instead of rsync to copy cni binaries Since rsync has been removed from hyperkube, this commit changes it to use cp instead. * Make contiv-etcd able to run on master nodes * Add rbac_enabled flag for contiv pods * Add contiv into CNI network plugin lists * migrate contiv test to tests/files Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> * Add required rules for contiv netplugin * Better handling json return of fwdMode * Make contiv etcd port configurable * Use default var instead of templating * roles/download/defaults/main.yml: use contiv 1.1.7 Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
6 years ago
7 years ago
  1. stages:
  2. - moderator
  3. - unit-tests
  4. - deploy-gce-part1
  5. - deploy-gce-part2
  6. - deploy-gce-special
  7. variables:
  8. FAILFASTCI_NAMESPACE: 'kargo-ci'
  9. # DOCKER_HOST: tcp://localhost:2375
  10. ANSIBLE_FORCE_COLOR: "true"
  11. # asia-east1-a
  12. # asia-northeast1-a
  13. # europe-west1-b
  14. # us-central1-a
  15. # us-east1-b
  16. # us-west1-a
  17. before_script:
  18. - pip install -r tests/requirements.txt
  19. - mkdir -p /.ssh
  20. .job: &job
  21. tags:
  22. - kubernetes
  23. - docker
  24. image: quay.io/ant31/kargo:master
  25. .docker_service: &docker_service
  26. services:
  27. - docker:dind
  28. .create_cluster: &create_cluster
  29. <<: *job
  30. <<: *docker_service
  31. .gce_variables: &gce_variables
  32. GCE_USER: travis
  33. SSH_USER: $GCE_USER
  34. TEST_ID: "$CI_PIPELINE_ID-$CI_BUILD_ID"
  35. CI_TEST_VARS: "./tests/files/${CI_JOB_NAME}.yml"
  36. CONTAINER_ENGINE: docker
  37. PRIVATE_KEY: $GCE_PRIVATE_KEY
  38. GS_ACCESS_KEY_ID: $GS_KEY
  39. GS_SECRET_ACCESS_KEY: $GS_SECRET
  40. CLOUD_MACHINE_TYPE: "g1-small"
  41. GCE_PREEMPTIBLE: "false"
  42. ANSIBLE_KEEP_REMOTE_FILES: "1"
  43. ANSIBLE_CONFIG: ./tests/ansible.cfg
  44. IDEMPOT_CHECK: "false"
  45. RESET_CHECK: "false"
  46. UPGRADE_TEST: "false"
  47. KUBEADM_ENABLED: "false"
  48. LOG_LEVEL: "-vv"
  49. MAGIC: "ci check this"
  50. .gce: &gce
  51. <<: *job
  52. <<: *docker_service
  53. cache:
  54. key: "$CI_BUILD_REF_NAME"
  55. paths:
  56. - downloads/
  57. - $HOME/.cache
  58. before_script:
  59. - docker info
  60. - pip install -r tests/requirements.txt
  61. - mkdir -p /.ssh
  62. - mkdir -p $HOME/.ssh
  63. - echo $PRIVATE_KEY | base64 -d > $HOME/.ssh/id_rsa
  64. - echo $GCE_PEM_FILE | base64 -d > $HOME/.ssh/gce
  65. - echo $GCE_CREDENTIALS > $HOME/.ssh/gce.json
  66. - chmod 400 $HOME/.ssh/id_rsa
  67. - ansible-playbook --version
  68. - export PYPATH=$([[ ! "$CI_JOB_NAME" =~ "coreos" ]] && echo /usr/bin/python || echo /opt/bin/python)
  69. - echo "CI_JOB_NAME is $CI_JOB_NAME"
  70. - echo "PYPATH is $PYPATH"
  71. script:
  72. - pwd
  73. - ls
  74. - echo ${PWD}
  75. - echo "${STARTUP_SCRIPT}"
  76. - >
  77. ansible-playbook tests/cloud_playbooks/create-gce.yml -i tests/local_inventory/hosts.cfg -c local
  78. ${LOG_LEVEL}
  79. -e gce_credentials_file=${HOME}/.ssh/gce.json
  80. -e gce_project_id=${GCE_PROJECT_ID}
  81. -e gce_service_account_email=${GCE_ACCOUNT}
  82. -e inventory_path=${PWD}/inventory/inventory.ini
  83. -e test_id=${TEST_ID}
  84. -e preemptible=$GCE_PREEMPTIBLE
  85. # Check out latest tag if testing upgrade
  86. # Uncomment when gitlab kargo repo has tags
  87. #- test "${UPGRADE_TEST}" != "false" && git fetch --all && git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
  88. - test "${UPGRADE_TEST}" != "false" && git checkout 72ae7638bcc94c66afa8620dfa4ad9a9249327ea
  89. # Checkout the CI vars file so it is available
  90. - test "${UPGRADE_TEST}" != "false" && git checkout "${CI_BUILD_REF}" tests/files/${CI_JOB_NAME}.yml
  91. # Create cluster
  92. - >
  93. ansible-playbook
  94. -i inventory/inventory.ini
  95. -b --become-user=root
  96. --private-key=${HOME}/.ssh/id_rsa
  97. -u $SSH_USER
  98. ${SSH_ARGS}
  99. ${LOG_LEVEL}
  100. -e @${CI_TEST_VARS}
  101. -e ansible_python_interpreter=${PYPATH}
  102. -e ansible_ssh_user=${SSH_USER}
  103. -e local_release_dir=${PWD}/downloads
  104. --limit "all:!fake_hosts"
  105. cluster.yml
  106. # Repeat deployment if testing upgrade
  107. - >
  108. if [ "${UPGRADE_TEST}" != "false" ]; then
  109. test "${UPGRADE_TEST}" == "basic" && PLAYBOOK="cluster.yml";
  110. test "${UPGRADE_TEST}" == "graceful" && PLAYBOOK="upgrade-cluster.yml";
  111. git checkout "${CI_BUILD_REF}";
  112. ansible-playbook
  113. -i inventory/inventory.ini
  114. -b --become-user=root
  115. --private-key=${HOME}/.ssh/id_rsa
  116. -u $SSH_USER
  117. ${SSH_ARGS}
  118. ${LOG_LEVEL}
  119. -e @${CI_TEST_VARS}
  120. -e ansible_python_interpreter=${PYPATH}
  121. -e ansible_ssh_user=${SSH_USER}
  122. -e local_release_dir=${PWD}/downloads
  123. --limit "all:!fake_hosts"
  124. $PLAYBOOK;
  125. fi
  126. # Tests Cases
  127. ## Test Master API
  128. - >
  129. ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root --limit "all:!fake_hosts" tests/testcases/010_check-apiserver.yml $LOG_LEVEL
  130. -e "{kubeadm_enabled: ${KUBEADM_ENABLED}}"
  131. ## Ping the between 2 pod
  132. - ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root --limit "all:!fake_hosts" tests/testcases/030_check-network.yml $LOG_LEVEL
  133. ## Advanced DNS checks
  134. - ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH} -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root --limit "all:!fake_hosts" tests/testcases/040_check-network-adv.yml $LOG_LEVEL
  135. ## Idempotency checks 1/5 (repeat deployment)
  136. - >
  137. if [ "${IDEMPOT_CHECK}" = "true" ]; then
  138. ansible-playbook
  139. -i inventory/inventory.ini
  140. -b --become-user=root
  141. --private-key=${HOME}/.ssh/id_rsa
  142. -u $SSH_USER
  143. ${SSH_ARGS}
  144. ${LOG_LEVEL}
  145. -e @${CI_TEST_VARS}
  146. -e ansible_python_interpreter=${PYPATH}
  147. -e local_release_dir=${PWD}/downloads
  148. --limit "all:!fake_hosts"
  149. cluster.yml;
  150. fi
  151. ## Idempotency checks 2/5 (Advanced DNS checks)
  152. - >
  153. if [ "${IDEMPOT_CHECK}" = "true" ]; then
  154. ansible-playbook
  155. -i inventory/inventory.ini
  156. -b --become-user=root
  157. --private-key=${HOME}/.ssh/id_rsa
  158. -u $SSH_USER
  159. ${SSH_ARGS}
  160. ${LOG_LEVEL}
  161. -e @${CI_TEST_VARS}
  162. --limit "all:!fake_hosts"
  163. tests/testcases/040_check-network-adv.yml $LOG_LEVEL;
  164. fi
  165. ## Idempotency checks 3/5 (reset deployment)
  166. - >
  167. if [ "${IDEMPOT_CHECK}" = "true" -a "${RESET_CHECK}" = "true" ]; then
  168. ansible-playbook
  169. -i inventory/inventory.ini
  170. -b --become-user=root
  171. --private-key=${HOME}/.ssh/id_rsa
  172. -u $SSH_USER
  173. ${SSH_ARGS}
  174. ${LOG_LEVEL}
  175. -e @${CI_TEST_VARS}
  176. -e ansible_python_interpreter=${PYPATH}
  177. -e reset_confirmation=yes
  178. --limit "all:!fake_hosts"
  179. reset.yml;
  180. fi
  181. ## Idempotency checks 4/5 (redeploy after reset)
  182. - >
  183. if [ "${IDEMPOT_CHECK}" = "true" -a "${RESET_CHECK}" = "true" ]; then
  184. ansible-playbook
  185. -i inventory/inventory.ini
  186. -b --become-user=root
  187. --private-key=${HOME}/.ssh/id_rsa
  188. -u $SSH_USER
  189. ${SSH_ARGS}
  190. ${LOG_LEVEL}
  191. -e @${CI_TEST_VARS}
  192. -e ansible_python_interpreter=${PYPATH}
  193. -e local_release_dir=${PWD}/downloads
  194. --limit "all:!fake_hosts"
  195. cluster.yml;
  196. fi
  197. ## Idempotency checks 5/5 (Advanced DNS checks)
  198. - >
  199. if [ "${IDEMPOT_CHECK}" = "true" -a "${RESET_CHECK}" = "true" ]; then
  200. ansible-playbook -i inventory/inventory.ini -e ansible_python_interpreter=${PYPATH}
  201. -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root
  202. --limit "all:!fake_hosts"
  203. tests/testcases/040_check-network-adv.yml $LOG_LEVEL;
  204. fi
  205. after_script:
  206. - >
  207. ansible-playbook -i inventory/inventory.ini tests/cloud_playbooks/delete-gce.yml -c local $LOG_LEVEL
  208. -e @${CI_TEST_VARS}
  209. -e test_id=${TEST_ID}
  210. -e gce_project_id=${GCE_PROJECT_ID}
  211. -e gce_service_account_email=${GCE_ACCOUNT}
  212. -e gce_credentials_file=${HOME}/.ssh/gce.json
  213. -e inventory_path=${PWD}/inventory/inventory.ini
  214. # Test matrix. Leave the comments for markup scripts.
  215. .coreos_calico_aio_variables: &coreos_calico_aio_variables
  216. # stage: deploy-gce-part1
  217. MOVED_TO_GROUP_VARS: "true"
  218. .ubuntu_canal_ha_variables: &ubuntu_canal_ha_variables
  219. # stage: deploy-gce-part1
  220. UPGRADE_TEST: "graceful"
  221. .centos_weave_kubeadm_variables: &centos_weave_kubeadm_variables
  222. # stage: deploy-gce-part1
  223. UPGRADE_TEST: "graceful"
  224. .ubuntu_canal_kubeadm_variables: &ubuntu_canal_kubeadm_variables
  225. # stage: deploy-gce-part1
  226. MOVED_TO_GROUP_VARS: "true"
  227. .ubuntu_contiv_sep_variables: &ubuntu_contiv_sep_variables
  228. # stage: deploy-gce-special
  229. MOVED_TO_GROUP_VARS: "true"
  230. .rhel7_weave_variables: &rhel7_weave_variables
  231. # stage: deploy-gce-part1
  232. MOVED_TO_GROUP_VARS: "true"
  233. .centos7_flannel_addons_variables: &centos7_flannel_addons_variables
  234. # stage: deploy-gce-part2
  235. MOVED_TO_GROUP_VARS: "true"
  236. .debian8_calico_variables: &debian8_calico_variables
  237. # stage: deploy-gce-part2
  238. MOVED_TO_GROUP_VARS: "true"
  239. .coreos_canal_variables: &coreos_canal_variables
  240. # stage: deploy-gce-part2
  241. MOVED_TO_GROUP_VARS: "true"
  242. .rhel7_canal_sep_variables: &rhel7_canal_sep_variables
  243. # stage: deploy-gce-special
  244. MOVED_TO_GROUP_VARS: "true"
  245. .ubuntu_weave_sep_variables: &ubuntu_weave_sep_variables
  246. # stage: deploy-gce-special
  247. MOVED_TO_GROUP_VARS: "true"
  248. .centos7_calico_ha_variables: &centos7_calico_ha_variables
  249. # stage: deploy-gce-special
  250. MOVED_TO_GROUP_VARS: "true"
  251. .coreos_alpha_weave_ha_variables: &coreos_alpha_weave_ha_variables
  252. # stage: deploy-gce-special
  253. MOVED_TO_GROUP_VARS: "true"
  254. .ubuntu_rkt_sep_variables: &ubuntu_rkt_sep_variables
  255. # stage: deploy-gce-part1
  256. MOVED_TO_GROUP_VARS: "true"
  257. .ubuntu_vault_sep_variables: &ubuntu_vault_sep_variables
  258. # stage: deploy-gce-part1
  259. MOVED_TO_GROUP_VARS: "true"
  260. .ubuntu_flannel_variables: &ubuntu_flannel_variables
  261. # stage: deploy-gce-special
  262. MOVED_TO_GROUP_VARS: "true"
  263. # Builds for PRs only (premoderated by unit-tests step) and triggers (auto)
  264. coreos-calico-aio:
  265. stage: deploy-gce-part1
  266. <<: *job
  267. <<: *gce
  268. variables:
  269. <<: *gce_variables
  270. <<: *coreos_calico_aio_variables
  271. when: on_success
  272. except: ['triggers']
  273. only: [/^pr-.*$/]
  274. coreos-calico-sep-triggers:
  275. stage: deploy-gce-part1
  276. <<: *job
  277. <<: *gce
  278. variables:
  279. <<: *gce_variables
  280. <<: *coreos_calico_aio_variables
  281. when: on_success
  282. only: ['triggers']
  283. centos7-flannel-addons:
  284. stage: deploy-gce-part2
  285. <<: *job
  286. <<: *gce
  287. variables:
  288. <<: *gce_variables
  289. <<: *centos7_flannel_addons_variables
  290. when: on_success
  291. except: ['triggers']
  292. only: [/^pr-.*$/]
  293. centos7-flannel-addons-triggers:
  294. stage: deploy-gce-part1
  295. <<: *job
  296. <<: *gce
  297. variables:
  298. <<: *gce_variables
  299. <<: *centos7_flannel_addons_variables
  300. when: on_success
  301. only: ['triggers']
  302. ubuntu-weave-sep:
  303. stage: deploy-gce-special
  304. <<: *job
  305. <<: *gce
  306. variables:
  307. <<: *gce_variables
  308. <<: *ubuntu_weave_sep_variables
  309. when: on_success
  310. except: ['triggers']
  311. only: [/^pr-.*$/]
  312. ubuntu-weave-sep-triggers:
  313. stage: deploy-gce-part1
  314. <<: *job
  315. <<: *gce
  316. variables:
  317. <<: *gce_variables
  318. <<: *ubuntu_weave_sep_variables
  319. when: on_success
  320. only: ['triggers']
  321. # More builds for PRs/merges (manual) and triggers (auto)
  322. ubuntu-canal-ha:
  323. stage: deploy-gce-part1
  324. <<: *job
  325. <<: *gce
  326. variables:
  327. <<: *gce_variables
  328. <<: *ubuntu_canal_ha_variables
  329. when: manual
  330. except: ['triggers']
  331. only: ['master', /^pr-.*$/]
  332. ubuntu-canal-ha-triggers:
  333. stage: deploy-gce-part1
  334. <<: *job
  335. <<: *gce
  336. variables:
  337. <<: *gce_variables
  338. <<: *ubuntu_canal_ha_variables
  339. when: on_success
  340. only: ['triggers']
  341. ubuntu-canal-kubeadm:
  342. stage: deploy-gce-part1
  343. <<: *job
  344. <<: *gce
  345. variables:
  346. <<: *gce_variables
  347. <<: *ubuntu_canal_kubeadm_variables
  348. when: manual
  349. except: ['triggers']
  350. only: ['master', /^pr-.*$/]
  351. ubuntu-canal-kubeadm-triggers:
  352. stage: deploy-gce-part1
  353. <<: *job
  354. <<: *gce
  355. variables:
  356. <<: *gce_variables
  357. <<: *ubuntu_canal_kubeadm_variables
  358. when: on_success
  359. only: ['triggers']
  360. centos-weave-kubeadm:
  361. stage: deploy-gce-part1
  362. <<: *job
  363. <<: *gce
  364. variables:
  365. <<: *gce_variables
  366. <<: *centos_weave_kubeadm_variables
  367. when: manual
  368. except: ['triggers']
  369. only: ['master', /^pr-.*$/]
  370. centos-weave-kubeadm-triggers:
  371. stage: deploy-gce-part1
  372. <<: *job
  373. <<: *gce
  374. variables:
  375. <<: *gce_variables
  376. <<: *centos_weave_kubeadm_variables
  377. when: on_success
  378. only: ['triggers']
  379. ubuntu-contiv-sep:
  380. stage: deploy-gce-special
  381. <<: *job
  382. <<: *gce
  383. variables:
  384. <<: *gce_variables
  385. <<: *ubuntu_contiv_sep_variables
  386. when: manual
  387. except: ['triggers']
  388. only: ['master', /^pr-.*$/]
  389. rhel7-weave:
  390. stage: deploy-gce-part1
  391. <<: *job
  392. <<: *gce
  393. variables:
  394. <<: *gce_variables
  395. <<: *rhel7_weave_variables
  396. when: manual
  397. except: ['triggers']
  398. only: ['master', /^pr-.*$/]
  399. rhel7-weave-triggers:
  400. stage: deploy-gce-part1
  401. <<: *job
  402. <<: *gce
  403. variables:
  404. <<: *gce_variables
  405. <<: *rhel7_weave_variables
  406. when: on_success
  407. only: ['triggers']
  408. debian8-calico-upgrade:
  409. stage: deploy-gce-part2
  410. <<: *job
  411. <<: *gce
  412. variables:
  413. <<: *gce_variables
  414. <<: *debian8_calico_variables
  415. when: manual
  416. except: ['triggers']
  417. only: ['master', /^pr-.*$/]
  418. debian8-calico-triggers:
  419. stage: deploy-gce-part1
  420. <<: *job
  421. <<: *gce
  422. variables:
  423. <<: *gce_variables
  424. <<: *debian8_calico_variables
  425. when: on_success
  426. only: ['triggers']
  427. coreos-canal:
  428. stage: deploy-gce-part2
  429. <<: *job
  430. <<: *gce
  431. variables:
  432. <<: *gce_variables
  433. <<: *coreos_canal_variables
  434. when: manual
  435. except: ['triggers']
  436. only: ['master', /^pr-.*$/]
  437. coreos-canal-triggers:
  438. stage: deploy-gce-part1
  439. <<: *job
  440. <<: *gce
  441. variables:
  442. <<: *gce_variables
  443. <<: *coreos_canal_variables
  444. when: on_success
  445. only: ['triggers']
  446. rhel7-canal-sep:
  447. stage: deploy-gce-special
  448. <<: *job
  449. <<: *gce
  450. variables:
  451. <<: *gce_variables
  452. <<: *rhel7_canal_sep_variables
  453. when: manual
  454. except: ['triggers']
  455. only: ['master', /^pr-.*$/,]
  456. rhel7-canal-sep-triggers:
  457. stage: deploy-gce-part1
  458. <<: *job
  459. <<: *gce
  460. variables:
  461. <<: *gce_variables
  462. <<: *rhel7_canal_sep_variables
  463. when: on_success
  464. only: ['triggers']
  465. centos7-calico-ha:
  466. stage: deploy-gce-special
  467. <<: *job
  468. <<: *gce
  469. variables:
  470. <<: *gce_variables
  471. <<: *centos7_calico_ha_variables
  472. when: manual
  473. except: ['triggers']
  474. only: ['master', /^pr-.*$/]
  475. centos7-calico-ha-triggers:
  476. stage: deploy-gce-part1
  477. <<: *job
  478. <<: *gce
  479. variables:
  480. <<: *gce_variables
  481. <<: *centos7_calico_ha_variables
  482. when: on_success
  483. only: ['triggers']
  484. # no triggers yet https://github.com/kubernetes-incubator/kargo/issues/613
  485. coreos-alpha-weave-ha:
  486. stage: deploy-gce-special
  487. <<: *job
  488. <<: *gce
  489. variables:
  490. <<: *gce_variables
  491. <<: *coreos_alpha_weave_ha_variables
  492. when: manual
  493. except: ['triggers']
  494. only: ['master', /^pr-.*$/]
  495. ubuntu-rkt-sep:
  496. stage: deploy-gce-part1
  497. <<: *job
  498. <<: *gce
  499. variables:
  500. <<: *gce_variables
  501. <<: *ubuntu_rkt_sep_variables
  502. when: manual
  503. except: ['triggers']
  504. only: ['master', /^pr-.*$/]
  505. ubuntu-vault-sep:
  506. stage: deploy-gce-part1
  507. <<: *job
  508. <<: *gce
  509. variables:
  510. <<: *gce_variables
  511. <<: *ubuntu_vault_sep_variables
  512. when: manual
  513. except: ['triggers']
  514. only: ['master', /^pr-.*$/]
  515. ubuntu-flannel-sep:
  516. stage: deploy-gce-special
  517. <<: *job
  518. <<: *gce
  519. variables:
  520. <<: *gce_variables
  521. <<: *ubuntu_flannel_variables
  522. when: manual
  523. except: ['triggers']
  524. only: ['master', /^pr-.*$/]
  525. # Premoderated with manual actions
  526. ci-authorized:
  527. <<: *job
  528. stage: moderator
  529. before_script:
  530. - apt-get -y install jq
  531. script:
  532. - /bin/sh scripts/premoderator.sh
  533. except: ['triggers', 'master']
  534. syntax-check:
  535. <<: *job
  536. stage: unit-tests
  537. script:
  538. - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root cluster.yml -vvv --syntax-check
  539. - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root upgrade-cluster.yml -vvv --syntax-check
  540. - ansible-playbook -i inventory/local-tests.cfg -u root -e ansible_ssh_user=root -b --become-user=root reset.yml -vvv --syntax-check
  541. - 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
  542. except: ['triggers', 'master']
  543. yamllint:
  544. <<: *job
  545. stage: unit-tests
  546. script:
  547. - yamllint roles
  548. except: ['triggers', 'master']
  549. tox-inventory-builder:
  550. stage: unit-tests
  551. <<: *job
  552. script:
  553. - pip install tox
  554. - cd contrib/inventory_builder && tox
  555. when: manual
  556. except: ['triggers', 'master']