This section describes the design of each feature.
postgresql-cfg format
A postgresql-cfg represent ConfigMap for containing postgresql parameters. The file is used to contain the parameters which need to be reflected in postgresql.conf of the instance. Since patroni ignores all parameters which are not known by OSS postgresql.conf, an approach is defined to treat FEP Parameters in a special way.
The content of the ConfigMap is defined by key=value format. The following table shows the detail:
Spec | Example | Comment |
|---|---|---|
The content may have multiple key/value pairs | foo=bar foo1=bar1 | - |
The value cannot have space unless quoted. | foo=bar bar2 | Invalid |
The quoted value cannot have another value after | foo='bar bar2' something | Invalid |
The key value pair must have a '=' sign | - | - |
White spaces are allowed before/after/between the key value pair | foo = bar | - |
Any content after '#' will be ignored | # this is a comment foo=bar #this is a comment | - |
The value may be quoted by single quotes | foo='bar bar2' | - |
Single quote can be escaped by two single quotes | foo='It''s ok' | Note: single quotes are not supported by Patroni edit-config command |
Backslash '\' will be replaced by '\\' when invoking patronictl edit-config command | - | To avoid command line escape |
When a key value pair is invalid, it will be ignored. the update continue to process next pair | foobar foo2=bar2 | The 'foobar' will be ignored |
The container script does not validate the key and value as long as they are in correct format. | - | - |
It is recommended to use the psql's show command to verify parameter is setting correctly.