From 5ff9c8febdff879e10d85046e81ef33e75ad9bf2 Mon Sep 17 00:00:00 2001 From: Ferruh Cihan <63190600+ferruhcihan@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:49:58 +0100 Subject: [PATCH 1/3] feat: remove velero --- .cspell.json | 1 - README.md | 1 - apps.yaml | 12 - chart/chart-index/Chart.lock | 3 - chart/chart-index/Chart.yaml | 3 - charts/grafana-dashboards/values.yaml | 1 - charts/grafana-dashboards/velero/velero.json | 1817 ----------------- charts/team-ns/templates/backup/schedule.yaml | 29 - charts/velero/.helmignore | 21 - charts/velero/Chart.yaml | 19 - charts/velero/OWNERS | 10 - charts/velero/README.md | 155 -- charts/velero/ci/test-values.yaml | 119 -- charts/velero/crds/backuprepositories.yaml | 98 - charts/velero/crds/backups.yaml | 632 ------ .../velero/crds/backupstoragelocations.yaml | 176 -- charts/velero/crds/datadownloads.yaml | 180 -- charts/velero/crds/datauploads.yaml | 204 -- charts/velero/crds/deletebackuprequests.yaml | 75 - charts/velero/crds/downloadrequests.yaml | 93 - charts/velero/crds/podvolumebackups.yaml | 205 -- charts/velero/crds/podvolumerestores.yaml | 194 -- charts/velero/crds/restores.yaml | 534 ----- charts/velero/crds/schedules.yaml | 586 ------ charts/velero/crds/serverstatusrequests.yaml | 79 - .../velero/crds/volumesnapshotlocations.yaml | 87 - charts/velero/templates/NOTES.txt | 79 - charts/velero/templates/_helpers.tpl | 96 - .../templates/backupstoragelocation.yaml | 50 - charts/velero/templates/cleanup-crds.yaml | 85 - .../velero/templates/clusterrolebinding.yaml | 20 - charts/velero/templates/configmaps.yaml | 18 - charts/velero/templates/deployment.yaml | 287 --- charts/velero/templates/extra-manifests.yaml | 4 - .../label-namespace/labelnamespace.yaml | 39 - .../templates/node-agent-daemonset.yaml | 202 -- charts/velero/templates/podmonitor.yaml | 44 - charts/velero/templates/prometheusrule.yaml | 21 - charts/velero/templates/role.yaml | 21 - charts/velero/templates/rolebinding.yaml | 21 - charts/velero/templates/schedule.yaml | 31 - charts/velero/templates/secret.yaml | 24 - charts/velero/templates/service.yaml | 29 - .../templates/serviceaccount-server.yaml | 19 - charts/velero/templates/servicemonitor.yaml | 46 - .../upgrade-crds/clusterrole-upgrade.yaml | 27 - .../clusterrolebinding-upgrade.yaml | 25 - .../upgrade-crds/serviceaccount-upgrade.yaml | 22 - .../templates/upgrade-crds/upgrade-crds.yaml | 127 -- .../templates/volumesnapshotlocation.yaml | 35 - charts/velero/values.yaml | 629 ------ core.yaml | 6 - helmfile.d/helmfile-50.services.yaml.gotmpl | 6 - helmfile.d/snippets/defaults.yaml | 13 - tests/fixtures/env/apps/velero.yaml | 17 - tests/fixtures/env/settings/obj.yaml | 1 - tests/integration/full.yaml | 2 - values-changes.yaml | 4 + values-schema.yaml | 28 - .../grafana-dashboards.gotmpl | 3 - values/minio/minio.gotmpl | 2 +- .../prometheus-operator.gotmpl | 6 +- values/team-ns/team-ns.gotmpl | 2 - values/velero/velero.gotmpl | 145 -- 64 files changed, 8 insertions(+), 7562 deletions(-) delete mode 100644 charts/grafana-dashboards/velero/velero.json delete mode 100644 charts/team-ns/templates/backup/schedule.yaml delete mode 100644 charts/velero/.helmignore delete mode 100644 charts/velero/Chart.yaml delete mode 100644 charts/velero/OWNERS delete mode 100644 charts/velero/README.md delete mode 100644 charts/velero/ci/test-values.yaml delete mode 100644 charts/velero/crds/backuprepositories.yaml delete mode 100644 charts/velero/crds/backups.yaml delete mode 100644 charts/velero/crds/backupstoragelocations.yaml delete mode 100644 charts/velero/crds/datadownloads.yaml delete mode 100644 charts/velero/crds/datauploads.yaml delete mode 100644 charts/velero/crds/deletebackuprequests.yaml delete mode 100644 charts/velero/crds/downloadrequests.yaml delete mode 100644 charts/velero/crds/podvolumebackups.yaml delete mode 100644 charts/velero/crds/podvolumerestores.yaml delete mode 100644 charts/velero/crds/restores.yaml delete mode 100644 charts/velero/crds/schedules.yaml delete mode 100644 charts/velero/crds/serverstatusrequests.yaml delete mode 100644 charts/velero/crds/volumesnapshotlocations.yaml delete mode 100644 charts/velero/templates/NOTES.txt delete mode 100644 charts/velero/templates/_helpers.tpl delete mode 100644 charts/velero/templates/backupstoragelocation.yaml delete mode 100644 charts/velero/templates/cleanup-crds.yaml delete mode 100644 charts/velero/templates/clusterrolebinding.yaml delete mode 100644 charts/velero/templates/configmaps.yaml delete mode 100644 charts/velero/templates/deployment.yaml delete mode 100644 charts/velero/templates/extra-manifests.yaml delete mode 100644 charts/velero/templates/label-namespace/labelnamespace.yaml delete mode 100644 charts/velero/templates/node-agent-daemonset.yaml delete mode 100644 charts/velero/templates/podmonitor.yaml delete mode 100644 charts/velero/templates/prometheusrule.yaml delete mode 100644 charts/velero/templates/role.yaml delete mode 100644 charts/velero/templates/rolebinding.yaml delete mode 100644 charts/velero/templates/schedule.yaml delete mode 100644 charts/velero/templates/secret.yaml delete mode 100644 charts/velero/templates/service.yaml delete mode 100644 charts/velero/templates/serviceaccount-server.yaml delete mode 100644 charts/velero/templates/servicemonitor.yaml delete mode 100644 charts/velero/templates/upgrade-crds/clusterrole-upgrade.yaml delete mode 100644 charts/velero/templates/upgrade-crds/clusterrolebinding-upgrade.yaml delete mode 100644 charts/velero/templates/upgrade-crds/serviceaccount-upgrade.yaml delete mode 100644 charts/velero/templates/upgrade-crds/upgrade-crds.yaml delete mode 100644 charts/velero/templates/volumesnapshotlocation.yaml delete mode 100644 charts/velero/values.yaml delete mode 100644 tests/fixtures/env/apps/velero.yaml delete mode 100644 values/velero/velero.gotmpl diff --git a/.cspell.json b/.cspell.json index 6e790d441f..b2f2d7058b 100644 --- a/.cspell.json +++ b/.cspell.json @@ -179,7 +179,6 @@ "trivy", "unencrypted", "untrusted", - "velero", "xlarge" ] } diff --git a/README.md b/README.md index e2739b078b..8ba9153bf3 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,6 @@ Get instant access to the following pre-configured Kubernetes Apps: One-click activation of the following Kubernetes Apps: -- [Velero](https://github.com/vmware-tanzu/velero): Back up and restore your Kubernetes cluster resources and persistent volumes. - [Knative](https://github.com/knative/serving): Deploy and manage serverless workloads. - [Prometheus](https://github.com/prometheus/prometheus): Collecting container application metrics. - [Alertmanager](https://github.com/prometheus/alertmanager): Handle alerts send by Prometheus. diff --git a/apps.yaml b/apps.yaml index ec1d64a212..c36c7277de 100644 --- a/apps.yaml +++ b/apps.yaml @@ -291,18 +291,6 @@ appsInfo: about: The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process and export telemetry data. In addition, it removes the need to run, operate and maintain multiple agents/collectors in order to support open-source telemetry data formats (e.g. Jaeger, Prometheus, etc.) to multiple open-source or commercial back-ends. integration: OpenTelemetry Collector is used to receive telementry data from Istio Envoy access logs and export this data to Tempo. chartName: otel-operator - velero: - title: Velero - appVersion: 1.9.0 - repo: https://github.com/vmware-tanzu/velero - maintainers: VMware Tanzu - relatedLinks: - - https://velero.io/docs/v1.9/ - - https://velero.io/docs/main/restic/ - license: Apache 2.0 - dependencies: None - about: Velero is a tool to back up and restore Kubernetes cluster resources and persistent volumes. - integration: When enabled, Velero can be used to automatically create backups of APL platform services. Based on the selected provider, APL installs required plug-ins. APL also installs the Restic integration for Velero to back up and restore almost any type of Kubernetes volume. policy-reporter: title: policy-reporter appVersion: 3.5.0 diff --git a/chart/chart-index/Chart.lock b/chart/chart-index/Chart.lock index 79d5de1a44..9f378893ce 100644 --- a/chart/chart-index/Chart.lock +++ b/chart/chart-index/Chart.lock @@ -44,8 +44,5 @@ dependencies: - name: tekton-pipeline repository: https://cdfoundation.github.io/tekton-helm-chart/ version: 1.0.2 -- name: velero - repository: https://vmware-tanzu.github.io/helm-charts/ - version: 5.4.1 digest: sha256:9c7e5d75c1f8d3befa942e74b4b0896e36db7f040e100ff642a24c7199cdbdca generated: "2024-10-14T11:21:37.891213+02:00" diff --git a/chart/chart-index/Chart.yaml b/chart/chart-index/Chart.yaml index e8eda2b5d0..3b97855d9f 100644 --- a/chart/chart-index/Chart.yaml +++ b/chart/chart-index/Chart.yaml @@ -120,6 +120,3 @@ dependencies: - name: trivy-operator version: 0.31.0 repository: https://aquasecurity.github.io/helm-charts/ - - name: velero - version: 5.4.1 - repository: https://vmware-tanzu.github.io/helm-charts/ diff --git a/charts/grafana-dashboards/values.yaml b/charts/grafana-dashboards/values.yaml index 853930c192..4f65e42acc 100644 --- a/charts/grafana-dashboards/values.yaml +++ b/charts/grafana-dashboards/values.yaml @@ -8,7 +8,6 @@ folders: - thanos - trivy - trivy-teams - - velero sidecar: dashboards: diff --git a/charts/grafana-dashboards/velero/velero.json b/charts/grafana-dashboards/velero/velero.json deleted file mode 100644 index a9c1eb0b08..0000000000 --- a/charts/grafana-dashboards/velero/velero.json +++ /dev/null @@ -1,1817 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "Velero Stats maintained by Velero team", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 16829, - "graphTooltip": 1, - "id": 15, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 15, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Backup", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "description": "The sum of one-off backup and schedule backup success total ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 1 - }, - "id": 23, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "velero_backup_total", - "format": "time_series", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Backup Success Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 4, - "y": 1 - }, - "id": 22, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(velero_backup_success_total{schedule=~\"$schedule\"}) / sum(velero_backup_attempt_total{schedule=~\"$schedule\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Backup Success Rate", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 8, - "y": 1 - }, - "id": 26, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(velero_backup_deletion_success_total{schedule=~\"$schedule\"}) / sum(velero_backup_deletion_attempt_total{schedule=~\"$schedule\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Backup Deletion Success Rate", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 12, - "y": 1 - }, - "id": 25, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(velero_volume_snapshot_success_total{schedule=~\"$schedule\"}) / sum(velero_volume_snapshot_attempt_total{schedule=~\"$schedule\"})\n", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Volume snapshot Success Rate", - "type": "gauge" - }, - { - "columns": [ - { - "$$hashKey": "object:462", - "text": "Current", - "value": "current" - } - ], - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "for schedule backup use only", - "fontSize": "100%", - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 13, - "scroll": true, - "showHeader": true, - "sort": { - "col": 0, - "desc": false - }, - "styles": [ - { - "alias": "Time", - "align": "auto", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "date" - }, - { - "alias": "Hours since last backup", - "align": "auto", - "colorMode": "row", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "decimals": 2, - "pattern": "Current", - "thresholds": [ - "24", - "48" - ], - "type": "number", - "unit": "short" - } - ], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "(time() - velero_backup_last_successful_timestamp{schedule!=\"\"}) / 60 / 60", - "instant": true, - "interval": "", - "legendFormat": "{{schedule}}", - "refId": "A" - } - ], - "title": "Hours since last Backup", - "transform": "table", - "type": "table-old" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 10 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.5.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_success_total{schedule=~\"$schedule\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "Backup success", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup failure", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_partial_failure_total{schedule=~\"$schedule\"}[1h])))", - "instant": false, - "interval": "", - "legendFormat": "Backup partial failure", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_deletion_success_total{schedule=~\"$schedule\"}[1h])))", - "instant": false, - "interval": "", - "legendFormat": "Backup deletion success", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_deletion_failure_total{schedule=~\"$schedule\"}[1h])))", - "instant": false, - "interval": "", - "legendFormat": "Backup deletion failure", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "sum(avg_over_time(velero_backup_items_total{schedule=~\"$schedule\"}[1h]))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup items total", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "sum(avg_over_time(velero_backup_items_errors{schedule=~\"$schedule\"}[1h]))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup items errors_total", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_validation_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup validation failure", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_volume_snapshot_success_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup volume snapshot success", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_volume_snapshot_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup volume snapshot failure", - "refId": "J" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Backup per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 19 - }, - "hiddenSeries": false, - "id": 18, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.5.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(avg_over_time(velero_backup_tarball_size_bytes{schedule=~\"$schedule\"}[15m]))", - "interval": "", - "legendFormat": "{{schedule}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Backup Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:561", - "decimals": 0, - "format": "decbytes", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:562", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 25 - }, - "id": 17, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Restore", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 26 - }, - "id": 27, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "velero_restore_total", - "format": "time_series", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Restore Success Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 4, - "y": 26 - }, - "id": 24, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(velero_restore_success_total{schedule=~\"$schedule\"}) / sum(velero_restore_attempt_total{schedule=~\"$schedule\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Restore Success Rate", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 16, - "x": 8, - "y": 26 - }, - "hiddenSeries": false, - "id": 28, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.5.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_success_total{schedule=~\"$schedule\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "Restore success", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_failed_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "Restore failure", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_validation_failed_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "Restore validation failure", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_partial_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "Restore partial failure", - "refId": "D" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Restore per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 35 - }, - "id": 30, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "CSI", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 36 - }, - "hiddenSeries": false, - "id": 32, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.5.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_csi_snapshot_attempt_total{schedule=~\"$schedule\", backupName=~\"$csi_backup_name\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "CSI Snapshot attempt", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_csi_snapshot_success_total{schedule=~\"$schedule\", backupName=~\"$csi_backup_name\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "CSI Snapshot success", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_csi_snapshot_failure_total{schedule=~\"$schedule\", backupName=~\"$csi_backup_name\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "CSI Snapshot failure", - "refId": "C" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "CSI per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 45 - }, - "id": 36, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Restic", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 46 - }, - "id": 37, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "9.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(restic_pod_volume_backup_dequeue_count{node=~\"$restic_node\"}) / sum(restic_pod_volume_backup_enqueue_count{node=~\"$restic_node\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Restic Success Rate", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 20, - "x": 4, - "y": 46 - }, - "hiddenSeries": false, - "id": 38, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.5.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(restic_pod_volume_backup_enqueue_count{node=~\"$restic_node\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "Restic enqueue", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(restic_pod_volume_backup_dequeue_count{node=~\"$restic_node\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Restic dequeue", - "refId": "B" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Restic per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 55 - }, - "hiddenSeries": false, - "id": 39, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.5.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "exemplar": false, - "expr": "sum(avg_over_time(restic_restic_operation_latency_seconds_gauge{backupName=~\"$restic_backup_name\", node=~\"$restic_node\", operation=~\"$restic_option\", pod_volume_backup=~\"$restic_pod_volume\"}[15m]))", - "interval": "", - "legendFormat": "Avg over time", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Restic time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:561", - "decimals": 0, - "format": "s", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:562", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "refresh": "", - "schemaVersion": 38, - "style": "dark", - "tags": [ - "velero" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "definition": "label_values(velero_backup_attempt_total, schedule)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "schedule", - "options": [], - "query": { - "query": "label_values(velero_backup_attempt_total, schedule)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "definition": "label_values(velero_csi_snapshot_attempt_total, backupName)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "csi_backup_name", - "options": [], - "query": { - "query": "label_values(velero_csi_snapshot_attempt_total, backupName)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "definition": "label_values(restic_pod_volume_backup_enqueue_count, node)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_node", - "options": [], - "query": { - "query": "label_values(restic_pod_volume_backup_enqueue_count, node)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "definition": "label_values(restic_restic_operation_latency_seconds_gauge, backupName)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_backup_name", - "options": [], - "query": { - "query": "label_values(restic_restic_operation_latency_seconds_gauge, backupName)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "definition": "label_values(restic_restic_operation_latency_seconds_gauge, operation)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_option", - "options": [], - "query": { - "query": "label_values(restic_restic_operation_latency_seconds_gauge, operation)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "Prometheus" - }, - "definition": "label_values(restic_restic_operation_latency_seconds_gauge, pod_volume_backup)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_pod_volume", - "options": [], - "query": { - "query": "label_values(restic_restic_operation_latency_seconds_gauge, pod_volume_backup)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - } - ] - }, - "time": { - "from": "now-2d", - "to": "now" - }, - "timepicker": { - "hidden": false, - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Velero Backups", - "uid": "aaaaaaii", - "version": 3, - "weekStart": "" -} \ No newline at end of file diff --git a/charts/team-ns/templates/backup/schedule.yaml b/charts/team-ns/templates/backup/schedule.yaml deleted file mode 100644 index 8df20ec168..0000000000 --- a/charts/team-ns/templates/backup/schedule.yaml +++ /dev/null @@ -1,29 +0,0 @@ - -{{- $v := .Values }} -{{- if $v.apps.velero.enabled }} -{{- range $v.backups }} ---- -apiVersion: velero.io/v1 -kind: Schedule -metadata: - name: team-{{ $v.teamId }}-backup-{{ .name }} - namespace: velero -spec: - schedule: {{ .schedule | quote }} - template: - includedNamespaces: - - team-{{ $v.teamId }} - ttl: {{ .ttl }} - {{- if hasKey . "labelSelector" }} - labelSelector: - matchLabels: - {{- range .labelSelector}} - {{ .name }}{{ printf ": " }}{{ .value }} - {{- end }} - {{- end }} - snapshotVolumes: {{ .snapshotVolumes }} - storageLocation: apl - volumeSnapshotLocations: - - apl -{{- end }} -{{- end }} \ No newline at end of file diff --git a/charts/velero/.helmignore b/charts/velero/.helmignore deleted file mode 100644 index f0c1319444..0000000000 --- a/charts/velero/.helmignore +++ /dev/null @@ -1,21 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj diff --git a/charts/velero/Chart.yaml b/charts/velero/Chart.yaml deleted file mode 100644 index a26c21cd76..0000000000 --- a/charts/velero/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v2 -appVersion: 1.13.0 -description: A Helm chart for velero -home: https://github.com/vmware-tanzu/velero -icon: https://cdn-images-1.medium.com/max/1600/1*-9mb3AKnKdcL_QD3CMnthQ.png -kubeVersion: '>=1.16.0-0' -maintainers: -- email: hsiaoairplane@gmail.com - name: jenting -- email: jiangd@vmware.com - name: reasonerjt -- email: mqiu@vmware.com - name: qiuming-best -- email: yinw@vmware.com - name: ywk253100 -name: velero -sources: -- https://github.com/vmware-tanzu/velero -version: 5.4.1 diff --git a/charts/velero/OWNERS b/charts/velero/OWNERS deleted file mode 100644 index d705d91cc3..0000000000 --- a/charts/velero/OWNERS +++ /dev/null @@ -1,10 +0,0 @@ -approvers: -- jenting -- reasonerjt -- qiuming-best -- ywk253100 -reviewers: -- jenting -- reasonerjt -- qiuming-best -- ywk253100 diff --git a/charts/velero/README.md b/charts/velero/README.md deleted file mode 100644 index d1bc1175b5..0000000000 --- a/charts/velero/README.md +++ /dev/null @@ -1,155 +0,0 @@ -# Velero - -Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes. - -Velero has two main components: a CLI, and a server-side Kubernetes deployment. - -## Installing the Velero CLI - -See the different options for installing the [Velero CLI](https://velero.io/docs/v1.13/basic-install/#install-the-cli). - -## Installing the Velero server - -### Installation Requirements - -Kubernetes v1.16+, because this helm chart uses CustomResourceDefinition `apiextensions.k8s.io/v1`. This API version was introduced in Kubernetes v1.16. - -### Velero version - -This helm chart installs Velero version v1.13 https://velero.io/docs/v1.13/. See the [#Upgrading](#upgrading) section for information on how to upgrade from other versions. - -### Provider credentials - -When installing using the Helm chart, the provider's credential information will need to be appended into your values. The easiest way to do this is with the `--set-file` argument, available in Helm 2.10 and higher. See your cloud provider's documentation for the contents and creation of the `credentials-velero` file. - -### Installing - -The default configuration values for this chart are listed in values.yaml. - -See Velero's full [official documentation](https://velero.io/docs/v1.13/basic-install/). More specifically, find your provider in the Velero list of [supported providers](https://velero.io/docs/v1.13/supported-providers/) for specific configuration information and examples. - -#### Set up Helm - -See the main [README.md](https://github.com/vmware-tanzu/helm-charts#kubernetes-helm-charts-for-vmware-tanzu). - -#### Using Helm 3 - -##### Option 1) CLI commands - -Note: You may add the flag `--set cleanUpCRDs=true` if you want to delete the Velero CRDs after deleting a release. -Please note that cleaning up CRDs will also delete any CRD instance, such as BackupStorageLocation and VolumeSnapshotLocation, which would have to be reconfigured when reinstalling Velero. The backup data in object storage will not be deleted, even though the backup instances in the cluster will. - -Specify the necessary values using the --set key=value[,key=value] argument to helm install. For example, - -```bash -helm install velero vmware-tanzu/velero \ ---namespace \ ---create-namespace \ ---set-file credentials.secretContents.cloud= \ ---set configuration.backupStorageLocation[0].name= \ ---set configuration.backupStorageLocation[0].provider= \ ---set configuration.backupStorageLocation[0].bucket= \ ---set configuration.backupStorageLocation[0].config.region= \ ---set configuration.volumeSnapshotLocation[0].name= \ ---set configuration.volumeSnapshotLocation[0].provider= \ ---set configuration.volumeSnapshotLocation[0].config.region= \ ---set initContainers[0].name=velero-plugin-for- \ ---set initContainers[0].image=velero/velero-plugin-for-: \ ---set initContainers[0].volumeMounts[0].mountPath=/target \ ---set initContainers[0].volumeMounts[0].name=plugins -``` - -Users of zsh might need to put quotes around key/value pairs. - -##### Option 2) YAML file - -Add/update the necessary values by changing the values.yaml from this repository, then run: - -```bash -helm install vmware-tanzu/velero --namespace -f values.yaml --generate-name -``` -##### Upgrade the configuration - -If a value needs to be added or changed, you may do so with the `upgrade` command. An example: - -```bash -helm upgrade vmware-tanzu/velero --namespace --reuse-values --set configuration.backupStorageLocation[0].provider= -``` - -#### Using Helm 2 - -We're no longer supporting Helm v2 since it was deprecated in November 2020. - -##### Upgrade the configuration - -If a value needs to be added or changed, you may do so with the `upgrade` command. An example: - -```bash -helm upgrade vmware-tanzu/velero --reuse-values --set configuration.backupStorageLocation[0].provider= -``` - -## Upgrading - -### Upgrading to v1.13 - -The [instructions found here](https://velero.io/docs/v1.13/upgrade-to-1.13/) will assist you in upgrading from version v1.12.x to v1.13. - -### Upgrading to v1.12 - -The [instructions found here](https://velero.io/docs/v1.12/upgrade-to-1.12/) will assist you in upgrading from version v1.11.x to v1.12. - -### Upgrading to v1.11 - -The [instructions found here](https://velero.io/docs/v1.11/upgrade-to-1.11/) will assist you in upgrading from version v1.10.x to v1.11. - -### Upgrading to v1.10 - -The [instructions found here](https://velero.io/docs/v1.10/upgrade-to-1.10/) will assist you in upgrading from version v1.9.x to v1.10. - -### Upgrading to v1.9 - -The [instructions found here](https://velero.io/docs/v1.9/upgrade-to-1.9/) will assist you in upgrading from version v1.8.x to v1.9. - -### Upgrading to v1.8 - -The [instructions found here](https://velero.io/docs/v1.8/upgrade-to-1.8/) will assist you in upgrading from version v1.7.x to v1.8. - -### Upgrading to v1.7 - -The [instructions found here](https://velero.io/docs/v1.7/upgrade-to-1.7/) will assist you in upgrading from version v1.6.x to v1.7. - -### Upgrading to v1.6 - -The [instructions found here](https://velero.io/docs/v1.6/upgrade-to-1.6/) will assist you in upgrading from version v1.5.x to v1.6. - -### Upgrading to v1.5 - -The [instructions found here](https://velero.io/docs/v1.5/upgrade-to-1.5/) will assist you in upgrading from version v1.4.x to v1.5. - -### Upgrading to v1.4 - -The [instructions found here](https://velero.io/docs/v1.4/upgrade-to-1.4/) will assist you in upgrading from version v1.3.x to v1.4. - -### Upgrading to v1.3.1 - -The [instructions found here](https://velero.io/docs/v1.3.1/upgrade-to-1.3/) will assist you in upgrading from version v1.2.0 or v1.3.0 to v1.3.1. - -### Upgrading to v1.2.0 - -The [instructions found here](https://velero.io/docs/v1.2.0/upgrade-to-1.2/) will assist you in upgrading from version v1.0.0 or v1.1.0 to v1.2.0. - -### Upgrading to v1.1.0 - -The [instructions found here](https://velero.io/docs/v1.1.0/upgrade-to-1.1/) will assist you in upgrading from version v1.0.0 to v1.1.0. - -## Uninstall Velero - -Note: when you uninstall the Velero server, all backups remain untouched. - -### Using Helm 3 - -```bash -helm uninstall -n -``` -### Note -Since from velero v1.10.0, it has supported both Restic and Kopia to do file-system level backup and restore, some configuration that contains the keyword Restic is not suitable anymore, which means from chart version 3.0.0 is not backward compatible, and we've done a configure filed name validation. diff --git a/charts/velero/ci/test-values.yaml b/charts/velero/ci/test-values.yaml deleted file mode 100644 index 80d1fbfc4a..0000000000 --- a/charts/velero/ci/test-values.yaml +++ /dev/null @@ -1,119 +0,0 @@ -# Set provider name and backup storage location bucket name -configuration: - backupStorageLocation: - - name: default - bucket: velero-backups - default: true - provider: aws - credential: - name: test-credential - key: test-key - config: - region: us-east-1 - profile: us-east-1-profile - - name: backups-secondary - bucket: velero-backups - provider: aws - config: - region: us-west-1 - profile: us-west-1-profile - volumeSnapshotLocation: - - name: ebs-us-east-1 - provider: aws - config: - region: us-east-1 - - name: portworx-cloud - provider: portworx - config: - type: cloud - -schedules: - mybackup: - labels: - myenv: foo - schedule: "0 0 * * *" - template: - ttl: "240h" - includedNamespaces: - - foo - -# Set a service account so that the CRD clean up job has proper permissions to delete CRDs -serviceAccount: - server: - name: velero - -# The Velero server -# Annotations to Velero deployment -annotations: - annotation: velero - foo: bar - -# Labels to Velero deployment -labels: - label: velero - foo: bar - -# Annotations to Velero deployment's template -podAnnotations: - pod-annotation: velero - foo: bar - -# Labels to Velero deployment's template -podLabels: - pod-label: velero - foo: bar - -# Resources to Velero deployment -resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: 100m - memory: 128Mi - -# The node-agent daemonset -deployNodeAgent: true - -nodeAgent: - # Annotations to node-agent daemonset - annotations: - annotation: node-agent - foo: bar - # Labels to node-agent daemonset - labels: - label: node-agent - foo: bar - # Resources to node-agent daemonset - resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: 100m - memory: 128Mi - -# The kubectl upgrade/cleanup job -kubectl: - # Annotations to kubectl job - annotations: - annotation: kubectl - foo: bar - # Labels to kubectl job - labels: - label: kubectl - foo: bar - # Resources to kubectl job - resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: 100m - memory: 128Mi - -# Whether or not to clean up CustomResourceDefintions when deleting a release. -# Cleaning up CRDs will delete the BackupStorageLocation and VolumeSnapshotLocation instances, which would have to be reconfigured. -# Backup data in object storage will _not_ be deleted, however Backup instances in the Kubernetes API will. -# Always clean up CRDs in CI. -cleanUpCRDs: true diff --git a/charts/velero/crds/backuprepositories.yaml b/charts/velero/crds/backuprepositories.yaml deleted file mode 100644 index 2ac499be2c..0000000000 --- a/charts/velero/crds/backuprepositories.yaml +++ /dev/null @@ -1,98 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: backuprepositories.velero.io -spec: - group: velero.io - names: - kind: BackupRepository - listKind: BackupRepositoryList - plural: backuprepositories - singular: backuprepository - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .spec.repositoryType - name: Repository Type - type: string - name: v1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupRepositorySpec is the specification for a BackupRepository. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the BackupStorageLocation - that should contain this repository. - type: string - maintenanceFrequency: - description: MaintenanceFrequency is how often maintenance should - be run. - type: string - repositoryType: - description: RepositoryType indicates the type of the backend repository - enum: - - kopia - - restic - - "" - type: string - resticIdentifier: - description: ResticIdentifier is the full restic-compatible string - for identifying this repository. - type: string - volumeNamespace: - description: VolumeNamespace is the namespace this backup repository - contains pod volume backups for. - type: string - required: - - backupStorageLocation - - maintenanceFrequency - - resticIdentifier - - volumeNamespace - type: object - status: - description: BackupRepositoryStatus is the current status of a BackupRepository. - properties: - lastMaintenanceTime: - description: LastMaintenanceTime is the last time maintenance was - run. - format: date-time - nullable: true - type: string - message: - description: Message is a message about the current status of the - BackupRepository. - type: string - phase: - description: Phase is the current state of the BackupRepository. - enum: - - New - - Ready - - NotReady - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/backups.yaml b/charts/velero/crds/backups.yaml deleted file mode 100644 index d66826b021..0000000000 --- a/charts/velero/crds/backups.yaml +++ /dev/null @@ -1,632 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: backups.velero.io -spec: - group: velero.io - names: - kind: Backup - listKind: BackupList - plural: backups - singular: backup - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: Backup is a Velero resource that represents the capture of Kubernetes - cluster state at a point in time (API objects and associated volume state). - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupSpec defines the specification for a Velero backup. - properties: - csiSnapshotTimeout: - description: CSISnapshotTimeout specifies the time used to wait for - CSI VolumeSnapshot status turns to ReadyToUse during creation, before - returning error as timeout. The default value is 10 minute. - type: string - datamover: - description: DataMover specifies the data mover to be used by the - backup. If DataMover is "" or "velero", the built-in data mover - will be used. - type: string - defaultVolumesToFsBackup: - description: DefaultVolumesToFsBackup specifies whether pod volume - file system backup should be used for all volumes by default. - nullable: true - type: boolean - defaultVolumesToRestic: - description: "DefaultVolumesToRestic specifies whether restic should - be used to take a backup of all pod volumes by default. \n Deprecated: - this field is no longer used and will be removed entirely in future. - Use DefaultVolumesToFsBackup instead." - nullable: true - type: boolean - excludedClusterScopedResources: - description: ExcludedClusterScopedResources is a slice of cluster-scoped - resource type names to exclude from the backup. If set to "*", all - cluster-scoped resource types are excluded. The default value is - empty. - items: - type: string - nullable: true - type: array - excludedNamespaceScopedResources: - description: ExcludedNamespaceScopedResources is a slice of namespace-scoped - resource type names to exclude from the backup. If set to "*", all - namespace-scoped resource types are excluded. The default value - is empty. - items: - type: string - nullable: true - type: array - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that - are not included in the backup. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that are - not included in the backup. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - at different phases of the backup. - properties: - resources: - description: Resources are hooks that should be executed when - backing up individual instances of a resource. - items: - description: BackupResourceHookSpec defines one or more BackupResourceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces - to which this hook spec applies. If empty, it applies - to all namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to - which this hook spec applies. If empty, it applies to - all resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the resources - to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists - or DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - name: - description: Name is the name of this hook. - type: string - post: - description: PostHooks is a list of BackupResourceHooks - to execute after storing the item in the backup. These - are executed after all "additional items" from item actions - are processed. - items: - description: BackupResourceHook defines a hook for a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. If - not specified, the pod's first container is - used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - pre: - description: PreHooks is a list of BackupResourceHooks to - execute prior to storing the item in the backup. These - are executed before any "additional items" from item actions - are processed. - items: - description: BackupResourceHook defines a hook for a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. If - not specified, the pod's first container is - used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - required: - - name - type: object - nullable: true - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the backup. - nullable: true - type: boolean - includedClusterScopedResources: - description: IncludedClusterScopedResources is a slice of cluster-scoped - resource type names to include in the backup. If set to "*", all - cluster-scoped resource types are included. The default value is - empty, which means only related cluster-scoped resources are included. - items: - type: string - nullable: true - type: array - includedNamespaceScopedResources: - description: IncludedNamespaceScopedResources is a slice of namespace-scoped - resource type names to include in the backup. The default value - is "*". - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to include - objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the backup. If empty, all resources are included. - items: - type: string - nullable: true - type: array - itemOperationTimeout: - description: ItemOperationTimeout specifies the time used to wait - for asynchronous BackupItemAction operations The default value is - 1 hour. - type: string - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when adding individual objects to the backup. If empty or nil, all - objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the key - and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to - a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - metadata: - properties: - labels: - additionalProperties: - type: string - type: object - type: object - orLabelSelectors: - description: OrLabelSelectors is list of metav1.LabelSelector to filter - with when adding individual objects to the backup. If multiple provided - they will be joined by the OR operator. LabelSelector as well as - OrLabelSelectors cannot co-exist in backup request, only one of - them can be used. - items: - description: A label selector is a label query over a set of resources. - The result of matchLabels and matchExpressions are ANDed. An empty - label selector matches all objects. A null label selector matches - no objects. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the - key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - nullable: true - type: array - orderedResources: - additionalProperties: - type: string - description: OrderedResources specifies the backup order of resources - of specific Kind. The map key is the resource name and value is - a list of object names separated by commas. Each resource name has - format "namespace/objectname". For cluster resources, simply use - "objectname". - nullable: true - type: object - resourcePolicy: - description: ResourcePolicy specifies the referenced resource policies - that backup should follow - properties: - apiGroup: - description: APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in - the core API group. For any other third-party types, APIGroup - is required. - type: string - kind: - description: Kind is the type of resource being referenced - type: string - name: - description: Name is the name of resource being referenced - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - snapshotMoveData: - description: SnapshotMoveData specifies whether snapshot data should - be moved - nullable: true - type: boolean - snapshotVolumes: - description: SnapshotVolumes specifies whether to take snapshots of - any PV's referenced in the set of objects included in the Backup. - nullable: true - type: boolean - storageLocation: - description: StorageLocation is a string containing the name of a - BackupStorageLocation where the backup should be stored. - type: string - ttl: - description: TTL is a time.Duration-parseable string describing how - long the Backup should be retained for. - type: string - uploaderConfig: - description: UploaderConfig specifies the configuration for the uploader. - nullable: true - properties: - parallelFilesUpload: - description: ParallelFilesUpload is the number of files parallel - uploads to perform when using the uploader. - type: integer - type: object - volumeSnapshotLocations: - description: VolumeSnapshotLocations is a list containing names of - VolumeSnapshotLocations associated with this backup. - items: - type: string - type: array - type: object - status: - description: BackupStatus captures the current status of a Velero backup. - properties: - backupItemOperationsAttempted: - description: BackupItemOperationsAttempted is the total number of - attempted async BackupItemAction operations for this backup. - type: integer - backupItemOperationsCompleted: - description: BackupItemOperationsCompleted is the total number of - successfully completed async BackupItemAction operations for this - backup. - type: integer - backupItemOperationsFailed: - description: BackupItemOperationsFailed is the total number of async - BackupItemAction operations for this backup which ended with an - error. - type: integer - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - csiVolumeSnapshotsAttempted: - description: CSIVolumeSnapshotsAttempted is the total number of attempted - CSI VolumeSnapshots for this backup. - type: integer - csiVolumeSnapshotsCompleted: - description: CSIVolumeSnapshotsCompleted is the total number of successfully - completed CSI VolumeSnapshots for this backup. - type: integer - errors: - description: Errors is a count of all error messages that were generated - during execution of the backup. The actual errors are in the backup's - log file in object storage. - type: integer - expiration: - description: Expiration is when this Backup is eligible for garbage-collection. - format: date-time - nullable: true - type: string - failureReason: - description: FailureReason is an error that caused the entire backup - to fail. - type: string - formatVersion: - description: FormatVersion is the backup format version, including - major, minor, and patch version. - type: string - hookStatus: - description: HookStatus contains information about the status of the - hooks. - nullable: true - properties: - hooksAttempted: - description: HooksAttempted is the total number of attempted hooks - Specifically, HooksAttempted represents the number of hooks - that failed to execute and the number of hooks that executed - successfully. - type: integer - hooksFailed: - description: HooksFailed is the total number of hooks which ended - with an error - type: integer - type: object - phase: - description: Phase is the current state of the Backup. - enum: - - New - - FailedValidation - - InProgress - - WaitingForPluginOperations - - WaitingForPluginOperationsPartiallyFailed - - Finalizing - - FinalizingPartiallyFailed - - Completed - - PartiallyFailed - - Failed - - Deleting - type: string - progress: - description: Progress contains information about the backup's execution - progress. Note that this information is best-effort only -- if Velero - fails to update it during a backup for any reason, it may be inaccurate/stale. - nullable: true - properties: - itemsBackedUp: - description: ItemsBackedUp is the number of items that have actually - been written to the backup tarball so far. - type: integer - totalItems: - description: TotalItems is the total number of items to be backed - up. This number may change throughout the execution of the backup - due to plugins that return additional related items to back - up, the velero.io/exclude-from-backup label, and various other - filters that happen as items are processed. - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a backup was started. - Separate from CreationTimestamp, since that value changes on restores. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors - (if applicable). - items: - type: string - nullable: true - type: array - version: - description: 'Version is the backup format major version. Deprecated: - Please see FormatVersion' - type: integer - volumeSnapshotsAttempted: - description: VolumeSnapshotsAttempted is the total number of attempted - volume snapshots for this backup. - type: integer - volumeSnapshotsCompleted: - description: VolumeSnapshotsCompleted is the total number of successfully - completed volume snapshots for this backup. - type: integer - warnings: - description: Warnings is a count of all warning messages that were - generated during execution of the backup. The actual warnings are - in the backup's log file in object storage. - type: integer - type: object - type: object - served: true - storage: true diff --git a/charts/velero/crds/backupstoragelocations.yaml b/charts/velero/crds/backupstoragelocations.yaml deleted file mode 100644 index a4a27e1ca6..0000000000 --- a/charts/velero/crds/backupstoragelocations.yaml +++ /dev/null @@ -1,176 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: backupstoragelocations.velero.io -spec: - group: velero.io - names: - kind: BackupStorageLocation - listKind: BackupStorageLocationList - plural: backupstoragelocations - shortNames: - - bsl - singular: backupstoragelocation - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Backup Storage Location status such as Available/Unavailable - jsonPath: .status.phase - name: Phase - type: string - - description: LastValidationTime is the last time the backup store location was - validated - jsonPath: .status.lastValidationTime - name: Last Validated - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Default backup storage location - jsonPath: .spec.default - name: Default - type: boolean - name: v1 - schema: - openAPIV3Schema: - description: BackupStorageLocation is a location where Velero stores backup - objects - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupStorageLocationSpec defines the desired state of a - Velero BackupStorageLocation - properties: - accessMode: - description: AccessMode defines the permissions for the backup storage - location. - enum: - - ReadOnly - - ReadWrite - type: string - backupSyncPeriod: - description: BackupSyncPeriod defines how frequently to sync backup - API objects from object storage. A value of 0 disables sync. - nullable: true - type: string - config: - additionalProperties: - type: string - description: Config is for provider-specific configuration fields. - type: object - credential: - description: Credential contains the credential information intended - to be used with this location - properties: - key: - description: The key of the secret to select from. Must be a - valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - default: - description: Default indicates this location is the default backup - storage location. - type: boolean - objectStorage: - description: ObjectStorageLocation specifies the settings necessary - to connect to a provider's object storage. - properties: - bucket: - description: Bucket is the bucket to use for object storage. - type: string - caCert: - description: CACert defines a CA bundle to use when verifying - TLS connections to the provider. - format: byte - type: string - prefix: - description: Prefix is the path inside a bucket to use for Velero - storage. Optional. - type: string - required: - - bucket - type: object - provider: - description: Provider is the provider of the backup storage. - type: string - validationFrequency: - description: ValidationFrequency defines how frequently to validate - the corresponding object storage. A value of 0 disables validation. - nullable: true - type: string - required: - - objectStorage - - provider - type: object - status: - description: BackupStorageLocationStatus defines the observed state of - BackupStorageLocation - properties: - accessMode: - description: "AccessMode is an unused field. \n Deprecated: there - is now an AccessMode field on the Spec and this field will be removed - entirely as of v2.0." - enum: - - ReadOnly - - ReadWrite - type: string - lastSyncedRevision: - description: "LastSyncedRevision is the value of the `metadata/revision` - file in the backup storage location the last time the BSL's contents - were synced into the cluster. \n Deprecated: this field is no longer - updated or used for detecting changes to the location's contents - and will be removed entirely in v2.0." - type: string - lastSyncedTime: - description: LastSyncedTime is the last time the contents of the location - were synced into the cluster. - format: date-time - nullable: true - type: string - lastValidationTime: - description: LastValidationTime is the last time the backup store - location was validated the cluster. - format: date-time - nullable: true - type: string - message: - description: Message is a message about the backup storage location's - status. - type: string - phase: - description: Phase is the current state of the BackupStorageLocation. - enum: - - Available - - Unavailable - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/datadownloads.yaml b/charts/velero/crds/datadownloads.yaml deleted file mode 100644 index cc157aa334..0000000000 --- a/charts/velero/crds/datadownloads.yaml +++ /dev/null @@ -1,180 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: datadownloads.velero.io -spec: - group: velero.io - names: - kind: DataDownload - listKind: DataDownloadList - plural: datadownloads - singular: datadownload - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: DataDownload status such as New/InProgress - jsonPath: .status.phase - name: Status - type: string - - description: Time duration since this DataDownload was started - jsonPath: .status.startTimestamp - name: Started - type: date - - description: Completed bytes - format: int64 - jsonPath: .status.progress.bytesDone - name: Bytes Done - type: integer - - description: Total bytes - format: int64 - jsonPath: .status.progress.totalBytes - name: Total Bytes - type: integer - - description: Name of the Backup Storage Location where the backup data is stored - jsonPath: .spec.backupStorageLocation - name: Storage Location - type: string - - description: Time duration since this DataDownload was created - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Name of the node where the DataDownload is processed - jsonPath: .status.node - name: Node - type: string - name: v2alpha1 - schema: - openAPIV3Schema: - description: DataDownload acts as the protocol between data mover plugins - and data mover controller for the datamover restore operation - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataDownloadSpec is the specification for a DataDownload. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the backup repository is stored. - type: string - cancel: - description: Cancel indicates request to cancel the ongoing DataDownload. - It can be set when the DataDownload is in InProgress phase - type: boolean - dataMoverConfig: - additionalProperties: - type: string - description: DataMoverConfig is for data-mover-specific configuration - fields. - type: object - datamover: - description: DataMover specifies the data mover to be used by the - backup. If DataMover is "" or "velero", the built-in data mover - will be used. - type: string - operationTimeout: - description: OperationTimeout specifies the time used to wait internal - operations, before returning error as timeout. - type: string - snapshotID: - description: SnapshotID is the ID of the Velero backup snapshot to - be restored from. - type: string - sourceNamespace: - description: SourceNamespace is the original namespace where the volume - is backed up from. It may be different from SourcePVC's namespace - if namespace is remapped during restore. - type: string - targetVolume: - description: TargetVolume is the information of the target PVC and - PV. - properties: - namespace: - description: Namespace is the target namespace - type: string - pv: - description: PV is the name of the target PV that is created by - Velero restore - type: string - pvc: - description: PVC is the name of the target PVC that is created - by Velero restore - type: string - required: - - namespace - - pv - - pvc - type: object - required: - - backupStorageLocation - - operationTimeout - - snapshotID - - sourceNamespace - - targetVolume - type: object - status: - description: DataDownloadStatus is the current status of a DataDownload. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a restore was completed. - Completion time is recorded even on failed restores. The server's - time is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the DataDownload's status. - type: string - node: - description: Node is name of the node where the DataDownload is processed. - type: string - phase: - description: Phase is the current state of the DataDownload. - enum: - - New - - Accepted - - Prepared - - InProgress - - Canceling - - Canceled - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the snapshot - and the current number of restored bytes. This can be used to display - progress information about the restore operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a restore was started. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/datauploads.yaml b/charts/velero/crds/datauploads.yaml deleted file mode 100644 index 2226d62b94..0000000000 --- a/charts/velero/crds/datauploads.yaml +++ /dev/null @@ -1,204 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: datauploads.velero.io -spec: - group: velero.io - names: - kind: DataUpload - listKind: DataUploadList - plural: datauploads - singular: dataupload - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: DataUpload status such as New/InProgress - jsonPath: .status.phase - name: Status - type: string - - description: Time duration since this DataUpload was started - jsonPath: .status.startTimestamp - name: Started - type: date - - description: Completed bytes - format: int64 - jsonPath: .status.progress.bytesDone - name: Bytes Done - type: integer - - description: Total bytes - format: int64 - jsonPath: .status.progress.totalBytes - name: Total Bytes - type: integer - - description: Name of the Backup Storage Location where this backup should be - stored - jsonPath: .spec.backupStorageLocation - name: Storage Location - type: string - - description: Time duration since this DataUpload was created - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Name of the node where the DataUpload is processed - jsonPath: .status.node - name: Node - type: string - name: v2alpha1 - schema: - openAPIV3Schema: - description: DataUpload acts as the protocol between data mover plugins and - data mover controller for the datamover backup operation - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DataUploadSpec is the specification for a DataUpload. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the backup repository is stored. - type: string - cancel: - description: Cancel indicates request to cancel the ongoing DataUpload. - It can be set when the DataUpload is in InProgress phase - type: boolean - csiSnapshot: - description: If SnapshotType is CSI, CSISnapshot provides the information - of the CSI snapshot. - nullable: true - properties: - snapshotClass: - description: SnapshotClass is the name of the snapshot class that - the volume snapshot is created with - type: string - storageClass: - description: StorageClass is the name of the storage class of - the PVC that the volume snapshot is created from - type: string - volumeSnapshot: - description: VolumeSnapshot is the name of the volume snapshot - to be backed up - type: string - required: - - storageClass - - volumeSnapshot - type: object - dataMoverConfig: - additionalProperties: - type: string - description: DataMoverConfig is for data-mover-specific configuration - fields. - nullable: true - type: object - datamover: - description: DataMover specifies the data mover to be used by the - backup. If DataMover is "" or "velero", the built-in data mover - will be used. - type: string - operationTimeout: - description: OperationTimeout specifies the time used to wait internal - operations, before returning error as timeout. - type: string - snapshotType: - description: SnapshotType is the type of the snapshot to be backed - up. - type: string - sourceNamespace: - description: SourceNamespace is the original namespace where the volume - is backed up from. It is the same namespace for SourcePVC and CSI - namespaced objects. - type: string - sourcePVC: - description: SourcePVC is the name of the PVC which the snapshot is - taken for. - type: string - required: - - backupStorageLocation - - operationTimeout - - snapshotType - - sourceNamespace - - sourcePVC - type: object - status: - description: DataUploadStatus is the current status of a DataUpload. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - dataMoverResult: - additionalProperties: - type: string - description: DataMoverResult stores data-mover-specific information - as a result of the DataUpload. - nullable: true - type: object - message: - description: Message is a message about the DataUpload's status. - type: string - node: - description: Node is name of the node where the DataUpload is processed. - type: string - path: - description: Path is the full path of the snapshot volume being backed - up. - type: string - phase: - description: Phase is the current state of the DataUpload. - enum: - - New - - Accepted - - Prepared - - InProgress - - Canceling - - Canceled - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the volume - and the current number of backed up bytes. This can be used to display - progress information about the backup operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - snapshotID: - description: SnapshotID is the identifier for the snapshot in the - backup repository. - type: string - startTimestamp: - description: StartTimestamp records the time a backup was started. - Separate from CreationTimestamp, since that value changes on restores. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/deletebackuprequests.yaml b/charts/velero/crds/deletebackuprequests.yaml deleted file mode 100644 index c7be912151..0000000000 --- a/charts/velero/crds/deletebackuprequests.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: deletebackuprequests.velero.io -spec: - group: velero.io - names: - kind: DeleteBackupRequest - listKind: DeleteBackupRequestList - plural: deletebackuprequests - singular: deletebackuprequest - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The name of the backup to be deleted - jsonPath: .spec.backupName - name: BackupName - type: string - - description: The status of the deletion request - jsonPath: .status.phase - name: Status - type: string - name: v1 - schema: - openAPIV3Schema: - description: DeleteBackupRequest is a request to delete one or more backups. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DeleteBackupRequestSpec is the specification for which backups - to delete. - properties: - backupName: - type: string - required: - - backupName - type: object - status: - description: DeleteBackupRequestStatus is the current status of a DeleteBackupRequest. - properties: - errors: - description: Errors contains any errors that were encountered during - the deletion process. - items: - type: string - nullable: true - type: array - phase: - description: Phase is the current state of the DeleteBackupRequest. - enum: - - New - - InProgress - - Processed - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/downloadrequests.yaml b/charts/velero/crds/downloadrequests.yaml deleted file mode 100644 index 51809b98f9..0000000000 --- a/charts/velero/crds/downloadrequests.yaml +++ /dev/null @@ -1,93 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: downloadrequests.velero.io -spec: - group: velero.io - names: - kind: DownloadRequest - listKind: DownloadRequestList - plural: downloadrequests - singular: downloadrequest - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: DownloadRequest is a request to download an artifact from backup - object storage, such as a backup log file. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DownloadRequestSpec is the specification for a download request. - properties: - target: - description: Target is what to download (e.g. logs for a backup). - properties: - kind: - description: Kind is the type of file to download. - enum: - - BackupLog - - BackupContents - - BackupVolumeSnapshots - - BackupItemOperations - - BackupResourceList - - BackupResults - - RestoreLog - - RestoreResults - - RestoreResourceList - - RestoreItemOperations - - CSIBackupVolumeSnapshots - - CSIBackupVolumeSnapshotContents - - BackupVolumeInfos - type: string - name: - description: Name is the name of the Kubernetes resource with - which the file is associated. - type: string - required: - - kind - - name - type: object - required: - - target - type: object - status: - description: DownloadRequestStatus is the current status of a DownloadRequest. - properties: - downloadURL: - description: DownloadURL contains the pre-signed URL for the target - file. - type: string - expiration: - description: Expiration is when this DownloadRequest expires and can - be deleted by the system. - format: date-time - nullable: true - type: string - phase: - description: Phase is the current state of the DownloadRequest. - enum: - - New - - Processed - type: string - type: object - type: object - served: true - storage: true diff --git a/charts/velero/crds/podvolumebackups.yaml b/charts/velero/crds/podvolumebackups.yaml deleted file mode 100644 index 2830c5a470..0000000000 --- a/charts/velero/crds/podvolumebackups.yaml +++ /dev/null @@ -1,205 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: podvolumebackups.velero.io -spec: - group: velero.io - names: - kind: PodVolumeBackup - listKind: PodVolumeBackupList - plural: podvolumebackups - singular: podvolumebackup - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Pod Volume Backup status such as New/InProgress - jsonPath: .status.phase - name: Status - type: string - - description: Time when this backup was started - jsonPath: .status.startTimestamp - name: Created - type: date - - description: Namespace of the pod containing the volume to be backed up - jsonPath: .spec.pod.namespace - name: Namespace - type: string - - description: Name of the pod containing the volume to be backed up - jsonPath: .spec.pod.name - name: Pod - type: string - - description: Name of the volume to be backed up - jsonPath: .spec.volume - name: Volume - type: string - - description: The type of the uploader to handle data transfer - jsonPath: .spec.uploaderType - name: Uploader Type - type: string - - description: Name of the Backup Storage Location where this backup should be - stored - jsonPath: .spec.backupStorageLocation - name: Storage Location - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PodVolumeBackupSpec is the specification for a PodVolumeBackup. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the backup repository is stored. - type: string - node: - description: Node is the name of the node that the Pod is running - on. - type: string - pod: - description: Pod is a reference to the pod containing the volume to - be backed up. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - x-kubernetes-map-type: atomic - repoIdentifier: - description: RepoIdentifier is the backup repository identifier. - type: string - tags: - additionalProperties: - type: string - description: Tags are a map of key-value pairs that should be applied - to the volume backup as tags. - type: object - uploaderSettings: - additionalProperties: - type: string - description: UploaderSettings are a map of key-value pairs that should - be applied to the uploader configuration. - nullable: true - type: object - uploaderType: - description: UploaderType is the type of the uploader to handle the - data transfer. - enum: - - kopia - - restic - - "" - type: string - volume: - description: Volume is the name of the volume within the Pod to be - backed up. - type: string - required: - - backupStorageLocation - - node - - pod - - repoIdentifier - - volume - type: object - status: - description: PodVolumeBackupStatus is the current status of a PodVolumeBackup. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the pod volume backup's status. - type: string - path: - description: Path is the full path within the controller pod being - backed up. - type: string - phase: - description: Phase is the current state of the PodVolumeBackup. - enum: - - New - - InProgress - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the volume - and the current number of backed up bytes. This can be used to display - progress information about the backup operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - snapshotID: - description: SnapshotID is the identifier for the snapshot of the - pod volume. - type: string - startTimestamp: - description: StartTimestamp records the time a backup was started. - Separate from CreationTimestamp, since that value changes on restores. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/podvolumerestores.yaml b/charts/velero/crds/podvolumerestores.yaml deleted file mode 100644 index 4b74e72e51..0000000000 --- a/charts/velero/crds/podvolumerestores.yaml +++ /dev/null @@ -1,194 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: podvolumerestores.velero.io -spec: - group: velero.io - names: - kind: PodVolumeRestore - listKind: PodVolumeRestoreList - plural: podvolumerestores - singular: podvolumerestore - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Namespace of the pod containing the volume to be restored - jsonPath: .spec.pod.namespace - name: Namespace - type: string - - description: Name of the pod containing the volume to be restored - jsonPath: .spec.pod.name - name: Pod - type: string - - description: The type of the uploader to handle data transfer - jsonPath: .spec.uploaderType - name: Uploader Type - type: string - - description: Name of the volume to be restored - jsonPath: .spec.volume - name: Volume - type: string - - description: Pod Volume Restore status such as New/InProgress - jsonPath: .status.phase - name: Status - type: string - - description: Pod Volume Restore status such as New/InProgress - format: int64 - jsonPath: .status.progress.totalBytes - name: TotalBytes - type: integer - - description: Pod Volume Restore status such as New/InProgress - format: int64 - jsonPath: .status.progress.bytesDone - name: BytesDone - type: integer - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PodVolumeRestoreSpec is the specification for a PodVolumeRestore. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the backup repository is stored. - type: string - pod: - description: Pod is a reference to the pod containing the volume to - be restored. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - x-kubernetes-map-type: atomic - repoIdentifier: - description: RepoIdentifier is the backup repository identifier. - type: string - snapshotID: - description: SnapshotID is the ID of the volume snapshot to be restored. - type: string - sourceNamespace: - description: SourceNamespace is the original namespace for namaspace - mapping. - type: string - uploaderSettings: - additionalProperties: - type: string - description: UploaderSettings are a map of key-value pairs that should - be applied to the uploader configuration. - nullable: true - type: object - uploaderType: - description: UploaderType is the type of the uploader to handle the - data transfer. - enum: - - kopia - - restic - - "" - type: string - volume: - description: Volume is the name of the volume within the Pod to be - restored. - type: string - required: - - backupStorageLocation - - pod - - repoIdentifier - - snapshotID - - sourceNamespace - - volume - type: object - status: - description: PodVolumeRestoreStatus is the current status of a PodVolumeRestore. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a restore was completed. - Completion time is recorded even on failed restores. The server's - time is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the pod volume restore's status. - type: string - phase: - description: Phase is the current state of the PodVolumeRestore. - enum: - - New - - InProgress - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the snapshot - and the current number of restored bytes. This can be used to display - progress information about the restore operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a restore was started. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/restores.yaml b/charts/velero/crds/restores.yaml deleted file mode 100644 index beb3f4c195..0000000000 --- a/charts/velero/crds/restores.yaml +++ /dev/null @@ -1,534 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: restores.velero.io -spec: - group: velero.io - names: - kind: Restore - listKind: RestoreList - plural: restores - singular: restore - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: Restore is a Velero resource that represents the application - of resources from a Velero backup to a target Kubernetes cluster. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: RestoreSpec defines the specification for a Velero restore. - properties: - backupName: - description: BackupName is the unique name of the Velero backup to - restore from. - type: string - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that - are not included in the restore. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that are - not included in the restore. - items: - type: string - nullable: true - type: array - existingResourcePolicy: - description: ExistingResourcePolicy specifies the restore behavior - for the Kubernetes resource to be restored - nullable: true - type: string - hooks: - description: Hooks represent custom behaviors that should be executed - during or post restore. - properties: - resources: - items: - description: RestoreResourceHookSpec defines one or more RestoreResrouceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces - to which this hook spec applies. If empty, it applies - to all namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to - which this hook spec applies. If empty, it applies to - all resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the resources - to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists - or DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - name: - description: Name is the name of this hook. - type: string - postHooks: - description: PostHooks is a list of RestoreResourceHooks - to execute during and after restoring a resource. - items: - description: RestoreResourceHook defines a restore hook - for a resource. - properties: - exec: - description: Exec defines an exec restore hook. - properties: - command: - description: Command is the command and arguments - to execute from within a container after a pod - has been restored. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. If - not specified, the pod's first container is - used. - type: string - execTimeout: - description: ExecTimeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - waitForReady: - description: WaitForReady ensures command will - be launched when container is Ready instead - of Running. - nullable: true - type: boolean - waitTimeout: - description: WaitTimeout defines the maximum amount - of time Velero should wait for the container - to be Ready before attempting to run the command. - type: string - required: - - command - type: object - init: - description: Init defines an init restore hook. - properties: - initContainers: - description: InitContainers is list of init containers - to be added to a pod during its restore. - items: - type: object - x-kubernetes-preserve-unknown-fields: true - type: array - x-kubernetes-preserve-unknown-fields: true - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the initContainers - to complete. - type: string - type: object - type: object - type: array - required: - - name - type: object - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the restore. If - null, defaults to true. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to include - objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the restore. If empty, all resources in the backup are included. - items: - type: string - nullable: true - type: array - itemOperationTimeout: - description: ItemOperationTimeout specifies the time used to wait - for RestoreItemAction operations The default value is 1 hour. - type: string - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when restoring individual objects from the backup. If empty or nil, - all objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the key - and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to - a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - namespaceMapping: - additionalProperties: - type: string - description: NamespaceMapping is a map of source namespace names to - target namespace names to restore into. Any source namespaces not - included in the map will be restored into namespaces of the same - name. - type: object - orLabelSelectors: - description: OrLabelSelectors is list of metav1.LabelSelector to filter - with when restoring individual objects from the backup. If multiple - provided they will be joined by the OR operator. LabelSelector as - well as OrLabelSelectors cannot co-exist in restore request, only - one of them can be used - items: - description: A label selector is a label query over a set of resources. - The result of matchLabels and matchExpressions are ANDed. An empty - label selector matches all objects. A null label selector matches - no objects. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the - key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - nullable: true - type: array - preserveNodePorts: - description: PreserveNodePorts specifies whether to restore old nodePorts - from backup. - nullable: true - type: boolean - resourceModifier: - description: ResourceModifier specifies the reference to JSON resource - patches that should be applied to resources before restoration. - nullable: true - properties: - apiGroup: - description: APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in - the core API group. For any other third-party types, APIGroup - is required. - type: string - kind: - description: Kind is the type of resource being referenced - type: string - name: - description: Name is the name of resource being referenced - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - restorePVs: - description: RestorePVs specifies whether to restore all included - PVs from snapshot - nullable: true - type: boolean - restoreStatus: - description: RestoreStatus specifies which resources we should restore - the status field. If nil, no objects are included. Optional. - nullable: true - properties: - excludedResources: - description: ExcludedResources specifies the resources to which - will not restore the status. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to which - will restore the status. If empty, it applies to all resources. - items: - type: string - nullable: true - type: array - type: object - scheduleName: - description: ScheduleName is the unique name of the Velero schedule - to restore from. If specified, and BackupName is empty, Velero will - restore from the most recent successful backup created from this - schedule. - type: string - uploaderConfig: - description: UploaderConfig specifies the configuration for the restore. - nullable: true - properties: - writeSparseFiles: - description: WriteSparseFiles is a flag to indicate whether write - files sparsely or not. - nullable: true - type: boolean - type: object - required: - - backupName - type: object - status: - description: RestoreStatus captures the current status of a Velero restore - properties: - completionTimestamp: - description: CompletionTimestamp records the time the restore operation - was completed. Completion time is recorded even on failed restore. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - errors: - description: Errors is a count of all error messages that were generated - during execution of the restore. The actual errors are stored in - object storage. - type: integer - failureReason: - description: FailureReason is an error that caused the entire restore - to fail. - type: string - hookStatus: - description: HookStatus contains information about the status of the - hooks. - nullable: true - properties: - hooksAttempted: - description: HooksAttempted is the total number of attempted hooks - Specifically, HooksAttempted represents the number of hooks - that failed to execute and the number of hooks that executed - successfully. - type: integer - hooksFailed: - description: HooksFailed is the total number of hooks which ended - with an error - type: integer - type: object - phase: - description: Phase is the current state of the Restore - enum: - - New - - FailedValidation - - InProgress - - WaitingForPluginOperations - - WaitingForPluginOperationsPartiallyFailed - - Completed - - PartiallyFailed - - Failed - type: string - progress: - description: Progress contains information about the restore's execution - progress. Note that this information is best-effort only -- if Velero - fails to update it during a restore for any reason, it may be inaccurate/stale. - nullable: true - properties: - itemsRestored: - description: ItemsRestored is the number of items that have actually - been restored so far - type: integer - totalItems: - description: TotalItems is the total number of items to be restored. - This number may change throughout the execution of the restore - due to plugins that return additional related items to restore - type: integer - type: object - restoreItemOperationsAttempted: - description: RestoreItemOperationsAttempted is the total number of - attempted async RestoreItemAction operations for this restore. - type: integer - restoreItemOperationsCompleted: - description: RestoreItemOperationsCompleted is the total number of - successfully completed async RestoreItemAction operations for this - restore. - type: integer - restoreItemOperationsFailed: - description: RestoreItemOperationsFailed is the total number of async - RestoreItemAction operations for this restore which ended with an - error. - type: integer - startTimestamp: - description: StartTimestamp records the time the restore operation - was started. The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors - (if applicable) - items: - type: string - nullable: true - type: array - warnings: - description: Warnings is a count of all warning messages that were - generated during execution of the restore. The actual warnings are - stored in object storage. - type: integer - type: object - type: object - served: true - storage: true diff --git a/charts/velero/crds/schedules.yaml b/charts/velero/crds/schedules.yaml deleted file mode 100644 index 5bfa8a65de..0000000000 --- a/charts/velero/crds/schedules.yaml +++ /dev/null @@ -1,586 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: schedules.velero.io -spec: - group: velero.io - names: - kind: Schedule - listKind: ScheduleList - plural: schedules - singular: schedule - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Status of the schedule - jsonPath: .status.phase - name: Status - type: string - - description: A Cron expression defining when to run the Backup - jsonPath: .spec.schedule - name: Schedule - type: string - - description: The last time a Backup was run for this schedule - jsonPath: .status.lastBackup - name: LastBackup - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .spec.paused - name: Paused - type: boolean - name: v1 - schema: - openAPIV3Schema: - description: Schedule is a Velero resource that represents a pre-scheduled - or periodic Backup that should be run. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ScheduleSpec defines the specification for a Velero schedule - properties: - paused: - description: Paused specifies whether the schedule is paused or not - type: boolean - schedule: - description: Schedule is a Cron expression defining when to run the - Backup. - type: string - skipImmediately: - description: 'SkipImmediately specifies whether to skip backup if - schedule is due immediately from `schedule.status.lastBackup` timestamp - when schedule is unpaused or if schedule is new. If true, backup - will be skipped immediately when schedule is unpaused if it is due - based on .Status.LastBackupTimestamp or schedule is new, and will - run at next schedule time. If false, backup will not be skipped - immediately when schedule is unpaused, but will run at next schedule - time. If empty, will follow server configuration (default: false).' - type: boolean - template: - description: Template is the definition of the Backup to be run on - the provided schedule - properties: - csiSnapshotTimeout: - description: CSISnapshotTimeout specifies the time used to wait - for CSI VolumeSnapshot status turns to ReadyToUse during creation, - before returning error as timeout. The default value is 10 minute. - type: string - datamover: - description: DataMover specifies the data mover to be used by - the backup. If DataMover is "" or "velero", the built-in data - mover will be used. - type: string - defaultVolumesToFsBackup: - description: DefaultVolumesToFsBackup specifies whether pod volume - file system backup should be used for all volumes by default. - nullable: true - type: boolean - defaultVolumesToRestic: - description: "DefaultVolumesToRestic specifies whether restic - should be used to take a backup of all pod volumes by default. - \n Deprecated: this field is no longer used and will be removed - entirely in future. Use DefaultVolumesToFsBackup instead." - nullable: true - type: boolean - excludedClusterScopedResources: - description: ExcludedClusterScopedResources is a slice of cluster-scoped - resource type names to exclude from the backup. If set to "*", - all cluster-scoped resource types are excluded. The default - value is empty. - items: - type: string - nullable: true - type: array - excludedNamespaceScopedResources: - description: ExcludedNamespaceScopedResources is a slice of namespace-scoped - resource type names to exclude from the backup. If set to "*", - all namespace-scoped resource types are excluded. The default - value is empty. - items: - type: string - nullable: true - type: array - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces - that are not included in the backup. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that - are not included in the backup. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - at different phases of the backup. - properties: - resources: - description: Resources are hooks that should be executed when - backing up individual instances of a resource. - items: - description: BackupResourceHookSpec defines one or more - BackupResourceHooks that should be executed based on the - rules defined for namespaces, resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces - to which this hook spec applies. If empty, it applies - to all namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources - to which this hook spec applies. If empty, it applies - to all resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the - resources to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: A label selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If the - operator is Exists or DoesNotExist, the - values array must be empty. This array is - replaced during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". The - requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - name: - description: Name is the name of this hook. - type: string - post: - description: PostHooks is a list of BackupResourceHooks - to execute after storing the item in the backup. These - are executed after all "additional items" from item - actions are processed. - items: - description: BackupResourceHook defines a hook for - a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in - the pod where the command should be executed. - If not specified, the pod's first container - is used. - type: string - onError: - description: OnError specifies how Velero - should behave if it encounters an error - executing this hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook - to complete before considering the execution - a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - pre: - description: PreHooks is a list of BackupResourceHooks - to execute prior to storing the item in the backup. - These are executed before any "additional items" from - item actions are processed. - items: - description: BackupResourceHook defines a hook for - a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in - the pod where the command should be executed. - If not specified, the pod's first container - is used. - type: string - onError: - description: OnError specifies how Velero - should behave if it encounters an error - executing this hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook - to complete before considering the execution - a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - required: - - name - type: object - nullable: true - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the backup. - nullable: true - type: boolean - includedClusterScopedResources: - description: IncludedClusterScopedResources is a slice of cluster-scoped - resource type names to include in the backup. If set to "*", - all cluster-scoped resource types are included. The default - value is empty, which means only related cluster-scoped resources - are included. - items: - type: string - nullable: true - type: array - includedNamespaceScopedResources: - description: IncludedNamespaceScopedResources is a slice of namespace-scoped - resource type names to include in the backup. The default value - is "*". - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names - to include objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to - include in the backup. If empty, all resources are included. - items: - type: string - nullable: true - type: array - itemOperationTimeout: - description: ItemOperationTimeout specifies the time used to wait - for asynchronous BackupItemAction operations The default value - is 1 hour. - type: string - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter - with when adding individual objects to the backup. If empty - or nil, all objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If - the operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced - during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A - single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is "key", - the operator is "In", and the values array contains only - "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - metadata: - properties: - labels: - additionalProperties: - type: string - type: object - type: object - orLabelSelectors: - description: OrLabelSelectors is list of metav1.LabelSelector - to filter with when adding individual objects to the backup. - If multiple provided they will be joined by the OR operator. - LabelSelector as well as OrLabelSelectors cannot co-exist in - backup request, only one of them can be used. - items: - description: A label selector is a label query over a set of - resources. The result of matchLabels and matchExpressions - are ANDed. An empty label selector matches all objects. A - null label selector matches no objects. - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. This - array is replaced during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - nullable: true - type: array - orderedResources: - additionalProperties: - type: string - description: OrderedResources specifies the backup order of resources - of specific Kind. The map key is the resource name and value - is a list of object names separated by commas. Each resource - name has format "namespace/objectname". For cluster resources, - simply use "objectname". - nullable: true - type: object - resourcePolicy: - description: ResourcePolicy specifies the referenced resource - policies that backup should follow - properties: - apiGroup: - description: APIGroup is the group for the resource being - referenced. If APIGroup is not specified, the specified - Kind must be in the core API group. For any other third-party - types, APIGroup is required. - type: string - kind: - description: Kind is the type of resource being referenced - type: string - name: - description: Name is the name of resource being referenced - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - snapshotMoveData: - description: SnapshotMoveData specifies whether snapshot data - should be moved - nullable: true - type: boolean - snapshotVolumes: - description: SnapshotVolumes specifies whether to take snapshots - of any PV's referenced in the set of objects included in the - Backup. - nullable: true - type: boolean - storageLocation: - description: StorageLocation is a string containing the name of - a BackupStorageLocation where the backup should be stored. - type: string - ttl: - description: TTL is a time.Duration-parseable string describing - how long the Backup should be retained for. - type: string - uploaderConfig: - description: UploaderConfig specifies the configuration for the - uploader. - nullable: true - properties: - parallelFilesUpload: - description: ParallelFilesUpload is the number of files parallel - uploads to perform when using the uploader. - type: integer - type: object - volumeSnapshotLocations: - description: VolumeSnapshotLocations is a list containing names - of VolumeSnapshotLocations associated with this backup. - items: - type: string - type: array - type: object - useOwnerReferencesInBackup: - description: UseOwnerReferencesBackup specifies whether to use OwnerReferences - on backups created by this Schedule. - nullable: true - type: boolean - required: - - schedule - - template - type: object - status: - description: ScheduleStatus captures the current state of a Velero schedule - properties: - lastBackup: - description: LastBackup is the last time a Backup was run for this - Schedule schedule - format: date-time - nullable: true - type: string - lastSkipped: - description: LastSkipped is the last time a Schedule was skipped - format: date-time - nullable: true - type: string - phase: - description: Phase is the current phase of the Schedule - enum: - - New - - Enabled - - FailedValidation - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors - (if applicable) - items: - type: string - type: array - type: object - type: object - served: true - storage: true - subresources: {} diff --git a/charts/velero/crds/serverstatusrequests.yaml b/charts/velero/crds/serverstatusrequests.yaml deleted file mode 100644 index 167494b775..0000000000 --- a/charts/velero/crds/serverstatusrequests.yaml +++ /dev/null @@ -1,79 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: serverstatusrequests.velero.io -spec: - group: velero.io - names: - kind: ServerStatusRequest - listKind: ServerStatusRequestList - plural: serverstatusrequests - shortNames: - - ssr - singular: serverstatusrequest - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: ServerStatusRequest is a request to access current status information - about the Velero server. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServerStatusRequestSpec is the specification for a ServerStatusRequest. - type: object - status: - description: ServerStatusRequestStatus is the current status of a ServerStatusRequest. - properties: - phase: - description: Phase is the current lifecycle phase of the ServerStatusRequest. - enum: - - New - - Processed - type: string - plugins: - description: Plugins list information about the plugins running on - the Velero server - items: - description: PluginInfo contains attributes of a Velero plugin - properties: - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - nullable: true - type: array - processedTimestamp: - description: ProcessedTimestamp is when the ServerStatusRequest was - processed by the ServerStatusRequestController. - format: date-time - nullable: true - type: string - serverVersion: - description: ServerVersion is the Velero server version. - type: string - type: object - type: object - served: true - storage: true diff --git a/charts/velero/crds/volumesnapshotlocations.yaml b/charts/velero/crds/volumesnapshotlocations.yaml deleted file mode 100644 index 70a8c6aaf8..0000000000 --- a/charts/velero/crds/volumesnapshotlocations.yaml +++ /dev/null @@ -1,87 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - labels: - component: velero - annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - name: volumesnapshotlocations.velero.io -spec: - group: velero.io - names: - kind: VolumeSnapshotLocation - listKind: VolumeSnapshotLocationList - plural: volumesnapshotlocations - shortNames: - - vsl - singular: volumesnapshotlocation - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: VolumeSnapshotLocation is a location where Velero stores volume - snapshots. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: VolumeSnapshotLocationSpec defines the specification for - a Velero VolumeSnapshotLocation. - properties: - config: - additionalProperties: - type: string - description: Config is for provider-specific configuration fields. - type: object - credential: - description: Credential contains the credential information intended - to be used with this location - properties: - key: - description: The key of the secret to select from. Must be a - valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - provider: - description: Provider is the provider of the volume storage. - type: string - required: - - provider - type: object - status: - description: VolumeSnapshotLocationStatus describes the current status - of a Velero VolumeSnapshotLocation. - properties: - phase: - description: VolumeSnapshotLocationPhase is the lifecycle phase of - a Velero VolumeSnapshotLocation. - enum: - - Available - - Unavailable - type: string - type: object - type: object - served: true - storage: true diff --git a/charts/velero/templates/NOTES.txt b/charts/velero/templates/NOTES.txt deleted file mode 100644 index 940c6be9b0..0000000000 --- a/charts/velero/templates/NOTES.txt +++ /dev/null @@ -1,79 +0,0 @@ -Check that the velero is up and running: - - kubectl get deployment/{{ include "velero.fullname" . }} -n {{ .Release.Namespace }} - -Check that the secret has been created: - - kubectl get secret/{{ include "velero.fullname" . }} -n {{ .Release.Namespace }} - -Once velero server is up and running you need the client before you can use it -1. wget https://github.com/vmware-tanzu/velero/releases/download/{{ .Values.image.tag }}/velero-{{ .Values.image.tag }}-darwin-amd64.tar.gz -2. tar -xvf velero-{{ .Values.image.tag }}-darwin-amd64.tar.gz -C velero-client - -More info on the official site: https://velero.io/docs - -{{- /* - Breaking changes. -*/}} - -{{- $breaking := "" }} -{{- $breaking_title := "\n" }} -{{- $breaking_title = print $breaking_title "\n#################################################################################" }} -{{- $breaking_title = print $breaking_title "\n###### BREAKING: The config values passed contained no longer accepted #####" }} -{{- $breaking_title = print $breaking_title "\n###### options. See the messages below for more details. #####" }} -{{- $breaking_title = print $breaking_title "\n###### #####" }} -{{- $breaking_title = print $breaking_title "\n###### To verify your updated config is accepted, you can use #####" }} -{{- $breaking_title = print $breaking_title "\n###### the `helm template` command. #####" }} -{{- $breaking_title = print $breaking_title "\n#################################################################################" }} - -{{- if typeIs "map[string]interface {}" .Values.configuration.backupStorageLocation }} -{{- $breaking = print $breaking "\n\nERROR: Please make .configuration.backupStorageLocation from map to slice" }} -{{- end }} - -{{- if typeIs "map[string]interface {}" .Values.configuration.volumeSnapshotLocation }} -{{- $breaking = print $breaking "\n\nERROR: Please make .configuration.volumeSnapshotLocation from map to slice" }} -{{- end }} - -{{- if hasKey .Values.configuration "provider" }} -{{- $breaking = print $breaking "\n\nREMOVED: .configuration.provider has been removed, instead each backupStorageLocation and volumeSnapshotLocation has a provider configured" }} -{{- end }} - -{{- if hasKey .Values "resticTimeout" }} -{{- $breaking = print $breaking "\n\nREMOVED: resticTimeout has been removed, and it is named fsBackupTimeout" }} -{{- end }} - -{{- if hasKey .Values "defaultVolumesToRestic" }} -{{- $breaking = print $breaking "\n\nREMOVED: defaultVolumesToRestic has been removed, and it is named defaultVolumesToFsBackup" }} -{{- end }} - -{{- if hasKey .Values "defaultResticPruneFrequency" }} -{{- $breaking = print $breaking "\n\nREMOVED: defaultResticPruneFrequency has been removed, and it is named defaultRepoMaintainFrequency" }} -{{- end }} - -{{- if hasKey .Values "deployRestic" }} -{{- $breaking = print $breaking "\n\nREMOVED: deployRestic has been removed, and it is named deployNodeAgent" }} -{{- end }} - -{{- if hasKey .Values "restic" }} -{{- $breaking = print $breaking "\n\nREMOVED: restic has been removed, and it is named nodeAgent" }} -{{- end }} - -{{- if hasKey .Values.configMaps "restic-restore-action-config" }} -{{- $breaking = print $breaking "\n\nREMOVED: restic-restore-action-config has been removed, and it is named fs-restore-action-config" }} -{{- end }} - -{{- range $key, $value := .Values.configMaps }} -{{- eq $key "fs-restore-action-config" }} -{{- if hasKey $value.labels "velero.io/restic" }} -{{- $breaking = print $breaking "\n\nREMOVED: velero.io/restic has been removed, and it is named velero.io/pod-volume-restore" }} -{{- end }} -{{- if and $value.data.image }} -{{- if contains "velero-restic-restore-helper" $value.data.image }} -{{- $breaking = print $breaking "\n\nREMOVED: restore helper image velero-restic-restore-helper has been changed to velero-restore-helper" }} -{{- end }} -{{- end }} -{{- end }} - -{{- if $breaking }} -{{- fail (print $breaking_title $breaking) }} -{{- end }} diff --git a/charts/velero/templates/_helpers.tpl b/charts/velero/templates/_helpers.tpl deleted file mode 100644 index 00d97db4c5..0000000000 --- a/charts/velero/templates/_helpers.tpl +++ /dev/null @@ -1,96 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "velero.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "velero.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "velero.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create the name of the service account to use for creating or deleting the velero server -*/}} -{{- define "velero.serverServiceAccount" -}} -{{- if .Values.serviceAccount.server.create -}} - {{ default (printf "%s-%s" (include "velero.fullname" .) "server") .Values.serviceAccount.server.name }} -{{- else -}} - {{ default "default" .Values.serviceAccount.server.name }} -{{- end -}} -{{- end -}} - -{{/* -Create the name for the credentials secret. -*/}} -{{- define "velero.secretName" -}} -{{- if .Values.credentials.existingSecret -}} - {{- .Values.credentials.existingSecret -}} -{{- else -}} - {{ default (include "velero.fullname" .) .Values.credentials.name }} -{{- end -}} -{{- end -}} - -{{/* -Create the Velero priority class name. -*/}} -{{- define "velero.priorityClassName" -}} -{{- if .Values.priorityClassName -}} - {{- .Values.priorityClassName -}} -{{- else -}} - {{- include "velero.fullname" . -}} -{{- end -}} -{{- end -}} - -{{/* -Create the node-Agent priority class name. -*/}} -{{- define "velero.nodeAgent.priorityClassName" -}} -{{- if .Values.nodeAgent.priorityClassName -}} - {{- .Values.nodeAgent.priorityClassName -}} -{{- else -}} - {{- include "velero.fullname" . -}} -{{- end -}} -{{- end -}} - -{{/* -Kubernetes version -Built-in object .Capabilities.KubeVersion.Minor can provide non-number output -For examples: -- on GKE it returns "18+" instead of "18" -- on EKS it returns "20+" instead of "20" -*/}} -{{- define "chart.KubernetesVersion" -}} -{{- $minorVersion := .Capabilities.KubeVersion.Minor | regexFind "[0-9]+" -}} -{{- printf "%s.%s" .Capabilities.KubeVersion.Major $minorVersion -}} -{{- end -}} - - -{{/* -Calculate the checksum of the credentials secret. -*/}} -{{- define "chart.config-checksum" -}} -{{- tpl (print .Values.credentials.secretContents .Values.credentials.extraEnvVars ) $ | sha256sum -}} -{{- end -}} diff --git a/charts/velero/templates/backupstoragelocation.yaml b/charts/velero/templates/backupstoragelocation.yaml deleted file mode 100644 index 6d7d0d9b8b..0000000000 --- a/charts/velero/templates/backupstoragelocation.yaml +++ /dev/null @@ -1,50 +0,0 @@ -{{- if .Values.backupsEnabled }} - -{{- if typeIs "[]interface {}" .Values.configuration.backupStorageLocation }} -{{- range .Values.configuration.backupStorageLocation }} ---- -apiVersion: velero.io/v1 -kind: BackupStorageLocation -metadata: - name: {{ .name | default "default" }} - namespace: {{ $.Release.Namespace }} - labels: - app.kubernetes.io/name: {{ include "velero.name" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - app.kubernetes.io/managed-by: {{ $.Release.Service }} - helm.sh/chart: {{ include "velero.chart" $ }} -spec: - {{- if not (empty .credential) }} - credential: - {{- with .credential.name }} - name: {{ . }} - {{- end }} - {{- with .credential.key }} - key: {{ . }} - {{- end }} - {{- end }} - provider: {{ .provider }} - accessMode: {{ .accessMode | default "ReadWrite" }} - {{- with .default }} - default: {{ . }} - {{- end }} - {{- with .validationFrequency }} - validationFrequency: {{ . }} - {{- end }} - objectStorage: - bucket: {{ .bucket | quote }} - {{- with .prefix }} - prefix: {{ . | quote }} - {{- end }} - {{- with .caCert }} - caCert: {{ . }} - {{- end }} -{{- with .config }} - config: -{{- range $key, $value := . }} -{{- $key | nindent 4 }}: {{ $value | quote }} -{{- end }} -{{- end }} -{{- end }} -{{- end }} -{{- end }} diff --git a/charts/velero/templates/cleanup-crds.yaml b/charts/velero/templates/cleanup-crds.yaml deleted file mode 100644 index 4e86320d14..0000000000 --- a/charts/velero/templates/cleanup-crds.yaml +++ /dev/null @@ -1,85 +0,0 @@ -{{- if .Values.cleanUpCRDs }} -# This job is meant primarily for cleaning up on CI systems. -# Using this on production systems, especially those that have multiple releases of Velero, will be destructive. -{{/* 'securityContext' got renamed to 'podSecurityContext', merge both dicts into one for backward compatibility */}} -{{- $podSecurityContext := merge (.Values.podSecurityContext | default dict) (.Values.securityContext | default dict) -}} -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ template "velero.fullname" . }}-cleanup-crds - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": pre-delete - "helm.sh/hook-delete-policy": hook-succeeded - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -spec: - backoffLimit: 3 - template: - metadata: - name: velero-cleanup-crds - {{- with .Values.kubectl.labels }} - labels: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.kubectl.annotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- if .Values.image.imagePullSecrets }} - imagePullSecrets: - {{- range .Values.image.imagePullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - serviceAccountName: {{ include "velero.serverServiceAccount" . }} - containers: - - name: kubectl - {{- if .Values.kubectl.image.digest }} - image: "{{ .Values.kubectl.image.repository }}@{{ .Values.kubectl.image.digest }}" - {{- else if .Values.kubectl.image.tag }} - image: "{{ .Values.kubectl.image.repository }}:{{ .Values.kubectl.image.tag }}" - {{- else }} - image: "{{ .Values.kubectl.image.repository }}:{{ template "chart.KubernetesVersion" . }}" - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: - - /bin/sh - - -c - - > - kubectl delete restore --all; - kubectl delete backup --all; - kubectl delete backupstoragelocation --all; - kubectl delete volumesnapshotlocation --all; - kubectl delete podvolumerestore --all; - kubectl delete crd -l component=velero; - {{- with .Values.kubectl.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.kubectl.resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - restartPolicy: OnFailure - {{- with $podSecurityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} -{{- end }} diff --git a/charts/velero/templates/clusterrolebinding.yaml b/charts/velero/templates/clusterrolebinding.yaml deleted file mode 100644 index 669289c42b..0000000000 --- a/charts/velero/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,20 +0,0 @@ -{{- if and .Values.rbac.create .Values.rbac.clusterAdministrator }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "velero.fullname" . }}-server - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -subjects: - - kind: ServiceAccount - namespace: {{ .Release.Namespace }} - name: {{ include "velero.serverServiceAccount" . }} -roleRef: - kind: ClusterRole - name: {{ .Values.rbac.clusterAdministratorName }} - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/velero/templates/configmaps.yaml b/charts/velero/templates/configmaps.yaml deleted file mode 100644 index 5840681e09..0000000000 --- a/charts/velero/templates/configmaps.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- range $configMapName, $configMap := .Values.configMaps }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "velero.fullname" $ }}-{{ $configMapName }} - namespace: {{ $.Release.Namespace }} - labels: - app.kubernetes.io/name: {{ include "velero.name" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - app.kubernetes.io/managed-by: {{ $.Release.Service }} - helm.sh/chart: {{ include "velero.chart" $ }} - {{- with $configMap.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -data: - {{- toYaml $configMap.data | nindent 2 }} ---- -{{- end }} diff --git a/charts/velero/templates/deployment.yaml b/charts/velero/templates/deployment.yaml deleted file mode 100644 index 2caee32a63..0000000000 --- a/charts/velero/templates/deployment.yaml +++ /dev/null @@ -1,287 +0,0 @@ -{{/* 'securityContext' got renamed to 'podSecurityContext', merge both dicts into one for backward compatibility */}} -{{- $podSecurityContext := merge (.Values.podSecurityContext | default dict) (.Values.securityContext | default dict) -}} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "velero.fullname" . }} - namespace: {{ .Release.Namespace }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - component: velero - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - replicas: 1 - {{- if .Values.revisionHistoryLimit }} - revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} - {{- end }} - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/name: {{ include "velero.name" . }} - template: - metadata: - labels: - name: velero - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- if .Values.podLabels }} - {{- toYaml .Values.podLabels | nindent 8 }} - {{- end }} - {{- if or .Values.podAnnotations .Values.metrics.enabled (and .Values.credentials.useSecret (not .Values.credentials.existingSecret)) }} - annotations: - {{- with .Values.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if and (.Values.metrics.enabled) (not .Values.metrics.serviceMonitor.enabled) }} - {{- with .Values.metrics.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - {{- if and .Values.credentials.useSecret (not .Values.credentials.existingSecret) }} - checksum/secret: {{ template "chart.config-checksum" . }} - {{- end }} - {{- end }} - spec: - {{- if .Values.image.imagePullSecrets }} - imagePullSecrets: - {{- range .Values.image.imagePullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - restartPolicy: Always - serviceAccountName: {{ include "velero.serverServiceAccount" . }} - {{- if .Values.priorityClassName }} - priorityClassName: {{ include "velero.priorityClassName" . }} - {{- end }} - terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }} - containers: - - name: velero - {{- if .Values.image.digest }} - image: "{{ .Values.image.repository }}@{{ .Values.image.digest }}" - {{- else }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - {{- if .Values.metrics.enabled }} - ports: - - name: http-monitoring - containerPort: 8085 - {{- end }} - command: - - /velero - args: - - server - ### Flags - {{- with .Values.configuration }} - - --uploader-type={{ default "kopia" .uploaderType }} - {{- with .backupSyncPeriod }} - - --backup-sync-period={{ . }} - {{- end }} - {{- with .fsBackupTimeout }} - - --fs-backup-timeout={{ . }} - {{- end }} - {{- with .clientBurst }} - - --client-burst={{ . }} - {{- end }} - {{- with .clientPageSize }} - - --client-page-size={{ . }} - {{- end }} - {{- with .clientQPS }} - - --client-qps={{ . }} - {{- end }} - {{- with .defaultBackupStorageLocation }} - - --default-backup-storage-location={{ . }} - {{- end }} - {{- with .defaultBackupTTL }} - - --default-backup-ttl={{ . }} - {{- end }} - {{- with .defaultItemOperationTimeout }} - - --default-item-operation-timeout={{ . }} - {{- end }} - {{- with .defaultVolumeSnapshotLocations }} - - --default-volume-snapshot-locations={{ . }} - {{- end }} - {{- if .defaultVolumesToFsBackup }} - - --default-volumes-to-fs-backup - {{- end }} - {{- with .defaultRepoMaintainFrequency }} - - --default-repo-maintain-frequency={{ . }} - {{- end }} - {{- with .disableControllers }} - - --disable-controllers={{ . }} - {{- end }} - {{- with .garbageCollectionFrequency }} - - --garbage-collection-frequency={{ . }} - {{- end }} - {{- with .logFormat }} - - --log-format={{ . }} - {{- end }} - {{- with .logLevel }} - - --log-level={{ . }} - {{- end }} - {{- with .metricsAddress }} - - --metrics-address={{ . }} - {{- end }} - {{- with .pluginDir }} - - --plugin-dir={{ . }} - {{- end }} - {{- with .profilerAddress }} - - --profiler-address={{ . }} - {{- end }} - {{- if .restoreOnlyMode }} - - --restore-only - {{- end }} - {{- with .restoreResourcePriorities }} - - --restore-resource-priorities={{ . }} - {{- end }} - {{- with .storeValidationFrequency }} - - --store-validation-frequency={{ . }} - {{- end }} - {{- with .terminatingResourceTimeout }} - - --terminating-resource-timeout={{ . }} - {{- end }} - {{- with .defaultSnapshotMoveData }} - - --default-snapshot-move-data={{ . }} - {{- end }} - ### Global Flags - {{- with .features }} - - --features={{ . }} - {{- end }} - {{- with .namespace }} - - --namespace={{ . }} - {{- end }} - {{- end }} - {{- with .Values.resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- if .Values.metrics.enabled }} - {{- with .Values.livenessProbe }} - livenessProbe: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.readinessProbe }} - readinessProbe: {{- toYaml . | nindent 12 }} - {{- end }} - {{- end }} - {{- with .Values.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} - volumeMounts: - - name: plugins - mountPath: /plugins - {{- if .Values.credentials.useSecret }} - - name: cloud-credentials - mountPath: /credentials - {{- end }} - - name: scratch - mountPath: /scratch - {{- if .Values.containerSecurityContext.readOnlyRootFilesystem }} - - name: tmpdir - mountPath: /tmp - {{- end }} - {{- if .Values.extraVolumeMounts }} - {{- toYaml .Values.extraVolumeMounts | nindent 12 }} - {{- end }} - {{- if .Values.credentials.extraSecretRef }} - envFrom: - - secretRef: - name: {{ .Values.credentials.extraSecretRef }} - {{- end }} - env: - - name: VELERO_SCRATCH_DIR - value: /scratch - - name: VELERO_NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: LD_LIBRARY_PATH - value: /plugins - {{- if .Values.credentials.useSecret }} - - name: AWS_SHARED_CREDENTIALS_FILE - value: /credentials/cloud - - name: GOOGLE_APPLICATION_CREDENTIALS - value: /credentials/cloud - - name: AZURE_CREDENTIALS_FILE - value: /credentials/cloud - - name: ALIBABA_CLOUD_CREDENTIALS_FILE - value: /credentials/cloud - {{- end }} - {{- with .Values.configuration.extraEnvVars }} - {{- range $key, $value := . }} - - name: {{ default "none" $key }} - value: {{ tpl (default "none" $value) $ | quote }} - {{- end }} - {{- end }} - {{- with .Values.credentials.extraEnvVars }} - {{- range $key, $value := . }} - - name: {{ default "none" (upper $key) }} - valueFrom: - secretKeyRef: - name: {{ include "velero.secretName" $ }} - key: {{ default "none" $key }} - {{- end }} - {{- end }} - {{- if .Values.lifecycle }} - lifecycle: {{ toYaml .Values.lifecycle | nindent 12 }} - {{- end }} - dnsPolicy: {{ .Values.dnsPolicy }} -{{- if .Values.initContainers }} - initContainers: - {{- if eq (typeOf .Values.initContainers) "string" }} - {{- tpl .Values.initContainers . | nindent 8 }} - {{- else }} - {{- toYaml .Values.initContainers | nindent 8 }} - {{- end }} -{{- end }} - volumes: - {{- if .Values.credentials.useSecret }} - - name: cloud-credentials - secret: - secretName: {{ include "velero.secretName" . }} - {{- end }} - - name: plugins - emptyDir: {} - - name: scratch - emptyDir: {} - {{- if .Values.containerSecurityContext.readOnlyRootFilesystem }} - - name: tmpdir - emptyDir: {} - {{- end }} - {{- if .Values.extraVolumes }} - {{- toYaml .Values.extraVolumes | nindent 8 }} - {{- end }} - {{- with $podSecurityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.dnsConfig }} - dnsConfig: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/charts/velero/templates/extra-manifests.yaml b/charts/velero/templates/extra-manifests.yaml deleted file mode 100644 index a9bb3b6ba8..0000000000 --- a/charts/velero/templates/extra-manifests.yaml +++ /dev/null @@ -1,4 +0,0 @@ -{{ range .Values.extraObjects }} ---- -{{ tpl (toYaml .) $ }} -{{ end }} diff --git a/charts/velero/templates/label-namespace/labelnamespace.yaml b/charts/velero/templates/label-namespace/labelnamespace.yaml deleted file mode 100644 index 47b63f1b37..0000000000 --- a/charts/velero/templates/label-namespace/labelnamespace.yaml +++ /dev/null @@ -1,39 +0,0 @@ -{{- if .Values.namespace }} -{{- if gt (len .Values.namespace.labels) 0 }} -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ template "velero.fullname" . }}-label-namespace - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": post-install,post-upgrade,post-rollback - "helm.sh/hook-delete-policy": hook-succeeded - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -spec: - template: - spec: - serviceAccountName: {{ include "velero.serverServiceAccount" . }} - containers: - - name: label-namespace - {{- if .Values.kubectl.image.digest }} - image: "{{ .Values.kubectl.image.repository }}@{{ .Values.kubectl.image.digest }}" - {{- else if .Values.kubectl.image.tag }} - image: "{{ .Values.kubectl.image.repository }}:{{ .Values.kubectl.image.tag }}" - {{- else }} - image: "{{ .Values.kubectl.image.repository }}:{{ template "chart.KubernetesVersion" . }}" - {{- end }} - command: - - /bin/sh - - -c - - | - {{- range .Values.namespace.labels }} - kubectl label namespace {{ $.Release.Namespace }} {{ .key }}={{ .value }} - {{- end }} - restartPolicy: Never - backoffLimit: 3 -{{- end }} -{{- end }} \ No newline at end of file diff --git a/charts/velero/templates/node-agent-daemonset.yaml b/charts/velero/templates/node-agent-daemonset.yaml deleted file mode 100644 index f5104e3d72..0000000000 --- a/charts/velero/templates/node-agent-daemonset.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- if .Values.deployNodeAgent }} -{{/* 'nodeAgent.securityContext' got renamed to 'nodeAgent.containerSecurityContext', merge both dicts into one for backward compatibility */}} -{{- $containerSecurityContext := merge (.Values.nodeAgent.containerSecurityContext | default dict) (.Values.nodeAgent.securityContext | default dict) -}} -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: node-agent - namespace: {{ .Release.Namespace }} - {{- with .Values.nodeAgent.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- with .Values.nodeAgent.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - selector: - matchLabels: - name: node-agent - template: - metadata: - labels: - name: node-agent - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- if .Values.podLabels }} - {{- toYaml .Values.podLabels | nindent 8 }} - {{- end }} - {{- if or .Values.podAnnotations .Values.metrics.enabled (and .Values.credentials.useSecret (not .Values.credentials.existingSecret)) }} - annotations: - {{- with .Values.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if and (.Values.metrics.enabled) (not .Values.metrics.nodeAgentPodMonitor.enabled) }} - {{- with .Values.metrics.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - {{- if and .Values.credentials.useSecret (not .Values.credentials.existingSecret) }} - checksum/secret: {{ template "chart.config-checksum" . }} - {{- end }} - {{- end }} - spec: - {{- if .Values.image.imagePullSecrets }} - imagePullSecrets: - {{- range .Values.image.imagePullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - serviceAccountName: {{ include "velero.serverServiceAccount" . }} - {{- with .Values.nodeAgent.podSecurityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .Values.nodeAgent.priorityClassName }} - priorityClassName: {{ include "velero.nodeAgent.priorityClassName" . }} - {{- end }} - terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }} - volumes: - {{- if .Values.credentials.useSecret }} - - name: cloud-credentials - secret: - secretName: {{ include "velero.secretName" . }} - {{- end }} - - name: host-pods - hostPath: - path: {{ .Values.nodeAgent.podVolumePath }} - {{- if .Values.nodeAgent.useScratchEmptyDir }} - - name: scratch - emptyDir: {} - {{- end }} - {{- if .Values.nodeAgent.extraVolumes }} - {{- toYaml .Values.nodeAgent.extraVolumes | nindent 8 }} - {{- end }} - dnsPolicy: {{ .Values.nodeAgent.dnsPolicy }} - containers: - - name: node-agent - {{- if .Values.image.digest }} - image: "{{ .Values.image.repository }}@{{ .Values.image.digest }}" - {{- else }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - {{- if .Values.metrics.enabled }} - ports: - - name: http-monitoring - containerPort: 8085 - {{- end }} - command: - - /velero - args: - - node-agent - - server - {{- with .Values.configuration }} - {{- with .features }} - - --features={{ . }} - {{- end }} - {{- with .logLevel }} - - --log-level={{ . }} - {{- end }} - {{- with .logFormat }} - - --log-format={{ . }} - {{- end }} - {{- end }} - volumeMounts: - {{- if .Values.credentials.useSecret }} - - name: cloud-credentials - mountPath: /credentials - {{- end }} - - name: host-pods - mountPath: /host_pods - mountPropagation: HostToContainer - {{- if .Values.nodeAgent.useScratchEmptyDir }} - - name: scratch - mountPath: /scratch - {{- end }} - {{- if .Values.nodeAgent.extraVolumeMounts }} - {{- toYaml .Values.nodeAgent.extraVolumeMounts | nindent 12 }} - {{- end }} - {{- if .Values.credentials.extraSecretRef }} - envFrom: - - secretRef: - name: {{ .Values.credentials.extraSecretRef }} - {{- end }} - env: - - name: VELERO_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: VELERO_SCRATCH_DIR - value: /scratch - {{- if .Values.credentials.useSecret }} - - name: AWS_SHARED_CREDENTIALS_FILE - value: /credentials/cloud - - name: GOOGLE_APPLICATION_CREDENTIALS - value: /credentials/cloud - - name: AZURE_CREDENTIALS_FILE - value: /credentials/cloud - - name: ALIBABA_CLOUD_CREDENTIALS_FILE - value: /credentials/cloud - {{- end }} - {{- with .Values.configuration.extraEnvVars }} - {{- range $key, $value := . }} - - name: {{ default "none" $key }} - value: {{ tpl (default "none" $value) $ | quote }} - {{- end }} - {{- end }} - {{- with .Values.credentials.extraEnvVars }} - {{- range $key, $value := . }} - - name: {{ default "none" $key }} - valueFrom: - secretKeyRef: - name: {{ include "velero.secretName" $ }} - key: {{ default "none" $key }} - {{- end }} - {{- end }} - {{- with .Values.nodeAgent.extraEnvVars }} - {{- range $key, $value := . }} - - name: {{ default "none" $key }} - value: {{ default "none" $value | quote }} - {{- end }} - {{- end }} - {{- if .Values.lifecycle }} - lifecycle: {{ toYaml .Values.nodeAgent.lifecycle | nindent 12 }} - {{- end }} - securityContext: - privileged: {{ .Values.nodeAgent.privileged }} - {{- with $containerSecurityContext }} - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.nodeAgent.resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.nodeAgent.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeAgent.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeAgent.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeAgent.dnsConfig }} - dnsConfig: - {{- toYaml . | nindent 8 }} - {{- end }} -{{- end }} diff --git a/charts/velero/templates/podmonitor.yaml b/charts/velero/templates/podmonitor.yaml deleted file mode 100644 index 3e6a3b917d..0000000000 --- a/charts/velero/templates/podmonitor.yaml +++ /dev/null @@ -1,44 +0,0 @@ -{{ if and (and .Values.metrics.enabled .Values.metrics.nodeAgentPodMonitor.enabled) (or (not .Values.metrics.nodeAgentPodMonitor.autodetect) (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1")) }} -apiVersion: monitoring.coreos.com/v1 -kind: PodMonitor -metadata: - name: node-agent - {{- if .Values.metrics.nodeAgentPodMonitor.namespace }} - namespace: {{ .Values.metrics.nodeAgentPodMonitor.namespace }} - {{- end }} - {{- with .Values.metrics.nodeAgentPodMonitor.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- with .Values.metrics.nodeAgentPodMonitor.additionalLabels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - selector: - matchLabels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - name: node-agent - {{- with .Values.nodeAgent.labels }} - {{- toYaml . | nindent 6 }} - {{- end }} - podMetricsEndpoints: - - port: http-monitoring - interval: {{ .Values.metrics.scrapeInterval }} - scrapeTimeout: {{ .Values.metrics.scrapeTimeout }} - {{- if .Values.metrics.nodeAgentPodMonitor.scheme }} - scheme: {{ .Values.metrics.nodeAgentPodMonitor.scheme }} - {{- end }} - {{- if .Values.metrics.nodeAgentPodMonitor.tlsConfig }} - tlsConfig: - {{- toYaml .Values.metrics.nodeAgentPodMonitor.tlsConfig | nindent 6 }} - {{- end }} -{{- end }} diff --git a/charts/velero/templates/prometheusrule.yaml b/charts/velero/templates/prometheusrule.yaml deleted file mode 100644 index 60bcfc3034..0000000000 --- a/charts/velero/templates/prometheusrule.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and (and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled) (or (not .Values.metrics.prometheusRule.autodetect) (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1")) (.Values.metrics.prometheusRule.spec) }} -apiVersion: monitoring.coreos.com/v1 -kind: PrometheusRule -metadata: - name: {{ include "velero.fullname" . }} - {{- if .Values.metrics.prometheusRule.namespace }} - namespace: {{ .Values.metrics.prometheusRule.namespace }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - {{- if .Values.metrics.prometheusRule.additionalLabels }} - {{- toYaml .Values.metrics.prometheusRule.additionalLabels | nindent 4 }} - {{- end }} -spec: - groups: - - name: {{ include "velero.name" . }} - rules: - {{- toYaml .Values.metrics.prometheusRule.spec | nindent 4 }} -{{- end }} diff --git a/charts/velero/templates/role.yaml b/charts/velero/templates/role.yaml deleted file mode 100644 index f6bc87ca3a..0000000000 --- a/charts/velero/templates/role.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if .Values.rbac.create }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: {{ include "velero.fullname" . }}-server - namespace: {{ .Release.Namespace }} - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -rules: -- apiGroups: - - "*" - resources: - - "*" - verbs: - - "*" - -{{- end }} diff --git a/charts/velero/templates/rolebinding.yaml b/charts/velero/templates/rolebinding.yaml deleted file mode 100644 index d77bea4ce0..0000000000 --- a/charts/velero/templates/rolebinding.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if .Values.rbac.create }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ include "velero.fullname" . }}-server - namespace: {{ .Release.Namespace }} - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -subjects: - - kind: ServiceAccount - namespace: {{ .Release.Namespace }} - name: {{ include "velero.serverServiceAccount" . }} -roleRef: - kind: Role - name: {{ include "velero.fullname" . }}-server - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/velero/templates/schedule.yaml b/charts/velero/templates/schedule.yaml deleted file mode 100644 index 30736eec6b..0000000000 --- a/charts/velero/templates/schedule.yaml +++ /dev/null @@ -1,31 +0,0 @@ -{{- range $scheduleName, $schedule := .Values.schedules }} -{{- if (not $schedule.disabled) }} -apiVersion: velero.io/v1 -kind: Schedule -metadata: - name: {{ include "velero.fullname" $ }}-{{ $scheduleName }} - namespace: {{ $.Release.Namespace }} - annotations: - {{- if $schedule.annotations }} - {{- toYaml $schedule.annotations | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - app.kubernetes.io/managed-by: {{ $.Release.Service }} - helm.sh/chart: {{ include "velero.chart" $ }} - {{- if $schedule.labels }} - {{- toYaml $schedule.labels | nindent 4 }} - {{- end }} -spec: -{{- if $schedule.useOwnerReferencesInBackup }} - useOwnerReferencesInBackup: {{ $schedule.useOwnerReferencesInBackup }} -{{- end }} - schedule: {{ $schedule.schedule | quote }} -{{- with $schedule.template }} - template: - {{- toYaml . | nindent 4 }} -{{- end }} ---- -{{- end }} -{{- end }} diff --git a/charts/velero/templates/secret.yaml b/charts/velero/templates/secret.yaml deleted file mode 100644 index 0cd9d57bd6..0000000000 --- a/charts/velero/templates/secret.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if and .Values.credentials.useSecret (not .Values.credentials.existingSecret) -}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "velero.secretName" . }} - namespace: {{ .Release.Namespace }} - {{- with .Values.secretAnnotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -type: Opaque -data: -{{- range $key, $value := .Values.credentials.secretContents }} - {{ $key }}: {{ tpl $value $ | b64enc | quote }} -{{- end }} -{{- range $key, $value := .Values.credentials.extraEnvVars }} - {{ $key }}: {{ tpl $value $ | b64enc | quote }} -{{- end }} -{{- end -}} diff --git a/charts/velero/templates/service.yaml b/charts/velero/templates/service.yaml deleted file mode 100644 index bd66c3196c..0000000000 --- a/charts/velero/templates/service.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.metrics.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "velero.fullname" . }} - namespace: {{ .Release.Namespace }} - {{- with .Values.metrics.service.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- with .Values.metrics.service.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - type: ClusterIP - ports: - - name: http-monitoring - port: 8085 - targetPort: http-monitoring - selector: - name: velero - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} diff --git a/charts/velero/templates/serviceaccount-server.yaml b/charts/velero/templates/serviceaccount-server.yaml deleted file mode 100644 index c295364526..0000000000 --- a/charts/velero/templates/serviceaccount-server.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.serviceAccount.server.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "velero.serverServiceAccount" . }} - namespace: {{ .Release.Namespace }} -{{- if .Values.serviceAccount.server.annotations }} - annotations: -{{ toYaml .Values.serviceAccount.server.annotations | nindent 4 }} -{{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -{{- with .Values.serviceAccount.server.labels }} - {{- toYaml . | nindent 4 }} -{{- end }} -{{- end }} diff --git a/charts/velero/templates/servicemonitor.yaml b/charts/velero/templates/servicemonitor.yaml deleted file mode 100644 index 777ff9f144..0000000000 --- a/charts/velero/templates/servicemonitor.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{ if and (and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled) (or (not .Values.metrics.serviceMonitor.autodetect) (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1")) }} -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ include "velero.fullname" . }} - {{- if .Values.metrics.serviceMonitor.namespace }} - namespace: {{ .Values.metrics.serviceMonitor.namespace }} - {{- end }} - {{- with .Values.metrics.serviceMonitor.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- with .Values.metrics.serviceMonitor.additionalLabels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - selector: - matchLabels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - endpoints: - - port: http-monitoring - interval: {{ .Values.metrics.scrapeInterval }} - scrapeTimeout: {{ .Values.metrics.scrapeTimeout }} - {{- if .Values.metrics.serviceMonitor.scheme }} - scheme: {{ .Values.metrics.serviceMonitor.scheme }} - {{- end }} - {{- if .Values.metrics.serviceMonitor.metricRelabelings }} - metricRelabelings: {{- toYaml .Values.metrics.serviceMonitor.metricRelabelings | nindent 6 }} - {{- end }} - {{- if .Values.metrics.serviceMonitor.relabelings }} - relabelings: {{ toYaml .Values.metrics.serviceMonitor.relabelings | nindent 6 }} - {{- end }} - {{- if .Values.metrics.serviceMonitor.tlsConfig }} - tlsConfig: - {{- toYaml .Values.metrics.serviceMonitor.tlsConfig | nindent 6 }} - {{- end }} -{{- end }} diff --git a/charts/velero/templates/upgrade-crds/clusterrole-upgrade.yaml b/charts/velero/templates/upgrade-crds/clusterrole-upgrade.yaml deleted file mode 100644 index 426d1cbea6..0000000000 --- a/charts/velero/templates/upgrade-crds/clusterrole-upgrade.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{- if .Values.upgradeCRDs }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "velero.fullname" . }}-upgrade-crds - annotations: - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - "helm.sh/hook-weight": "-5" - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded - labels: - app.kubernetes.io/component: upgrade-crds - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -rules: -- apiGroups: - - "apiextensions.k8s.io" - resources: - - "customresourcedefinitions" - verbs: - - create - - patch - - update - - get - - list -{{- end }} diff --git a/charts/velero/templates/upgrade-crds/clusterrolebinding-upgrade.yaml b/charts/velero/templates/upgrade-crds/clusterrolebinding-upgrade.yaml deleted file mode 100644 index 07d802c596..0000000000 --- a/charts/velero/templates/upgrade-crds/clusterrolebinding-upgrade.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.upgradeCRDs }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "velero.fullname" . }}-upgrade-crds - labels: - app.kubernetes.io/component: upgrade-crds - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - annotations: - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - "helm.sh/hook-weight": "-3" - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -subjects: - - kind: ServiceAccount - namespace: {{ .Release.Namespace }} - name: {{ include "velero.serverServiceAccount" . }}-upgrade-crds -roleRef: - kind: ClusterRole - name: {{ include "velero.fullname" . }}-upgrade-crds - apiGroup: rbac.authorization.k8s.io -{{- end }} - diff --git a/charts/velero/templates/upgrade-crds/serviceaccount-upgrade.yaml b/charts/velero/templates/upgrade-crds/serviceaccount-upgrade.yaml deleted file mode 100644 index 93e3f1e820..0000000000 --- a/charts/velero/templates/upgrade-crds/serviceaccount-upgrade.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if .Values.upgradeCRDs }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "velero.serverServiceAccount" . }}-upgrade-crds - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - "helm.sh/hook-weight": "-4" - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -{{- if .Values.serviceAccount.server.annotations }} -{{ toYaml .Values.serviceAccount.server.annotations | nindent 4 }} -{{- end }} - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} -{{- with .Values.serviceAccount.server.labels }} - {{- toYaml . | nindent 4 }} -{{- end }} -{{- end }} diff --git a/charts/velero/templates/upgrade-crds/upgrade-crds.yaml b/charts/velero/templates/upgrade-crds/upgrade-crds.yaml deleted file mode 100644 index 59d3b2ecda..0000000000 --- a/charts/velero/templates/upgrade-crds/upgrade-crds.yaml +++ /dev/null @@ -1,127 +0,0 @@ -{{- if .Values.upgradeCRDs }} -{{/* 'securityContext' got renamed to 'podSecurityContext', merge both dicts into one for backward compatibility */}} -{{- $podSecurityContext := merge (.Values.podSecurityContext | default dict) (.Values.securityContext | default dict) -}} -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ template "velero.fullname" . }}-upgrade-crds - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": pre-install,pre-upgrade,pre-rollback - "helm.sh/hook-weight": "5" - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded - labels: - app.kubernetes.io/name: {{ include "velero.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ include "velero.chart" . }} - {{- with .Values.kubectl.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - backoffLimit: 3 - template: - metadata: - name: velero-upgrade-crds - {{- with .Values.kubectl.labels }} - labels: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.kubectl.annotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- if .Values.image.imagePullSecrets }} - imagePullSecrets: - {{- range .Values.image.imagePullSecrets }} - - name: {{ . }} - {{- end }} - {{- end }} - serviceAccountName: {{ include "velero.serverServiceAccount" . }}-upgrade-crds - initContainers: - - name: kubectl - {{- if .Values.kubectl.image.digest }} - image: "{{ .Values.kubectl.image.repository }}@{{ .Values.kubectl.image.digest }}" - {{- else if .Values.kubectl.image.tag }} - image: "{{ .Values.kubectl.image.repository }}:{{ .Values.kubectl.image.tag }}" - {{- else }} - image: "{{ .Values.kubectl.image.repository }}:{{ template "chart.KubernetesVersion" . }}" - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: - - /bin/sh - args: - - -c - - cp `which sh` /tmp && cp `which kubectl` /tmp - {{- with .Values.kubectl.resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.kubectl.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} - volumeMounts: - - mountPath: /tmp - name: crds - containers: - - name: velero - {{- if .Values.image.digest }} - image: "{{ .Values.image.repository }}@{{ .Values.image.digest }}" - {{- else }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: - - /tmp/sh - args: - - -c - - /velero install --crds-only --dry-run -o yaml | /tmp/kubectl apply -f - - {{- with .Values.upgradeJobResources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} - volumeMounts: - - mountPath: /tmp - name: crds - {{- if (.Values.upgradeCRDsJob).extraVolumeMounts }} - {{- toYaml .Values.upgradeCRDsJob.extraVolumeMounts | nindent 12 }} - {{- end }} - {{- if (.Values.upgradeCRDsJob).extraEnvVars }} - env: - {{- with .Values.upgradeCRDsJob.extraEnvVars }} - {{- range $key, $value := . }} - - name: {{ default "none" $key }} - value: {{ default "none" $value | quote }} - {{- end }} - {{- end }} - {{- end }} - volumes: - - name: crds - emptyDir: {} - {{- if (.Values.upgradeCRDsJob).extraVolumes }} - {{- toYaml .Values.upgradeCRDsJob.extraVolumes | nindent 8 }} - {{- end }} - restartPolicy: OnFailure - {{- with $podSecurityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} -{{- end }} diff --git a/charts/velero/templates/volumesnapshotlocation.yaml b/charts/velero/templates/volumesnapshotlocation.yaml deleted file mode 100644 index a28fd4aa3f..0000000000 --- a/charts/velero/templates/volumesnapshotlocation.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- if .Values.snapshotsEnabled }} - -{{- if typeIs "[]interface {}" .Values.configuration.volumeSnapshotLocation }} -{{- range .Values.configuration.volumeSnapshotLocation }} ---- -apiVersion: velero.io/v1 -kind: VolumeSnapshotLocation -metadata: - name: {{ .name | default "default" }} - namespace: {{ $.Release.Namespace }} - labels: - app.kubernetes.io/name: {{ include "velero.name" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - app.kubernetes.io/managed-by: {{ $.Release.Service }} - helm.sh/chart: {{ include "velero.chart" $ }} -spec: - {{- if not (empty .credential) }} - credential: - {{- with .credential.name }} - name: {{ . }} - {{- end }} - {{- with .credential.key }} - key: {{ . }} - {{- end }} - {{- end }} - provider: {{ .provider }} -{{- with .config }} - config: -{{- range $key, $value := . }} -{{- $key | nindent 4 }}: {{ $value | quote }} -{{- end }} -{{- end -}} -{{- end }} -{{- end }} -{{- end }} diff --git a/charts/velero/values.yaml b/charts/velero/values.yaml deleted file mode 100644 index 1eeeeb0769..0000000000 --- a/charts/velero/values.yaml +++ /dev/null @@ -1,629 +0,0 @@ -## -## Configuration settings related to Velero installation namespace -## - -# Labels settings in namespace -namespace: - labels: {} - # Enforce Pod Security Standards with Namespace Labels - # https://kubernetes.io/docs/tasks/configure-pod-container/enforce-standards-namespace-labels/ - # - key: pod-security.kubernetes.io/enforce - # value: privileged - # - key: pod-security.kubernetes.io/enforce-version - # value: latest - # - key: pod-security.kubernetes.io/audit - # value: privileged - # - key: pod-security.kubernetes.io/audit-version - # value: latest - # - key: pod-security.kubernetes.io/warn - # value: privileged - # - key: pod-security.kubernetes.io/warn-version - # value: latest - -## -## End of namespace-related settings. -## - - -## -## Configuration settings that directly affect the Velero deployment YAML. -## - -# Details of the container image to use in the Velero deployment & daemonset (if -# enabling node-agent). Required. -image: - repository: velero/velero - tag: v1.13.0 - # Digest value example: sha256:d238835e151cec91c6a811fe3a89a66d3231d9f64d09e5f3c49552672d271f38. - # If used, it will take precedence over the image.tag. - # digest: - pullPolicy: IfNotPresent - # One or more secrets to be used when pulling images - imagePullSecrets: [] - # - registrySecretName - -nameOverride: "" -fullnameOverride: "" - -# Annotations to add to the Velero deployment's. Optional. -# -# If you are using reloader use the following annotation with your VELERO_SECRET_NAME -annotations: {} -# secret.reloader.stakater.com/reload: "" - -# Annotations to add to secret -secretAnnotations: {} - -# Labels to add to the Velero deployment's. Optional. -labels: {} - -# Annotations to add to the Velero deployment's pod template. Optional. -# -# If using kube2iam or kiam, use the following annotation with your AWS_ACCOUNT_ID -# and VELERO_ROLE_NAME filled in: -podAnnotations: {} - # iam.amazonaws.com/role: "arn:aws:iam:::role/" - -# Additional pod labels for Velero deployment's template. Optional -# ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ -podLabels: {} - -# Number of old history to retain to allow rollback (If not set, default Kubernetes value is set to 10) -# revisionHistoryLimit: 1 - -# Resource requests/limits to specify for the Velero deployment. -# https://velero.io/docs/v1.6/customize-installation/#customize-resource-requests-and-limits -resources: - requests: - cpu: 500m - memory: 128Mi - limits: - cpu: 1000m - memory: 512Mi - -# Resource requests/limits to specify for the upgradeCRDs job pod. Need to be adjusted by user accordingly. -upgradeJobResources: {} -# requests: -# cpu: 50m -# memory: 128Mi -# limits: -# cpu: 100m -# memory: 256Mi -upgradeCRDsJob: - # Extra volumes for the Upgrade CRDs Job. Optional. - extraVolumes: [] - # Extra volumeMounts for the Upgrade CRDs Job. Optional. - extraVolumeMounts: [] - # Extra key/value pairs to be used as environment variables. Optional. - extraEnvVars: {} - - -# Configure the dnsPolicy of the Velero deployment -# See: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy -dnsPolicy: ClusterFirst - -# Init containers to add to the Velero deployment's pod spec. At least one plugin provider image is required. -# If the value is a string then it is evaluated as a template. -initContainers: - # - name: velero-plugin-for-csi - # image: velero/velero-plugin-for-csi:v0.7.0 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins - # - name: velero-plugin-for-aws - # image: velero/velero-plugin-for-aws:v1.9.0 - # imagePullPolicy: IfNotPresent - # volumeMounts: - # - mountPath: /target - # name: plugins - -# SecurityContext to use for the Velero deployment. Optional. -# Set fsGroup for `AWS IAM Roles for Service Accounts` -# see more informations at: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html -podSecurityContext: {} - # fsGroup: 1337 - -# Container Level Security Context for the 'velero' container of the Velero deployment. Optional. -# See: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container -containerSecurityContext: {} - # allowPrivilegeEscalation: false - # capabilities: - # drop: ["ALL"] - # add: [] - # readOnlyRootFilesystem: true - -# Container Lifecycle Hooks to use for the Velero deployment. Optional. -lifecycle: {} - -# Pod priority class name to use for the Velero deployment. Optional. -priorityClassName: "" - -# The number of seconds to allow for graceful termination of the pod. Optional. -terminationGracePeriodSeconds: 3600 - -# Liveness probe of the pod -livenessProbe: - httpGet: - path: /metrics - port: http-monitoring - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 30 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 5 - -# Readiness probe of the pod -readinessProbe: - httpGet: - path: /metrics - port: http-monitoring - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 30 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 5 - -# Tolerations to use for the Velero deployment. Optional. -tolerations: [] - -# Affinity to use for the Velero deployment. Optional. -affinity: {} - -# Node selector to use for the Velero deployment. Optional. -nodeSelector: {} - -# DNS configuration to use for the Velero deployment. Optional. -dnsConfig: {} - -# Extra volumes for the Velero deployment. Optional. -extraVolumes: [] - -# Extra volumeMounts for the Velero deployment. Optional. -extraVolumeMounts: [] - -# Extra K8s manifests to deploy -extraObjects: [] - # - apiVersion: secrets-store.csi.x-k8s.io/v1 - # kind: SecretProviderClass - # metadata: - # name: velero-secrets-store - # spec: - # provider: aws - # parameters: - # objects: | - # - objectName: "velero" - # objectType: "secretsmanager" - # jmesPath: - # - path: "access_key" - # objectAlias: "access_key" - # - path: "secret_key" - # objectAlias: "secret_key" - # secretObjects: - # - data: - # - key: access_key - # objectName: client-id - # - key: client-secret - # objectName: client-secret - # secretName: velero-secrets-store - # type: Opaque - -# Settings for Velero's prometheus metrics. Enabled by default. -metrics: - enabled: true - scrapeInterval: 30s - scrapeTimeout: 10s - - # service metdata if metrics are enabled - service: - annotations: {} - labels: {} - - # Pod annotations for Prometheus - podAnnotations: - prometheus.io/scrape: "true" - prometheus.io/port: "8085" - prometheus.io/path: "/metrics" - - serviceMonitor: - autodetect: true - enabled: false - annotations: {} - additionalLabels: {} - - # metrics.serviceMonitor.metricRelabelings Specify Metric Relabelings to add to the scrape endpoint - # ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig - # metricRelabelings: [] - # metrics.serviceMonitor.relabelings [array] Prometheus relabeling rules - # relabelings: [] - # ServiceMonitor namespace. Default to Velero namespace. - # namespace: - # ServiceMonitor connection scheme. Defaults to HTTP. - # scheme: "" - # ServiceMonitor connection tlsConfig. Defaults to {}. - # tlsConfig: {} - nodeAgentPodMonitor: - autodetect: true - enabled: false - annotations: {} - additionalLabels: {} - # ServiceMonitor namespace. Default to Velero namespace. - # namespace: - # ServiceMonitor connection scheme. Defaults to HTTP. - # scheme: "" - # ServiceMonitor connection tlsConfig. Defaults to {}. - # tlsConfig: {} - - prometheusRule: - autodetect: true - enabled: false - # Additional labels to add to deployed PrometheusRule - additionalLabels: {} - # PrometheusRule namespace. Defaults to Velero namespace. - # namespace: "" - # Rules to be deployed - spec: [] - # - alert: VeleroBackupPartialFailures - # annotations: - # message: Velero backup {{ $labels.schedule }} has {{ $value | humanizePercentage }} partialy failed backups. - # expr: |- - # velero_backup_partial_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} > 0.25 - # for: 15m - # labels: - # severity: warning - # - alert: VeleroBackupFailures - # annotations: - # message: Velero backup {{ $labels.schedule }} has {{ $value | humanizePercentage }} failed backups. - # expr: |- - # velero_backup_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} > 0.25 - # for: 15m - # labels: - # severity: warning - -kubectl: - image: - repository: docker.io/bitnami/kubectl - # Digest value example: sha256:d238835e151cec91c6a811fe3a89a66d3231d9f64d09e5f3c49552672d271f38. - # If used, it will take precedence over the kubectl.image.tag. - # digest: - # kubectl image tag. If used, it will take precedence over the cluster Kubernetes version. - # tag: 1.16.15 - # Container Level Security Context for the 'kubectl' container of the crd jobs. Optional. - # See: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container - containerSecurityContext: {} - # Resource requests/limits to specify for the upgrade/cleanup job. Optional - resources: {} - # Annotations to set for the upgrade/cleanup job. Optional. - annotations: {} - # Labels to set for the upgrade/cleanup job. Optional. - labels: {} - -# This job upgrades the CRDs. -upgradeCRDs: true - -# This job is meant primarily for cleaning up CRDs on CI systems. -# Using this on production systems, especially those that have multiple releases of Velero, will be destructive. -cleanUpCRDs: false - -## -## End of deployment-related settings. -## - - -## -## Parameters for the `default` BackupStorageLocation and VolumeSnapshotLocation, -## and additional server settings. -## -configuration: - # Parameters for the BackupStorageLocation(s). Configure multiple by adding other element(s) to the backupStorageLocation slice. - # See https://velero.io/docs/v1.6/api-types/backupstoragelocation/ - backupStorageLocation: - # name is the name of the backup storage location where backups should be stored. If a name is not provided, - # a backup storage location will be created with the name "default". Optional. - - name: - # provider is the name for the backup storage location provider. - provider: - # bucket is the name of the bucket to store backups in. Required. - bucket: - # caCert defines a base64 encoded CA bundle to use when verifying TLS connections to the provider. Optional. - caCert: - # prefix is the directory under which all Velero data should be stored within the bucket. Optional. - prefix: - # default indicates this location is the default backup storage location. Optional. - default: - # validationFrequency defines how frequently Velero should validate the object storage. Optional. - validationFrequency: - # accessMode determines if velero can write to this backup storage location. Optional. - # default to ReadWrite, ReadOnly is used during migrations and restores. - accessMode: ReadWrite - credential: - # name of the secret used by this backupStorageLocation. - name: - # name of key that contains the secret data to be used. - key: - # Additional provider-specific configuration. See link above - # for details of required/optional fields for your provider. - config: {} - # region: - # s3ForcePathStyle: - # s3Url: - # kmsKeyId: - # resourceGroup: - # The ID of the subscription containing the storage account, if different from the cluster’s subscription. (Azure only) - # subscriptionId: - # storageAccount: - # publicUrl: - # Name of the GCP service account to use for this backup storage location. Specify the - # service account here if you want to use workload identity instead of providing the key file.(GCP only) - # serviceAccount: - # Option to skip certificate validation or not if insecureSkipTLSVerify is set to be true, the client side should set the - # flag. For Velero client Command like velero backup describe, velero backup logs needs to add the flag --insecure-skip-tls-verify - # insecureSkipTLSVerify: - - # Parameters for the VolumeSnapshotLocation(s). Configure multiple by adding other element(s) to the volumeSnapshotLocation slice. - # See https://velero.io/docs/v1.6/api-types/volumesnapshotlocation/ - volumeSnapshotLocation: - # name is the name of the volume snapshot location where snapshots are being taken. Required. - - name: - # provider is the name for the volume snapshot provider. - provider: - credential: - # name of the secret used by this volumeSnapshotLocation. - name: - # name of key that contains the secret data to be used. - key: - # Additional provider-specific configuration. See link above - # for details of required/optional fields for your provider. - config: {} - # region: - # apiTimeout: - # resourceGroup: - # The ID of the subscription where volume snapshots should be stored, if different from the cluster’s subscription. If specified, also requires `configuration.volumeSnapshotLocation.config.resourceGroup`to be set. (Azure only) - # subscriptionId: - # incremental: - # snapshotLocation: - # project: - - # These are server-level settings passed as CLI flags to the `velero server` command. Velero - # uses default values if they're not passed in, so they only need to be explicitly specified - # here if using a non-default value. The `velero server` default values are shown in the - # comments below. - # -------------------- - # `velero server` default: kopia - uploaderType: - # `velero server` default: 1m - backupSyncPeriod: - # `velero server` default: 4h - fsBackupTimeout: - # `velero server` default: 30 - clientBurst: - # `velero server` default: 500 - clientPageSize: - # `velero server` default: 20.0 - clientQPS: - # Name of the default backup storage location. Default: default - defaultBackupStorageLocation: - # The default duration any single item operation can take before timing out, especially important for large volume schedules. Default 4h - defaultItemOperationTimeout: - # How long to wait by default before backups can be garbage collected. Default: 72h - defaultBackupTTL: - # Name of the default volume snapshot location. - defaultVolumeSnapshotLocations: - # `velero server` default: empty - disableControllers: - # `velero server` default: 1h - garbageCollectionFrequency: - # Set log-format for Velero pod. Default: text. Other option: json. - logFormat: - # Set log-level for Velero pod. Default: info. Other options: debug, warning, error, fatal, panic. - logLevel: - # The address to expose prometheus metrics. Default: :8085 - metricsAddress: - # Directory containing Velero plugins. Default: /plugins - pluginDir: - # The address to expose the pprof profiler. Default: localhost:6060 - profilerAddress: - # `velero server` default: false - restoreOnlyMode: - # `velero server` default: customresourcedefinitions,namespaces,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,persistentvolumes,persistentvolumeclaims,secrets,configmaps,serviceaccounts,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io - restoreResourcePriorities: - # `velero server` default: 1m - storeValidationFrequency: - # How long to wait on persistent volumes and namespaces to terminate during a restore before timing out. Default: 10m - terminatingResourceTimeout: - # Bool flag to configure Velero server to move data by default for all snapshots supporting data movement. Default: false - defaultSnapshotMoveData: - # Comma separated list of velero feature flags. default: empty - # features: EnableCSI - features: - # `velero server` default: velero - namespace: - - # additional key/value pairs to be used as environment variables such as "AWS_CLUSTER_NAME: 'yourcluster.domain.tld'" - extraEnvVars: {} - - # Set true for backup all pod volumes without having to apply annotation on the pod when used file system backup Default: false. - defaultVolumesToFsBackup: - - # How often repository maintain is run for repositories by default. - defaultRepoMaintainFrequency: - -## -## End of backup/snapshot location settings. -## - - -## -## Settings for additional Velero resources. -## - -rbac: - # Whether to create the Velero role and role binding to give all permissions to the namespace to Velero. - create: true - # Whether to create the cluster role binding to give administrator permissions to Velero - clusterAdministrator: true - # Name of the ClusterRole. - clusterAdministratorName: cluster-admin - -# Information about the Kubernetes service account Velero uses. -serviceAccount: - server: - create: true - name: - annotations: - labels: - -# Info about the secret to be used by the Velero deployment, which -# should contain credentials for the cloud provider IAM account you've -# set up for Velero. -credentials: - # Whether a secret should be used. Set to false if, for examples: - # - using kube2iam or kiam to provide AWS IAM credentials instead of providing the key file. (AWS only) - # - using workload identity instead of providing the key file. (Azure/GCP only) - useSecret: true - # Name of the secret to create if `useSecret` is true and `existingSecret` is empty - name: - # Name of a pre-existing secret (if any) in the Velero namespace - # that should be used to get IAM account credentials. Optional. - existingSecret: - # Data to be stored in the Velero secret, if `useSecret` is true and `existingSecret` is empty. - # As of the current Velero release, Velero only uses one secret key/value at a time. - # The key must be named `cloud`, and the value corresponds to the entire content of your IAM credentials file. - # Note that the format will be different for different providers, please check their documentation. - # Here is a list of documentation for plugins maintained by the Velero team: - # [AWS] https://github.com/vmware-tanzu/velero-plugin-for-aws/blob/main/README.md - # [GCP] https://github.com/vmware-tanzu/velero-plugin-for-gcp/blob/main/README.md - # [Azure] https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure/blob/main/README.md - secretContents: {} - # cloud: | - # [default] - # aws_access_key_id= - # aws_secret_access_key= - # additional key/value pairs to be used as environment variables such as "DIGITALOCEAN_TOKEN: ". Values will be stored in the secret. - extraEnvVars: {} - # Name of a pre-existing secret (if any) in the Velero namespace - # that will be used to load environment variables into velero and node-agent. - # Secret should be in format - https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables - extraSecretRef: "" - -# Whether to create backupstoragelocation crd, if false => do not create a default backup location -backupsEnabled: true -# Whether to create volumesnapshotlocation crd, if false => disable snapshot feature -snapshotsEnabled: true - -# Whether to deploy the node-agent daemonset. -deployNodeAgent: false - -nodeAgent: - podVolumePath: /var/lib/kubelet/pods - privileged: false - # Pod priority class name to use for the node-agent daemonset. Optional. - priorityClassName: "" - # Resource requests/limits to specify for the node-agent daemonset deployment. Optional. - # https://velero.io/docs/v1.6/customize-installation/#customize-resource-requests-and-limits - resources: - requests: - cpu: 500m - memory: 512Mi - limits: - cpu: 1000m - memory: 1024Mi - - # Tolerations to use for the node-agent daemonset. Optional. - tolerations: [] - - # Annotations to set for the node-agent daemonset. Optional. - annotations: {} - - # labels to set for the node-agent daemonset. Optional. - labels: {} - - # will map /scratch to emptyDir. Set to false and specify your own volume - # via extraVolumes and extraVolumeMounts that maps to /scratch - # if you don't want to use emptyDir. - useScratchEmptyDir: true - - # Extra volumes for the node-agent daemonset. Optional. - extraVolumes: [] - - # Extra volumeMounts for the node-agent daemonset. Optional. - extraVolumeMounts: [] - - # Key/value pairs to be used as environment variables for the node-agent daemonset. Optional. - extraEnvVars: {} - - # Configure the dnsPolicy of the node-agent daemonset - # See: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy - dnsPolicy: ClusterFirst - - # SecurityContext to use for the Velero deployment. Optional. - # Set fsGroup for `AWS IAM Roles for Service Accounts` - # see more informations at: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html - podSecurityContext: - runAsUser: 0 - # fsGroup: 1337 - - # Container Level Security Context for the 'node-agent' container of the node-agent daemonset. Optional. - # See: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container - containerSecurityContext: {} - - # Container Lifecycle Hooks to use for the node-agent daemonset. Optional. - lifecycle: {} - - # Node selector to use for the node-agent daemonset. Optional. - nodeSelector: {} - - # Affinity to use with node-agent daemonset. Optional. - affinity: {} - - # DNS configuration to use for the node-agent daemonset. Optional. - dnsConfig: {} - -# Backup schedules to create. -# Eg: -# schedules: -# mybackup: -# disabled: false -# labels: -# myenv: foo -# annotations: -# myenv: foo -# schedule: "0 0 * * *" -# useOwnerReferencesInBackup: false -# template: -# ttl: "240h" -# storageLocation: default -# includedNamespaces: -# - foo -schedules: {} - -# Velero ConfigMaps. -# Eg: -# configMaps: - # See: https://velero.io/docs/v1.11/file-system-backup/ -# fs-restore-action-config: -# labels: -# velero.io/plugin-config: "" -# velero.io/pod-volume-restore: RestoreItemAction -# data: -# image: velero/velero-restore-helper:v1.10.2 -# cpuRequest: 200m -# memRequest: 128Mi -# cpuLimit: 200m -# memLimit: 128Mi -# secCtx: | -# capabilities: -# drop: -# - ALL -# add: [] -# allowPrivilegeEscalation: false -# readOnlyRootFilesystem: true -# runAsUser: 1001 -# runAsGroup: 999 -configMaps: {} - -## -## End of additional Velero resource settings. -## diff --git a/core.yaml b/core.yaml index 6f22c51bbc..2b3d891c39 100644 --- a/core.yaml +++ b/core.yaml @@ -107,10 +107,6 @@ k8s: disablePolicyChecks: true - name: sealed-secrets app: sealed-secrets - - name: velero - app: velero - disablePolicyChecks: true - disableIstioInjection: true - name: policy-reporter app: policy-reporter disablePolicyChecks: true @@ -342,8 +338,6 @@ adminApps: - name: trivy tags: [security] deps: [prometheus, grafana] - - name: velero - tags: [backup] - name: kyverno tags: [security] - name: rabbitmq diff --git a/helmfile.d/helmfile-50.services.yaml.gotmpl b/helmfile.d/helmfile-50.services.yaml.gotmpl index 381eedbf0a..7c02a1e939 100644 --- a/helmfile.d/helmfile-50.services.yaml.gotmpl +++ b/helmfile.d/helmfile-50.services.yaml.gotmpl @@ -12,12 +12,6 @@ bases: {{- $a := $v.apps }} releases: - - name: velero - installed: {{ $a | get "velero.enabled" }} - namespace: velero - labels: - pkg: velero - <<: *default - name: trivy-operator installed: {{ $a | get "trivy.enabled" }} namespace: trivy-operator diff --git a/helmfile.d/snippets/defaults.yaml b/helmfile.d/snippets/defaults.yaml index 4d6af99628..0778cbfb23 100644 --- a/helmfile.d/snippets/defaults.yaml +++ b/helmfile.d/snippets/defaults.yaml @@ -1177,19 +1177,6 @@ environments: cpu: "1" memory: 1G _rawValues: {} - velero: - enabled: false - restic: - enabled: false - logLevel: info - resources: - requests: - cpu: 20m - memory: 184Mi - limits: - cpu: "1" - memory: 512Mi - _rawValues: {} databases: keycloak: imageName: null diff --git a/tests/fixtures/env/apps/velero.yaml b/tests/fixtures/env/apps/velero.yaml deleted file mode 100644 index 32a26ce974..0000000000 --- a/tests/fixtures/env/apps/velero.yaml +++ /dev/null @@ -1,17 +0,0 @@ -kind: AplApp -metadata: - name: velero - labels: {} -spec: - enabled: true - restic: - enabled: false - _rawValues: {} - logLevel: info - resources: - limits: - cpu: '1' - memory: 512Mi - requests: - cpu: 20m - memory: 184Mi diff --git a/tests/fixtures/env/settings/obj.yaml b/tests/fixtures/env/settings/obj.yaml index ca57a32537..f536bfa1ae 100644 --- a/tests/fixtures/env/settings/obj.yaml +++ b/tests/fixtures/env/settings/obj.yaml @@ -13,7 +13,6 @@ spec: loki: my-clusterid-loki tempo: my-clusterid-tempo thanos: my-clusterid-thanos - velero: my-clusterid-velero kubeflow-pipelines: my-clusterid-kubeflow-pipelines region: nl-ams-1 type: linode diff --git a/tests/integration/full.yaml b/tests/integration/full.yaml index 9c05e65574..c2f84ffb34 100644 --- a/tests/integration/full.yaml +++ b/tests/integration/full.yaml @@ -39,8 +39,6 @@ apps: enabled: true trivy: enabled: true - velero: - enabled: false kyverno: enabled: true fabric8: diff --git a/values-changes.yaml b/values-changes.yaml index 802bab96be..27d4166474 100644 --- a/values-changes.yaml +++ b/values-changes.yaml @@ -383,3 +383,7 @@ changes: - 'apps.kured' - 'apps.kiali' - 'apps.falco' + - version: 46 + deletions: + - 'apps.velero' + - 'obj.provider.linode.buckets.velero' diff --git a/values-schema.yaml b/values-schema.yaml index 6553d1ccce..3e54cca195 100644 --- a/values-schema.yaml +++ b/values-schema.yaml @@ -2788,30 +2788,6 @@ properties: $ref: '#/definitions/resources' kubeRBACProxy: $ref: '#/definitions/resources' - velero: - additionalProperties: false - properties: - _rawValues: - $ref: '#/definitions/rawValues' - enabled: - type: boolean - default: false - restic: - enabled: - type: boolean - default: false - logLevel: - description: Set log-level for the Velero pod. - default: info - enum: - - debug - - info - - warning - - error - - fatal - - panic - resources: - $ref: '#/definitions/resources' patternProperties: '^ingress-nginx-[a-z0-9]([-a-z0-9]*[a-z0-9])+$': $ref: '#/definitions/ingressNginx' @@ -3322,10 +3298,6 @@ properties: type: string $ref: '#/definitions/wordCharacterPattern' default: cnpg - velero: - type: string - $ref: '#/definitions/wordCharacterPattern' - default: velero harbor: type: string $ref: '#/definitions/wordCharacterPattern' diff --git a/values/grafana-dashboards/grafana-dashboards.gotmpl b/values/grafana-dashboards/grafana-dashboards.gotmpl index a95c253e92..23028ab51b 100644 --- a/values/grafana-dashboards/grafana-dashboards.gotmpl +++ b/values/grafana-dashboards/grafana-dashboards.gotmpl @@ -13,9 +13,6 @@ folders: {{- if $v.apps.argocd.enabled }} - argo {{- end }} - {{- if $v.apps.velero.enabled }} - - velero - {{- end }} {{- if $v.apps.minio.enabled }} - minio {{- end }} diff --git a/values/minio/minio.gotmpl b/values/minio/minio.gotmpl index f8897f81eb..8887fbc980 100644 --- a/values/minio/minio.gotmpl +++ b/values/minio/minio.gotmpl @@ -3,7 +3,7 @@ {{- $k := $v.apps.keycloak }} {{- $minioDomain := printf "minio.%s" $v.cluster.domainSuffix }} {{- $rootCASecretName := "root-ca" }} -{{- $bucketNames := list "cnpg" "gitea" "harbor" "loki" "tempo" "velero" "thanos" "kubeflow-pipelines" -}} +{{- $bucketNames := list "cnpg" "gitea" "harbor" "loki" "tempo" "thanos" "kubeflow-pipelines" -}} {{- if $v.otomi.linodeLkeImageRepository }} global: diff --git a/values/prometheus-operator/prometheus-operator.gotmpl b/values/prometheus-operator/prometheus-operator.gotmpl index c1b02dbfa1..bce82e1f63 100644 --- a/values/prometheus-operator/prometheus-operator.gotmpl +++ b/values/prometheus-operator/prometheus-operator.gotmpl @@ -184,15 +184,15 @@ additionalPrometheusRules: {{- readFile "rules/blackbox.yaml" | nindent 4 }} - name: cloudnative-pg {{- readFile "rules/cloudnative-pg.yaml" | nindent 4 }} - {{ if $v.platformBackups.database.gitea.enabled }} + {{- if $v.platformBackups.database.gitea.enabled }} - name: gitea-db-backup {{- readFile "rules/gitea-db-backup.yaml" | nindent 4 }} {{- end }} - {{ if $v.platformBackups.database.harbor.enabled }} + {{- if $v.platformBackups.database.harbor.enabled }} - name: harbor-db-backup {{- readFile "rules/harbor-db-backup.yaml" | nindent 4 }} {{- end }} - {{ if $v.platformBackups.database.keycloak.enabled }} + {{- if $v.platformBackups.database.keycloak.enabled }} - name: keycloak-db-backup {{- readFile "rules/keycloak-db-backup.yaml" | nindent 4 }} {{- end }} diff --git a/values/team-ns/team-ns.gotmpl b/values/team-ns/team-ns.gotmpl index d64963069d..957c439280 100644 --- a/values/team-ns/team-ns.gotmpl +++ b/values/team-ns/team-ns.gotmpl @@ -37,8 +37,6 @@ apps: enabled: {{ $a.knative.enabled }} argocd: enabled: {{ $a.argocd.enabled }} - velero: - enabled: {{ $a.velero.enabled }} kyverno: enabled: {{ $a.kyverno.enabled }} diff --git a/values/velero/velero.gotmpl b/values/velero/velero.gotmpl deleted file mode 100644 index da141cd035..0000000000 --- a/values/velero/velero.gotmpl +++ /dev/null @@ -1,145 +0,0 @@ -{{- $v := .Values }} -{{- $vl := $v.apps.velero }} -{{- $obj := $v.obj.provider }} -{{- $b := $v.platformBackups.persistentVolumes }} - -resources: {{- $vl.resources | toYaml | nindent 2 }} - -upgradeJobResources: {{- $vl.resources | toYaml | nindent 2 }} - -metrics: - enabled: true - serviceMonitor: - enabled: true - additionalLabels: - prometheus: system - -{{- if eq $v.cluster.provider "custom" }} -snapshotsEnabled: false -{{- end }} - -upgradeCRDs: false -cleanUpCRDs: false - -initContainers: - - name: velero-plugin-for-aws - {{- if $v.otomi.linodeLkeImageRepository }} - image: "{{- $v.otomi.linodeLkeImageRepository }}/docker/velero/velero-plugin-for-aws:v1.8.2" - {{- else }} - image: velero/velero-plugin-for-aws:v1.8.2 - {{- end }} - imagePullPolicy: IfNotPresent - resources: - requests: - cpu: 50m - memory: 32Mi - limits: - cpu: 100m - memory: 32Mi - volumeMounts: - - mountPath: /target - name: plugins -{{- if eq $v.cluster.provider "linode" }} - - name: velero-plugin-for-linode - {{- if $v.otomi.linodeLkeImageRepository }} - image: "{{- $v.otomi.linodeLkeImageRepository }}/docker/linode/velero-plugin:v0.0.1" - {{- else }} - image: linode/velero-plugin:v0.0.1 - {{- end }} - imagePullPolicy: IfNotPresent - resources: - requests: - cpu: 50m - memory: 32Mi - limits: - cpu: 100m - memory: 512Mi - volumeMounts: - - mountPath: /target - name: plugins -{{- end }} - -podSecurityContext: - runAsUser: 1000 - -configuration: -# Use restic for File System Backups instead of kopia - uploaderType: restic - defaultBackupStorageLocation: apl - {{- if eq $obj.type "minioLocal" }} - backupStorageLocation: - - name: apl - provider: aws - default: true - bucket: velero - config: - s3Url: http://minio.minio.svc.cluster.local:9000 - publicUrl: http://minio.minio.svc.cluster.local:9000 - region: minio - s3ForcePathStyle: true - {{- end }} - {{- if eq $obj.type "linode" }} - backupStorageLocation: - - name: apl - provider: aws - default: true - bucket: {{ $obj.linode.buckets.velero }} - config: - s3Url: https://{{ $obj.linode.region }}.linodeobjects.com - region: {{ $obj.linode.region }} - s3ForcePathStyle: true - {{- end }} - {{- if eq $v.cluster.provider "linode" }} - volumeSnapshotLocation: - - name: apl - provider: linode.com/velero - {{- end }} - # if set Velero will back up all pod volumes using Restic with the exception of service account tokens, secrets, config maps and hostpath volumes - defaultVolumesToRestic: {{ $vl.restic.enabled }} - logLevel: {{ $vl.logLevel }} - - -credentials: -{{- with $v.platformBackups.persistentVolumes | get "linodeApiToken" nil }} - extraEnvVars: - linode_token: {{ $v.platformBackups.persistentVolumes.linodeApiToken }} -{{- end }} - secretContents: - cloud: | -{{- if eq $obj.type "linode" }} - [default] - aws_access_key_id={{ $obj.linode.accessKeyId }} - aws_secret_access_key={{ $obj.linode.secretAccessKey }} -{{- end }} -{{- if eq $obj.type "minioLocal" }} - [default] - aws_access_key_id=otomi-admin - aws_secret_access_key={{ $v.otomi.adminPassword | quote }} -{{- end }} - -kubectl: - {{- if $v.otomi.linodeLkeImageRepository }} - image: - repository: "{{- $v.otomi.linodeLkeImageRepository }}/docker/bitnami/kubectl" - {{- end }} - # Resource requests/limits to specify for the upgrade/cleanup job. - resources: - requests: - cpu: 50m - memory: 32Mi - limits: - cpu: 100m - memory: 32Mi - labels: - # do not inject sidecar, so the kubectl k8s job can exit and return the completed status - sidecar.istio.io/inject: "false" - -# Whether to deploy the node-agent daemonset. -# This parampeter is responsible for enabling restic(or kopia) to backup and restore volumes using File System Backup. -# Equivalent to running the velero install with --use-node-agent flag. -deployNodeAgent: {{ $vl.restic.enabled }} - -nodeAgent: - podSecurityContext: - runAsUser: 1338 - fsGroup: 1338 From 59dbff38587a5fc3c4e30838813a25fd46515253 Mon Sep 17 00:00:00 2001 From: Ferruh Cihan <63190600+ferruhcihan@users.noreply.github.com> Date: Mon, 17 Nov 2025 21:23:33 +0100 Subject: [PATCH 2/3] feat: remove backups --- src/common/repo.ts | 11 ------ .../env/settings/platformBackups.yaml | 1 - .../env/settings/secrets.platformBackups.yaml | 7 ---- .../fixtures/env/teams/demo/backups/bu1.yaml | 9 ----- .../fixtures/env/teams/demo/backups/bu2.yaml | 14 -------- values-changes.yaml | 4 +-- values-schema.yaml | 35 ------------------- values/team-ns/team-ns.gotmpl | 1 - 8 files changed, 2 insertions(+), 80 deletions(-) delete mode 100644 tests/fixtures/env/settings/secrets.platformBackups.yaml delete mode 100644 tests/fixtures/env/teams/demo/backups/bu1.yaml delete mode 100644 tests/fixtures/env/teams/demo/backups/bu2.yaml diff --git a/src/common/repo.ts b/src/common/repo.ts index f023a6fda8..0f0871b556 100644 --- a/src/common/repo.ts +++ b/src/common/repo.ts @@ -32,7 +32,6 @@ type AplKind = | 'AplTeamSettingSet' | 'AplTeamNetworkControl' | 'AplTeamProject' - | 'AplTeamBackup' | 'AplTeamSecret' | 'AplTeamService' | 'AplTeamWorkload' @@ -338,16 +337,6 @@ export function getFileMaps(envDir: string): Array { resourceDir: 'agents', loadToSpec: false, }, - { - kind: 'AplTeamBackup', - envDir, - jsonPathExpression: '$.teamConfig.*.backups[*]', - pathGlob: `${envDir}/env/teams/*/backups/*.yaml`, - processAs: 'arrayItem', - resourceGroup: 'team', - resourceDir: 'backups', - loadToSpec: true, - }, { kind: 'AplTeamProject', envDir, diff --git a/tests/fixtures/env/settings/platformBackups.yaml b/tests/fixtures/env/settings/platformBackups.yaml index 93670945ea..fa26866093 100644 --- a/tests/fixtures/env/settings/platformBackups.yaml +++ b/tests/fixtures/env/settings/platformBackups.yaml @@ -50,4 +50,3 @@ spec: enabled: true retentionPolicy: 7d schedule: 0 0 * * * - persistentVolumes: {} diff --git a/tests/fixtures/env/settings/secrets.platformBackups.yaml b/tests/fixtures/env/settings/secrets.platformBackups.yaml deleted file mode 100644 index 4bb4a2acab..0000000000 --- a/tests/fixtures/env/settings/secrets.platformBackups.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: AplBackupCollection -spec: - persistentVolumes: - linodeApiToken: justanapitokenhere -name: platformBackups -metadata: - name: platformBackups diff --git a/tests/fixtures/env/teams/demo/backups/bu1.yaml b/tests/fixtures/env/teams/demo/backups/bu1.yaml deleted file mode 100644 index 5b03e3b9ee..0000000000 --- a/tests/fixtures/env/teams/demo/backups/bu1.yaml +++ /dev/null @@ -1,9 +0,0 @@ -kind: AplTeamBackup -metadata: - name: bu1 - labels: - apl.io/teamId: demo -spec: - schedule: 0 0 0 * * - snapshotVolumes: true - ttl: 8h diff --git a/tests/fixtures/env/teams/demo/backups/bu2.yaml b/tests/fixtures/env/teams/demo/backups/bu2.yaml deleted file mode 100644 index 9c2528cdaf..0000000000 --- a/tests/fixtures/env/teams/demo/backups/bu2.yaml +++ /dev/null @@ -1,14 +0,0 @@ -kind: AplTeamBackup -metadata: - name: bu2 - labels: - apl.io/teamId: demo -spec: - labelSelector: - - name: app - value: hello - - name: backup - value: all - schedule: 0 0 0 * * - snapshotVolumes: true - ttl: 8h diff --git a/values-changes.yaml b/values-changes.yaml index 8b3cda81a8..055db34f84 100644 --- a/values-changes.yaml +++ b/values-changes.yaml @@ -385,7 +385,7 @@ changes: - 'apps.kured' - 'apps.kiali' - 'apps.falco' - - version: 46 - deletions: - 'apps.velero' - 'obj.provider.linode.buckets.velero' + - 'platformBackups.persistentVolumes' + - 'teamConfig.{team}.backups' diff --git a/values-schema.yaml b/values-schema.yaml index 3e54cca195..4035a74421 100644 --- a/values-schema.yaml +++ b/values-schema.yaml @@ -305,22 +305,6 @@ definitions: - 200m pattern: ^([1-9][0-9]*|([0]|[1-9]+)\\.[0-9]{1,3}|[1-9][0-9]*m)$ type: string - backup: - type: object - description: PV backups - properties: - name: - $ref: '#/definitions/idName' - ttl: - $ref: '#/definitions/backupTtl' - schedule: - $ref: '#/definitions/backupSchedule' - snapshotVolumes: - type: boolean - default: false - labelSelector: - $ref: '#/definitions/labels' - description: Individual objects must match this label selector to be included in the backup. domain: pattern: ^((([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))|([a-f0-9:]+:+)+[a-f0-9]+$ type: string @@ -1175,10 +1159,6 @@ definitions: $ref: '#/definitions/resources' kanikoTask: $ref: '#/definitions/resources' - backups: - type: array - items: - $ref: '#/definitions/backup' services: items: $ref: '#/definitions/service' @@ -1245,11 +1225,6 @@ definitions: platformAdmin: [read-any, update-any] teamAdmin: [read] teamMember: [read] - backupTtl: - default: 168h - description: Expiration of the backup. Defaults to 7 days. - title: TTL after finished - type: string backupRetentionPolicy: default: 7d description: Delete backups according to retention policy. In DAYS|WEEKS|MONTHS @@ -3240,16 +3215,6 @@ properties: type: string pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])$' default: keycloak - persistentVolumes: - type: object - description: Create backups of persistent volumes - additionalProperties: false - properties: - linodeApiToken: - type: string - description: Linode API Token - $ref: '#/definitions/wordCharacterPattern' - x-secret: '' gitea: type: object title: Gitea diff --git a/values/team-ns/team-ns.gotmpl b/values/team-ns/team-ns.gotmpl index 957c439280..8476e9f25b 100644 --- a/values/team-ns/team-ns.gotmpl +++ b/values/team-ns/team-ns.gotmpl @@ -48,7 +48,6 @@ ingress: {{- $v.ingress | toYaml | nindent 2 }} dns: {{- $v.dns | toYaml | nindent 2 }} secrets: {{- $team | get "secrets" list | toYaml | nindent 2 }} workloads: {{- $team | get "workloads" list | toYaml | nindent 2 }} -backups: {{- $team | get "backups" list | toYaml | nindent 2 }} builds: {{- $team | get "builds" list | toYaml | nindent 2 }} policies: {{- $team | get "policies" list | toYaml | nindent 2 }} sealedsecrets: {{- $team | get "sealedsecrets" list | toYaml | nindent 2 }} From 5b8e7cda417a3a301074eaaeb461c24ae6c7311b Mon Sep 17 00:00:00 2001 From: Ferruh Cihan <63190600+ferruhcihan@users.noreply.github.com> Date: Mon, 17 Nov 2025 21:23:40 +0100 Subject: [PATCH 3/3] feat: remove velero-cli from tty image --- tools/Dockerfile-tty | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tools/Dockerfile-tty b/tools/Dockerfile-tty index 2a979eb918..4ac12730a6 100644 --- a/tools/Dockerfile-tty +++ b/tools/Dockerfile-tty @@ -21,10 +21,6 @@ ARG K9S_CHECKSUM=sha256:bda09dc030a08987fe2b3bed678b15b52f23d6705e872d561932d4ca ARG HELM_VERSION=3.19.0 ARG HELM_CHECKSUM=sha256:a7f81ce08007091b86d8bd696eb4d86b8d0f2e1b9f6c714be62f82f96a594496 -# https://github.com/vmware-tanzu/velero/releases -ARG VELERO_VERSION=1.14.1 -ARG VELERO_CHECKSUM=sha256:1e123f9deb9479f1cd41ba53b799d73b962cd6ff16acebfca233725638c73db2 - # https://github.com/tektoncd/cli/releases ARG TKN_VERSION=0.42.0 ARG TKN_CHECKSUM=sha256:e21a96c454502457f1970d720da15153b8b0623b2de2c13598ff96fc98e69c44 @@ -52,10 +48,6 @@ RUN tar zxf /tmp/k9s_Linux_amd64.tar.gz -C /usr/local/bin/ k9s && rm /tmp/k9s_Li ADD --checksum=${HELM_CHECKSUM} https://get.helm.sh/helm-v${HELM_VERSION}-linux-amd64.tar.gz /tmp/ RUN tar zxvf /tmp/helm-v${HELM_VERSION}-linux-amd64.tar.gz linux-amd64/helm -O > /usr/local/bin/helm && chmod +x /usr/local/bin/helm && rm /tmp/helm-v${HELM_VERSION}-linux-amd64.tar.gz -# Installing velero cli -ADD --checksum=${VELERO_CHECKSUM} https://github.com/vmware-tanzu/velero/releases/download/v${VELERO_VERSION}/velero-v${VELERO_VERSION}-linux-amd64.tar.gz /tmp/ -RUN tar zxvf /tmp/velero-v${VELERO_VERSION}-linux-amd64.tar.gz velero-v${VELERO_VERSION}-linux-amd64/velero -O > /usr/local/bin/velero && chmod +x /usr/local/bin/velero && rm /tmp/velero-v${VELERO_VERSION}-linux-amd64.tar.gz - # Installing tekton cli ADD --checksum=${TKN_CHECKSUM} https://github.com/tektoncd/cli/releases/download/v${TKN_VERSION}/tkn_${TKN_VERSION}_Linux_x86_64.tar.gz /tmp/ RUN tar zxvf /tmp/tkn_${TKN_VERSION}_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn && rm /tmp/tkn_${TKN_VERSION}_Linux_x86_64.tar.gz