diff --git a/.gitignore b/.gitignore index 8c1f8fabd..b4a2fc6df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store .python-version venv/ +*.swp diff --git a/ansible/tasks/postgres-extensions/22-pg_jsonschema.yml b/ansible/tasks/postgres-extensions/22-pg_jsonschema.yml new file mode 100644 index 000000000..1052ad86f --- /dev/null +++ b/ansible/tasks/postgres-extensions/22-pg_jsonschema.yml @@ -0,0 +1,62 @@ +# pg_jsonschema +- name: pg_jsonschema - download & install dependencies + apt: + pkg: + - make + - gcc + - pkg-config + - clang + - libssl-dev + update_cache: yes + install_recommends: no + +- name: download rust/cargo installer + become: yes + get_url: + url: https://sh.rustup.rs + dest: /tmp/sh.rustup.rs + mode: '0755' + owner: postgres + group: postgres + +- name: install rust/cargo + become: yes + become_user: postgres + shell: /tmp/sh.rustup.rs -y + +- name: install cargo-pgx + become: yes + become_user: postgres + shell: + cmd: "~/.cargo/bin/cargo install --version '={{ pgx_version }}' cargo-pgx && ~/.cargo/bin/cargo pgx init --pg{{ postgresql_major }} pg_config" + +- name: pg_jsonschema - download release + become: yes + git: + repo: https://github.com/supabase/pg_jsonschema.git + dest: /tmp/pg_jsonschema + version: "{{ pg_jsonschema_release }}" + +- name: pg_jsonschema - temporarily transfer ownership to postgres + file: + path: '{{ item }}' + recurse: yes + owner: postgres + group: postgres + with_items: + - /tmp/pg_jsonschema + - /usr/lib/postgresql/lib + +- name: pg_jsonschema - install + become: yes + become_user: postgres + shell: + cmd: "~/.cargo/bin/cargo pgx install --release" + chdir: /tmp/pg_jsonschema + +- name: pg_jsonschema - return ownership to root + file: + path: /usr/lib/postgresql/lib + recurse: yes + owner: root + group: root diff --git a/ansible/tasks/setup-extensions.yml b/ansible/tasks/setup-extensions.yml index d259019b6..15b6b5b76 100644 --- a/ansible/tasks/setup-extensions.yml +++ b/ansible/tasks/setup-extensions.yml @@ -60,3 +60,6 @@ - name: Install auto_explain import_tasks: tasks/postgres-extensions/21-auto_explain.yml + +- name: Install pg_jsonschema + import_tasks: tasks/postgres-extensions/22-pg_jsonschema.yml diff --git a/ansible/vars.yml b/ansible/vars.yml index 7e70a71f6..45c90ca5d 100644 --- a/ansible/vars.yml +++ b/ansible/vars.yml @@ -108,4 +108,7 @@ libgraphqlparser_commit_sha: 3b64cd52d13621921990a5801ba019e8a9402599 pg_graphql_release: "v0.4.0" +pgx_version: "0.4.5" +pg_jsonschema_release: "v0.1.0" + pg_stat_monitor_release: "1.0.1" diff --git a/common.vars.pkr.hcl b/common.vars.pkr.hcl index 7747a1692..167730361 100644 --- a/common.vars.pkr.hcl +++ b/common.vars.pkr.hcl @@ -1 +1 @@ -postgres-version = "14.1.0.50" +postgres-version = "14.1.0.51"