Merge pull request #298 from litnialex/master

fix(contributing): runnig formula inside container
This commit is contained in:
Imran Iqbal
2020-07-10 17:40:17 +01:00
committed by GitHub
6 changed files with 23 additions and 32 deletions

View File

@@ -83,31 +83,15 @@ packaged init script, job or unit.
Further information: https://blog.tyk.nu/blog/freebsd-jails-and-sysv-ipc/ Further information: https://blog.tyk.nu/blog/freebsd-jails-and-sysv-ipc/
``postgres.server.image`` **Running inside a container** (using Packer, Docker or similar tools), when OS ``init`` process
^^^^^^^^^^^^^^^^^^^^^^^^^ is not available to start the service and enable it on "boot", set pillar value:
Installs the PostgreSQL server package on Linux, prepares the DB cluster and starts the server by issuing
raw ``pg_ctl`` command. The ``postgres:bake_image`` Pillar toggles this behaviour. For example:
.. code:: yaml .. code:: yaml
postgres: postgres:
bake_image: True bake_image: True
If set ``True``, then it becomes possible to fully provision PostgreSQL with all supported entities This toggles starting PostgreSQL daemon by issuing raw ``pg_ctl`` or ``pg_ctlcluster`` command.
from ``postgres.manage`` state during the build ("baking") of AMI / VM / Container images (using
Packer, Docker or similar tools), i.e. when OS ``init`` process is not available to start the
service and enable it on "boot" of resulting appliance.
Also it allows to make Docker images with PostgreSQL using functionality being available since Salt
2016.11.0 release:
.. code:: console
salt 'minion.with.docker' dockerng.sls_build my-postgres base=centos/systemd mods=postgres
If a lookup dictionary or Pillar has ``postgres:bake_image`` set ``False`` (this is default), it is
equivalent of applying ``postgres.server`` state.
``postgres.upstream`` ``postgres.upstream``
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^

View File

@@ -35,6 +35,7 @@
prepare_cluster: prepare_cluster:
pgcommand: pg_createcluster {{ version }} {{ cluster_name }} -d pgcommand: pg_createcluster {{ version }} {{ cluster_name }} -d
user: root user: root
bake_image_run_cmd: pg_ctlcluster {{ version }} {{ cluster_name }} start
{% endmacro %} {% endmacro %}

View File

@@ -9,6 +9,7 @@ postgres:
version: '10' version: '10'
pkg: postgresql pkg: postgresql
pkgs_extra: [] pkgs_extra: []
pkgs_deps: []
pkg_client: postgresql-client pkg_client: postgresql-client
pkg_dev: postgresql-devel pkg_dev: postgresql-devel
pkg_dev_deps: [] pkg_dev_deps: []
@@ -76,6 +77,7 @@ postgres:
sysrc: false sysrc: false
bake_image: false bake_image: false
bake_image_run_cmd: pg_ctl start
fromrepo: '' fromrepo: ''

View File

@@ -12,6 +12,7 @@ Arch:
pkg_dev: postgresql pkg_dev: postgresql
Debian: Debian:
pkgs_deps: ['python3-apt']
pkg_repo: pkg_repo:
humanname: PostgreSQL Official Repository humanname: PostgreSQL Official Repository
key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc'

View File

@@ -5,20 +5,22 @@
{%- if postgres.bake_image %} {%- if postgres.bake_image %}
include:
- postgres.server
# An attempt to start PostgreSQL with `pg_ctl` # An attempt to start PostgreSQL with `pg_ctl`
postgresql-running:
postgresql-start:
cmd.run: cmd.run:
- name: pg_ctl -D {{ postgres.data_dir }} -l logfile start - name: {{ postgres.bake_image_run_cmd }}
- runas: {{ postgres.user }} - runas: {{ postgres.user }}
- unless: - unless:
- ps -p $(head -n 1 {{ postgres.data_dir }}/postmaster.pid) 2>/dev/null - ps -p $(head -n 1 {{ postgres.data_dir }}/postmaster.pid) 2>/dev/null
- require: - require:
- file: postgresql-pg_hba - file: postgresql-pg_hba
postgresql-service-reload:
module.run:
- name: test.true
- require:
- cmd: postgresql-running
# Try to enable PostgreSQL in "manual" way # Try to enable PostgreSQL in "manual" way
postgresql-enable: postgresql-enable:
@@ -34,12 +36,6 @@ postgresql-enable:
- name: 'true' - name: 'true'
{%- endif %} {%- endif %}
- require: - require:
- cmd: postgresql-start - cmd: postgresql-running
{%- else %}
postgresql-start:
test.show_notification:
- text: The 'postgres:bake_image' Pillar is disabled (set to 'False').
{%- endif %} {%- endif %}

View File

@@ -17,10 +17,17 @@ postgresql-profile:
- defaults: - defaults:
bin_dir: {{ postgres.bin_dir }} bin_dir: {{ postgres.bin_dir }}
{%- endif %} {%- endif %}
postgresql-pkg-deps:
pkg.installed:
- pkgs: {{ postgres.pkgs_deps }}
# Add upstream repository for your distro # Add upstream repository for your distro
postgresql-repo: postgresql-repo:
pkgrepo.managed: pkgrepo.managed:
{{- format_kwargs(postgres.pkg_repo) }} {{- format_kwargs(postgres.pkg_repo) }}
- require:
- pkg: postgresql-pkg-deps
{%- else -%} {%- else -%}