フックとライフサイクル
🔥 Vibe プロンプト
「Helmフックを追加:インストール前のDBマイグレーション、インストール後の通知、アップグレード前のバックアップ。」
フックの種類
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrate
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
spec:
containers:
- name: migration
image: myapp:latest
command: ["npm", "run", "migrate"]
restartPolicy: Never
フックの順序
-10 pre-install (バックアップ)
-5 pre-install (マイグレーション)
0 install (メインチャート)
5 post-install (検証)
10 post-install (通知)
ベストプラクティス
| フック | 用途 | |-------|------| | pre-install | DB作成、スキーマ設定 | | post-install | 通知、キャッシュウォームアップ | | pre-upgrade | バックアップ、マイグレーション | | post-upgrade | スモークテスト | | pre-delete | スナップショット |
ライフサイクル
helm install → pre-install → install → post-install
helm upgrade → pre-upgrade → upgrade → post-upgrade
helm rollback → (アップグレードフック再実行)
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション