各機能を設計する上での設計のポイントを説明します。
postgresql-cfg のフォーマット
postgresql-cfgは、PostgreSQLlパラメータを含むConfigMapを表します。このファイルには、インスタンスのpostgresql.confに反映する必要があるパラメータが含まれています。Patroniはpostgresql.confによって認識されていないすべてのパラメータを無視するため、FEPパラメータを特別な方法で処理するためのアプローチが定義されています。
ConfigMapの内容は、key=value形式で定義します。以下の表に詳細を示します。
| 仕様 | 例 | 補足 | 
|---|---|---|
| コンテンツには複数のキーと値のペアが含まれる場合があります。 | foo=bar foo1=bar1 | - | 
| 引用符がない限り、値にスペースを含めることはできません。 | foo=bar bar2 | 無効 | 
| 引用符で囲まれた値の後に、別の値は指定できません。 | foo='bar bar2' something | 無効 | 
| キーと値のペアには「=」記号が必要です。 | - | - | 
| キーと値のペアの前/後/間に空白を使用できます。 | foo = bar | - | 
| '#'以降のコンテンツはすべて無視されます。 | # コメントと見なされますfoo=bar # コメントと見なされます | - | 
| 値は一重引用符で囲むことができます。 | foo='bar bar2' | - | 
| 一重引用符は、2つの一重引用符でエスケープできます。 | foo='It''s ok' | 注: 一重引用符は、Patroniedit-configコマンドではサポートされていません。 | 
| patronictl edit-configコマンドを呼び出すと、円記号「\」は「\\」に置き換えられます。 | - | コマンドラインのエスケープを回避できます。 | 
| キーと値のペアが無効な場合、それらは無視されます。 アップデートは次のペアの処理を続行します。 | foobar foo2=bar2 | “foobar”は無視されます。 | 
| コンテナスクリプトは、正しい形式である限り、キーと値を検証しません。 | - | - | 
psqlのshowコマンドを使用して、パラメータが正しく設定されていることを確認することをお勧めします。