もちろん、helm.sh をチェックアウトしましたが、一見したところ、セットアップ全体が少し複雑に見えます (helm-client &tiller-server)。ほとんどの場合、ヘルムクライアントを持っているだけで逃げることができるように思えます。
これは私が現在していることです
たとえば、3 つのサービスで構成されるプロジェクトがあるとします。postgres
, express
, nginx
.
次のようなディレクトリを作成product-release
します。
product-release/
.git/
k8s/
postgres/
Deployment.yaml
Service.yaml
Secret.mustache.yaml # Needs to be rendered by the dev before use
express/
Deployment.yaml
Service.yaml
nginx/
Deployment.yaml
Service.yaml
updates/
0.1__0.2/
Job.yaml # postgres schema migration
update.sh # k8s API server scritps to patch/replace existing k8s objects, and runs the state change job
通常の git が適用できるようになりました。変更を加えるたびに、仕様ファイルに変更を加えてテストし、最後のバージョンから現在のバージョンに移行するための更新スクリプトを作成してから、コミットしてタグを付けます。
質問:
- これは今のところうまくいきますが、これは「正しい方法」ですか?
- なぜ
helm
tillerサーバーがあるのですか?クライアント側でテンプレートを作成する方が簡単ではありませんか? もちろん、展開のアクティビティをアプリケーションの知識 (シークレットなど) から分離したい場合は、サーバー上でテンプレートを作成する必要がありますが、それ以外の場合はなぜでしょうか?