ダッシュボードのジョブを IaC に移行する

steadycron export を使用して既存のダッシュボードジョブを YAML マニフェストに移し、アカウントをコードとして管理する。

SteadyCron ダッシュボードにすでにジョブがある場合、steadycron export でアカウントの全状態を YAML マニフェストにエクスポートできます。その後は git にコミットし、PR で変更をレビューし、 CLI で適用できます — 既存のジョブを失うことなく。

ステップ 1 — API キーの作成

ダッシュボードで 設定 → API キー に移動し、キーを作成します。CLI が読み取りと適用の両方を できるように write スコープを付与してください。

キーをコピーしてください — 表示されるのは一度だけです。

ステップ 2 — アカウントのエクスポート

export STEADYCRON_API_KEY=sc_...
steadycron export --namespace my-app > manifests/my-app.yaml

--namespace フラグはエクスポートされたすべてのリソースをこのネームスペースに割り当てます。 以降、apply --prunemy-app 内のリソースのみを削除します — ダッシュボードで後から作成する ジョブ(デフォルトネームスペースに入る)には触れません。

複数の環境を管理する場合は、それぞれ別のネームスペースで個別にエクスポートします:

steadycron export --namespace production > manifests/production.yaml
steadycron export --namespace staging    > manifests/staging.yaml

ステップ 3 — エクスポートしたマニフェストの確認

ファイルを開いてください。以下が確認できます:

  • スケジュール、種類、設定を含むすべてのジョブ
  • 各リソースの id フィールド(まだない場合は自動割り当て)
  • ${VAR_NAME} プレースホルダーに置き換えられたシークレット — そのままコミット可能
  • {{var}} として保持されたテンプレート変数 — こちらもコミット可能

id がないリソースには追加してください。 ID は CLI が安定した識別子を追跡する仕組みです。 コミット後に ID を変更すると、削除+作成として扱われます。

ステップ 4 — バリデーション

steadycron validate manifests/my-app.yaml

続行する前に報告されたエラーを修正してください。

ステップ 5 — コミット

git add manifests/
git commit -m "chore: adopt SteadyCron account into IaC"

マニフェストが唯一の真実の情報源になりました。今後の変更はこのファイルを通じて行い、 ダッシュボードでのクリック操作は避けてください。

ステップ 6 — CI のセットアップ

PR ごとにプラン差分を投稿し、マージ時に適用するよう GitHub Actions を設定します:

移行後の変更作業

以降のワークフロー:

  1. manifests/my-app.yaml を編集する
  2. ブランチをプッシュして PR を開く
  3. CI がプラン差分をコメントとして投稿する
  4. マージ → CI が変更を適用する

移行後にダッシュボードから新しいジョブを追加すること:問題ありません。ダッシュボードで 作成されたジョブはデフォルトネームスペースに入り、ネームスペース付きの apply --prune では 触れられません。後からそのジョブを IaC に取り込みたい場合は、そのネームスペースで export を再実行し、出力をマニフェストにマージしてください。

--prune について

CLI でネームスペースを管理し始めたら、CI では apply --prune を使用してください。これにより、 マニフェストから削除されたジョブがアカウントからも削除され、マニフェストが唯一の正式な記録として 維持されます。

--prune なしの場合、sync は作成と更新のみを行い、削除は行いません。マニフェストから削除された ジョブは手動で削除しない限りアカウントに残ります。

関連ドキュメント