diff --git a/packages/apps/postgres/Chart.yaml b/packages/apps/postgres/Chart.yaml
index 33f65a4e..4ae93148 100644
--- a/packages/apps/postgres/Chart.yaml
+++ b/packages/apps/postgres/Chart.yaml
@@ -16,7 +16,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 0.17.0
+version: 0.17.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
diff --git a/packages/apps/postgres/README.md b/packages/apps/postgres/README.md
index 0bd4f27b..de808210 100644
--- a/packages/apps/postgres/README.md
+++ b/packages/apps/postgres/README.md
@@ -11,7 +11,50 @@ This managed service is controlled by the CloudNativePG operator, ensuring effic
- Docs:
- Github:
-## HowTos
+## Operations
+
+### How to enable backups
+
+To back up a PostgreSQL application, an external S3-compatible storage is required.
+
+To start regular backups, update the application, setting `backup.enabled` to `true`, and fill in the path and credentials to an `backup.*`:
+
+```yaml
+## @param backup.enabled Enable regular backups
+## @param backup.schedule Cron schedule for automated backups
+## @param backup.retentionPolicy Retention policy
+## @param backup.destinationPath Path to store the backup (i.e. s3://bucket/path/to/folder)
+## @param backup.endpointURL S3 Endpoint used to upload data to the cloud
+## @param backup.s3AccessKey Access key for S3, used for authentication
+## @param backup.s3SecretKey Secret key for S3, used for authentication
+backup:
+ enabled: false
+ retentionPolicy: 30d
+ destinationPath: s3://bucket/path/to/folder/
+ endpointURL: http://minio-gateway-service:9000
+ schedule: "0 2 * * * *"
+ s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
+ s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
+```
+
+### How to recover a backup
+
+CloudNativePG supports point-in-time-recovery.
+Recovering a backup is done by creating a new database instance and restoring the data in it.
+
+Create a new PostgreSQL application with a different name, but identical configuration.
+Set `bootstrap.enabled` to `true` and fill in the name of the database instance to recover from and the recovery time:
+
+```yaml
+## @param bootstrap.enabled Restore database cluster from a backup
+## @param bootstrap.recoveryTime Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest
+## @param bootstrap.oldName Name of database cluster before deleting
+##
+bootstrap:
+ enabled: false
+ recoveryTime: "" # leave empty for latest or exact timestamp; example: 2020-11-26 15:22:00.00000+00
+ oldName: ""
+```
### How to switch primary/secondary replica
@@ -19,24 +62,6 @@ See:
-
-### How to restore backup
-
-find snapshot:
-
-```bash
-restic -r s3:s3.example.org/postgres-backups/database_name snapshots
-```
-
-restore:
-
-```bash
-restic -r s3:s3.example.org/postgres-backups/database_name restore latest --target /tmp/
-```
-
-more details:
-
--
-
## Parameters
### Common parameters
@@ -60,23 +85,23 @@ more details:
### Backup parameters
-| Name | Description | Value |
-| ------------------------ | -------------------------------------------------------------------- | ----------------------------------- |
-| `backup.enabled` | Enable pereiodic backups | `false` |
-| `backup.schedule` | Cron schedule for automated backups | `0 2 * * * *` |
-| `backup.retentionPolicy` | The retention policy | `30d` |
-| `backup.destinationPath` | The path where to store the backup (i.e. s3://bucket/path/to/folder) | `s3://BUCKET_NAME/` |
-| `backup.endpointURL` | Endpoint to be used to upload data to the cloud | `http://minio-gateway-service:9000` |
-| `backup.s3AccessKey` | The access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
-| `backup.s3SecretKey` | The secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
+| Name | Description | Value |
+| ------------------------ | ---------------------------------------------------------- | ----------------------------------- |
+| `backup.enabled` | Enable regular backups | `false` |
+| `backup.schedule` | Cron schedule for automated backups | `0 2 * * * *` |
+| `backup.retentionPolicy` | Retention policy | `30d` |
+| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `s3://bucket/path/to/folder/` |
+| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `http://minio-gateway-service:9000` |
+| `backup.s3AccessKey` | Access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
+| `backup.s3SecretKey` | Secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
### Bootstrap parameters
| Name | Description | Value |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ------- |
-| `bootstrap.enabled` | Restore cluster from backup | `false` |
-| `bootstrap.recoveryTime` | Time stamp up to which recovery will proceed, expressed in RFC 3339 format, if empty, will restore latest | `""` |
-| `bootstrap.oldName` | Name of cluster before deleting | `""` |
+| `bootstrap.enabled` | Restore database cluster from a backup | `false` |
+| `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest | `""` |
+| `bootstrap.oldName` | Name of database cluster before deleting | `""` |
| `resources` | Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied. | `{}` |
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge. | `micro` |
diff --git a/packages/apps/postgres/values.schema.json b/packages/apps/postgres/values.schema.json
index ba60b35c..2774de7a 100644
--- a/packages/apps/postgres/values.schema.json
+++ b/packages/apps/postgres/values.schema.json
@@ -62,7 +62,7 @@
"properties": {
"enabled": {
"type": "boolean",
- "description": "Enable pereiodic backups",
+ "description": "Enable regular backups",
"default": false
},
"schedule": {
@@ -72,27 +72,27 @@
},
"retentionPolicy": {
"type": "string",
- "description": "The retention policy",
+ "description": "Retention policy",
"default": "30d"
},
"destinationPath": {
"type": "string",
- "description": "The path where to store the backup (i.e. s3://bucket/path/to/folder)",
- "default": "s3://BUCKET_NAME/"
+ "description": "Path to store the backup (i.e. s3://bucket/path/to/folder)",
+ "default": "s3://bucket/path/to/folder/"
},
"endpointURL": {
"type": "string",
- "description": "Endpoint to be used to upload data to the cloud",
+ "description": "S3 Endpoint used to upload data to the cloud",
"default": "http://minio-gateway-service:9000"
},
"s3AccessKey": {
"type": "string",
- "description": "The access key for S3, used for authentication",
+ "description": "Access key for S3, used for authentication",
"default": "oobaiRus9pah8PhohL1ThaeTa4UVa7gu"
},
"s3SecretKey": {
"type": "string",
- "description": "The secret key for S3, used for authentication",
+ "description": "Secret key for S3, used for authentication",
"default": "ju3eum4dekeich9ahM1te8waeGai0oog"
}
}
@@ -102,17 +102,17 @@
"properties": {
"enabled": {
"type": "boolean",
- "description": "Restore cluster from backup",
+ "description": "Restore database cluster from a backup",
"default": false
},
"recoveryTime": {
"type": "string",
- "description": "Time stamp up to which recovery will proceed, expressed in RFC 3339 format, if empty, will restore latest",
+ "description": "Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest",
"default": ""
},
"oldName": {
"type": "string",
- "description": "Name of cluster before deleting",
+ "description": "Name of database cluster before deleting",
"default": ""
}
}
diff --git a/packages/apps/postgres/values.yaml b/packages/apps/postgres/values.yaml
index 9e1867d6..58de27fc 100644
--- a/packages/apps/postgres/values.yaml
+++ b/packages/apps/postgres/values.yaml
@@ -59,17 +59,17 @@ databases: {}
## @section Backup parameters
-## @param backup.enabled Enable pereiodic backups
+## @param backup.enabled Enable regular backups
## @param backup.schedule Cron schedule for automated backups
-## @param backup.retentionPolicy The retention policy
-## @param backup.destinationPath The path where to store the backup (i.e. s3://bucket/path/to/folder)
-## @param backup.endpointURL Endpoint to be used to upload data to the cloud
-## @param backup.s3AccessKey The access key for S3, used for authentication
-## @param backup.s3SecretKey The secret key for S3, used for authentication
+## @param backup.retentionPolicy Retention policy
+## @param backup.destinationPath Path to store the backup (i.e. s3://bucket/path/to/folder)
+## @param backup.endpointURL S3 Endpoint used to upload data to the cloud
+## @param backup.s3AccessKey Access key for S3, used for authentication
+## @param backup.s3SecretKey Secret key for S3, used for authentication
backup:
enabled: false
retentionPolicy: 30d
- destinationPath: s3://BUCKET_NAME/
+ destinationPath: s3://bucket/path/to/folder/
endpointURL: http://minio-gateway-service:9000
schedule: "0 2 * * * *"
s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
@@ -77,9 +77,9 @@ backup:
## @section Bootstrap parameters
-## @param bootstrap.enabled Restore cluster from backup
-## @param bootstrap.recoveryTime Time stamp up to which recovery will proceed, expressed in RFC 3339 format, if empty, will restore latest
-## @param bootstrap.oldName Name of cluster before deleting
+## @param bootstrap.enabled Restore database cluster from a backup
+## @param bootstrap.recoveryTime Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest
+## @param bootstrap.oldName Name of database cluster before deleting
##
bootstrap:
enabled: false
diff --git a/packages/apps/versions_map b/packages/apps/versions_map
index dfd6f6bc..cefbae21 100644
--- a/packages/apps/versions_map
+++ b/packages/apps/versions_map
@@ -104,7 +104,8 @@ postgres 0.12.1 632224a3
postgres 0.14.0 62cb694d
postgres 0.15.1 4369b031
postgres 0.16.0 70f82667
-postgres 0.17.0 HEAD
+postgres 0.17.0 acd4663a
+postgres 0.17.1 HEAD
rabbitmq 0.1.0 263e47be
rabbitmq 0.2.0 53f2365e
rabbitmq 0.3.0 6c5cf5bf