From 9ee5e058a7369cf3cdd851942ce5b25e8ce95c4e Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Wed, 31 Mar 2021 14:05:54 +0200
Subject: [PATCH 01/12] Add rules for batch api group

---
 roles/role.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/roles/role.yaml b/roles/role.yaml
index 40505eb..38d1423 100644
--- a/roles/role.yaml
+++ b/roles/role.yaml
@@ -38,4 +38,10 @@ rules:
   - limitranges
   - drupalsites
   verbs:
+  - '*'
+- apiGroups:
+  - "batch"
+  resources:
+  - jobs
+  verbs:
   - '*'
\ No newline at end of file
-- 
GitLab


From eaf39abd0d6caedf305f3336ffc0fcaf332d41f2 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Wed, 31 Mar 2021 14:06:28 +0200
Subject: [PATCH 02/12] Use a job for running the clear-cache task

---
 tasks/clear-cache.yaml | 51 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/tasks/clear-cache.yaml b/tasks/clear-cache.yaml
index 80df1fa..3f47d68 100644
--- a/tasks/clear-cache.yaml
+++ b/tasks/clear-cache.yaml
@@ -22,4 +22,53 @@ spec:
         echo "Drupal site name: $(params.drupalSite)"
         deploymentPod=$(oc get pods -n $(params.namespace) -l drupalSite=$(params.drupalSite) -l app=drupal -o custom-columns=POD:.metadata.name --no-headers)
         echo "Deployment pod: $deploymentPod"
-        oc exec $deploymentPod -c php-fpm drush cr
+        export TASK=clear-cache
+        echo "
+        apiVersion: batch/v1
+        kind: Job
+        metadata:
+          name: $TASK-$(params.drupalSite)
+          namespace: $(params.namespace)
+        spec:
+          backoffLimit: 20
+          completions: 1
+          parallelism: 1
+          template:
+            spec:
+              containers:
+              - command:
+                - sh
+                - /drupal-data/scripts/$TASK.sh
+                env:
+                - name: DRUPAL_SHARED_VOLUME
+                  value: /drupal-data
+                envFrom:
+                - secretRef:
+                    name: dbcredentials-dbod-$(params.drupalSite)
+                image: image-registry.openshift-image-registry.svc:5000/test-dimitra/drupal-php-$(params.drupalSite):8.9.13
+                imagePullPolicy: Always
+                name: taskrun
+                volumeMounts:
+                - mountPath: /drupal-data
+                  name: drupal-directory
+              dnsPolicy: ClusterFirst
+              restartPolicy: Never
+              schedulerName: default-scheduler
+              securityContext: {}
+              terminationGracePeriodSeconds: 30
+              volumes:
+              - name: drupal-directory
+                persistentVolumeClaim:
+                  claimName: drupal-pv-claim-$(params.drupalSite)
+        " >> /tmp/job.yaml
+        cat /tmp/job.yaml
+        oc create -n $(params.namespace) -f /tmp/job.yaml
+        oc wait --for=condition=complete job/$TASK-$(params.drupalSite) & completion_pid=$!
+        oc wait --for=condition=failed job/$TASK-$(params.drupalSite) & failure_pid=$!
+        wait -n $completion_pid $failure_pid
+        jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
+        echo "Job status: $jobStatus"
+        jobPod=$(oc get pods -n $(params.namespace) -l job-name=$TASK-$(params.drupalSite) -o custom-columns=POD:.metadata.name --no-headers)
+        echo "Job pod: $jobPod"
+        echo "Job logs:"
+        oc logs pod/$jobPod -n $(params.namespace)
\ No newline at end of file
-- 
GitLab


From 5810a6db10801735d78247e244bad70015a31d95 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Wed, 7 Apr 2021 15:11:35 +0200
Subject: [PATCH 03/12] Mount job template configmap using a workspace

---
 examples/clear-cache-taskrun.yaml |  4 +++
 job-configmap.yaml                | 42 +++++++++++++++++++++++++++
 tasks/clear-cache.yaml            | 47 ++++---------------------------
 3 files changed, 52 insertions(+), 41 deletions(-)
 create mode 100644 job-configmap.yaml

diff --git a/examples/clear-cache-taskrun.yaml b/examples/clear-cache-taskrun.yaml
index 4ba9e0f..09832eb 100644
--- a/examples/clear-cache-taskrun.yaml
+++ b/examples/clear-cache-taskrun.yaml
@@ -11,4 +11,8 @@ spec:
       value: test-dimitra-drupalsite
     - name: namespace
       value: test-dimitra
+  workspaces:
+    - name: job
+      configmap:
+        name: job-operations-template-configmap
   serviceAccountName: tektoncd
diff --git a/job-configmap.yaml b/job-configmap.yaml
new file mode 100644
index 0000000..cbc081b
--- /dev/null
+++ b/job-configmap.yaml
@@ -0,0 +1,42 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: job-operations-template-configmap
+data:
+  job-operations-template.yaml: |-
+    apiVersion: batch/v1
+    kind: Job
+    metadata:
+      name: $TASK-$DRUPALSITE
+      namespace: $NAMESPACE
+    spec:
+      backoffLimit: 20
+      completions: 1
+      parallelism: 1
+      template:
+        spec:
+          containers:
+          - command:
+            - sh
+            - /drupal-data/scripts/$TASK.sh
+            env:
+            - name: DRUPAL_SHARED_VOLUME
+              value: /drupal-data
+            envFrom:
+            - secretRef:
+                name: dbcredentials-dbod-$DRUPALSITE
+            image: image-registry.openshift-image-registry.svc:5000/test-dimitra/drupal-php-$DRUPALSITE:8.9.13
+            imagePullPolicy: Always
+            name: taskrun
+            volumeMounts:
+            - mountPath: /drupal-data
+              name: drupal-directory
+          dnsPolicy: ClusterFirst
+          restartPolicy: Never
+          schedulerName: default-scheduler
+          securityContext: {}
+          terminationGracePeriodSeconds: 30
+          volumes:
+          - name: drupal-directory
+            persistentVolumeClaim:
+              claimName: drupal-pv-claim-$DRUPALSITE
\ No newline at end of file
diff --git a/tasks/clear-cache.yaml b/tasks/clear-cache.yaml
index 3f47d68..49ac21b 100644
--- a/tasks/clear-cache.yaml
+++ b/tasks/clear-cache.yaml
@@ -10,9 +10,11 @@ spec:
     - name: namespace
       type: string
       description: The namespace of the drupal site
+  workspaces:
+    - name: job
   steps:
     - name: clear-cache
-      image: image-registry.openshift-image-registry.svc:5000/openshift/cli:latest
+      image: widerin/openshift-cli
       command:
         - /bin/sh
         - '-c'
@@ -23,46 +25,9 @@ spec:
         deploymentPod=$(oc get pods -n $(params.namespace) -l drupalSite=$(params.drupalSite) -l app=drupal -o custom-columns=POD:.metadata.name --no-headers)
         echo "Deployment pod: $deploymentPod"
         export TASK=clear-cache
-        echo "
-        apiVersion: batch/v1
-        kind: Job
-        metadata:
-          name: $TASK-$(params.drupalSite)
-          namespace: $(params.namespace)
-        spec:
-          backoffLimit: 20
-          completions: 1
-          parallelism: 1
-          template:
-            spec:
-              containers:
-              - command:
-                - sh
-                - /drupal-data/scripts/$TASK.sh
-                env:
-                - name: DRUPAL_SHARED_VOLUME
-                  value: /drupal-data
-                envFrom:
-                - secretRef:
-                    name: dbcredentials-dbod-$(params.drupalSite)
-                image: image-registry.openshift-image-registry.svc:5000/test-dimitra/drupal-php-$(params.drupalSite):8.9.13
-                imagePullPolicy: Always
-                name: taskrun
-                volumeMounts:
-                - mountPath: /drupal-data
-                  name: drupal-directory
-              dnsPolicy: ClusterFirst
-              restartPolicy: Never
-              schedulerName: default-scheduler
-              securityContext: {}
-              terminationGracePeriodSeconds: 30
-              volumes:
-              - name: drupal-directory
-                persistentVolumeClaim:
-                  claimName: drupal-pv-claim-$(params.drupalSite)
-        " >> /tmp/job.yaml
-        cat /tmp/job.yaml
-        oc create -n $(params.namespace) -f /tmp/job.yaml
+        export DRUPALSITE=$(params.drupalSite)
+        export NAMESPACE=$(params.namespace)
+        envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite) & completion_pid=$!
         oc wait --for=condition=failed job/$TASK-$(params.drupalSite) & failure_pid=$!
         wait -n $completion_pid $failure_pid
-- 
GitLab


From b724a44f6dc8aa28e49d4cd0a4ca6d799fe81525 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Fri, 9 Apr 2021 13:22:20 +0200
Subject: [PATCH 04/12] Update configmap, role and image for clear-cache task

---
 job-configmap.yaml     |  8 ++++----
 roles/role.yaml        | 44 ++++++++++--------------------------------
 tasks/clear-cache.yaml |  8 ++------
 3 files changed, 16 insertions(+), 44 deletions(-)

diff --git a/job-configmap.yaml b/job-configmap.yaml
index cbc081b..621d9d8 100644
--- a/job-configmap.yaml
+++ b/job-configmap.yaml
@@ -18,14 +18,14 @@ data:
           containers:
           - command:
             - sh
-            - /drupal-data/scripts/$TASK.sh
+            - /operations/$TASK.sh
             env:
             - name: DRUPAL_SHARED_VOLUME
               value: /drupal-data
             envFrom:
             - secretRef:
-                name: dbcredentials-dbod-$DRUPALSITE
-            image: image-registry.openshift-image-registry.svc:5000/test-dimitra/drupal-php-$DRUPALSITE:8.9.13
+                name: dbcredentials-$DRUPALSITE
+            image: gitlab-registry.cern.ch/drupal/paas/drupal-runtime/site-builder-base:8.9.x
             imagePullPolicy: Always
             name: taskrun
             volumeMounts:
@@ -39,4 +39,4 @@ data:
           volumes:
           - name: drupal-directory
             persistentVolumeClaim:
-              claimName: drupal-pv-claim-$DRUPALSITE
\ No newline at end of file
+              claimName: pv-claim-$DRUPALSITE
\ No newline at end of file
diff --git a/roles/role.yaml b/roles/role.yaml
index 38d1423..b348f01 100644
--- a/roles/role.yaml
+++ b/roles/role.yaml
@@ -1,47 +1,23 @@
 
 apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
+kind: ClusterRole
 metadata:
   name: tektoncd-role
-  namespace: test-dimitra
-  annotations:
-    tekton.cern.ch/requiredForTask: clear-cache
 rules:
 - apiGroups:
-  - ""
+  - "batch"
   resources:
-  - pods
-  - services
-  - endpoints
-  - persistentvolumeclaims
-  - events
-  - configmaps
-  - secrets
-  - pods/log
-  - pods/exec
-  - limitranges
-  - drupalsites
+  - jobs
   verbs:
-  - '*'
+  - 'create'
+  - 'watch'
+  - 'list'
+  - 'get'
 - apiGroups:
-  - "drupal.webservices.cern.ch"
+  - ""
   resources:
   - pods
-  - services
-  - endpoints
-  - persistentvolumeclaims
-  - events
-  - configmaps
-  - secrets
   - pods/log
-  - pods/exec
-  - limitranges
-  - drupalsites
-  verbs:
-  - '*'
-- apiGroups:
-  - "batch"
-  resources:
-  - jobs
   verbs:
-  - '*'
\ No newline at end of file
+  - 'list'
+  - 'get'
\ No newline at end of file
diff --git a/tasks/clear-cache.yaml b/tasks/clear-cache.yaml
index 49ac21b..e53c609 100644
--- a/tasks/clear-cache.yaml
+++ b/tasks/clear-cache.yaml
@@ -14,7 +14,7 @@ spec:
     - name: job
   steps:
     - name: clear-cache
-      image: widerin/openshift-cli
+      image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
       command:
         - /bin/sh
         - '-c'
@@ -22,8 +22,6 @@ spec:
       - |-
         echo "--------------------------- Clear cache ---------------------------"
         echo "Drupal site name: $(params.drupalSite)"
-        deploymentPod=$(oc get pods -n $(params.namespace) -l drupalSite=$(params.drupalSite) -l app=drupal -o custom-columns=POD:.metadata.name --no-headers)
-        echo "Deployment pod: $deploymentPod"
         export TASK=clear-cache
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
@@ -33,7 +31,5 @@ spec:
         wait -n $completion_pid $failure_pid
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
-        jobPod=$(oc get pods -n $(params.namespace) -l job-name=$TASK-$(params.drupalSite) -o custom-columns=POD:.metadata.name --no-headers)
-        echo "Job pod: $jobPod"
         echo "Job logs:"
-        oc logs pod/$jobPod -n $(params.namespace)
\ No newline at end of file
+        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
\ No newline at end of file
-- 
GitLab


From 3274491aea85c0902824d5c30e69420bb9ecc050 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Thu, 29 Apr 2021 14:37:28 +0200
Subject: [PATCH 05/12] Delete roles

---
 roles/role.yaml | 23 -----------------------
 1 file changed, 23 deletions(-)
 delete mode 100644 roles/role.yaml

diff --git a/roles/role.yaml b/roles/role.yaml
deleted file mode 100644
index b348f01..0000000
--- a/roles/role.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: tektoncd-role
-rules:
-- apiGroups:
-  - "batch"
-  resources:
-  - jobs
-  verbs:
-  - 'create'
-  - 'watch'
-  - 'list'
-  - 'get'
-- apiGroups:
-  - ""
-  resources:
-  - pods
-  - pods/log
-  verbs:
-  - 'list'
-  - 'get'
\ No newline at end of file
-- 
GitLab


From 9de3acddad66c3db11850dd56e76a6ada7987504 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Thu, 29 Apr 2021 15:08:14 +0200
Subject: [PATCH 06/12] Update script for clear-cache cluster task

---
 tasks/clear-cache.yaml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/tasks/clear-cache.yaml b/tasks/clear-cache.yaml
index e53c609..ba638bf 100644
--- a/tasks/clear-cache.yaml
+++ b/tasks/clear-cache.yaml
@@ -26,9 +26,7 @@ spec:
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
         envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
-        oc wait --for=condition=complete job/$TASK-$(params.drupalSite) & completion_pid=$!
-        oc wait --for=condition=failed job/$TASK-$(params.drupalSite) & failure_pid=$!
-        wait -n $completion_pid $failure_pid
+        oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
         echo "Job logs:"
-- 
GitLab


From 4488794007d1303d0f7d979a76ec1e5238ce7254 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Mon, 17 May 2021 14:44:52 +0200
Subject: [PATCH 07/12] Update tasks and examples

---
 examples/database-backup-taskrun.yaml   |  4 ++++
 examples/database-restore-taskrun.yaml  |  4 ++++
 examples/publish-unpublish-taskrun.yaml | 16 ---------------
 job-configmap.yaml                      |  2 +-
 tasks/database-backup.yaml              | 16 +++++++++++----
 tasks/database-restore.yaml             | 18 ++++++++++++-----
 tasks/publish-unpublish.yaml            | 26 -------------------------
 7 files changed, 34 insertions(+), 52 deletions(-)
 delete mode 100644 examples/publish-unpublish-taskrun.yaml
 delete mode 100644 tasks/publish-unpublish.yaml

diff --git a/examples/database-backup-taskrun.yaml b/examples/database-backup-taskrun.yaml
index eff8764..2bf8734 100644
--- a/examples/database-backup-taskrun.yaml
+++ b/examples/database-backup-taskrun.yaml
@@ -11,4 +11,8 @@ spec:
       value: test-dimitra-drupalsite
     - name: namespace
       value: test-dimitra
+  workspaces:
+    - name: job
+      configmap:
+        name: job-operations-template-configmap
   serviceAccountName: tektoncd
diff --git a/examples/database-restore-taskrun.yaml b/examples/database-restore-taskrun.yaml
index 0fcc44a..b817ac9 100644
--- a/examples/database-restore-taskrun.yaml
+++ b/examples/database-restore-taskrun.yaml
@@ -11,4 +11,8 @@ spec:
       value: test-dimitra-drupalsite
     - name: namespace
       value: test-dimitra
+  workspaces:
+    - name: job
+      configmap:
+        name: job-operations-template-configmap
   serviceAccountName: tektoncd
diff --git a/examples/publish-unpublish-taskrun.yaml b/examples/publish-unpublish-taskrun.yaml
deleted file mode 100644
index ed775b6..0000000
--- a/examples/publish-unpublish-taskrun.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-apiVersion: tekton.dev/v1beta1
-kind: TaskRun
-metadata:
-  name: publish-unpublish
-spec:
-  taskRef:
-    name: publish-unpublish
-    kind: ClusterTask
-  params:
-    - name: drupalSite
-      value: test-dimitra-drupalsite
-    - name: namespace
-      value: test-dimitra
-    - name: publish
-      value: "true"
-  serviceAccountName: tektoncd
diff --git a/job-configmap.yaml b/job-configmap.yaml
index 621d9d8..e49bca2 100644
--- a/job-configmap.yaml
+++ b/job-configmap.yaml
@@ -25,7 +25,7 @@ data:
             envFrom:
             - secretRef:
                 name: dbcredentials-$DRUPALSITE
-            image: gitlab-registry.cern.ch/drupal/paas/drupal-runtime/site-builder-base:8.9.x
+            image: gitlab-registry.cern.ch/drupal/paas/drupal-runtime/site-builder-base:8.9.14-stable
             imagePullPolicy: Always
             name: taskrun
             volumeMounts:
diff --git a/tasks/database-backup.yaml b/tasks/database-backup.yaml
index e289174..0e98042 100644
--- a/tasks/database-backup.yaml
+++ b/tasks/database-backup.yaml
@@ -10,9 +10,11 @@ spec:
     - name: namespace
       type: string
       description: The namespace of the drupal site
+  workspaces:
+    - name: job
   steps:
     - name: database-backup
-      image: image-registry.openshift-image-registry.svc:5000/openshift/cli:latest
+      image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
       command:
         - /bin/sh
         - '-c'
@@ -20,6 +22,12 @@ spec:
       - |-
         echo "--------------------------- Database backup ---------------------------"
         echo "Drupal site name: $(params.drupalSite)"
-        deploymentPod=$(oc get pods -n $(params.namespace) -l drupalSite=$(params.drupalSite) -l app=drupal -o custom-columns=POD:.metadata.name --no-headers)
-        echo "Deployment pod: $deploymentPod"
-        oc exec $deploymentPod -c php-fpm -- /bin/sh '-c' 'drush sql-dump > /drupal-data/dbdump.sql'
+        export TASK=database-backup
+        export DRUPALSITE=$(params.drupalSite)
+        export NAMESPACE=$(params.namespace)
+        envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
+        oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
+        jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
+        echo "Job status: $jobStatus"
+        echo "Job logs:"
+        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
\ No newline at end of file
diff --git a/tasks/database-restore.yaml b/tasks/database-restore.yaml
index 406a161..7a0b9fb 100644
--- a/tasks/database-restore.yaml
+++ b/tasks/database-restore.yaml
@@ -10,16 +10,24 @@ spec:
     - name: namespace
       type: string
       description: The namespace of the drupal site
+  workspaces:
+    - name: job
   steps:
     - name: database-restore
-      image: image-registry.openshift-image-registry.svc:5000/openshift/cli:latest
+      image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
       command:
         - /bin/sh
         - '-c'
       args:
       - |-
-        echo "--------------------------- Database restore ---------------------------"
+        echo "--------------------------- Clear cache ---------------------------"
         echo "Drupal site name: $(params.drupalSite)"
-        deploymentPod=$(oc get pods -n $(params.namespace) -l drupalSite=$(params.drupalSite) -l app=drupal -o custom-columns=POD:.metadata.name --no-headers)
-        echo "Deployment pod: $deploymentPod"
-        oc exec drupal-test-dimitra-drupalsite-8f5478886-d79s6 -c php-fpm -- /bin/sh '-c' 'drush sql-drop -y; drush sql-connect < /drupal-data/dbdump.sql'
+        export TASK=database-restore
+        export DRUPALSITE=$(params.drupalSite)
+        export NAMESPACE=$(params.namespace)
+        envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
+        oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
+        jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
+        echo "Job status: $jobStatus"
+        echo "Job logs:"
+        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
\ No newline at end of file
diff --git a/tasks/publish-unpublish.yaml b/tasks/publish-unpublish.yaml
deleted file mode 100644
index 0edd041..0000000
--- a/tasks/publish-unpublish.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: tekton.dev/v1beta1
-kind: ClusterTask
-metadata:
-  name: publish-unpublish
-spec:
-  params:
-    - name: drupalSite
-      type: string
-      description: The name of the drupal site
-    - name: namespace
-      type: string
-      description: The namespace of the drupal site
-    - name: publish
-      type: string
-      description: Publish a drupal site or not
-  steps:
-    - name: publish-unpublish
-      image: image-registry.openshift-image-registry.svc:5000/openshift/cli:latest
-      command:
-        - /bin/sh
-        - '-c'
-      args:
-      - |-
-        echo "--------------------------- Publsih/Unpublish ---------------------------"
-        echo "Drupal site name: $(params.drupalSite)"
-        oc patch --type=merge drupalsites.drupal.webservices.cern.ch/$(params.drupalSite) -p '{"spec":{"publish":$(params.publish)}}' -n $(params.namespace)
-- 
GitLab


From b519f85f7eee5fbf56c17d48f9d7fa2775f3792a Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Mon, 17 May 2021 15:58:29 +0200
Subject: [PATCH 08/12] Pass arguments if needed to script

---
 job-configmap.yaml          | 3 ++-
 tasks/clear-cache.yaml      | 2 +-
 tasks/database-backup.yaml  | 3 ++-
 tasks/database-restore.yaml | 5 +++--
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/job-configmap.yaml b/job-configmap.yaml
index e49bca2..7a891e6 100644
--- a/job-configmap.yaml
+++ b/job-configmap.yaml
@@ -18,7 +18,8 @@ data:
           containers:
           - command:
             - sh
-            - /operations/$TASK.sh
+            - /operations/$TASK.sh 
+            - $ARGS
             env:
             - name: DRUPAL_SHARED_VOLUME
               value: /drupal-data
diff --git a/tasks/clear-cache.yaml b/tasks/clear-cache.yaml
index ba638bf..39a7ff0 100644
--- a/tasks/clear-cache.yaml
+++ b/tasks/clear-cache.yaml
@@ -30,4 +30,4 @@ spec:
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
         echo "Job logs:"
-        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
\ No newline at end of file
+        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
diff --git a/tasks/database-backup.yaml b/tasks/database-backup.yaml
index 0e98042..5a9126d 100644
--- a/tasks/database-backup.yaml
+++ b/tasks/database-backup.yaml
@@ -25,9 +25,10 @@ spec:
         export TASK=database-backup
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
+        export ARGS="-f dbBackUp.sql"
         envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
         echo "Job logs:"
-        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
\ No newline at end of file
+        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
diff --git a/tasks/database-restore.yaml b/tasks/database-restore.yaml
index 7a0b9fb..0a1d349 100644
--- a/tasks/database-restore.yaml
+++ b/tasks/database-restore.yaml
@@ -20,14 +20,15 @@ spec:
         - '-c'
       args:
       - |-
-        echo "--------------------------- Clear cache ---------------------------"
+        echo "--------------------------- Database restore ---------------------------"
         echo "Drupal site name: $(params.drupalSite)"
         export TASK=database-restore
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
+        export ARGS="-f dbBackUp.sql"
         envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
         echo "Job logs:"
-        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
\ No newline at end of file
+        oc logs job/$TASK-$DRUPALSITE -n $(params.namespace)
-- 
GitLab


From b02463d79545379a7df6b076e02c6a10faf334a1 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Thu, 1 Jul 2021 11:13:35 +0200
Subject: [PATCH 09/12] Use generateName in TaskRuns

---
 examples/clear-cache-taskrun.yaml      | 2 +-
 examples/database-backup-taskrun.yaml  | 2 +-
 examples/database-restore-taskrun.yaml | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/examples/clear-cache-taskrun.yaml b/examples/clear-cache-taskrun.yaml
index 09832eb..3adb40c 100644
--- a/examples/clear-cache-taskrun.yaml
+++ b/examples/clear-cache-taskrun.yaml
@@ -1,7 +1,7 @@
 apiVersion: tekton.dev/v1beta1
 kind: TaskRun
 metadata:
-  name: clear-cache
+  generateName: clear-cache-
 spec:
   taskRef:
     name: clear-cache
diff --git a/examples/database-backup-taskrun.yaml b/examples/database-backup-taskrun.yaml
index 2bf8734..266e50e 100644
--- a/examples/database-backup-taskrun.yaml
+++ b/examples/database-backup-taskrun.yaml
@@ -1,7 +1,7 @@
 apiVersion: tekton.dev/v1beta1
 kind: TaskRun
 metadata:
-  name: database-backup
+  generateName: database-backup-
 spec:
   taskRef:
     name: database-backup
diff --git a/examples/database-restore-taskrun.yaml b/examples/database-restore-taskrun.yaml
index b817ac9..ab0b9ae 100644
--- a/examples/database-restore-taskrun.yaml
+++ b/examples/database-restore-taskrun.yaml
@@ -1,7 +1,7 @@
 apiVersion: tekton.dev/v1beta1
 kind: TaskRun
 metadata:
-  name: database-restore
+  generateName: database-restore-
 spec:
   taskRef:
     name: database-restore
-- 
GitLab


From 39408258dd530558fa3b30769cc03f1c1ada21b4 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Thu, 1 Jul 2021 11:57:12 +0200
Subject: [PATCH 10/12] Move cluster tasks to helm chart

---
 chart/Chart.yaml                              | 14 ++++++
 chart/charts/cluster-tasks/Chart.yaml         | 13 ++++++
 .../cluster-tasks/templates}/clear-cache.yaml |  6 ++-
 .../templates}/database-backup.yaml           |  6 ++-
 .../templates}/database-restore.yaml          |  6 ++-
 chart/charts/cluster-tasks/values.yaml        |  4 ++
 job-configmap.yaml                            | 43 -------------------
 7 files changed, 43 insertions(+), 49 deletions(-)
 create mode 100644 chart/Chart.yaml
 create mode 100644 chart/charts/cluster-tasks/Chart.yaml
 rename {tasks => chart/charts/cluster-tasks/templates}/clear-cache.yaml (71%)
 rename {tasks => chart/charts/cluster-tasks/templates}/database-backup.yaml (72%)
 rename {tasks => chart/charts/cluster-tasks/templates}/database-restore.yaml (72%)
 create mode 100644 chart/charts/cluster-tasks/values.yaml
 delete mode 100644 job-configmap.yaml

diff --git a/chart/Chart.yaml b/chart/Chart.yaml
new file mode 100644
index 0000000..e22ea97
--- /dev/null
+++ b/chart/Chart.yaml
@@ -0,0 +1,14 @@
+apiVersion: v2
+name: drupal-operations
+home: https://gitlab.cern.ch/drupal/paas/drupal-operations
+description: A Helm chart for Deployment of the Drupal Operations
+version: 0.1.0
+icon: https://raw.githubusercontent.com/cdfoundation/artwork/main/tekton/horizontal/color/tekton-horizontal-color.png
+keywords:
+- drupal
+- tekton
+- tasks
+- operations
+maintainers:
+- name: CERN IT-CDA-WF
+  email: drupal-admins@cern.ch
\ No newline at end of file
diff --git a/chart/charts/cluster-tasks/Chart.yaml b/chart/charts/cluster-tasks/Chart.yaml
new file mode 100644
index 0000000..f9d8e2d
--- /dev/null
+++ b/chart/charts/cluster-tasks/Chart.yaml
@@ -0,0 +1,13 @@
+apiVersion: v2
+name: drupal-operations
+home: https://gitlab.cern.ch/drupal/paas/drupal-operations
+description: A Helm chart for Deployment of Cluster Tasks
+version: 0.1.0
+icon: https://raw.githubusercontent.com/cdfoundation/artwork/main/tekton/horizontal/color/tekton-horizontal-color.png
+keywords:
+- drupal
+- tekton
+- clustertasks
+maintainers:
+- name: CERN IT-CDA-WF
+  email: drupal-admins@cern.ch
diff --git a/tasks/clear-cache.yaml b/chart/charts/cluster-tasks/templates/clear-cache.yaml
similarity index 71%
rename from tasks/clear-cache.yaml
rename to chart/charts/cluster-tasks/templates/clear-cache.yaml
index 39a7ff0..958eeca 100644
--- a/tasks/clear-cache.yaml
+++ b/chart/charts/cluster-tasks/templates/clear-cache.yaml
@@ -14,7 +14,7 @@ spec:
     - name: job
   steps:
     - name: clear-cache
-      image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
+      image: {{ .Values.openshiftCli.image }}
       command:
         - /bin/sh
         - '-c'
@@ -25,7 +25,9 @@ spec:
         export TASK=clear-cache
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
-        envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
+        export VERSION=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.name}')
+        export RELEASE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.releaseSpec}')
+        envsubst < $(workspaces.job.path)/{{ .Values.jobTemplateFile }} | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
diff --git a/tasks/database-backup.yaml b/chart/charts/cluster-tasks/templates/database-backup.yaml
similarity index 72%
rename from tasks/database-backup.yaml
rename to chart/charts/cluster-tasks/templates/database-backup.yaml
index 5a9126d..d9413a1 100644
--- a/tasks/database-backup.yaml
+++ b/chart/charts/cluster-tasks/templates/database-backup.yaml
@@ -14,7 +14,7 @@ spec:
     - name: job
   steps:
     - name: database-backup
-      image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
+      image: {{ .Values.openshiftCli.image }}
       command:
         - /bin/sh
         - '-c'
@@ -25,8 +25,10 @@ spec:
         export TASK=database-backup
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
+        export VERSION=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.name}')
+        export RELEASE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.releaseSpec}')
         export ARGS="-f dbBackUp.sql"
-        envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
+        envsubst < $(workspaces.job.path)/{{ .Values.jobTemplateFile }} | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
diff --git a/tasks/database-restore.yaml b/chart/charts/cluster-tasks/templates/database-restore.yaml
similarity index 72%
rename from tasks/database-restore.yaml
rename to chart/charts/cluster-tasks/templates/database-restore.yaml
index 0a1d349..60e1865 100644
--- a/tasks/database-restore.yaml
+++ b/chart/charts/cluster-tasks/templates/database-restore.yaml
@@ -14,7 +14,7 @@ spec:
     - name: job
   steps:
     - name: database-restore
-      image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
+      image: {{ .Values.openshiftCli.image }}
       command:
         - /bin/sh
         - '-c'
@@ -25,8 +25,10 @@ spec:
         export TASK=database-restore
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
+        export VERSION=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.name}')
+        export RELEASE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.releaseSpec}')
         export ARGS="-f dbBackUp.sql"
-        envsubst < $(workspaces.job.path)/job-operations-template.yaml | oc create -n $(params.namespace) -f -
+        envsubst < $(workspaces.job.path)/{{ .Values.jobTemplateFile }} | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
         echo "Job status: $jobStatus"
diff --git a/chart/charts/cluster-tasks/values.yaml b/chart/charts/cluster-tasks/values.yaml
new file mode 100644
index 0000000..aa18145
--- /dev/null
+++ b/chart/charts/cluster-tasks/values.yaml
@@ -0,0 +1,4 @@
+openshiftCli:
+  image: gitlab-registry.cern.ch/drupal/paas/drupal-operations/openshift-cli:latest
+
+jobTemplateFile: job-operations-template.yaml
diff --git a/job-configmap.yaml b/job-configmap.yaml
deleted file mode 100644
index 7a891e6..0000000
--- a/job-configmap.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: job-operations-template-configmap
-data:
-  job-operations-template.yaml: |-
-    apiVersion: batch/v1
-    kind: Job
-    metadata:
-      name: $TASK-$DRUPALSITE
-      namespace: $NAMESPACE
-    spec:
-      backoffLimit: 20
-      completions: 1
-      parallelism: 1
-      template:
-        spec:
-          containers:
-          - command:
-            - sh
-            - /operations/$TASK.sh 
-            - $ARGS
-            env:
-            - name: DRUPAL_SHARED_VOLUME
-              value: /drupal-data
-            envFrom:
-            - secretRef:
-                name: dbcredentials-$DRUPALSITE
-            image: gitlab-registry.cern.ch/drupal/paas/drupal-runtime/site-builder-base:8.9.14-stable
-            imagePullPolicy: Always
-            name: taskrun
-            volumeMounts:
-            - mountPath: /drupal-data
-              name: drupal-directory
-          dnsPolicy: ClusterFirst
-          restartPolicy: Never
-          schedulerName: default-scheduler
-          securityContext: {}
-          terminationGracePeriodSeconds: 30
-          volumes:
-          - name: drupal-directory
-            persistentVolumeClaim:
-              claimName: pv-claim-$DRUPALSITE
\ No newline at end of file
-- 
GitLab


From 702ace39934ed74ea64ede4689dcd0f63c4466b4 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Thu, 1 Jul 2021 15:17:50 +0200
Subject: [PATCH 11/12] Get serving pod image from status

---
 chart/charts/cluster-tasks/templates/clear-cache.yaml      | 3 +--
 chart/charts/cluster-tasks/templates/database-backup.yaml  | 3 +--
 chart/charts/cluster-tasks/templates/database-restore.yaml | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/chart/charts/cluster-tasks/templates/clear-cache.yaml b/chart/charts/cluster-tasks/templates/clear-cache.yaml
index 958eeca..73ad510 100644
--- a/chart/charts/cluster-tasks/templates/clear-cache.yaml
+++ b/chart/charts/cluster-tasks/templates/clear-cache.yaml
@@ -25,8 +25,7 @@ spec:
         export TASK=clear-cache
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
-        export VERSION=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.name}')
-        export RELEASE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.releaseSpec}')
+        export SERVING_POD_IMAGE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.status.servingPodImage}')
         envsubst < $(workspaces.job.path)/{{ .Values.jobTemplateFile }} | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
         jobStatus=$(oc get job/$TASK-$(params.drupalSite) -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo "Failed")
diff --git a/chart/charts/cluster-tasks/templates/database-backup.yaml b/chart/charts/cluster-tasks/templates/database-backup.yaml
index d9413a1..b6003d4 100644
--- a/chart/charts/cluster-tasks/templates/database-backup.yaml
+++ b/chart/charts/cluster-tasks/templates/database-backup.yaml
@@ -25,8 +25,7 @@ spec:
         export TASK=database-backup
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
-        export VERSION=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.name}')
-        export RELEASE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.releaseSpec}')
+        export SERVING_POD_IMAGE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.status.servingPodImage}')
         export ARGS="-f dbBackUp.sql"
         envsubst < $(workspaces.job.path)/{{ .Values.jobTemplateFile }} | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
diff --git a/chart/charts/cluster-tasks/templates/database-restore.yaml b/chart/charts/cluster-tasks/templates/database-restore.yaml
index 60e1865..45c44ba 100644
--- a/chart/charts/cluster-tasks/templates/database-restore.yaml
+++ b/chart/charts/cluster-tasks/templates/database-restore.yaml
@@ -25,8 +25,7 @@ spec:
         export TASK=database-restore
         export DRUPALSITE=$(params.drupalSite)
         export NAMESPACE=$(params.namespace)
-        export VERSION=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.name}')
-        export RELEASE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.spec.version.releaseSpec}')
+        export SERVING_POD_IMAGE=$(oc get -n $(params.namespace) drupalsite/$(params.drupalSite) -o=jsonpath='{.status.servingPodImage}')
         export ARGS="-f dbBackUp.sql"
         envsubst < $(workspaces.job.path)/{{ .Values.jobTemplateFile }} | oc create -n $(params.namespace) -f -
         oc wait --for=condition=complete job/$TASK-$(params.drupalSite)
-- 
GitLab


From 6a082a0667de91c111f33cc0fdd00692ebc51672 Mon Sep 17 00:00:00 2001
From: Dimitra Chatzichrysou <dimitra.chatzichrysou@cern.ch>
Date: Fri, 2 Jul 2021 08:23:26 +0200
Subject: [PATCH 12/12] Remove charts dir

---
 chart/Chart.yaml                                   | 14 --------------
 chart/{charts => }/cluster-tasks/Chart.yaml        |  0
 .../cluster-tasks/templates/clear-cache.yaml       |  0
 .../cluster-tasks/templates/database-backup.yaml   |  0
 .../cluster-tasks/templates/database-restore.yaml  |  0
 chart/{charts => }/cluster-tasks/values.yaml       |  0
 6 files changed, 14 deletions(-)
 delete mode 100644 chart/Chart.yaml
 rename chart/{charts => }/cluster-tasks/Chart.yaml (100%)
 rename chart/{charts => }/cluster-tasks/templates/clear-cache.yaml (100%)
 rename chart/{charts => }/cluster-tasks/templates/database-backup.yaml (100%)
 rename chart/{charts => }/cluster-tasks/templates/database-restore.yaml (100%)
 rename chart/{charts => }/cluster-tasks/values.yaml (100%)

diff --git a/chart/Chart.yaml b/chart/Chart.yaml
deleted file mode 100644
index e22ea97..0000000
--- a/chart/Chart.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v2
-name: drupal-operations
-home: https://gitlab.cern.ch/drupal/paas/drupal-operations
-description: A Helm chart for Deployment of the Drupal Operations
-version: 0.1.0
-icon: https://raw.githubusercontent.com/cdfoundation/artwork/main/tekton/horizontal/color/tekton-horizontal-color.png
-keywords:
-- drupal
-- tekton
-- tasks
-- operations
-maintainers:
-- name: CERN IT-CDA-WF
-  email: drupal-admins@cern.ch
\ No newline at end of file
diff --git a/chart/charts/cluster-tasks/Chart.yaml b/chart/cluster-tasks/Chart.yaml
similarity index 100%
rename from chart/charts/cluster-tasks/Chart.yaml
rename to chart/cluster-tasks/Chart.yaml
diff --git a/chart/charts/cluster-tasks/templates/clear-cache.yaml b/chart/cluster-tasks/templates/clear-cache.yaml
similarity index 100%
rename from chart/charts/cluster-tasks/templates/clear-cache.yaml
rename to chart/cluster-tasks/templates/clear-cache.yaml
diff --git a/chart/charts/cluster-tasks/templates/database-backup.yaml b/chart/cluster-tasks/templates/database-backup.yaml
similarity index 100%
rename from chart/charts/cluster-tasks/templates/database-backup.yaml
rename to chart/cluster-tasks/templates/database-backup.yaml
diff --git a/chart/charts/cluster-tasks/templates/database-restore.yaml b/chart/cluster-tasks/templates/database-restore.yaml
similarity index 100%
rename from chart/charts/cluster-tasks/templates/database-restore.yaml
rename to chart/cluster-tasks/templates/database-restore.yaml
diff --git a/chart/charts/cluster-tasks/values.yaml b/chart/cluster-tasks/values.yaml
similarity index 100%
rename from chart/charts/cluster-tasks/values.yaml
rename to chart/cluster-tasks/values.yaml
-- 
GitLab