Package: patroni
Version: 3.2.1-1

Found this problem on Ubuntu, but as I see in #930016
pg_createconfig_patroni is maintained here.

I'm using etcd with TLS, so I've added cacert and other options to dcs.yml:

etcd3:
  cacert: "/var/lib/etcd/investplatform.pki/ca.pem"
  cert: "/var/lib/etcd/investplatform.pki/cf-pve2-patroni.pem"
  key: "/var/lib/etcd/investplatform.pki/cf-pve2-patroni-key.pem"
  protocol: https
  hosts:
      - 172.20.11.53:2379
      - 172.20.11.51:2379
      - 172.20.11.52:2379

Now pg_createconfig_patroni fails with the following error:
pg_createconfig_patroni --force --hostip=172.20.11.51 --port=5432
--vip=172.20.11.100  15 test
sed: -e expression #10, char 36: unknown option to `s'
sed: -e expression #6, char 18: unterminated `s' command

Both 15-test.vip and 15-test.yml appear empty. To fix this issue I've used
the patch in the attachment. Please, apply.

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04 LTS
Release: 22.04
Codename: jammy
--
Peter.
--- pg_createconfig_patroni	2024-01-09 20:31:50.087080942 +0000
+++ pg_createconfig_patroni	2024-01-09 20:54:28.046563402 +0000
@@ -141,7 +141,7 @@
         exit 1
     fi
     VIP_KEY="/postgresql-common/${VERSION}-${CLUSTER}/leader"
-    DCS_TYPE="$(egrep -v '^[[:space:]]*$|^ *#' /etc/patroni/dcs.yml | egrep -v '[[:space:]]-' | egrep '(etcd|consul|zookeeper)' | sed s/:.*//)"
+    DCS_TYPE="$(egrep -v '^[[:space:]]*$|^ *#' /etc/patroni/dcs.yml | egrep -v '[[:space:]]-' | egrep '(etcd(3)?|consul|zookeeper):' | sed s/:.*//)"
     if [ -z "$DCS_TYPE" ]; then
         echo "DCS type could not be determined from /etc/patroni/dcs.yml, cannot write VIP file"
 	exit 1
@@ -215,7 +215,7 @@
         -e "s#@NETWORK@#${NETWORK}#g"		\
         -e "s/@API_PORT@/${API_PORT}/g"		\
         -e "s/@PORT@/${PORT}/g"			\
-        -e "s/@DCS_CONFIG@/${DCS_CONFIG}/g"	\
+        -e "s#@DCS_CONFIG@#${DCS_CONFIG}#g"	\
 >> $CONFIG_FILE
 
 # write vip configuration, if requested

Reply via email to