1
0
hugo/content/blog/2024-02-05-api.md

42 lines
1.1 KiB
Markdown
Raw Normal View History

2024-04-23 13:21:26 +00:00
+++
date = "2024-02-05"
tags = ["api","northflank"]
title = "northflankのvolumeをbackupする"
slug = "api"
+++
`northflank`のapiではvolumeをexportする方法が用意されてないみたいなので、これを自動化する必要があります。
```sh
# https://northflank.com/docs/v1/api/volumes/get-volume
$ northflank get volume
# https://northflank.com/docs/v1/api/volumes/update-volume
$ northflank update volume
```
具体的には`git`のprivate-repoを使用します。
```sh
$ northflank exec service --project $PROJECT --service $SERVICE --cmd "/data/backup.sh $TOKEN"
```
```sh:/data/backup.sh
#!/bin/bash
TOKEN=$1
git config --global user.email $MAIL
git config --global user.name $USER
cd /data/$REPO
git remote add origin https://$TOKEN@github.com/$USER/$REPO
git add .
git commit -m backup
git push origin main
git remote rm origin
```
この場合、volumeにdeploy-keyを置いて`git@github.com`でアクセスするよりtokenでアクセスしたほうが良いでしょう。
ただし、tokenの場合は`$REPO/.git/config`に残っていないかチェックしておきましょう。