diff --git a/clusters/cl01tl/manifests/code-server/Deployment-code-server.yaml b/clusters/cl01tl/manifests/code-server/Deployment-code-server.yaml index c4cc84e9c..20bbf330d 100644 --- a/clusters/cl01tl/manifests/code-server/Deployment-code-server.yaml +++ b/clusters/cl01tl/manifests/code-server/Deployment-code-server.yaml @@ -54,9 +54,14 @@ spec: cpu: 10m memory: 128Mi volumeMounts: - - mountPath: /config + - mountPath: /config-new name: config + - mountPath: /config + name: config-old volumes: - name: config + persistentVolumeClaim: + claimName: code-server-config + - name: config-old persistentVolumeClaim: claimName: code-server-nfs-storage diff --git a/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-external.yaml b/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-external.yaml new file mode 100644 index 000000000..12ffe56e5 --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-external.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: data-backup-secret-external + namespace: code-server + labels: + helm.sh/chart: volsync-target-data-0.5.0 + app.kubernetes.io/instance: code-server + app.kubernetes.io/part-of: code-server + app.kubernetes.io/version: "0.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: data-backup-secret-external +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/code-server/data" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/digital-ocean + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/digital-ocean + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: AWS_DEFAULT_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: AWS_ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: AWS_SECRET_ACCESS_KEY diff --git a/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-local.yaml b/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-local.yaml new file mode 100644 index 000000000..92734c99f --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-local.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: data-backup-secret-local + namespace: code-server + labels: + helm.sh/chart: volsync-target-data-0.5.0 + app.kubernetes.io/instance: code-server + app.kubernetes.io/part-of: code-server + app.kubernetes.io/version: "0.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: data-backup-secret-local +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/code-server/data" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-local + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-local + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-remote.yaml b/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-remote.yaml new file mode 100644 index 000000000..6ac296918 --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/ExternalSecret-data-backup-secret-remote.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: data-backup-secret-remote + namespace: code-server + labels: + helm.sh/chart: volsync-target-data-0.5.0 + app.kubernetes.io/instance: code-server + app.kubernetes.io/part-of: code-server + app.kubernetes.io/version: "0.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: data-backup-secret-remote +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/code-server/data" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-remote + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-remote + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/code-server/PersistentVolumeClaim-code-server-config.yaml b/clusters/cl01tl/manifests/code-server/PersistentVolumeClaim-code-server-config.yaml new file mode 100644 index 000000000..5b316956a --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/PersistentVolumeClaim-code-server-config.yaml @@ -0,0 +1,19 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: code-server-config + labels: + app.kubernetes.io/instance: code-server + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: code-server + helm.sh/chart: code-server-4.5.0 + annotations: + helm.sh/resource-policy: keep + namespace: code-server +spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "2Gi" + storageClassName: "ceph-block" diff --git a/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-external.yaml b/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-external.yaml new file mode 100644 index 000000000..f109b6f11 --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-external.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: data-backup-source-external + namespace: code-server + labels: + helm.sh/chart: volsync-target-data-0.5.0 + app.kubernetes.io/instance: code-server + app.kubernetes.io/part-of: code-server + app.kubernetes.io/version: "0.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: data-backup +spec: + sourcePVC: data + trigger: + schedule: 0 4 * * * + restic: + pruneIntervalDays: 7 + repository: data-backup-secret-external + retain: + daily: 3 + hourly: 1 + monthly: 2 + weekly: 2 + yearly: 4 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-local.yaml b/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-local.yaml new file mode 100644 index 000000000..a831bc08f --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-local.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: data-backup-source-local + namespace: code-server + labels: + helm.sh/chart: volsync-target-data-0.5.0 + app.kubernetes.io/instance: code-server + app.kubernetes.io/part-of: code-server + app.kubernetes.io/version: "0.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: data-backup +spec: + sourcePVC: data + trigger: + schedule: 0 2 * * * + restic: + pruneIntervalDays: 7 + repository: data-backup-secret-local + retain: + daily: 3 + hourly: 1 + monthly: 2 + weekly: 2 + yearly: 4 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-remote.yaml b/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-remote.yaml new file mode 100644 index 000000000..8fcb934a2 --- /dev/null +++ b/clusters/cl01tl/manifests/code-server/ReplicationSource-data-backup-source-remote.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: data-backup-source-remote + namespace: code-server + labels: + helm.sh/chart: volsync-target-data-0.5.0 + app.kubernetes.io/instance: code-server + app.kubernetes.io/part-of: code-server + app.kubernetes.io/version: "0.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: data-backup +spec: + sourcePVC: data + trigger: + schedule: 0 3 * * * + restic: + pruneIntervalDays: 7 + repository: data-backup-secret-remote + retain: + daily: 3 + hourly: 1 + monthly: 2 + weekly: 2 + yearly: 4 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 1Gi