postgres-formula/postgres/upstream.sls
teankie 12666c3b13
fix(upstream): install keyring only in old versions
Solves #327: postgresql-common conflicts with pgdg-keyring

Co-authored-by: teankie <remcomank@eleven.nl>
2023-02-09 07:17:56 -03:00

69 lines
1.7 KiB
Text

{%- from tpldir + "/map.jinja" import postgres with context -%}
{%- from tpldir + "/macros.jinja" import format_kwargs with context -%}
{%- if 'pkg_repo' in postgres -%}
{% set pg_common_version = salt['pkg.version']('postgresql-common') %}
{%- if postgres.use_upstream_repo == true -%}
{%- if postgres.add_profile -%}
postgresql-profile:
file.managed:
- name: /etc/profile.d/postgres.sh
- user: root
- group: root
- mode: 644
- template: jinja
- source: salt://postgres/templates/postgres.sh.j2
- defaults:
bin_dir: {{ postgres.bin_dir }}
{%- endif %}
postgresql-pkg-deps:
pkg.installed:
- pkgs: {{ postgres.pkgs_deps | json }}
# Add upstream repository for your distro
{% if grains.os_family == 'Debian' %}
{% if salt['pkg.version_cmp'](pg_common_version, '246') <= 0 %}
postgresql-repo-keyring:
pkg.installed:
- sources:
- pgdg-keyring: {{ postgres.pkg_repo_keyring }}
- require_in:
- pkgrepo: postgresql-repo
{%- endif %}
{%- endif %}
postgresql-repo:
pkgrepo.managed:
{{- format_kwargs(postgres.pkg_repo) }}
- require:
- pkg: postgresql-pkg-deps
{%- else -%}
# Remove the repo configuration (and GnuPG key) as requested
postgresql-repo:
pkgrepo.absent:
- name: {{ postgres.pkg_repo.name }}
{%- if 'pkg_repo_keyid' in postgres %}
- keyid: {{ postgres.pkg_repo_keyid }}
{%- endif %}
{% if grains.os_family == 'Debian' %}
postgresql-repo-keyring:
pkg.removed:
- name: pgdg-keyring
{%- endif -%}
{%- endif -%}
{%- elif grains.os not in ('Windows', 'MacOS',) %}
postgresql-repo:
test.show_notification:
- text: |
PostgreSQL does not provide package repository for {{ salt['grains.get']('osfinger', grains.os) }}
{%- endif %}