From 7daf0927782dc6dfe105d009f212ca2dbbaee3ff Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Mon, 15 Nov 2021 15:24:06 +0800 Subject: [PATCH] Investigate #4268 Signed-off-by: Daniel Jiang --- examples/nginx-app/with-pv-sleep120.yaml | 88 ++++++++++++++++++++++++ examples/nginx-app/with-pv.yaml | 26 ++----- 2 files changed, 94 insertions(+), 20 deletions(-) create mode 100644 examples/nginx-app/with-pv-sleep120.yaml diff --git a/examples/nginx-app/with-pv-sleep120.yaml b/examples/nginx-app/with-pv-sleep120.yaml new file mode 100644 index 0000000000..0c72448840 --- /dev/null +++ b/examples/nginx-app/with-pv-sleep120.yaml @@ -0,0 +1,88 @@ +# Copyright 2017 the Velero contributors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +apiVersion: v1 +kind: Namespace +metadata: + name: nginx-example-sleep120 + labels: + app: nginx + +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: nginx-logs + namespace: nginx-example-sleep120 + labels: + app: nginx +spec: + # Optional: + # storageClassName: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Mi + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + namespace: nginx-example-sleep120 +spec: + replicas: 1 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + annotations: + pre.hook.backup.velero.io/container: fsfreeze + pre.hook.backup.velero.io/command: '["/bin/bash", "-c", "echo \"pre\" > var/log/nginx/lab-pre-backup;sleep 120"]' + pre.hook.backup.velero.io/timeout: 360s + post.hook.backup.velero.io/container: fsfreeze + post.hook.backup.velero.io/command: '["/bin/bash", "-c", "echo \"post\" > var/log/nginx/lab-post-backup"]' + spec: + volumes: + - name: nginx-logs + persistentVolumeClaim: + claimName: nginx-logs + containers: + - image: nginx:1.17.6 + name: nginx + ports: + - containerPort: 80 + volumeMounts: + - mountPath: "/var/log/nginx" + name: nginx-logs + readOnly: false + - image: ubuntu:bionic + name: fsfreeze + securityContext: + privileged: true + volumeMounts: + - mountPath: "/var/log/nginx" + name: nginx-logs + readOnly: false + command: + - "/bin/bash" + - "-c" + - "sleep infinity" + + diff --git a/examples/nginx-app/with-pv.yaml b/examples/nginx-app/with-pv.yaml index 313a80a71a..6703cef346 100644 --- a/examples/nginx-app/with-pv.yaml +++ b/examples/nginx-app/with-pv.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: - name: nginx-example + name: nginx-example-nosleep labels: app: nginx @@ -25,7 +25,7 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nginx-logs - namespace: nginx-example + namespace: nginx-example-nosleep labels: app: nginx spec: @@ -42,7 +42,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment - namespace: nginx-example + namespace: nginx-example-nosleep spec: replicas: 1 selector: @@ -54,9 +54,10 @@ spec: app: nginx annotations: pre.hook.backup.velero.io/container: fsfreeze - pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/var/log/nginx"]' + pre.hook.backup.velero.io/command: '["/bin/bash", "-c", "echo \"pre\" > var/log/nginx/lab-pre-backup"]' + pre.hook.backup.velero.io/timeout: 360s post.hook.backup.velero.io/container: fsfreeze - post.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--unfreeze", "/var/log/nginx"]' + post.hook.backup.velero.io/command: '["/bin/bash", "-c", "echo \"post\" > var/log/nginx/lab-post-backup"]' spec: volumes: - name: nginx-logs @@ -85,18 +86,3 @@ spec: - "sleep infinity" ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: nginx - name: my-nginx - namespace: nginx-example -spec: - ports: - - port: 80 - targetPort: 80 - selector: - app: nginx - type: LoadBalancer