Skip to content

Commit

Permalink
fix minor issues in blueprint
Browse files Browse the repository at this point in the history
  • Loading branch information
shahpratikr committed Apr 14, 2023
1 parent c9f8cab commit 3a9c0c1
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 53 deletions.
7 changes: 5 additions & 2 deletions examples/mongodb-atlas/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,12 @@ $ helm install kanister --namespace kanister --create-namespace \
### Create Blueprint
Create Blueprint in the same namespace as the controller

**NOTE:**

Replace `<registry>`, `<account_name>` and `<tag_name>` for the image value in `./mongodb-atlas-blueprint.yaml` before running following command.

```bash
$ kubectl create -f ./mongo-blueprint.yaml -n kanister
$ kubectl create -f ./mongodb-atlas-blueprint.yaml -n kanister
```

### Create Secret
Expand Down Expand Up @@ -69,7 +73,6 @@ $ mongosh "mongodb+srv://<cluster name>.<host>/<database name>" --apiVersion 1 \
]
```
## Protect the Application
You can now take a backup of the MongoDB data using an ActionSet defining
Expand Down
82 changes: 31 additions & 51 deletions examples/mongodb-atlas/mongodb-atlas-blueprint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ actions:
name: mongoBackup
args:
namespace: "{{ .Object.metadata.namespace }}"
image: docker.io/pratikrshah/mongo-atlas:0.90.0-test1
image: <registry>/<account_name>/mongodb-atlas:<tag_name>
command:
- bash
- -o
Expand All @@ -22,20 +22,16 @@ actions:
- pipefail
- -c
- |
org_id=$(echo '{{ .Object.data.orgid | toString }}' | base64 --decode)
private_key=$(echo '{{ .Object.data.privatekey | toString }}' | base64 --decode)
project_id=$(echo '{{ .Object.data.projectid | toString }}' | base64 --decode)
public_key=$(echo '{{ .Object.data.publickey | toString }}' | base64 --decode)
cluster_name=$(echo '{{ .Object.data.clustername | toString }}' | base64 --decode)
cat >/root/.config/atlascli/config.toml <<EOL
[default]
org_id = "${org_id}"
org_id = '{{ .Object.data.orgid | toString | b64dec }}'
output = 'json'
private_api_key = "${private_key}"
project_id = "${project_id}"
public_api_key = "${public_key}"
private_api_key = '{{ .Object.data.privatekey | toString | b64dec }}'
project_id = '{{ .Object.data.projectid | toString | b64dec }}'
public_api_key = '{{ .Object.data.publickey | toString | b64dec }}'
service = 'cloud'
EOL
cluster_name='{{ .Object.data.clustername | toString | b64dec }}'
atlas backups snapshots create ${cluster_name} --desc "MongoDB Atlas snapshot" -o json > output.json
snapshot_id=$(jq -r ".id" output.json)
kando output snapshotId ${snapshot_id}
Expand All @@ -44,7 +40,7 @@ actions:
name: WaitForBackupToComplete
args:
namespace: "{{ .Object.metadata.namespace }}"
image: docker.io/pratikrshah/mongo-atlas:0.90.0-test1
image: <registry>/<account_name>/mongodb-atlas:<tag_name>
command:
- bash
- -o
Expand All @@ -53,20 +49,16 @@ actions:
- pipefail
- -c
- |
org_id=$(echo '{{ .Object.data.orgid | toString }}' | base64 --decode)
private_key=$(echo '{{ .Object.data.privatekey | toString }}' | base64 --decode)
project_id=$(echo '{{ .Object.data.projectid | toString }}' | base64 --decode)
public_key=$(echo '{{ .Object.data.publickey | toString }}' | base64 --decode)
cluster_name=$(echo '{{ .Object.data.clustername | toString }}' | base64 --decode)
cat >/root/.config/atlascli/config.toml <<EOL
[default]
org_id = "${org_id}"
org_id = '{{ .Object.data.orgid | toString | b64dec }}'
output = 'json'
private_api_key = "${private_key}"
project_id = "${project_id}"
public_api_key = "${public_key}"
private_api_key = '{{ .Object.data.privatekey | toString | b64dec }}'
project_id = '{{ .Object.data.projectid | toString | b64dec }}'
public_api_key = '{{ .Object.data.publickey | toString | b64dec }}'
service = 'cloud'
EOL
cluster_name='{{ .Object.data.clustername | toString | b64dec }}'
isCreated=false
isFailed=false
while [[ $isCreated != true && $isFailed == false ]];
Expand Down Expand Up @@ -95,7 +87,7 @@ actions:
name: mongoRestore
args:
namespace: "{{ .Object.metadata.namespace }}"
image: docker.io/pratikrshah/mongo-atlas:0.90.0-test1
image: <registry>/<account_name>/mongodb-atlas:<tag_name>
command:
- bash
- -o
Expand All @@ -104,23 +96,19 @@ actions:
- pipefail
- -c
- |
org_id=$(echo '{{ .Object.data.orgid | toString }}' | base64 --decode)
private_key=$(echo '{{ .Object.data.privatekey | toString }}' | base64 --decode)
project_id=$(echo '{{ .Object.data.projectid | toString }}' | base64 --decode)
public_key=$(echo '{{ .Object.data.publickey | toString }}' | base64 --decode)
cluster_name=$(echo '{{ .Object.data.clustername | toString }}' | base64 --decode)
cat >/root/.config/atlascli/config.toml <<EOL
[default]
org_id = "${org_id}"
org_id = '{{ .Object.data.orgid | toString | b64dec }}'
output = 'json'
private_api_key = "${private_key}"
project_id = "${project_id}"
public_api_key = "${public_key}"
private_api_key = '{{ .Object.data.privatekey | toString | b64dec }}'
project_id = '{{ .Object.data.projectid | toString | b64dec }}'
public_api_key = '{{ .Object.data.publickey | toString | b64dec }}'
service = 'cloud'
EOL
cluster_name='{{ .Object.data.clustername | toString | b64dec }}'
snapshot_id='{{ .ArtifactsIn.backupOutput.KeyValue.snapshotId }}'
target_cluster_name=${cluster_name}
target_project_id=${project_id}
target_project_id='{{ .Object.data.projectid | toString | b64dec }}'
atlas backup restore start automated --clusterName ${cluster_name} --snapshotId ${snapshot_id} \
--targetClusterName ${target_cluster_name} --targetProjectId ${target_project_id} -o json > output.json
restore_id=$(jq -r ".id" output.json)
Expand All @@ -130,7 +118,7 @@ actions:
name: WaitForRestoreToComplete
args:
namespace: "{{ .Object.metadata.namespace }}"
image: docker.io/pratikrshah/mongo-atlas:0.90.0-test1
image: <registry>/<account_name>/mongodb-atlas:<tag_name>
command:
- bash
- -o
Expand All @@ -139,20 +127,16 @@ actions:
- pipefail
- -c
- |
org_id=$(echo '{{ .Object.data.orgid | toString }}' | base64 --decode)
private_key=$(echo '{{ .Object.data.privatekey | toString }}' | base64 --decode)
project_id=$(echo '{{ .Object.data.projectid | toString }}' | base64 --decode)
public_key=$(echo '{{ .Object.data.publickey | toString }}' | base64 --decode)
cluster_name=$(echo '{{ .Object.data.clustername | toString }}' | base64 --decode)
cat >/root/.config/atlascli/config.toml <<EOL
[default]
org_id = "${org_id}"
org_id = '{{ .Object.data.orgid | toString | b64dec }}'
output = 'json'
private_api_key = "${private_key}"
project_id = "${project_id}"
public_api_key = "${public_key}"
private_api_key = '{{ .Object.data.privatekey | toString | b64dec }}'
project_id = '{{ .Object.data.projectid | toString | b64dec }}'
public_api_key = '{{ .Object.data.publickey | toString | b64dec }}'
service = 'cloud'
EOL
cluster_name='{{ .Object.data.clustername | toString | b64dec }}'
isCreated=false
isFailed=false
while [[ $isCreated != true && $isFailed == false ]];
Expand All @@ -178,7 +162,7 @@ actions:
name: deleteMongoBackup
args:
namespace: "{{ .Object.metadata.namespace }}"
image: docker.io/pratikrshah/mongo-atlas:0.90.0-test1
image: <registry>/<account_name>/mongodb-atlas:<tag_name>
command:
- bash
- -o
Expand All @@ -187,19 +171,15 @@ actions:
- pipefail
- -c
- |
org_id=$(echo '{{ .Object.data.orgid | toString }}' | base64 --decode)
private_key=$(echo '{{ .Object.data.privatekey | toString }}' | base64 --decode)
project_id=$(echo '{{ .Object.data.projectid | toString }}' | base64 --decode)
public_key=$(echo '{{ .Object.data.publickey | toString }}' | base64 --decode)
cluster_name=$(echo '{{ .Object.data.clustername | toString }}' | base64 --decode)
cat >/root/.config/atlascli/config.toml <<EOL
[default]
org_id = "${org_id}"
org_id = '{{ .Object.data.orgid | toString | b64dec }}'
output = 'json'
private_api_key = "${private_key}"
project_id = "${project_id}"
public_api_key = "${public_key}"
private_api_key = '{{ .Object.data.privatekey | toString | b64dec }}'
project_id = '{{ .Object.data.projectid | toString | b64dec }}'
public_api_key = '{{ .Object.data.publickey | toString | b64dec }}'
service = 'cloud'
EOL
cluster_name='{{ .Object.data.clustername | toString | b64dec }}'
atlas backups snapshots delete {{ .ArtifactsIn.backupOutput.KeyValue.snapshotId }} \
--clusterName ${cluster_name} --force

0 comments on commit 3a9c0c1

Please sign in to comment.