この .env コンバータが何をする?
コンフィギュレーションは常にフォーマット間で移動します.ローカル .env ファイルが Kubernetes Secret になり、JSON コンフィギュレーションが CI の環境変数になり、YAML ファイルが Helm チャートにフィードされます。このコンバータは、.env、JSON、YAML、Kubernetes SecretまたはConfigMapのマニフェスト、docker envファイルまたはシェルのexport行から環境変数を読み取り、それらの形式のいずれかに書き込みます。2つの環境ファイルを比較し、欠落した、余分な、空っぽの、または重複した変数をリストします。これは、誰かが生産に鍵を追加するのを忘れていたため、展開が失敗する前に必要なものです。
使い方
- Convert モードでは、変数を貼り付け、入力形式を選択するか、自動検出状態に置いてください。
- 出力形式を選択します。Kubernetes ではリソース名を設定します。秘密値は自動的にBase64でコードされます。
- 結果をコピーしたりダウンロードしたりします
- 比較モードでは、実際の
.envをAと.env.exampleまたは別の環境をBに貼り付けます。 - リストを見直してください Aに欠落し、Aに追加され、空値と重複鍵があります
フォーマットの詳細
- .env: はコメント、
export前置詞、単行と二重引数、二重引数で逃れた新行、未引数の後に入行コメントをサポートします。 - JSON/YAML: 値の鍵のフラットオブジェクト。Nested objects are flattened with
__(e.g。DB__HOST) and numbers or booleans become strings。 - **Kubernetes Secret:**は
dataをBase64値で使用する.stringDataで入ってくるマニフェストも理解されている。 - ConfigMap:
dataの下にある単純な文字列値 docker run --env-fileが読み取っているように、KEY=valueは配当処理なしです。- シェル:
export KEY='value'の線はsourceに準備
おすすめ
- Base64は暗号化ではなく暗号化です。Kubernetes 秘密のマニフェストを読み取れる人は誰でも、その値を読み取ることができます。git のためにシールされた秘密、SOPS、または外部秘密マネージャーを使用してください。
.env.exampleをバージョン制御で空の値で保持し、コードレビューで比較モードを使用します。- キーはLinuxでは小字母に敏感で、
Api_KeyとAPI_KEYは異なる変数である。