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.

641 lines
16 KiB

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