From 7b68d5eabc9c98a370f4f0e5134936ee32bdb0ba Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Mon, 4 Nov 2024 15:28:21 -0700 Subject: [PATCH 01/12] Add backup and restore guides for Rhize Graph database to AWS --- content/deploy/backup/binary.md | 92 ++++++++++++++++++++++++++++++++ content/deploy/restore/binary.md | 69 ++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 content/deploy/backup/binary.md create mode 100644 content/deploy/restore/binary.md diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md new file mode 100644 index 000000000..c2b99ad72 --- /dev/null +++ b/content/deploy/backup/binary.md @@ -0,0 +1,92 @@ +--- +title: 'Back up the Graph DB to AWS' +date: '2024-11-04T11:01:46-03:00' +categories: ["how-to"] +description: How to back up the Rhize graph database to Amazon S3 storage. +weight: 100 +menu: + main: + parent: backup + identifier: +--- + +This guide shows you how to back up the Rhize Graph database to Amazon S3 storage. + +## Prerequisites + +Before you start, ensure you have the following: + + +- A designated S3 backup location, for example `s3://s3..amazonaws.com/`. +- Access to your [Rhize Kubernetes Environment]({{< relref "install" >}}) +{{% param pre_reqs %}}. + + +Before you start, confirm you are in the right context and namespace: + +{{% param "k8s_cluster_ns" %}} + +## Steps + +To back up the database, follow these steps: + +1. Check the logs for the alpha and zero pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs). + Ensure there are no errors. + + ```bash + kubectl logs {{< param application_name >}}-baas-baas-alpha-0 --tail=80 + ``` +1. Set the follow environmental variables: + - `AWS_ACCESS_KEY_ID` AWS access key with permissions to write to the destination bucket + - `AWS_SECRET_ACCESS_KEY` AWS access key with permissions to write to the destination bucket + - `AWS_SESSION_TOKEN` AWS session token (if required) + +1. Open a pod shell for one of the alpha pods. If you are using the terminal, run this command: + + ```bash + kubectl exec --stdin --tty {{< param application_name >}}-baas-baas-alpha-0 \ + -n {{< param "application_name" >}} -- /bin/bash + ``` + + For details, read the Kubernetes topic [Get Shell to a Running Container](https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/). + +1. Make a POST request to your Keycloak `/token` endpoint to get an `access_token` value. +For example, with `curl` and `jq`: + + ```bash + ## replace USERNAME and PASSWORD with your credentials + USERNAME=backups@libremfg.com \ + && PASSWORD=password \ + && curl --location \ + --request POST "${BAAS_OIDC_URL}/realms/libre/protocol/openid-connect/token" \ + --header 'Content-Type\ application/x-www-form-urlencoded' \ + --data-urlencode 'grant_type=password' \ + --data-urlencode "username=${USERNAME}" \ + --data-urlencode "password=${PASSWORD}" \ + --data-urlencode "client_id=${BAAS_OIDC_CLIENT_ID}" \ + --data-urlencode "client_secret=${OIDC_SECRET}" | jq .access_token + ``` + +1. Using the token from the previous step, send a POST to `:8080/admin` to create a backup of the node to your S3 bucket. +For example, with `curl`: + + ```bash + curl --location 'http://alpha:8080/admin' \ + --header 'Content-Type: application/json' \ + --header 'Authorization: Bearer ' \ + --data '{"query":"mutation {\n backup(input: {destination: \"s3://s3..amazonaws.com/\"}) {\n response {\n message\n code\n }\n taskId\n }\n}","variables":{}}' + ``` + +1. List available backups to confirm your backup succeeded: + + ```bash + curl --location 'http://alpha:8080/admin' \ + --header 'Content-Type: application/json' \ + --header 'Authorization: Bearer ' \ + --data '{"query":"query backup() {\n\tlistBackups(input: {location: \"s3://s3.>.amazonaws.com/\"}) {\n\t\tbackupId\n\t\tbackupNum\n\t\tpath\n\t\tsince\n\t\ttype\n\t}\n}","variables":{}}' + ``` + +## Next Steps + +- Test the [Restore Graph Database From S3]({{< relref "../restore/binary" >}}) procedure to ensure you can recover data from Amazon S3 in case of an emergency. +- To back up other Rhize services, read how to backup [Grafana]({{< relref "grafana" >}}). diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md new file mode 100644 index 000000000..87e41b8be --- /dev/null +++ b/content/deploy/restore/binary.md @@ -0,0 +1,69 @@ +--- +title: 'Restore the GraphDB from AWS' +date: '2023-10-19T13:52:23-03:00' +ategories: ["how-to"] +description: How to restore a backup of the Rhize Graph DB from Amazon S3. +weight: 200 +menu: + main: + parent: restore + identifier: +--- + +This guide shows you how to restore the Graph database from Amazon S3 to your Rhize environment. + +## Prerequisites + +Before you start, ensure you have the following: + +- The GraphDB Helm chart +- [`kubectl`](https://kubernetes.io/docs/tasks/tools/) +- A [Database backup]({{< relref "../backup/binary" >}}) + +## Steps + + + +1. Set the follow environmental variables: + - `AWS_ACCESS_KEY_ID` AWS access key with permissions to write to the destination bucket + - `AWS_SECRET_ACCESS_KEY` AWS access key with permissions to write to the destination bucket + - `AWS_SESSION_TOKEN` AWS session token (if required) + +1. Confirm the cluster and namespace are correct. + + {{% param k8s_cluster_ns %}} + +1. Upgrade or install the Helm chart. + + ```bash + helm upgrade --install -f baas.yaml {{< param application_name >}}-baas {{< param application_name >}}/baas -n {{< param application_name >}} + ``` + +1. Wait for `{{< param application_name >}}-baas-alpha-0` to start serving the GraphQL API. + +1. Make a POST request to your Keycloak `/token` endpoint to get an `access_token` value. + For example, with `curl` and `jq`: + + ```bash + ## replace USERNAME and PASSWORD with your credentials + USERNAME=backups@libremfg.com \ + && PASSWORD=password \ + && curl --location \ + --request POST "${BAAS_OIDC_URL}/realms/libre/protocol/openid-connect/token" \ + --header 'Content-Type\ application/x-www-form-urlencoded' \ + --data-urlencode 'grant_type=password' \ + --data-urlencode "username=${USERNAME}" \ + --data-urlencode "password=${PASSWORD}" \ + --data-urlencode "client_id=${BAAS_OIDC_CLIENT_ID}" \ + --data-urlencode "client_secret=${OIDC_SECRET}" | jq .access_token + ``` + +1. Using the token from the previous step, send a POST to `:8080/admin` to start the restore from the s3 bucket to the alpha node. + For example, with `curl`: + + ```bash + curl --location 'http://alpha-0:8080/admin' \ + --header 'Content-Type: application/json' \ + --header 'Authorization: Bearer ' \ + --data '{"query":"mutation{\n restore(input:{\n location: \"s3://s3..amazonaws.com/\",\n backupId: \"cocky_boyd5\"\n }){\n message\n code\n }\n}","variables":{}}' + ``` From be663075f445e52af1d6348b61843b24390275be Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Mon, 4 Nov 2024 15:35:05 -0700 Subject: [PATCH 02/12] Format AWS envars --- content/deploy/backup/binary.md | 6 +++--- content/deploy/restore/binary.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index c2b99ad72..befdbb7ef 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -37,9 +37,9 @@ To back up the database, follow these steps: kubectl logs {{< param application_name >}}-baas-baas-alpha-0 --tail=80 ``` 1. Set the follow environmental variables: - - `AWS_ACCESS_KEY_ID` AWS access key with permissions to write to the destination bucket - - `AWS_SECRET_ACCESS_KEY` AWS access key with permissions to write to the destination bucket - - `AWS_SESSION_TOKEN` AWS session token (if required) + - `AWS_ACCESS_KEY_ID` your AWS access key with permissions to write to the destination bucket + - `AWS_SECRET_ACCESS_KEY` your AWS access key with permissions to write to the destination bucket + - `AWS_SESSION_TOKEN` your AWS session token (if required) 1. Open a pod shell for one of the alpha pods. If you are using the terminal, run this command: diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index 87e41b8be..77c0acede 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -25,9 +25,9 @@ Before you start, ensure you have the following: 1. Set the follow environmental variables: - - `AWS_ACCESS_KEY_ID` AWS access key with permissions to write to the destination bucket - - `AWS_SECRET_ACCESS_KEY` AWS access key with permissions to write to the destination bucket - - `AWS_SESSION_TOKEN` AWS session token (if required) + - `AWS_ACCESS_KEY_ID` your AWS access key with permissions to write to the destination bucket + - `AWS_SECRET_ACCESS_KEY` your AWS access key with permissions to write to the destination bucket + - `AWS_SESSION_TOKEN` your AWS session token (if required) 1. Confirm the cluster and namespace are correct. From 1245f3d5d8a38383933b0901ea447c98b532228f Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Mon, 4 Nov 2024 16:13:12 -0700 Subject: [PATCH 03/12] Remove pod shell instructions and fix variable names. --- content/deploy/backup/binary.md | 17 ++++------------- content/deploy/restore/binary.md | 8 ++++---- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index befdbb7ef..9bbf4fcd8 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -41,15 +41,6 @@ To back up the database, follow these steps: - `AWS_SECRET_ACCESS_KEY` your AWS access key with permissions to write to the destination bucket - `AWS_SESSION_TOKEN` your AWS session token (if required) -1. Open a pod shell for one of the alpha pods. If you are using the terminal, run this command: - - ```bash - kubectl exec --stdin --tty {{< param application_name >}}-baas-baas-alpha-0 \ - -n {{< param "application_name" >}} -- /bin/bash - ``` - - For details, read the Kubernetes topic [Get Shell to a Running Container](https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/). - 1. Make a POST request to your Keycloak `/token` endpoint to get an `access_token` value. For example, with `curl` and `jq`: @@ -61,10 +52,10 @@ For example, with `curl` and `jq`: --request POST "${BAAS_OIDC_URL}/realms/libre/protocol/openid-connect/token" \ --header 'Content-Type\ application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ - --data-urlencode "username=${USERNAME}" \ - --data-urlencode "password=${PASSWORD}" \ - --data-urlencode "client_id=${BAAS_OIDC_CLIENT_ID}" \ - --data-urlencode "client_secret=${OIDC_SECRET}" | jq .access_token + --data-urlencode "username=" \ + --data-urlencode "password=" \ + --data-urlencode "client_id=" \ + --data-urlencode "client_secret=" | jq .access_token ``` 1. Using the token from the previous step, send a POST to `:8080/admin` to create a backup of the node to your S3 bucket. diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index 77c0acede..b893e31ff 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -52,10 +52,10 @@ Before you start, ensure you have the following: --request POST "${BAAS_OIDC_URL}/realms/libre/protocol/openid-connect/token" \ --header 'Content-Type\ application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ - --data-urlencode "username=${USERNAME}" \ - --data-urlencode "password=${PASSWORD}" \ - --data-urlencode "client_id=${BAAS_OIDC_CLIENT_ID}" \ - --data-urlencode "client_secret=${OIDC_SECRET}" | jq .access_token + --data-urlencode "username=" \ + --data-urlencode "password=" \ + --data-urlencode "client_id=" \ + --data-urlencode "client_secret=" | jq .access_token ``` 1. Using the token from the previous step, send a POST to `:8080/admin` to start the restore from the s3 bucket to the alpha node. From b23b8be4cb3ad1bc9ff11c2c4cf553cf54c4709a Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 14:53:12 -0700 Subject: [PATCH 04/12] =?UTF-8?q?Update=20backup=20and=20restore=20steps?= =?UTF-8?q?=20to=20improve=20clarity.=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/deploy/backup/binary.md | 2 +- content/deploy/restore/binary.md | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index 9bbf4fcd8..ba367a4c9 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -74,7 +74,7 @@ For example, with `curl`: curl --location 'http://alpha:8080/admin' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ' \ - --data '{"query":"query backup() {\n\tlistBackups(input: {location: \"s3://s3.>.amazonaws.com/\"}) {\n\t\tbackupId\n\t\tbackupNum\n\t\tpath\n\t\tsince\n\t\ttype\n\t}\n}","variables":{}}' + --data '{"query":"query backup {\n\tlistBackups(input: {location: \"s3://s3.>.amazonaws.com/\"}) {\n\t\tbackupId\n\t\tbackupNum\n\t\tpath\n\t\tsince\n\t\ttype\n\t}\n}","variables":{}}' ``` ## Next Steps diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index b893e31ff..7f952a246 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -58,12 +58,21 @@ Before you start, ensure you have the following: --data-urlencode "client_secret=" | jq .access_token ``` -1. Using the token from the previous step, send a POST to `:8080/admin` to start the restore from the s3 bucket to the alpha node. +1. Using the token from the previous step, send a POST to to `:8080/admin` to retrieve a list of available backups from the s3 bucket. + + ```bash + curl --location 'http://alpha-0:8080/admin' \ + --header 'Content-Type: application/json' \ + --header 'Authorization: Bearer ' \ + --data '{"query":"query {\n\tlistBackups(input: {location: \"s3://s3..amazonaws.com/\"}) {\n\t\tbackupId\n\t\tbackupNum\n\t\tencrypted\n\t\tpath\n\t\tsince\n\t\ttype\n readTs\n\t}\n}","variables":{}}' + ``` + +1. Using the backup id and token from the previous step, send a POST to `:8080/admin` to start the restore from the s3 bucket to the alpha node. For example, with `curl`: ```bash curl --location 'http://alpha-0:8080/admin' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ' \ - --data '{"query":"mutation{\n restore(input:{\n location: \"s3://s3..amazonaws.com/\",\n backupId: \"cocky_boyd5\"\n }){\n message\n code\n }\n}","variables":{}}' + --data '{"query":"mutation{\n restore(input:{\n location: \"s3://s3..amazonaws.com/\",\n backupId: \"\"\n }){\n message\n code\n }\n}","variables":{}}' ``` From 31cc8a9f946126b12ff3175bbdab8773ac00552e Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 16:28:24 -0700 Subject: [PATCH 05/12] Update content/deploy/backup/binary.md Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com> --- content/deploy/backup/binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index 9bbf4fcd8..cc746e3fa 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -36,7 +36,7 @@ To back up the database, follow these steps: ```bash kubectl logs {{< param application_name >}}-baas-baas-alpha-0 --tail=80 ``` -1. Set the follow environmental variables: +1. Set the following environmental variables: - `AWS_ACCESS_KEY_ID` your AWS access key with permissions to write to the destination bucket - `AWS_SECRET_ACCESS_KEY` your AWS access key with permissions to write to the destination bucket - `AWS_SESSION_TOKEN` your AWS session token (if required) From 5533c233e28878b2338f241d5973339621f03510 Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 16:28:33 -0700 Subject: [PATCH 06/12] Update content/deploy/backup/binary.md Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com> --- content/deploy/backup/binary.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index cc746e3fa..92c7af1af 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -37,9 +37,9 @@ To back up the database, follow these steps: kubectl logs {{< param application_name >}}-baas-baas-alpha-0 --tail=80 ``` 1. Set the following environmental variables: - - `AWS_ACCESS_KEY_ID` your AWS access key with permissions to write to the destination bucket - - `AWS_SECRET_ACCESS_KEY` your AWS access key with permissions to write to the destination bucket - - `AWS_SESSION_TOKEN` your AWS session token (if required) + - `AWS_ACCESS_KEY_ID`. Your AWS access key with permissions to write to the destination bucket + - `AWS_SECRET_ACCESS_KEY`. Your AWS access key with permissions to write to the destination bucket + - `AWS_SESSION_TOKEN`. Your AWS session token (if required) 1. Make a POST request to your Keycloak `/token` endpoint to get an `access_token` value. For example, with `curl` and `jq`: From a360d5fc2bf24b68626988569006e528f6849d7d Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 16:28:43 -0700 Subject: [PATCH 07/12] Update content/deploy/restore/binary.md Co-authored-by: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com> --- content/deploy/restore/binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index b893e31ff..a7e96c008 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -58,7 +58,7 @@ Before you start, ensure you have the following: --data-urlencode "client_secret=" | jq .access_token ``` -1. Using the token from the previous step, send a POST to `:8080/admin` to start the restore from the s3 bucket to the alpha node. +1. Using the token from the previous step, send a POST to `:8080/admin` to restore from the S3 bucket to the alpha node. For example, with `curl`: ```bash From 3ca524552ec82b0d07d01cf8529b0a456850071d Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 16:31:27 -0700 Subject: [PATCH 08/12] Update backup and restore steps to improve clarity. --- content/deploy/backup/binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index ba367a4c9..32a9122f6 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -10,7 +10,7 @@ menu: identifier: --- -This guide shows you how to back up the Rhize Graph database to Amazon S3 storage. +This guide shows you how to back up the Rhize Graph database to Amazon S3 and S3-compatible storage. ## Prerequisites From 5e1930c14ed34b82247e8f1be43cce6509792802 Mon Sep 17 00:00:00 2001 From: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com> Date: Tue, 5 Nov 2024 20:32:36 -0300 Subject: [PATCH 09/12] Change AWS to S3 in title --- content/deploy/backup/binary.md | 2 +- content/deploy/restore/binary.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/deploy/backup/binary.md b/content/deploy/backup/binary.md index 92c7af1af..5bf0fbe62 100644 --- a/content/deploy/backup/binary.md +++ b/content/deploy/backup/binary.md @@ -1,5 +1,5 @@ --- -title: 'Back up the Graph DB to AWS' +title: 'Back up the Graph DB to S3' date: '2024-11-04T11:01:46-03:00' categories: ["how-to"] description: How to back up the Rhize graph database to Amazon S3 storage. diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index a7e96c008..1bd8b3159 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -1,5 +1,5 @@ --- -title: 'Restore the GraphDB from AWS' +title: 'Restore the GraphDB from S3' date: '2023-10-19T13:52:23-03:00' ategories: ["how-to"] description: How to restore a backup of the Rhize Graph DB from Amazon S3. From 6c496e687774279339164577c77fe3c8feb41331 Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 16:36:32 -0700 Subject: [PATCH 10/12] Fix code block indentation. --- content/deploy/restore/binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index 46b0efa60..d88c89439 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -60,7 +60,7 @@ Before you start, ensure you have the following: 1. Using the token from the previous step, send a POST to to `:8080/admin` to retrieve a list of available backups from the s3 bucket. - ```bash + ```bash curl --location 'http://alpha-0:8080/admin' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ' \ From 59074db641fc0a60e27fee93cb6dba721068c3af Mon Sep 17 00:00:00 2001 From: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com> Date: Tue, 5 Nov 2024 20:37:55 -0300 Subject: [PATCH 11/12] remove double to --- content/deploy/restore/binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index d88c89439..336c5d7d7 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -58,7 +58,7 @@ Before you start, ensure you have the following: --data-urlencode "client_secret=" | jq .access_token ``` -1. Using the token from the previous step, send a POST to to `:8080/admin` to retrieve a list of available backups from the s3 bucket. +1. Using the token from the previous step, send a POST to `:8080/admin` to retrieve a list of available backups from the s3 bucket. ```bash curl --location 'http://alpha-0:8080/admin' \ From 4e55d74df4407b941647425d4a220851fb4b46f3 Mon Sep 17 00:00:00 2001 From: Matthew Vandergrift Date: Tue, 5 Nov 2024 16:40:25 -0700 Subject: [PATCH 12/12] Fix list restore files typo. --- content/deploy/restore/binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/deploy/restore/binary.md b/content/deploy/restore/binary.md index d88c89439..336c5d7d7 100644 --- a/content/deploy/restore/binary.md +++ b/content/deploy/restore/binary.md @@ -58,7 +58,7 @@ Before you start, ensure you have the following: --data-urlencode "client_secret=" | jq .access_token ``` -1. Using the token from the previous step, send a POST to to `:8080/admin` to retrieve a list of available backups from the s3 bucket. +1. Using the token from the previous step, send a POST to `:8080/admin` to retrieve a list of available backups from the s3 bucket. ```bash curl --location 'http://alpha-0:8080/admin' \