From 09b831405715191bd7a136d48ccff039c3a2764a Mon Sep 17 00:00:00 2001
From: Maxime Guyot <Miouge1@users.noreply.github.com>
Date: Fri, 18 Sep 2020 17:08:46 +0200
Subject: [PATCH] Add support for periodic CI (#6715)

---
 .gitlab-ci/packet.yml | 92 ++++++++++++++++++++++++-------------------
 1 file changed, 52 insertions(+), 40 deletions(-)

diff --git a/.gitlab-ci/packet.yml b/.gitlab-ci/packet.yml
index 9d2232958..f43d44f31 100644
--- a/.gitlab-ci/packet.yml
+++ b/.gitlab-ci/packet.yml
@@ -1,43 +1,55 @@
 ---
-.packet: &packet
+.packet:
   extends: .testcases
   variables:
-    CI_PLATFORM: "packet"
-    SSH_USER: "kubespray"
+    CI_PLATFORM: packet
+    SSH_USER: kubespray
   tags:
     - packet
+  except: [triggers]
+
+# CI template for PRs
+.packet_pr:
   only: [/^pr-.*$/]
-  except: ['triggers']
+  extends: .packet
+
+# CI template for periodic CI jobs
+# Enabled when PERIODIC_CI_ENABLED var is set
+.packet_periodic:
+  only:
+    variables:
+      - $PERIODIC_CI_ENABLED
+  extends: .packet
 
 packet_ubuntu18-calico-aio:
   stage: deploy-part1
-  extends: .packet
+  extends: .packet_pr
   when: on_success
 
 # Future AIO job
 packet_ubuntu20-calico-aio:
   stage: deploy-part1
-  extends: .packet
+  extends: .packet_pr
   when: on_success
 
 # ### PR JOBS PART2
 
 packet_centos7-flannel-containerd-addons-ha:
-  extends: .packet
+  extends: .packet_pr
   stage: deploy-part2
   when: on_success
   variables:
     MITOGEN_ENABLE: "true"
 
 packet_centos7-crio:
-  extends: .packet
+  extends: .packet_pr
   stage: deploy-part2
   when: on_success
   variables:
     MITOGEN_ENABLE: "true"
 
 packet_ubuntu18-crio:
-  extends: .packet
+  extends: .packet_pr
   stage: deploy-part2
   when: manual
   variables:
@@ -45,44 +57,44 @@ packet_ubuntu18-crio:
 
 packet_ubuntu16-canal-kubeadm-ha:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
 
 packet_ubuntu16-canal-sep:
   stage: deploy-special
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_ubuntu16-flannel-ha:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_ubuntu16-kube-router-sep:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_ubuntu16-kube-router-svc-proxy:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_debian10-cilium-svc-proxy:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: manual
 
 packet_debian10-containerd:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: on_success
   variables:
     MITOGEN_ENABLE: "true"
 
 packet_centos7-calico-ha-once-localhost:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: on_success
   variables:
     # This will instruct Docker not to start over TLS.
@@ -92,97 +104,97 @@ packet_centos7-calico-ha-once-localhost:
 
 packet_centos8-kube-ovn:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
 
 packet_centos8-calico:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: on_success
 
 packet_fedora32-weave:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: on_success
 
 packet_opensuse-canal:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
 
 packet_ubuntu18-ovn4nfv:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
 
 # Contiv does not work in k8s v1.16
 # packet_ubuntu16-contiv-sep:
 #   stage: deploy-part2
-#   extends: .packet
+#   extends: .packet_pr
 #   when: on_success
 
 # ### MANUAL JOBS
 
 packet_ubuntu16-weave-sep:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_ubuntu18-cilium-sep:
   stage: deploy-special
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_ubuntu18-flannel-containerd-ha:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_ubuntu18-flannel-containerd-ha-once:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_debian9-macvlan:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_centos7-calico-ha:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_centos7-kube-router:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_centos7-multus-calico:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_oracle7-canal-ha:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_fedora31-flannel:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
   variables:
     MITOGEN_ENABLE: "true"
 
 packet_amazon-linux-2-aio:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_pr
   when: manual
 
 packet_fedora32-kube-ovn-containerd:
   stage: deploy-part2
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
 
 # ### PR JOBS PART3
@@ -190,7 +202,7 @@ packet_fedora32-kube-ovn-containerd:
 
 packet_centos7-weave-upgrade-ha:
   stage: deploy-part3
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
   variables:
     UPGRADE_TEST: basic
@@ -198,7 +210,7 @@ packet_centos7-weave-upgrade-ha:
 
 packet_debian9-calico-upgrade:
   stage: deploy-part3
-  extends: .packet
+  extends: .packet_pr
   when: on_success
   variables:
     UPGRADE_TEST: graceful
@@ -206,7 +218,7 @@ packet_debian9-calico-upgrade:
 
 packet_debian9-calico-upgrade-once:
   stage: deploy-part3
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
   variables:
     UPGRADE_TEST: graceful
@@ -214,7 +226,7 @@ packet_debian9-calico-upgrade-once:
 
 packet_ubuntu18-calico-ha-recover:
   stage: deploy-part3
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
   variables:
     RECOVER_CONTROL_PLANE_TEST: "true"
@@ -222,7 +234,7 @@ packet_ubuntu18-calico-ha-recover:
 
 packet_ubuntu18-calico-ha-recover-noquorum:
   stage: deploy-part3
-  extends: .packet
+  extends: .packet_periodic
   when: on_success
   variables:
     RECOVER_CONTROL_PLANE_TEST: "true"
-- 
GitLab