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.

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