0Pricing
DevOps Bootcamp · レッスン

環境と環境別の値

同じ設定を開発環境から本番環境へ昇格させます。

「環境と環境別の値」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

1つのスタック、複数の環境

開発、ステージング、本番では同じアプリを異なる設定で実行します。Helmfile のenvironmentsを使えば、1つのファイルでそれらすべてをすっきり記述できます。

environments ブロック

各環境をトップレベルのenvironmentsブロックの下で宣言します。名前付きの各環境では、専用の values ファイルを読み込めます。

environments:
  dev:
    values:
      - envs/dev.yaml
  prod:
    values:
      - envs/prod.yaml

-e で選択する

コマンドラインで-eを使ってアクティブな環境を選択します。Helmfile はその環境の values だけを読み込みます。

helmfile -e prod sync

.Environment.Values ツリー

読み込まれた値は.Environment.Valuesに格納されます。helmfile.yaml の任意の場所で、Go テンプレート構文を使って読み取れます。

{{ .Environment.Values.replicaCount }}

環境ごとのレプリカ数

典型的な用途として、開発環境では1つのレプリカを、本番環境では複数のレプリカを実行します。setの値をハードコードせず、環境からテンプレートで設定します。

set:
  - name: replicaCount
    value: {{ .Environment.Values.replicaCount }}

共通のベースと環境ごとの上書き

まずベースとなる values ファイルを指定し、その後に環境用ファイルを指定します。environmentファイルでは異なるキーだけを上書きするため、共通設定を1か所にまとめられます。

values:
  - envs/base.yaml
  - envs/{{ .Environment.Name }}.yaml

.Environment.Name ヘルパー

.Environment.Nameは、アクティブな環境の名前を文字列として返します。名前付けやラベル付け、ファイルパスの動的な選択に便利です。

namespace: app-{{ .Environment.Name }}

デフォルト環境

default環境を定義すると、-e なしの通常の helmfile コマンドも動作します。環境が指定されていない場合に実行されます。

environments:
  default:
    values:
      - envs/dev.yaml

環境の値をインラインで指定する

小さな差分なら、ファイルではなく環境の下にインラインで記述できます。valuesにマップを指定し、1つか2つのキーだけを設定します。

environments:
  prod:
    values:
      - replicaCount: 5

フォークせずに昇格する

ロジックを共有し、値だけを変更できるため、ファイルをコピーするのではなく -e を切り替えて、同じリリースを開発環境から本番環境へ昇格できます。

シークレットを外部に置く

環境用の values ファイルには、機密性の高い設定が含まれることがあります。実際のシークレットは暗号化するか、Vault に保管し、Git 上のこれらのファイルに平文で記述しないでください。

クイックチェック

helmfile.yaml の本番環境をデプロイしたいとします。どのように選択しますか?

振り返り: 環境

environmentsを定義し、-e で環境を選択し、.Environment.Values を読み取ることで、同じスタックを複数の環境へ昇格できることを学びました。次は、適用方法です。🚀

よくある質問

「環境と環境別の値」レッスンは無料ですか?

はい。「環境と環境別の値」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「環境と環境別の値」で何を学びますか?

同じ設定を開発環境から本番環境へ昇格させます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「環境と環境別の値」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Helmfile が Helm の上位に位置する理由
  2. helmfile.yaml でのリリース定義
  3. 環境と環境別の値
  4. helmfile diff、apply、sync
← DevOps Bootcampに戻る