ansible / ansible/galaxy-operator

Backup pod restarts without doing backup

Open
#83 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jinja
Stars
20
Forks
43
Avg merge
1d 16h
Merged PRs (30d)
2

Description

**Version**
quay.io/ansible/galaxy-operator:2024.02.29

**Describe the bug**
If I create an Backup CRD. the pod comes up but restarts the hole time.

**To Reproduce**
1. `kubectl apply -f backup.yml`
backup.yml:
```yml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: galaxybackup-backup-claim
namespace: galaxy
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: nfs-backup-csi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: galaxybackup-cr
namespace: galaxy
data:
galaxy_backup.yaml: |
apiVersion: galaxy.ansible.com/v1beta1
kind: GalaxyBackup
metadata:
name: galaxybackup
namespace: galaxy
spec:
backup_storage_class: nfs-backup-csi
deployment_name: galaxy
backup_pvc: galaxybackup-backup-claim
backup_pvc_namespace: galaxy

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: galaxybackup
namespace: galaxy
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: galaxybackup
namespace: galaxy
rules:
- apiGroups: ["galaxy.ansible.com"]
resources: ["galaxybackups"]
verbs: ["get", "watch", "list","create","patch","update","delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: galaxybackup
namespace: galaxy
subjects:
- kind: ServiceAccount
name: galaxybackup
roleRef:
kind: Role
name: galaxybackup
apiGroup: rbac.authorization.k8s.io

---
apiVersion: batch/v1
kind: CronJob
metadata:
name: galaxybackup
namespace: galaxy
spec:
schedule: "0 4 * * *"
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
spec:
containers:
- name: bkp
image: bitnami/kubectl:latest
imagePullPolicy: IfNotPresent
volumeMounts:
- name: galaxybackup-cr
mountPath: /tmp/galaxy_backup.yaml
subPath: galaxy_backup.yaml
command:
- /bin/sh
- -c
args:
- "kubectl apply -f /tmp/galaxy_backup.yaml && kubectl wait --for condition=BackupComplete --timeout=600s -f /tmp/galaxy_backup.yaml ; kubectl delete -f /tmp/galaxy_backup.yaml"
restartPolicy: Never
serviceAccountName: galaxybackup
volumes:
- name: galaxybackup-cr
configMap:
name: galaxybackup-cr
```
2. `kubectl create job --from=cronjob/galaxybackup -n galaxy manual-backup`

**Expected behavior**
backup-manager pod must be created, backup the galaxy, terminate

**Additional context**
Error message in operator:
```
2024-03-13T07:44:51.553313959Z stdout F --------------------------- Ansible Task StdOut -------------------------------
2024-03-13T07:44:51.553318318Z stdout F
2024-03-13T07:44:51.553321602Z stdout F TASK [common : Get the imagePullSecrets from "galaxy"] *************************
2024-03-13T07:44:51.553324551Z stdout F ESC[1;30mtask path: /opt/ansible/roles/common/tasks/main.yml:20ESC[0m
2024-03-13T07:44:51.553295876Z stderr F {"level":"info","ts":1710315891.5531833,"logger":"logging_event_handler","msg":"[playbook task start]","name":"galaxy","namespace":"galaxy","gvk":"galaxy.ansible.com/v1beta1, Kind=Galaxy","event_type":"playbook_on_task_start","job":"2962438046381893477","EventData.Name":"common : Get the imagePullSecrets from \"galaxy\""}
2024-03-13T07:44:51.553327629Z stdout F
2024-03-13T07:44:51.553349704Z stdout F -------------------------------------------------------------------------------
...skipping...
lient.py\", line 192, in __call_api\n return_data = self.deserialize(response_data, response_type)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 264, in deserialize\n return self.__deserialize(data, response_type)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 303, in __
deserialize\n return self.__deserialize_model(data, klass)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 639, in __deserialize_model\n kwargs[attr] = self.__deserialize(value, attr_type)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 303, in __deserialize\n return sel
f.__deserialize_model(data, klass)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 639, in __deserialize_model\n kwargs[attr] = self.__deserialize(value, attr_type)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 280, in __deserialize\n return [self.__deserialize(sub_data,
sub_kls)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 280, in \n return [self.__deserialize(sub_data, sub_kls)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 303, in __deserialize\n return self.__deserialize_model(data, klass)\n File \"/usr/local/lib/python3.
8/site-packages/kubernetes/client/api_client.py\", line 641, in __deserialize_model\n instance = klass(**kwargs)\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/models/v1_pod_condition.py\", line 76, in __init__\n self.type = type\n File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/models/v1_pod_condition.py\", line 219,
in type\n raise ValueError(\nValueError: Invalid value for `type` (PodReadyToStartContainers), must be one of ['ContainersReady', 'Initialized', 'PodScheduled', 'Ready']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}ESC[0m
2024-03-13T08:40:13.651663203Z stdout F
2024-03-13T08:40:13.651666505Z stdout F -------------------------------------------------------------------------------
2024-03-13T08:40:13.651611602Z stderr F {"level":"error","ts":1710319213.6514914,"logger":"logging_event_handler","msg":"","name":"galaxybackup","namespace":"galaxy","gvk":"galaxy.ansible.com/v1beta1, Kind=GalaxyBackup","event_type":"runner_on_failed","job":"775119205517794129","EventData.Task":"Create directory for backup","EventData.TaskArgs":"","EventData.F
ailedTaskPath":"/opt/ansible/roles/backup/tasks/postgres.yml:66","error":"[playbook task failed]"}
2024-03-13T08:40:13.833998397Z stderr P {"level":"error","ts":1710319213.8334985,"logger":"runner","msg":"\u001b[0;34mansible-playbook 2.9.27\u001b[0m\r\n\u001b[0;34m config file = /etc/ansible/ansible.cfg\u001b[0m\r\n\u001b[0;34m configured module search path = ['/usr/share/ansible/openshift']\u001b[0m\r\n\u001b[0;34m ansible python module location = /usr/
local/lib/python3.8/site-packages/ansible\u001b[0m\r\n\u001b[0;34m executable location = /usr/local/bin/ansible-playbook\u001b[0m\r\n\u001b[0;34m python version = 3.8.12 (default, Sep 16 2021, 10:46:05) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]\u001b[0m\r\n\u001b[0;34mUsing /etc/ansible/ansible.cfg as config file\u001b[0m\r\n\u001b[0;34mSkipping callback 'actio
nable', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'awx_display', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'counter_enabled', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'debug', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback
'dense', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'dense', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'full_skip', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'json', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'minimal',
as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'null', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'oneline', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'selective', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'skippy', as we a
lready have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'stderr', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'unixy', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'yaml', as we already have a stdout callback.\u001b[0m\n\r\nPLAYBOOK: 6e617a9cce9144fd9e8a12974374efcd *************
************************\n\u001b[0;34m1 plays in /tmp/ansible-operator/runner/galaxy.ansible.com/v1beta1/GalaxyBackup/galaxy/galaxybackup/project/6e617a9cce9144fd9e8a12974374efcd\u001b[0m\n\u001b[1;35m[WARNING]: Found variable using reserved name: no_log\u001b[0m\n\r\nPLAY [localhost] ***************************************************************\n\u001b[0;34
mMETA: ran handlers\u001b[0m\n\r\nTASK [backup : Obtain custom resource information] *****************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/main.yml:3\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"custom_resource\": {\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"kind\": \"GalaxyBackup\", \"metadata\": {\"a
nnotations\": {\"kubectl.kubernetes.io/last-applied-configuration\": \"{\\\"apiVersion\\\":\\\"galaxy.ansible.com/v1beta1\\\",\\\"kind\\\":\\\"GalaxyBackup\\\",\\\"metadata\\\":{\\\"annotations\\\":{},\\\"name\\\":\\\"galaxybackup\\\",\\\"namespace\\\":\\\"galaxy\\\"},\\\"spec\\\":{\\\"backup_pvc\\\":\\\"galaxybackup-backup-claim\\\",\\\"backup_pvc_namespace\\
\":\\\"galaxy\\\",\\\"backup_storage_class\\\":\\\"nfs-backup-csi\\\",\\\"deployment_name\\\":\\\"galaxy\\\"}}\\n\"}, \"creationTimestamp\": \"2024-03-13T08:31:16Z\", \"generation\": 1, \"managedFields\": [{\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:metadata\": {\"f:annotations\": {\".\": {}, \"f:kubectl.ku
bernetes.io/last-applied-configuration\": {}}}, \"f:spec\": {\".\": {}, \"f:backup_pvc\": {}, \"f:backup_pvc_namespace\": {}, \"f:backup_storage_class\": {}, \"f:deployment_name\": {}, \"f:no_log\": {}}}, \"manager\": \"kubectl-client-side-apply\", \"operation\": \"Update\", \"time\": \"2024-03-13T08:31:16Z\"}, {\"apiVersion\": \"galaxy.ansible.com/v1beta1\",
\"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\".\": {}, \"f:conditions\": {}}}, \"manager\": \"ansible-operator\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T08:39:21Z\"}], \"name\": \"galaxybackup\", \"namespace\": \"galaxy\", \"resourceVersion\": \"18232842\", \"uid\": \"ef364c33-9370-4542-b955-a638fdd5100c\
"}, \"spec\": {\"backup_pvc\": \"galaxybackup-backup-claim\", \"backup_pvc_namespace\": \"galaxy\", \"backup_storage_class\": \"nfs-backup-csi\", \"deployment_name\": \"galaxy\", \"no_log\": true}, \"status\": {\"conditions\": [{\"lastTransitionTime\": \"2024-03-13T08:31:33Z\", \"reason\": \"\", \"status\": \"False\", \"type\": \"Successful\"}, {\"lastTransiti
onTime\": \"2024-03-13T08:39:21Z\", \"reason\": \"Failed\", \"status\": \"False\", \"type\": \"Failure\"}, {\"lastTransitionTime\": \"2024-03-13T08:39:21Z\", \"reason\": \"Running\", \"status\": \"True\", \"type\": \"Running\"}]}}, \"custom_resource_status\": {\"conditions\": [{\"lastTransitionTime\": \"2024-03-13T08:31:33Z\", \"reason\": \"\", \"status\": \"F
alse\", \"type\": \"Successful\"}, {\"lastTransitionTime\": \"2024-03-13T08:39:21Z\", \"reason\": \"Failed\", \"status\": \"False\", \"type\": \"Failure\"}, {\"lastTransitionTime\": \"2024-03-13T08:39:21Z\", \"reason\": \"Running\", \"status\": \"True\", \"type\": \"Running\"}]}}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : include_tasks] ****************
**********************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/main.yml:9\u001b[0m\n\u001b[0;34mstatically imported: /opt/ansible/roles/backup/tasks/error_handling.yml\u001b[0m\n\u001b[0;36mincluded: /opt/ansible/roles/backup/tasks/init.yml for localhost\u001b[0m\n\r\nTASK [backup : Delete any existing management pod] ************
*****************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:3\u001b[0m\n\u001b[0;33mchanged: [localhost] => {\"changed\": true, \"duration\": 35, \"method\": \"delete\", \"result\": {\"apiVersion\": \"v1\", \"kind\": \"Pod\", \"metadata\": {\"creationTimestamp\": \"2024-03-13T08:39:13Z\", \"deletionGracePeriodSeconds\": 30, \"deletionT
imestamp\": \"2024-03-13T08:39:54Z\", \"labels\": {\"app.kubernetes.io/component\": \"backup-manager\", \"app.kubernetes.io/instance\": \"galaxy-backup-manager-galaxybackup\", \"app.kubernetes.io/managed-by\": \"galaxy-operator\", \"app.kubernetes.io/name\": \"galaxy-backup-manager\", \"app.kubernetes.io/part-of\": \"galaxy\"}, \"managedFields\": [{\"apiVersio
n\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:metadata\": {\"f:labels\": {\".\": {}, \"f:app.kubernetes.io/component\": {}, \"f:app.kubernetes.io/instance\": {}, \"f:app.kubernetes.io/managed-by\": {}, \"f:app.kubernetes.io/name\": {}, \"f:app.kubernetes.io/part-of\": {}}, \"f:ownerReferences\": {\".\": {}, \"k:{\\\"uid\\\":\\\"ef364c33-9370-45
42-b955-a638fdd5100c\\\"}\": {}}}, \"f:spec\": {\"f:containers\": {\"k:{\\\"name\\\":\\\"galaxybackup-backup-manager\\\"}\": {\".\": {}, \"f:command\": {}, \"f:image\": {}, \"f:imagePullPolicy\": {}, \"f:name\": {}, \"f:resources\": {}, \"f:terminationMessagePath\": {}, \"f:terminationMessagePolicy\": {}, \"f:volumeMounts\": {\".\": {}, \"k:{\\\"mountPath\\\":
\\\"/backups\\\"}\": {\".\": {}, \"f:mountPath\": {}, \"f:name\": {}}, \"k:{\\\"mountPath\\\":\\\"/var/lib/pulp\\\"}\": {\".\": {}, \"f:mountPath\": {}, \"f:name\": {}}}}}, \"f:dnsPolicy\": {}, \"f:enableServiceLinks\": {}, \"f:restartPolicy\": {}, \"f:schedulerName\": {}, \"f:securityContext\": {}, \"f:terminationGracePeriodSeconds\": {}, \"f:volumes\": {\".\
": {}, \"k:{\\\"name\\\":\\\"file-storage\\\"}\": {\".\": {}, \"f:name\": {}, \"f:persistentVolumeClaim\": {\".\": {}, \"f:claimName\": {}}}, \"k:{\\\"name\\\":\\\"galaxybackup-backup\\\"}\": {\".\": {}, \"f:name\": {}, \"f:persistentVolumeClaim\": {\".\": {}, \"f:claimName\": {}}}}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"
2024-03-13T08:39:13Z\"}, {\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\"f:conditions\": {\"k:{\\\"type\\\":\\\"ContainersReady\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}, \"k:{\\\"type\\\":\\\"Initialized\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:la
stTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}, \"k:{\\\"type\\\":\\\"PodReadyToStartContainers\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}, \"k:{\\\"type\\\":\\\"Ready\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}}, \"f:co
ntainerStatuses\": {}, \"f:hostIP\": {}, \"f:hostIPs\": {}, \"f:phase\": {}, \"f:podIP\": {}, \"f:podIPs\": {\".\": {}, \"k:{\\\"ip\\\":\\\"10.255.1.120\\\"}\": {\".\": {}, \"f:ip\": {}}}, \"f:startTime\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T08:39:15Z\"}], \"name\": \"galaxybackup-backup-ma
nager\", \"namespace\": \"galaxy\", \"ownerReferences\": [{\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"kind\": \"GalaxyBackup\", \"name\": \"galaxybackup\", \"uid\": \"ef364c33-9370-4542-b955-a638fdd5100c\"}], \"resourceVersion\": \"18232862\", \"uid\": \"89141d01-df6f-4393-9d77-048715939a29\"}, \"spec\": {\"containers\": [{\"command\": [\"sleep\", \"inf
inity\"], \"image\": \"postgres:13\", \"imagePullPolicy\": \"Always\", \"name\": \"galaxybackup-backup-manager\", \"resources\": {}, \"terminationMessagePath\": \"/dev/termination-log\", \"terminationMessagePolicy\": \"File\", \"volumeMounts\": [{\"mountPath\": \"/backups\", \"name\": \"galaxybackup-backup\"}, {\"mountPath\": \"/var/lib/pulp\", \"name\": \"fil
e-storage\"}, {\"mountPath\": \"/var/run/secrets/kubernetes.io/serviceaccount\", \"name\": \"kube-api-access-8ggjl\", \"readOnly\": true}]}], \"dnsPolicy\": \"ClusterFirst\", \"enableServiceLinks\": true, \"nodeName\": \"stlconfmn400165\", \"preemptionPolicy\": \"PreemptLowerPriority\", \"priority\": 0, \"restartPolicy\": \"Never\", \"schedulerName\": \"defaul
t-scheduler\", \"securityContext\": {}, \"serviceAccount\": \"default\", \"serviceAccountName\": \"default\", \"terminationGracePeriodSeconds\": 30, \"tolerations\": [{\"effect\": \"NoExecute\", \"key\": \"node.kubernetes.io/not-ready\", \"operator\": \"Exists\", \"tolerationSeconds\": 300}, {\"effect\": \"NoExecute\", \"key\": \"node.kubernetes.io/unreachable
\", \"operator\": \"Exists\", \"tolerationSeconds\": 300}], \"volumes\": [{\"name\": \"galaxybackup-backup\", \"persistentVolumeClaim\": {\"claimName\": \"galaxybackup-backup-claim\"}}, {\"name\": \"file-storage\", \"persistentVolumeClaim\": {\"claimName\": \"galaxy-file-storage\"}}, {\"name\": \"kube-api-access-8ggjl\", \"projected\": {\"defaultMode\": 420, \
"sources\": [{\"serviceAccountToken\": {\"expirationSeconds\": 3607, \"path\": \"token\"}}, {\"configMap\": {\"items\": [{\"key\": \"ca.crt\", \"path\": \"ca.crt\"}], \"name\": \"kube-root-ca.crt\"}}, {\"downwardAPI\": {\"items\": [{\"fieldRef\": {\"apiVersion\": \"v1\", \"fieldPath\": \"metadata.namespace\"}, \"path\": \"namespace\"}]}}]}}]}, \"status\": {\"c
onditions\": [{\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:39:15Z\", \"status\": \"True\", \"type\": \"PodReadyToStartContainers\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:39:13Z\", \"status\": \"True\", \"type\": \"Initialized\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:39:15Z\", \"stat
us\": \"True\", \"type\": \"Ready\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:39:15Z\", \"status\": \"True\", \"type\": \"ContainersReady\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:39:13Z\", \"status\": \"True\", \"type\": \"PodScheduled\"}], \"containerStatuses\": [{\"containerID\": \"containerd://85b6450e2
fab02c797e9b9c8675de1988a2e1b4d0a75e2791ff0d5d124fe767d\", \"image\": \"docker.io/library/postgres:13\", \"imageID\": \"docker.io/library/postgres@sha256:337b6fff599687159acf150b7f32bd62b761608a39f749ac2100efacc9cd986c\", \"lastState\": {}, \"name\": \"galaxybackup-backup-manager\", \"ready\": true, \"restartCount\": 0, \"started\": true, \"state\": {\"running
\": {\"startedAt\": \"2024-03-13T08:39:15Z\"}}}], \"hostIP\": \"10.247.0.212\", \"hostIPs\": [{\"ip\": \"10.247.0.212\"}], \"phase\": \"Running\", \"podIP\": \"10.255.1.120\", \"podIPs\": [{\"ip\": \"10.255.1.120\"}], \"qosClass\": \"BestEffort\", \"startTime\": \"2024-03-13T08:39:13Z\"}}}\u001b[0m\n\r\nTASK [backup : Check provided PVC exists] ***************
***********************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:13\u001b[0m\n\u001b[0;32mok: [localhost] => {\"api_found\": true, \"changed\": false, \"resources\": [{\"apiVersion\": \"v1\", \"kind\": \"PersistentVolumeClaim\", \"metadata\": {\"annotations\": {\"pv.kubernetes.io/bind-completed\": \"yes\", \"pv.kubernetes.io/bound-by-
controller\": \"yes\", \"volume.beta.kubernetes.io/storage-provisioner\": \"nfs.csi.k8s.io\", \"volume.kubernetes.io/storage-provisioner\": \"nfs.csi.k8s.io\"}, \"creationTimestamp\": \"2024-03-13T08:24:07Z\", \"finalizers\": [\"kubernetes.io/pvc-protection\"], \"managedFields\": [{\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:spec\"
: {\"f:accessModes\": {}, \"f:resources\": {\"f:requests\": {\".\": {}, \"f:storage\": {}}}, \"f:storageClassName\": {}, \"f:volumeMode\": {}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"2024-03-13T08:24:07Z\"}, {\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:metadata\": {\"f:annotations\": {\".\": {},
\"f:pv.kubernetes.io/bind-completed\": {}, \"f:pv.kubernetes.io/bound-by-controller\": {}, \"f:volume.beta.kubernetes.io/storage-provisioner\": {}, \"f:volume.kubernetes.io/storage-provisioner\": {}}}, \"f:spec\": {\"f:volumeName\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"time\": \"2024-03-13T08:24:07Z\"}, {\"apiVersion\": \"v1\", \"fieldsTyp
e\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\"f:accessModes\": {}, \"f:capacity\": {\".\": {}, \"f:storage\": {}}, \"f:phase\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T08:24:07Z\"}], \"name\": \"galaxybackup-backup-claim\", \"namespace\": \"galaxy\", \"resourceVersion\": \"18226813\", \"ui
d\": \"cb8f5189-e445-4870-b343-4fc7fc37ad28\"}, \"spec\": {\"accessModes\": [\"ReadWriteMany\"], \"resources\": {\"requests\": {\"storage\": \"10Gi\"}}, \"storageClassName\": \"nfs-backup-csi\", \"volumeMode\": \"Filesystem\", \"volumeName\": \"pvc-cb8f5189-e445-4870-b343-4fc7fc37ad28\"}, \"status\": {\"accessModes\": [\"ReadWriteMany\"], \"capacity\": {\"stor
age\": \"10Gi\"}, \"phase\": \"Bound\"}}]}\u001b[0m\n\r\nTASK [backup : Set error message] **********************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:24\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Set ap
iVersion and kind variables] ******************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/error_handling.yml:3\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Determine the timestamp] ****************************************\r\n\u001b
[1;30mtask path: /opt/ansible/roles/backup/tasks/error_handling.yml:8\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Emit ocp event with error] **************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/error_handling.yml:1
2\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Fail early if pvc is defined but does not exist] ****************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:31\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_r
eason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Set default pvc name] ****************************************
2024-03-13T08:40:13.834059236Z stderr P ***\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:39\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"_default_backup_pvc\": \"galaxy-backup-claim\"}, \"changed\": false}\u001b[0m\n\r\nTASK [Set PVC to use for backup] ***********************************************\r\n\u001b[1;30mtask
path: /opt/ansible/roles/backup/tasks/init.yml:44\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"backup_claim\": \"galaxybackup-backup-claim\"}, \"changed\": false}\u001b[0m\n\r\nTASK [Create persistent volume claim for backup] *******************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:48\u001b[0m\n\u001
b[0;36mskipping: [localhost] => (item=backup) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"backup\", \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [Remove ownerReferences from backup-claim pvc to avoid garbage collection] ***\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:57\u001b[0m\n\u001b[0
;32mok: [localhost] => {\"changed\": false, \"method\": \"patch\", \"result\": {\"apiVersion\": \"v1\", \"kind\": \"PersistentVolumeClaim\", \"metadata\": {\"annotations\": {\"pv.kubernetes.io/bind-completed\": \"yes\", \"pv.kubernetes.io/bound-by-controller\": \"yes\", \"volume.beta.kubernetes.io/storage-provisioner\": \"nfs.csi.k8s.io\", \"volume.kubernetes.
io/storage-provisioner\": \"nfs.csi.k8s.io\"}, \"creationTimestamp\": \"2024-03-13T08:24:07Z\", \"finalizers\": [\"kubernetes.io/pvc-protection\"], \"managedFields\": [{\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:spec\": {\"f:accessModes\": {}, \"f:resources\": {\"f:requests\": {\".\": {}, \"f:storage\": {}}}, \"f:storageClassName\
": {}, \"f:volumeMode\": {}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"2024-03-13T08:24:07Z\"}, {\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:metadata\": {\"f:annotations\": {\".\": {}, \"f:pv.kubernetes.io/bind-completed\": {}, \"f:pv.kubernetes.io/bound-by-controller\": {}, \"f:volume.beta.kubern
etes.io/storage-provisioner\": {}, \"f:volume.kubernetes.io/storage-provisioner\": {}}}, \"f:spec\": {\"f:volumeName\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"time\": \"2024-03-13T08:24:07Z\"}, {\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\"f:accessModes\": {}, \"f:capacity\": {\".\": {}, \"f:storage\":
{}}, \"f:phase\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T08:24:07Z\"}], \"name\": \"galaxybackup-backup-claim\", \"namespace\": \"galaxy\", \"resourceVersion\": \"18226813\", \"uid\": \"cb8f5189-e445-4870-b343-4fc7fc37ad28\"}, \"spec\": {\"accessModes\": [\"ReadWriteMany\"], \"resources\": {\
"requests\": {\"storage\": \"10Gi\"}}, \"storageClassName\": \"nfs-backup-csi\", \"volumeMode\": \"Filesystem\", \"volumeName\": \"pvc-cb8f5189-e445-4870-b343-4fc7fc37ad28\"}, \"status\": {\"accessModes\": [\"ReadWriteMany\"], \"capacity\": {\"storage\": \"10Gi\"}, \"phase\": \"Bound\"}}}\u001b[0m\n\r\nTASK [backup : Get Galaxy custom resource object] ********
**********************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:67\u001b[0m\n\u001b[0;32mok: [localhost] => {\"api_found\": true, \"changed\": false, \"resources\": [{\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"kind\": \"Galaxy\", \"metadata\": {\"creationTimestamp\": \"2024-03-13T07:44:47Z\", \"generation\": 1, \"managedFields\
": [{\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:spec\": {\".\": {}, \"f:api\": {\".\": {}, \"f:log_level\": {}, \"f:replicas\": {}}, \"f:content\": {\".\": {}, \"f:log_level\": {}, \"f:replicas\": {}}, \"f:file_storage_access_mode\": {}, \"f:file_storage_size\": {}, \"f:force_drop_db\": {}, \"f:gunicorn_api
_workers\": {}, \"f:gunicorn_content_workers\": {}, \"f:gunicorn_timeout\": {}, \"f:haproxy_timeout\": {}, \"f:hostname\": {}, \"f:image_pull_policy\": {}, \"f:ingress_type\": {}, \"f:loadbalancer_port\": {}, \"f:loadbalancer_protocol\": {}, \"f:nginx_client_max_body_size\": {}, \"f:nginx_proxy_connect_timeout\": {}, \"f:nginx_proxy_read_timeout\": {}, \"f:ngi
nx_proxy_send_timeout\": {}, \"f:no_log\": {}, \"f:postgres_configuration_secret\": {}, \"f:route_tls_termination_mechanism\": {}, \"f:storage_type\": {}, \"f:web\": {\".\": {}, \"f:replicas\": {}}, \"f:worker\": {\".\": {}, \"f:replicas\": {}}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"2024-03-13T07:44:47Z\"}, {\"apiVersion\
": \"galaxy.ansible.com/v1beta1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\".\": {}, \"f:adminPasswordSecret\": {}, \"f:conditions\": {}, \"f:containerTokenSecret\": {}, \"f:databaseConfigurationSecret\": {}, \"f:dbFieldsEncryptionSecret\": {}, \"f:deployedImage\": {}, \"f:storagePersistentVolumeClaim\": {}, \"f:storageType\": {}}}, \"mana
ger\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T07:50:02Z\"}], \"name\": \"galaxy\", \"namespace\": \"galaxy\", \"resourceVersion\": \"18213358\", \"uid\": \"08f3dec1-ea8a-41ec-b926-1edb975abb82\"}, \"spec\": {\"api\": {\"log_level\": \"INFO\", \"replicas\": 2}, \"content\": {\"log_level\": \"INFO\",
\"replicas\": 2}, \"file_storage_access_mode\": \"ReadWriteOnce\", \"file_storage_size\": \"8Gi\", \"force_drop_db\": false, \"gunicorn_api_workers\": 2, \"gunicorn_content_workers\": 2, \"gunicorn_timeout\": 90, \"haproxy_timeout\": \"180s\", \"hostname\": \"galaxy-kube.shared-services.non-prod.azr-non-prod.swm.de\", \"image_pull_policy\": \"IfNotPresent\",
\"ingress_type\": \"ingress\", \"loadbalancer_port\": 80, \"loadbalancer_protocol\": \"http\", \"nginx_client_max_body_size\": \"10m\", \"nginx_proxy_connect_timeout\": \"120s\", \"nginx_proxy_read_timeout\": \"120s\", \"nginx_proxy_send_timeout\": \"120s\", \"no_log\": false, \"postgres_configuration_secret\": \"galaxy-postgres-configuration\", \"route_tls_te
rmination_mechanism\": \"Edge\", \"storage_type\": \"File\", \"web\": {\"replicas\": 2}, \"worker\": {\"replicas\": 2}}, \"status\": {\"adminPasswordSecret\": \"galaxy-admin-password\", \"conditions\": [{\"lastTransitionTime\": \"2024-03-13T07:49:19+00:00\", \"message\": \"All Postgres tasks ran successfully\", \"reason\": \"DatabaseTasksFinished\", \"status\"
: \"True\", \"type\": \"Database-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:51+00:00\", \"message\": \"All API tasks ran successfully\", \"reason\": \"ApiTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-API-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:50:02+00:00\", \"message\": \"All tasks ran successfully\", \"reason\": \"OperatorFi
nishedExecution\", \"status\": \"True\", \"type\": \"Galaxy-Operator-Finished-Execution\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:25+00:00\", \"message\": \"All Galaxy-web tasks ran successfully\", \"reason\": \"WebTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Web-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:32+00:00\", \"message\":
\"All Galaxy-content tasks ran successfully\", \"reason\": \"ContentTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Content-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:37+00:00\", \"message\": \"All Galaxy-worker tasks ran successfully\", \"reason\": \"WorkerTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Worker-Ready\"}, {\"lastT
ransitionTime\": \"2024-03-13T07:48:17+00:00\", \"message\": \"Checking routes\", \"reason\": \"CheckingRoutes\", \"status\": \"True\", \"type\": \"Galaxy-Routes-Ready\"}], \"containerTokenSecret\": \"galaxy-container-auth\", \"databaseConfigurationSecret\": \"galaxy-postgres-configuration\", \"dbFieldsEncryptionSecret\": \"galaxy-db-fields-encryption\", \"dep
loyedImage\": \"quay.io/ansible/galaxy-ng:latest\", \"storagePersistentVolumeClaim\": \"galaxy-file-storage\", \"storageType\": \"File\"}}]}\u001b[0m\n\r\nTASK [backup : Set Galaxy object] **********************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:75\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_fact
s\": {\"_galaxy\": {\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"kind\": \"Galaxy\", \"metadata\": {\"creationTimestamp\": \"2024-03-13T07:44:47Z\", \"generation\": 1, \"managedFields\": [{\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:spec\": {\".\": {}, \"f:api\": {\".\": {}, \"f:log_level\": {}, \"f:rep
licas\": {}}, \"f:content\": {\".\": {}, \"f:log_level\": {}, \"f:replicas\": {}}, \"f:file_storage_access_mode\": {}, \"f:file_storage_size\": {}, \"f:force_drop_db\": {}, \"f:gunicorn_api_workers\": {}, \"f:gunicorn_content_workers\": {}, \"f:gunicorn_timeout\": {}, \"f:haproxy_timeout\": {}, \"f:hostname\": {}, \"f:image_pull_policy\": {}, \"f:ingress_type\
": {}, \"f:loadbalancer_port\": {}, \"f:loadbalancer_protocol\": {}, \"f:nginx_client_max_body_size\": {}, \"f:nginx_proxy_connect_timeout\": {}, \"f:nginx_proxy_read_timeout\": {}, \"f:nginx_proxy_send_timeout\": {}, \"f:no_log\": {}, \"f:postgres_configuration_secret\": {}, \"f:route_tls_termination_mechanism\": {}, \"f:storage_type\": {}, \"f:web\": {\".\":
{}, \"f:replicas\": {}}, \"f:worker\": {\".\": {}, \"f:replicas\": {}}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"2024-03-13T07:44:47Z\"}, {\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\".\": {}, \"f:adminPasswordSecret\": {}, \"f:conditions\": {}, \"f:containerT
okenSecret\": {}, \"f:databaseConfigurationSecret\": {}, \"f:dbFieldsEncryptionSecret\": {}, \"f:deployedImage\": {}, \"f:storagePersistentVolumeClaim\": {}, \"f:storageType\": {}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T07:50:02Z\"}], \"name\": \"galaxy\", \"namespace\": \"galaxy\",
\"resourceVersion\": \"18213358\", \"uid\": \"08f3dec1-ea8a-41ec-b926-1edb975abb82\"}, \"spec\": {\"api\": {\"log_level\": \"INFO\", \"replicas\": 2}, \"content\": {\"log_level\": \"INFO\", \"replicas\": 2}, \"file_storage_access_mode\": \"ReadWriteOnce\", \"file_storage_size\": \"8Gi\", \"force_drop_db\": false, \"gunicorn_api_workers\": 2, \"gunicorn_content
_workers\": 2, \"gunicorn_timeout\": 90, \"haproxy_timeout\": \"180s\", \"hostname\": \"galaxy-kube.shared-services.non-prod.azr-non-prod.swm.de\", \"image_pull_policy\": \"IfNotPresent\", \"ingress_type\": \"ingress\", \"loadbalancer_port\": 80, \"loadbalancer_protocol\": \"http\", \"nginx_client_max_body_size\": \"10m\", \"nginx_proxy_connect_timeout\": \"12
0s\", \"nginx_proxy_read_timeout\": \"120s\", \"nginx_proxy_send_timeout\": \"120s\", \"no_log\": false, \"postgres_configuration_secret\": \"galaxy-postgres-configuration\", \"route_tls_termination_mechanism\": \"Edge\", \"storage_type\": \"File\", \"web\": {\"replicas\": 2}, \"worker\": {\"replicas\": 2}}, \"status\": {\"adminPasswordSecret\": \"galaxy-admin
-password\", \"conditions\": [{\"lastTransitionTime\": \"2024-03-13T07:49:19+00:00\", \"message\": \"All Postgres tasks ran successfully\", \"reason\": \"DatabaseTasksFinished\", \"status\": \"True\", \"type\": \"Database-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:51+00:00\", \"message\": \"All API tasks ran successfully\", \"reason\": \"ApiTasksFin
ished\", \"status\": \"True\", \"type\": \"Galaxy-API-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:50:02+00:00\", \"message\": \"All tasks ran successfully\", \"reason\": \"OperatorFinishedExecution\", \"status\": \"True\", \"type\": \"Galaxy-Operator-Finished-Execution\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:25+00:00\", \"message\": \"All Galaxy
-web tasks ran successfully\", \"reason\": \"WebTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Web-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:32+00:00\", \"message\": \"All Galaxy-content tasks ran successfully\", \"reason\": \"ContentTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Content-Ready\"}, {\"lastTransitionTime\": \"20
24-03-13T07:49:37+00:00\", \"message\": \"All Galaxy-worker tasks ran successfully\", \"reason\": \"WorkerTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Worker-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:48:17+00:00\", \"message\": \"Checking routes\", \"reason\": \"CheckingRoutes\", \"status\": \"True\", \"type\": \"Galaxy-Routes-Ready\"}],
\"containerTokenSecret\": \"galaxy-container-auth\", \"databaseConfigurationSecret\": \"galaxy-postgres-configuration\", \"dbFieldsEncryptionSecret\": \"galaxy-db-fields-encryption\", \"deployedImage\": \"quay.io/ansible/galaxy-ng:latest\", \"storagePersistentVolumeClaim\": \"galaxy-file-storage\", \"storageType\": \"File\"}}}, \"changed\": false}\u001b[0m\n\r
\nTASK [backup : Set apiVersion] *************************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:79\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"api_version\": \"galaxy.ansible.com/v1beta1\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set user specified spec] ***********************
*****************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:83\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"cr_spec\": {\"api\": {\"log_level\": \"INFO\", \"replicas\": 2}, \"content\": {\"log_level\": \"INFO\", \"replicas\": 2}, \"file_storage_access_mode\": \"ReadWriteOnce\", \"file_storage_size\": \"8Gi\", \"force
_drop_db\": false, \"gunicorn_api_workers\": 2, \"gunicorn_content_workers\": 2, \"gunicorn_timeout\": 90, \"haproxy_timeout\": \"180s\", \"hostname\": \"galaxy-kube.shared-services.non-prod.azr-non-prod.swm.de\", \"image_pull_policy\": \"IfNotPresent\", \"ingress_type\": \"ingress\", \"loadbalancer_port\": 80, \"loadbalancer_protocol\": \"http\", \"nginx_clie
nt_max_body_size\": \"10m\", \"nginx_proxy_connect_timeout\": \"120s\", \"nginx_proxy_read_timeout\": \"120s\", \"nginx_proxy_send_timeout\": \"120s\", \"no_log\": false, \"postgres_configuration_secret\": \"galaxy-postgres-configuration\", \"route_tls_termination_mechanism\": \"Edge\", \"storage_type\": \"File\", \"web\": {\"replicas\": 2}, \"worker\": {\"rep
licas\": 2}}}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy status] **********************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:87\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"status\": {\"adminPasswordSecret\": \"galaxy-admin-password\", \"conditions\": [{\"lastTransitionT
ime\": \"2024-03-13T07:49:19+00:00\", \"message\": \"All Postgres tasks ran successfully\", \"reason\": \"DatabaseTasksFinished\", \"status\": \"True\", \"type\": \"Database-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:51+00:00\", \"message\": \"All API tasks ran successfully\", \"reason\": \"ApiTasksFinished\", \"status\": \"True\", \"type\": \"Galax
y-API-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:50:02+00:00\", \"message\": \"All tasks ran successfully\", \"reason\": \"OperatorFinishedExecution\", \"status\": \"True\", \"type\": \"Galaxy-Operator-Finished-Execution\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:25+00:00\", \"message\": \"All Galaxy-web tasks ran successfully\", \"reason\": \"Web
TasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Web-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:32+00:00\", \"message\": \"All Galaxy-content tasks ran successfully\", \"reason\": \"ContentTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Content-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:49:37+00:00\", \"message\": \"All Ga
laxy-worker tasks ran successfully\", \"reason\": \"WorkerTasksFinished\", \"status\": \"True\", \"type\": \"Galaxy-Worker-Ready\"}, {\"lastTransitionTime\": \"2024-03-13T07:48:17+00:00\", \"message\": \"Checking routes\", \"reason\": \"CheckingRoutes\", \"status\": \"True\", \"type\": \"Galaxy-Routes-Ready\"}], \"containerTokenSecret\": \"galaxy-container-aut
h\", \"databaseConfigurationSecret\": \"galaxy-postgres-configuration\", \"dbFieldsEncryptionSecret\": \"galaxy-db-fields-encryption\"
2024-03-13T08:40:13.834076685Z stderr P , \"deployedImage\": \"quay.io/ansible/galaxy-ng:latest\", \"storagePersistentVolumeClaim\": \"galaxy-file-storage\", \"storageType\": \"File\"}}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy admin secret if found] *******************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/in
it.yml:91\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"admin_password_secret\": \"galaxy-admin-password\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy database configuration secret if found] **************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:98\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansibl
e_facts\": {\"postgres_configuration_secret\": \"galaxy-postgres-configuration\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy storage type if found] *******************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:105\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"storage_type\": \"File\"}, \"
changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy file storage claim if found] *************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:112\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"storage_claim\": \"galaxy-file-storage\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy object stor
age secret if found] **********************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:119\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Set DB fields encryption secret if found] ***********************\r\n\u001b[1;30mtask path: /opt/an
sible/roles/backup/tasks/init.yml:126\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"db_fields_encryption_secret\": \"galaxy-db-fields-encryption\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set galaxy signing secret if found] *****************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:133\u001b[0m\
n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Set container token secret if found] ****************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:140\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"container_token_secret
\": \"galaxy-container-auth\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set SSO secret if found] ****************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:147\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [backu
p : Get PVC information] ********************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:154\u001b[0m\n\u001b[0;32mok: [localhost] => {\"api_found\": true, \"changed\": false, \"resources\": [{\"apiVersion\": \"v1\", \"kind\": \"PersistentVolumeClaim\", \"metadata\": {\"annotations\": {\"pv.kubernetes.io/bind-com
pleted\": \"yes\", \"pv.kubernetes.io/bound-by-controller\": \"yes\", \"volume.beta.kubernetes.io/storage-provisioner\": \"nfs.csi.k8s.io\", \"volume.kubernetes.io/storage-provisioner\": \"nfs.csi.k8s.io\"}, \"creationTimestamp\": \"2024-03-13T07:45:17Z\", \"finalizers\": [\"kubernetes.io/pvc-protection\"], \"labels\": {\"app.kubernetes.io/component\": \"stora
ge\", \"app.kubernetes.io/instance\": \"galaxy-storage-galaxy\", \"app.kubernetes.io/managed-by\": \"galaxy-operator\", \"app.kubernetes.io/name\": \"galaxy-storage\", \"app.kubernetes.io/part-of\": \"galaxy\"}, \"managedFields\": [{\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:metadata\": {\"f:labels\": {\".\": {}, \"f:app.kubernete
s.io/component\": {}, \"f:app.kubernetes.io/instance\": {}, \"f:app.kubernetes.io/managed-by\": {}, \"f:app.kubernetes.io/name\": {}, \"f:app.kubernetes.io/part-of\": {}}}, \"f:spec\": {\"f:accessModes\": {}, \"f:resources\": {\"f:requests\": {\".\": {}, \"f:storage\": {}}}, \"f:volumeMode\": {}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\",
\"time\": \"2024-03-13T07:45:17Z\"}, {\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:metadata\": {\"f:annotations\": {\".\": {}, \"f:pv.kubernetes.io/bind-completed\": {}, \"f:pv.kubernetes.io/bound-by-controller\": {}, \"f:volume.beta.kubernetes.io/storage-provisioner\": {}, \"f:volume.kubernetes.io/storage-provisioner\": {}}}, \"f:
spec\": {\"f:volumeName\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"time\": \"2024-03-13T07:45:17Z\"}, {\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\"f:accessModes\": {}, \"f:capacity\": {\".\": {}, \"f:storage\": {}}, \"f:phase\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"subresource\": \"
status\", \"time\": \"2024-03-13T07:45:17Z\"}], \"name\": \"galaxy-file-storage\", \"namespace\": \"galaxy\", \"resourceVersion\": \"18211268\", \"uid\": \"18a866a1-8115-4a4f-a677-d7eca335f992\"}, \"spec\": {\"accessModes\": [\"ReadWriteOnce\"], \"resources\": {\"requests\": {\"storage\": \"8Gi\"}}, \"storageClassName\": \"nfs-csi\", \"volumeMode\": \"Filesyst
em\", \"volumeName\": \"pvc-18a866a1-8115-4a4f-a677-d7eca335f992\"}, \"status\": {\"accessModes\": [\"ReadWriteOnce\"], \"capacity\": {\"storage\": \"8Gi\"}, \"phase\": \"Bound\"}}]}\u001b[0m\n\r\nTASK [backup : Set storage claim access mode] **********************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:162\u001b[0m\n\u0
01b[0;32mok: [localhost] => {\"ansible_facts\": {\"pvc_access_mode\": \"ReadWriteOnce\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set user provided postgres image] *******************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:171\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \
"Conditional result was False\"}\u001b[0m\n\r\nTASK [backup : Set Postgres image URL] *****************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:177\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"_postgres_image\": \"postgres:13\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Create manage
ment pod from templated deployment config] *********\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/init.yml:181\u001b[0m\n\u001b[0;33mchanged: [localhost] => {\"changed\": true, \"duration\": 5, \"method\": \"create\", \"result\": {\"apiVersion\": \"v1\", \"kind\": \"Pod\", \"metadata\": {\"creationTimestamp\": \"2024-03-13T08:40:05Z\", \"labels\":
{\"app.kubernetes.io/component\": \"backup-manager\", \"app.kubernetes.io/instance\": \"galaxy-backup-manager-galaxybackup\", \"app.kubernetes.io/managed-by\": \"galaxy-operator\", \"app.kubernetes.io/name\": \"galaxy-backup-manager\", \"app.kubernetes.io/part-of\": \"galaxy\"}, \"managedFields\": [{\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fiel
dsV1\": {\"f:metadata\": {\"f:labels\": {\".\": {}, \"f:app.kubernetes.io/component\": {}, \"f:app.kubernetes.io/instance\": {}, \"f:app.kubernetes.io/managed-by\": {}, \"f:app.kubernetes.io/name\": {}, \"f:app.kubernetes.io/part-of\": {}}, \"f:ownerReferences\": {\".\": {}, \"k:{\\\"uid\\\":\\\"ef364c33-9370-4542-b955-a638fdd5100c\\\"}\": {}}}, \"f:spec\": {\
"f:containers\": {\"k:{\\\"name\\\":\\\"galaxybackup-backup-manager\\\"}\": {\".\": {}, \"f:command\": {}, \"f:image\": {}, \"f:imagePullPolicy\": {}, \"f:name\": {}, \"f:resources\": {}, \"f:terminationMessagePath\": {}, \"f:terminationMessagePolicy\": {}, \"f:volumeMounts\": {\".\": {}, \"k:{\\\"mountPath\\\":\\\"/backups\\\"}\": {\".\": {}, \"f:mountPath\":
{}, \"f:name\": {}}, \"k:{\\\"mountPath\\\":\\\"/var/lib/pulp\\\"}\": {\".\": {}, \"f:mountPath\": {}, \"f:name\": {}}}}}, \"f:dnsPolicy\": {}, \"f:enableServiceLinks\": {}, \"f:restartPolicy\": {}, \"f:schedulerName\": {}, \"f:securityContext\": {}, \"f:terminationGracePeriodSeconds\": {}, \"f:volumes\": {\".\": {}, \"k:{\\\"name\\\":\\\"file-storage\\\"}\":
{\".\": {}, \"f:name\": {}, \"f:persistentVolumeClaim\": {\".\": {}, \"f:claimName\": {}}}, \"k:{\\\"name\\\":\\\"galaxybackup-backup\\\"}\": {\".\": {}, \"f:name\": {}, \"f:persistentVolumeClaim\": {\".\": {}, \"f:claimName\": {}}}}}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"2024-03-13T08:40:05Z\"}, {\"apiVersion\": \"v1\",
\"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:status\": {\"f:conditions\": {\"k:{\\\"type\\\":\\\"ContainersReady\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}, \"k:{\\\"type\\\":\\\"Initialized\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:typ
e\": {}}, \"k:{\\\"type\\\":\\\"PodReadyToStartContainers\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}, \"k:{\\\"type\\\":\\\"Ready\\\"}\": {\".\": {}, \"f:lastProbeTime\": {}, \"f:lastTransitionTime\": {}, \"f:status\": {}, \"f:type\": {}}}, \"f:containerStatuses\": {}, \"f:hostIP\": {}, \"f:host
IPs\": {}, \"f:phase\": {}, \"f:podIP\": {}, \"f:podIPs\": {\".\": {}, \"k:{\\\"ip\\\":\\\"10.255.1.121\\\"}\": {\".\": {}, \"f:ip\": {}}}, \"f:startTime\": {}}}, \"manager\": \"k3s\", \"operation\": \"Update\", \"subresource\": \"status\", \"time\": \"2024-03-13T08:40:07Z\"}], \"name\": \"galaxybackup-backup-manager\", \"namespace\": \"galaxy\", \"ownerRefere
nces\": [{\"apiVersion\": \"galaxy.ansible.com/v1beta1\", \"kind\": \"GalaxyBackup\", \"name\": \"galaxybackup\", \"uid\": \"ef364c33-9370-4542-b955-a638fdd5100c\"}], \"resourceVersion\": \"18233143\", \"uid\": \"34ddd1d6-b183-4520-af98-5a86f37c9b7e\"}, \"spec\": {\"containers\": [{\"command\": [\"sleep\", \"infinity\"], \"image\": \"postgres:13\", \"imagePull
Policy\": \"Always\", \"name\": \"galaxybackup-backup-manager\", \"resources\": {}, \"terminationMessagePath\": \"/dev/termination-log\", \"terminationMessagePolicy\": \"File\", \"volumeMounts\": [{\"mountPath\": \"/backups\", \"name\": \"galaxybackup-backup\"}, {\"mountPath\": \"/var/lib/pulp\", \"name\": \"file-storage\"}, {\"mountPath\": \"/var/run/secrets/
kubernetes.io/serviceaccount\", \"name\": \"kube-api-access-k5qp7\", \"readOnly\": true}]}], \"dnsPolicy\": \"ClusterFirst\", \"enableServiceLinks\": true, \"nodeName\": \"stlconfmn400165\", \"preemptionPolicy\": \"PreemptLowerPriority\", \"priority\": 0, \"restartPolicy\": \"Never\", \"schedulerName\": \"default-scheduler\", \"securityContext\": {}, \"service
Account\": \"default\", \"serviceAccountName\": \"default\", \"terminationGracePeriodSeconds\": 30, \"tolerations\": [{\"effect\": \"NoExecute\", \"key\": \"node.kubernetes.io/not-ready\", \"operator\": \"Exists\", \"tolerationSeconds\": 300}, {\"effect\": \"NoExecute\", \"key\": \"node.kubernetes.io/unreachable\", \"operator\": \"Exists\", \"tolerationSeconds
\": 300}], \"volumes\": [{\"name\": \"galaxybackup-backup\", \"persistentVolumeClaim\": {\"claimName\": \"galaxybackup-backup-claim\"}}, {\"name\": \"file-storage\", \"persistentVolumeClaim\": {\"claimName\": \"galaxy-file-storage\"}}, {\"name\": \"kube-api-access-k5qp7\", \"projected\": {\"defaultMode\": 420, \"sources\": [{\"serviceAccountToken\": {\"expirat
ionSeconds\": 3607, \"path\": \"token\"}}, {\"configMap\": {\"items\": [{\"key\": \"ca.crt\", \"path\": \"ca.crt\"}], \"name\": \"kube-root-ca.crt\"}}, {\"downwardAPI\": {\"items\": [{\"fieldRef\": {\"apiVersion\": \"v1\", \"fieldPath\": \"metadata.namespace\"}, \"path\": \"namespace\"}]}}]}}]}, \"status\": {\"conditions\": [{\"lastProbeTime\": null, \"lastTra
nsitionTime\": \"2024-03-13T08:40:07Z\", \"status\": \"True\", \"type\": \"PodReadyToStartContainers\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:40:05Z\", \"status\": \"True\", \"type\": \"Initialized\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:40:07Z\", \"status\": \"True\", \"type\": \"Ready\"}, {\"lastProb
eTime\": null, \"lastTransitionTime\": \"2024-03-13T08:40:07Z\", \"status\": \"True\", \"type\": \"ContainersReady\"}, {\"lastProbeTime\": null, \"lastTransitionTime\": \"2024-03-13T08:40:05Z\", \"status\": \"True\", \"type\": \"PodScheduled\"}], \"containerStatuses\": [{\"containerID\": \"containerd://cbf23043766c35c7976f3b047a8f70c3f95978436a1c213abb6f5f8a79
0844b9\", \"image\": \"docker.io/library/postgres:13\", \"imageID\": \"docker.io/library/postgres@sha256:337b6fff599687159acf150b7f32bd62b761608a39f749ac2100efacc9cd986c\", \"lastState\": {}, \"name\": \"galaxybackup-backup-manager\", \"ready\": true, \"restartCount\": 0, \"started\": true, \"state\": {\"running\": {\"startedAt\": \"2024-03-13T08:40:07Z\"}}}],
\"hostIP\": \"10.247.0.212\", \"hostIPs\": [{\"ip\": \"10.247.0.212\"}], \"phase\": \"Running\", \"podIP\": \"10.255.1.121\", \"podIPs\": [{\"ip\": \"10.255.1.121\"}], \"qosClass\": \"BestEffort\", \"startTime\": \"2024-03-13T08:40:05Z\"}}}\u001b[0m\n\r\nTASK [backup : include_tasks] **************************************************\r\n\u001b[1;30mtask path:
/opt/ansible/roles/backup/tasks/main.yml:11\u001b[0m\n\u001b[0;36mincluded: /opt/ansible/roles/backup/tasks/postgres.yml for localhost\u001b[0m\n\r\nTASK [backup : Check for specified PostgreSQL configuration] *******************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:3\u001b[0m\n\u001b[0;32mok: [localhost] => {\"api_found\": t
rue, \"changed\": false, \"resources\": [{\"apiVersion\": \"v1\", \"data\": {\"database\": \"Z2FsYXh5\", \"host\": \"cGdzbWZ5MDEuc2hhcmVkLXNlcnZpY2VzLm5vbi1wcm9kLmF6ci1ub24tcHJvZC5zd20uZGU=\", \"password\": \"M2pQZ2JGZnl5V3dQYXdQdGZDcWZ6ZmhQdHlrNEJL\", \"port\": \"NTQzMg==\", \"sslmode\": \"cHJlZmVy\", \"type\": \"dW5tYW5hZ2Vk\", \"username\": \"Z2FsYXh5\"}, \
"immutable\": true, \"kind\": \"Secret\", \"metadata\": {\"creationTimestamp\": \"2024-03-13T07:44:47Z\", \"managedFields\": [{\"apiVersion\": \"v1\", \"fieldsType\": \"FieldsV1\", \"fieldsV1\": {\"f:data\": {\".\": {}, \"f:database\": {}, \"f:host\": {}, \"f:password\": {}, \"f:port\": {}, \"f:sslmode\": {}, \"f:type\": {}, \"f:username\": {}}, \"f:immutable\
": {}, \"f:type\": {}}, \"manager\": \"OpenAPI-Generator\", \"operation\": \"Update\", \"time\": \"2024-03-13T07:44:47Z\"}], \"name\": \"galaxy-postgres-configuration\", \"namespace\": \"galaxy\", \"resourceVersion\": \"18210991\", \"uid\": \"a9254676-afef-43ab-935b-1d3207ffab89\"}, \"type\": \"Opaque\"}]}\u001b[0m\n\r\nTASK [backup : Check for default Postgre
SQL configuration] *********************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:11\u001b[0m\n\u001b[0;32mok: [localhost] => {\"censored\": \"the output has been hidden due to the fact that 'no_log: true' was specified for this result\", \"changed\": false}\u001b[0m\n\r\nTASK [backup : Set PostgreSQL configuration] **************
*********************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:19\u001b[0m\n\u001b[0;32mok: [localhost] => {\"censored\": \"the output has been hidden due to the fact that 'no_log: true' was specified for this result\", \"changed\": false}\u001b[0m\n\r\nTASK [backup : Store Database Configuration] *********************************
**\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:24\u001b[0m\n\u001b[0;32mok: [localhost] => {\"censored\": \"the output has been hidden due to the fact that 'no_log: true' was specified for this result\", \"changed\": false}\u001b[0m\n\r\nTASK [backup : Default label selector to custom resource generated postgres] ***\r\n\u001b[1;30mt
ask path: /opt/ansible/roles/backup/tasks/postgres.yml:35\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"postgres_label_selector\": \"app.kubernetes.io/instance=postgres-galaxy\"}, \"changed\": false}\u001b[0m\n\r\nTASK [backup : Get the postgres pod information] *******************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/back
up/tasks/postgres.yml:41\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was
2024-03-13T08:40:13.834243904Z stderr F False\"}\u001b[0m\n\r\nTASK [backup : Set the resource pod name as a variable.] ***********************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:53\u001b[0m\n\u001b[0;36mskipping: [localhost] => {\"changed\": false, \"skip_reason\": \"Conditional result was False\"}\u001b[0m\n\r\nTASK [Dete
rmine the timestamp for the backup once for all nodes] ***************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:58\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"now\": \"2024-03-13-084012\"}, \"changed\": false}\u001b[0m\n\r\nTASK [Set backup directory name] ***********************************************\r\n\u00
1b[1;30mtask path: /opt/ansible/roles/backup/tasks/postgres.yml:62\u001b[0m\n\u001b[0;32mok: [localhost] => {\"ansible_facts\": {\"_backup_dir\": \"/backups/openshift-backup-2024-03-13-084012\"}, \"changed\": false}\u001b[0m\n\r\nTASK [Create directory for backup] *********************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/backup
/tasks/postgres.yml:66\u001b[0m\n\u001b[0;31mfatal: [localhost]: FAILED! => {\"changed\": false, \"module_stderr\": \"/usr/local/lib/python3.8/site-packages/kubernetes/client/apis/__init__.py:10: DeprecationWarning: The package kubernetes.client.apis is renamed and deprecated, use kubernetes.client.api instead (please note that the trailing s was removed).\\n
warnings.warn(\\nTraceback (most recent call last):\\n File \\\"/opt/ansible/.ansible/tmp/ansible-tmp-1710319212.6376235-9955-62319315908609/AnsiballZ_k8s_exec.py\\\", line 102, in \\n _ansiballz_main()\\n File \\\"/opt/ansible/.ansible/tmp/ansible-tmp-1710319212.6376235-9955-62319315908609/AnsiballZ_k8s_exec.py\\\", line 94, in _ansiballz_main\\
n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\\n File \\\"/opt/ansible/.ansible/tmp/ansible-tmp-1710319212.6376235-9955-62319315908609/AnsiballZ_k8s_exec.py\\\", line 40, in invoke_module\\n runpy.run_module(mod_name='ansible_collections.kubernetes.core.plugins.modules.k8s_exec', init_globals=None, run_name='__main__', alter_sys=True)\\n Fil
e \\\"/usr/lib64/python3.8/runpy.py\\\", line 207, in run_module\\n return _run_module_code(code, init_globals, run_name, mod_spec)\\n File \\\"/usr/lib64/python3.8/runpy.py\\\", line 97, in _run_module_code\\n _run_code(code, mod_globals, init_globals,\\n File \\\"/usr/lib64/python3.8/runpy.py\\\", line 87, in _run_code\\n exec(code, run_globals)\\
n File \\\"/tmp/ansible_k8s_exec_payload_kg537nmt/ansible_k8s_exec_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_exec.py\\\", line 245, in \\n File \\\"/tmp/ansible_k8s_exec_payload_kg537nmt/ansible_k8s_exec_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_exec.py\\\", line 241, in main\\n File \\\"/tmp/ansib
le_k8s_exec_payload_kg537nmt/ansible_k8s_exec_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_exec.py\\\", line 173, in execute_module\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api/core_v1_api.py\\\", line 23483, in read_namespaced_pod\\n return self.read_namespaced_pod_with_http_info(name, namespace, **kwargs
) # noqa: E501\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api/core_v1_api.py\\\", line 23570, in read_namespaced_pod_with_http_info\\n return self.api_client.call_api(\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 348, in call_api\\n return self.__call_api(resource_path, method,\
\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 192, in __call_api\\n return_data = self.deserialize(response_data, response_type)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 264, in deserialize\\n return self.__deserialize(data, response_type)\\n File \\\"/u
sr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 303, in __deserialize\\n return self.__deserialize_model(data, klass)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 639, in __deserialize_model\\n kwargs[attr] = self.__deserialize(value, attr_type)\\n File \\\"/usr/local/lib/py
thon3.8/site-packages/kubernetes/client/api_client.py\\\", line 303, in __deserialize\\n return self.__deserialize_model(data, klass)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 639, in __deserialize_model\\n kwargs[attr] = self.__deserialize(value, attr_type)\\n File \\\"/usr/local/lib/python3.8/site-pa
ckages/kubernetes/client/api_client.py\\\", line 280, in __deserialize\\n return [self.__deserialize(sub_data, sub_kls)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 280, in \\n return [self.__deserialize(sub_data, sub_kls)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_
client.py\\\", line 303, in __deserialize\\n return self.__deserialize_model(data, klass)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\\\", line 641, in __deserialize_model\\n instance = klass(**kwargs)\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/models/v1_pod_condition.py\\\", line 76, in
__init__\\n self.type = type\\n File \\\"/usr/local/lib/python3.8/site-packages/kubernetes/client/models/v1_pod_condition.py\\\", line 219, in type\\n raise ValueError(\\nValueError: Invalid value for `type` (PodReadyToStartContainers), must be one of ['ContainersReady', 'Initialized', 'PodScheduled', 'Ready']\\n\", \"module_stdout\": \"\", \"msg\": \"M
ODULE FAILURE\\nSee stdout/stderr for the exact error\", \"rc\": 1}\u001b[0m\n\r\nPLAY RECAP *********************************************************************\r\n\u001b[0;31mlocalhost\u001b[0m : \u001b[0;32mok=30 \u001b[0m \u001b[0;33mchanged=2 \u001b[0m unreachable=0 \u001b[0;31mfailed=1 \u001b[0m \u001b[0;36mskipped=12 \u001b[0m
rescued=0 ignored=0 \r\n\n","job":"775119205517794129","name":"galaxybackup","namespace":"galaxy","error":"exit status 2"}
```

I think `ValueError: Invalid value for `type` (PodReadyToStartContainers), must be one of ['ContainersReady', 'Initialized', 'PodScheduled', 'Ready']` is the important line.

Contributor guide

Open the contributing guide

Research direction

Reproduce the backup with the supplied kubectl and CronJob steps, then inspect the operator logs and the backup-manager pod state. Read /opt/ansible/roles/backup/tasks/main.yml, /opt/ansible/roles/backup/tasks/postgres.yml:66, and the Kubernetes client traceback involving v1_pod_condition.py. Done means the backup completes, the pod terminates normally, and the GalaxyBackup status reports completion without repeated restarts.

Written by the indexing model from the issue text.

Assessment

Tech stack
ansible, kubernetes, python
Domain
databases, devops, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.