From 984cf4ec8bbeb413284913460b2da8c341569ef4 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Tue, 5 Jun 2018 13:05:57 -0400 Subject: [PATCH 01/10] Adds Ubuntu "bionic" codename & makes reload-modules conditional --- postgres/codenamemap.yaml | 1 + postgres/defaults.yaml | 2 ++ postgres/manage.sls | 8 +++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/postgres/codenamemap.yaml b/postgres/codenamemap.yaml index 59a989ac..7ffbb796 100644 --- a/postgres/codenamemap.yaml +++ b/postgres/codenamemap.yaml @@ -70,6 +70,7 @@ {{ debian_codename('vivid', '9.4') }} {{ debian_codename('wily', '9.4') }} {{ debian_codename('xenial', '9.5') }} +{{ debian_codename('bionic', '10') }} ## Fedora # `oscodename` grain has long distro name diff --git a/postgres/defaults.yaml b/postgres/defaults.yaml index 3a66a15e..a2c17fe5 100644 --- a/postgres/defaults.yaml +++ b/postgres/defaults.yaml @@ -57,6 +57,8 @@ postgres: bake_image: False + manage_force_reload_modules: True + fromrepo: users: {} diff --git a/postgres/manage.sls b/postgres/manage.sls index 19311555..bd77253b 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -1,7 +1,9 @@ {%- from tpldir + "/map.jinja" import postgres with context -%} {%- from tpldir + "/macros.jinja" import format_state with context -%} -{%- if salt['postgres.user_create']|default(none) is not callable %} +{%- set needs_client_binaries = salt['postgres.user_create']|default(none) is not callable -%} + +{%- if needs_client_binaries %} # Salt states for managing PostgreSQL is not available, # need to provision client binaries first @@ -15,12 +17,16 @@ include: {%- endif %} +{%- if needs_client_binaries or postgres.manage_force_reload_modules %} + # Ensure that Salt is able to use postgres modules postgres-reload-modules: test.succeed_with_changes: - reload_modules: True +{%- endif %} + # User states {%- for name, user in postgres.users|dictsort() %} From 4dd99d5b3abc0f29b59f20aef555bd08523e0618 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Wed, 6 Jun 2018 14:32:33 -0400 Subject: [PATCH 02/10] Allows postgres-reload-modules to always run, only the changes are conditional --- postgres/defaults.yaml | 2 +- postgres/manage.sls | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/postgres/defaults.yaml b/postgres/defaults.yaml index a2c17fe5..29b759c5 100644 --- a/postgres/defaults.yaml +++ b/postgres/defaults.yaml @@ -57,7 +57,7 @@ postgres: bake_image: False - manage_force_reload_modules: True + manage_force_reload_modules: False fromrepo: diff --git a/postgres/manage.sls b/postgres/manage.sls index bd77253b..5a67f92b 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -17,15 +17,16 @@ include: {%- endif %} -{%- if needs_client_binaries or postgres.manage_force_reload_modules %} # Ensure that Salt is able to use postgres modules postgres-reload-modules: +{%- if needs_client_binaries or postgres.manage_force_reload_modules %} test.succeed_with_changes: - - reload_modules: True - +{%- else %} + test.succeed_without_changes: {%- endif %} + - reload_modules: True # User states From ed74e86b747863a0da0daa9016f21e4f9535797f Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Tue, 5 Jun 2018 13:05:57 -0400 Subject: [PATCH 03/10] Adds Ubuntu "bionic" codename & makes reload-modules conditional --- postgres/defaults.yaml | 2 ++ postgres/manage.sls | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/postgres/defaults.yaml b/postgres/defaults.yaml index 3a66a15e..a2c17fe5 100644 --- a/postgres/defaults.yaml +++ b/postgres/defaults.yaml @@ -57,6 +57,8 @@ postgres: bake_image: False + manage_force_reload_modules: True + fromrepo: users: {} diff --git a/postgres/manage.sls b/postgres/manage.sls index 19311555..bd77253b 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -1,7 +1,9 @@ {%- from tpldir + "/map.jinja" import postgres with context -%} {%- from tpldir + "/macros.jinja" import format_state with context -%} -{%- if salt['postgres.user_create']|default(none) is not callable %} +{%- set needs_client_binaries = salt['postgres.user_create']|default(none) is not callable -%} + +{%- if needs_client_binaries %} # Salt states for managing PostgreSQL is not available, # need to provision client binaries first @@ -15,12 +17,16 @@ include: {%- endif %} +{%- if needs_client_binaries or postgres.manage_force_reload_modules %} + # Ensure that Salt is able to use postgres modules postgres-reload-modules: test.succeed_with_changes: - reload_modules: True +{%- endif %} + # User states {%- for name, user in postgres.users|dictsort() %} From a9498ad6bd06d67c1ce0762aaeb45694830f3479 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Wed, 6 Jun 2018 14:32:33 -0400 Subject: [PATCH 04/10] Allows postgres-reload-modules to always run, only the changes are conditional --- postgres/defaults.yaml | 2 +- postgres/manage.sls | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/postgres/defaults.yaml b/postgres/defaults.yaml index a2c17fe5..29b759c5 100644 --- a/postgres/defaults.yaml +++ b/postgres/defaults.yaml @@ -57,7 +57,7 @@ postgres: bake_image: False - manage_force_reload_modules: True + manage_force_reload_modules: False fromrepo: diff --git a/postgres/manage.sls b/postgres/manage.sls index bd77253b..5a67f92b 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -17,15 +17,16 @@ include: {%- endif %} -{%- if needs_client_binaries or postgres.manage_force_reload_modules %} # Ensure that Salt is able to use postgres modules postgres-reload-modules: +{%- if needs_client_binaries or postgres.manage_force_reload_modules %} test.succeed_with_changes: - - reload_modules: True - +{%- else %} + test.succeed_without_changes: {%- endif %} + - reload_modules: True # User states From f6f499864c54b8dd378bbc8fec242d4703cfce6b Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Wed, 6 Jun 2018 14:48:45 -0400 Subject: [PATCH 05/10] Removes extraneous whitespace --- postgres/manage.sls | 1 - 1 file changed, 1 deletion(-) diff --git a/postgres/manage.sls b/postgres/manage.sls index 5a67f92b..a2c87e12 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -17,7 +17,6 @@ include: {%- endif %} - # Ensure that Salt is able to use postgres modules postgres-reload-modules: From d2408a42a5885c66506faa9ea738442885fe6554 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Sun, 22 Jul 2018 15:27:52 -0400 Subject: [PATCH 06/10] Make sure postgresql-conf runs before postgresql-running --- postgres/server/init.sls | 2 ++ 1 file changed, 2 insertions(+) diff --git a/postgres/server/init.sls b/postgres/server/init.sls index ace913d3..74bb9c22 100644 --- a/postgres/server/init.sls +++ b/postgres/server/init.sls @@ -101,6 +101,8 @@ postgresql-conf: - backup: {{ postgres.config_backup|default(false, true) }} - require: - file: postgresql-config-dir + - require_in: + - service: postgresql-running - watch_in: - service: postgresql-running From 32f45e9ba97cc13c4b6e5bcf14cd96c03b0d0059 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Sun, 22 Jul 2018 16:34:53 -0400 Subject: [PATCH 07/10] Force postgresql service restart instead of reload --- postgres/server/init.sls | 5 ----- 1 file changed, 5 deletions(-) diff --git a/postgres/server/init.sls b/postgres/server/init.sls index 74bb9c22..45aec0f9 100644 --- a/postgres/server/init.sls +++ b/postgres/server/init.sls @@ -101,8 +101,6 @@ postgresql-conf: - backup: {{ postgres.config_backup|default(false, true) }} - require: - file: postgresql-config-dir - - require_in: - - service: postgresql-running - watch_in: - service: postgresql-running @@ -186,9 +184,6 @@ postgresql-running: service.running: - name: {{ postgres.service }} - enable: True - {% if grains.os not in ('MacOS',) %} - - reload: True - {% endif %} - watch: - file: postgresql-pg_hba - file: postgresql-pg_ident From 42580d7171c1ee73a29f4e13555f40d94a63b148 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Mon, 23 Jul 2018 12:30:52 -0400 Subject: [PATCH 08/10] Reverts force service restart, as this issue was fixed upstream --- postgres/server/init.sls | 3 +++ 1 file changed, 3 insertions(+) diff --git a/postgres/server/init.sls b/postgres/server/init.sls index b739a700..a757056b 100644 --- a/postgres/server/init.sls +++ b/postgres/server/init.sls @@ -228,6 +228,9 @@ postgresql-running: service.running: - name: {{ postgres.service }} - enable: True + {% if grains.os not in ('MacOS',) %} + - reload: True + {% endif %} - watch: - file: postgresql-pg_hba - file: postgresql-pg_ident From 5c77a33bea08fa26539d9af1d44ff6a932c8f12c Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Wed, 1 Aug 2018 10:27:13 -0400 Subject: [PATCH 09/10] Uses watch requisite for postgres-reload-modules instead of onchanges --- postgres/macros.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postgres/macros.jinja b/postgres/macros.jinja index 4eedddbb..ea50decd 100644 --- a/postgres/macros.jinja +++ b/postgres/macros.jinja @@ -23,7 +23,7 @@ {{ state }}-{{ name }}: {{ state }}.{{ ensure|default('present') }}: {{- format_kwargs(kwarg) }} - - onchanges: + - watch: - test: postgres-reload-modules {%- endmacro %} From ef87358959599b94d9493ed0c41f0dd141553204 Mon Sep 17 00:00:00 2001 From: Rob Ruana Date: Wed, 1 Aug 2018 17:12:19 -0400 Subject: [PATCH 10/10] Reloading the postgres service is not enough to pick up ACL changes in pg_hba.conf --- postgres/server/init.sls | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/postgres/server/init.sls b/postgres/server/init.sls index a757056b..1dc09add 100644 --- a/postgres/server/init.sls +++ b/postgres/server/init.sls @@ -143,13 +143,6 @@ postgresql-conf: {%- endif %} -# Restart the service where reloading is not sufficient -# Currently when the cluster is created or changes made to `postgresql.conf` -postgresql-service-restart: - module.wait: - - name: service.restart - - m_name: {{ postgres.service }} - {%- set pg_hba_path = salt['file.join'](postgres.conf_dir, 'pg_hba.conf') %} postgresql-pg_hba: @@ -176,6 +169,15 @@ postgresql-pg_hba: {%- endif %} - require: - file: postgresql-config-dir + - watch_in: + - module: postgresql-service-restart + +# Restart the service where reloading is not sufficient +# Currently when the cluster is created or changes made to `postgresql.conf` +postgresql-service-restart: + module.wait: + - name: service.restart + - m_name: {{ postgres.service }} {%- set pg_ident_path = salt['file.join'](postgres.conf_dir, 'pg_ident.conf') %}