diff --git a/test/03-setup-restore.yaml b/test/03-setup-restore.yaml new file mode 100644 index 0000000..1ffd46c --- /dev/null +++ b/test/03-setup-restore.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: restore-demo +--- +apiVersion: v1 +kind: Secret +metadata: + namespace: restore-demo + name: demo-chap-secret +type: "kubernetes.io/iscsi-chap" +data: + discovery.sendtargets.auth.username: ZGVtbw== + discovery.sendtargets.auth.password: VHJtK1lZaXZvMUNZSGszcGFGVWMrcTdCMmdJPQo= + node.session.auth.username: ZGVtbw== + node.session.auth.password: VHJtK1lZaXZvMUNZSGszcGFGVWMrcTdCMmdJPQo= +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: restore-demo-pv + namespace: restore-demo +spec: + storageClassName: manual + capacity: + storage: 50Mi + accessModes: + - ReadWriteOnce + iscsi: + targetPortal: 192.168.1.159 + iqn: iqn.2020-08.raid5:restore-demo + lun: 1 + fsType: ext4 + readOnly: false + chapAuthDiscovery: true + chapAuthSession: true + secretRef: + name: demo-chap-secret +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: restore-demo-pvc + namespace: restore-demo +spec: + storageClassName: manual + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Mi +--- +apiVersion: v1 +kind: Secret +metadata: + name: secret-minio + namespace: restore-demo +data: + RESTIC_PASSWORD: bHIyOXhtOTU= + AWS_ACCESS_KEY_ID: OWFTSXZBSEVzWlNVMmkyTU9zVGxWSk1lL1NjPQ== + AWS_SECRET_ACCESS_KEY: WVN5ck9ncVllcjBWNFNLdlVOcmx2OGhjTllhZGZuN2xaNjBIaXRlL3djWT0= +--- +apiVersion: formol.desmojim.fr/v1alpha1 +kind: Repo +metadata: + name: repo-minio + namespace: restore-demo +spec: + backend: + s3: + server: raid5.desmojim.fr:9000 + bucket: testbucket2 + repositorySecrets: secret-minio +--- +apiVersion: formol.desmojim.fr/v1alpha1 +kind: Function +metadata: + name: restore-pg + namespace: restore-demo +spec: + name: backup-pg + image: desmo999r/formolcli:latest + args: ["postgres", "restore", "--hostname", $(PGHOST), "--database", $(PGDATABASE), "--username", $(PGUSER), "--password", $(PGPASSWD), "--file", "/output/backup-pg.sql"] diff --git a/test/04-restore-deployment.yaml b/test/04-restore-deployment.yaml new file mode 100644 index 0000000..c785628 --- /dev/null +++ b/test/04-restore-deployment.yaml @@ -0,0 +1,88 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + namespace: restore-demo + labels: + app: nginx +spec: + replicas: 1 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 + volumeMounts: + - name: demo-data + mountPath: /data + volumes: + - name: demo-data + persistentVolumeClaim: + claimName: restore-demo-pvc +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: postgres-config-demo + namespace: restore-demo + labels: + app: postgres +data: + POSTGRES_DB: demopostgres + POSTGRES_USER: demopostgres + POSTGRES_PASSWORD: password123! +--- +apiVersion: v1 +kind: Service +metadata: + name: postgres + namespace: restore-demo + labels: + app: postgres +spec: + ports: + - port: 5432 + name: postgres + clusterIP: None + selector: + app: postgres +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: postgres-demo + namespace: restore-demo +spec: + serviceName: "postgres" + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:12 + envFrom: + - configMapRef: + name: postgres-config-demo + ports: + - containerPort: 5432 + name: postgredb + volumeMounts: + - name: postgredb + mountPath: /var/lib/postgresql/data + volumes: + - name: postgredb diff --git a/test/05-backupconf.yaml b/test/05-backupconf.yaml new file mode 100644 index 0000000..915e460 --- /dev/null +++ b/test/05-backupconf.yaml @@ -0,0 +1,39 @@ +--- +apiVersion: formol.desmojim.fr/v1alpha1 +kind: BackupConfiguration +metadata: + name: backup-demo + namespace: restore-demo +spec: + repository: + name: repo-minio + schedule: "1 * * * *" + targets: + - kind: Deployment + apiVersion: v1 + name: nginx-deployment + volumeMounts: + - name: demo-data + mountPath: /data + paths: + - /data + - kind: Task + name: backup-pg + steps: + - name: backup-pg + namespace: demo + env: + - name: PGHOST + value: postgres + - name: PGDATABASE + value: demopostgres + - name: PGUSER + value: demopostgres + - name: PGPASSWD + value: password123! + keep: + last: 5 + daily: 2 + weekly: 2 + monthly: 6 + yearly: 3 diff --git a/test/06-restoresession.yaml b/test/06-restoresession.yaml new file mode 100644 index 0000000..4cd86c2 --- /dev/null +++ b/test/06-restoresession.yaml @@ -0,0 +1,10 @@ +apiVersion: formol.desmojim.fr/v1alpha1 +kind: RestoreSession +metadata: + namespace: restore-demo + name: restore-demo +spec: + backupSessionRef: + namespace: demo + name: backupsession-backup-demo-1612734804 +# name: backupsession-backup-demo-1612713316