ダッシュボードのジョブを 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 --prune は my-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 を設定します:
- CI/CD セットアップ — コピー&ペストできる GitHub Actions ワークフロー
移行後の変更作業
以降のワークフロー:
manifests/my-app.yamlを編集する- ブランチをプッシュして PR を開く
- CI がプラン差分をコメントとして投稿する
- マージ → CI が変更を適用する
移行後にダッシュボードから新しいジョブを追加すること:問題ありません。ダッシュボードで
作成されたジョブはデフォルトネームスペースに入り、ネームスペース付きの apply --prune では
触れられません。後からそのジョブを IaC に取り込みたい場合は、そのネームスペースで export
を再実行し、出力をマニフェストにマージしてください。
--prune について
CLI でネームスペースを管理し始めたら、CI では apply --prune を使用してください。これにより、
マニフェストから削除されたジョブがアカウントからも削除され、マニフェストが唯一の正式な記録として
維持されます。
--prune なしの場合、sync は作成と更新のみを行い、削除は行いません。マニフェストから削除された
ジョブは手動で削除しない限りアカウントに残ります。
関連ドキュメント
- IaC ワークフロー — CLI コマンドの完全なリファレンス
- マニフェストリファレンス — すべてのフィールドのドキュメント
- crontab からの移行 — crontab ファイルの変換