Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ CLUSTER_TEST_SKIP_CLEANUP ?= 0
CLUSTER_TEST_IMAGE_TAG ?=
CLUSTER_TEST_DATA_DIR ?=
DEV_LIMA_OS ?= rocky-9
DEV_LIMA_USE_STAGING_PACKAGES ?= false

ci_enabled=$(filter true,$(CI))
docker_swarm_state=$(shell docker info --format '{{.Swarm.LocalNodeState}}')
Expand Down Expand Up @@ -413,7 +414,9 @@ api-docs:

.PHONY: dev-lima-deploy
dev-lima-deploy:
$(MAKE) -C lima deploy DEV_LIMA_OS=$(DEV_LIMA_OS)
$(MAKE) -C lima deploy \
DEV_LIMA_OS=$(DEV_LIMA_OS) \
DEV_LIMA_USE_STAGING_PACKAGES=$(DEV_LIMA_USE_STAGING_PACKAGES)

.PHONY: dev-lima-build
dev-lima-build:
Expand Down
25 changes: 25 additions & 0 deletions docs/development/running-locally.md
Original file line number Diff line number Diff line change
Expand Up @@ -441,3 +441,28 @@ To reset this environment to its initial state, stop the servers by hitting `ctr
```sh
make dev-lima-reset
```

### Prerelease Package Testing

You can deploy the staging package repositories to the `dev-lima` environment using the `DEV_LIMA_USE_STAGING_PACKAGES` environment variable:

```sh
# If you already have the dev-lima environment running, make sure to stop and
# remove all databases:
make dev-lima-reset

# Set DEV_LIMA_USE_STAGING_PACKAGES=true to use the staging packages. If this
# environment was already running, this will remove existing pgEdge packages and
# reinstall them from the staging repository:
make dev-lima-deploy DEV_LIMA_USE_STAGING_PACKAGES=true

# To switch back to the release repositories:
make dev-lima-reset
make dev-lima-deploy

# The same works with the debian environments, e.g.:
make dev-lima-reset
make dev-lima-deploy DEV_LIMA_OS=debian-13 DEV_LIMA_USE_STAGING_PACKAGES=true

# Remember to run 'make dev-lima-teardown' when switching between distributions.
```
4 changes: 3 additions & 1 deletion lima/Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
DEV_LIMA_OS ?= rocky-9
DEV_LIMA_USE_STAGING_PACKAGES ?= false

ansible_playbook=ansible-playbook \
--extra-vars='@vars.yaml' \
--extra-vars='os=$(DEV_LIMA_OS)'
--extra-vars='os=$(DEV_LIMA_OS)' \
--extra-vars='use_staging_packages=$(DEV_LIMA_USE_STAGING_PACKAGES)'

.PHONY: quit
quit:
Expand Down
1 change: 1 addition & 0 deletions lima/ansible.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ host_key_checking = False
inventory = inventory.yaml
interpreter_python = auto_silent
forks = 6
display_skipped_hosts = False
57 changes: 32 additions & 25 deletions lima/roles/deb_prerequisites/tasks/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,62 @@
- name: Update apt cache
ansible.builtin.apt:
update_cache: yes
- name: Install pgEdge repository package prerequisites
changed_when: false
- name: Install base prerequisites
ansible.builtin.package:
name: '{{ item }}'
state: present
with_items:
loop:
- curl
- gnupg2
- lsb-release
- which
- wget
- git
- chrony
- name: Install pgEdge repository
ansible.builtin.apt:
deb: https://apt.pgedge.com/repodeb/pgedge-release_latest_all.deb
state: present
- name: Template control plane stack yaml
- name: Install pgEdge old repository
template:
src: pgedge-old.sources.tmpl
dest: /etc/apt/sources.list.d/pgedge-old.sources
- name: Reconfigure pgEdge repository for staging packages
ansible.builtin.replace:
path: /etc/apt/sources.list.d/pgedge.sources
regexp: release
replace: staging
when: use_staging_packages | bool
register: repo_reconfigured_to_staging
- name: Reconfigure pgEdge repository for release packages
ansible.builtin.replace:
path: /etc/apt/sources.list.d/pgedge.sources
regexp: staging
replace: release
when: not (use_staging_packages | bool)
register: repo_reconfigured_to_release
- name: Update apt cache again
ansible.builtin.apt:
update_cache: yes
become: true
- name: Install control-plane prerequisites
changed_when: false
- name: Remove pgEdge packages for reinstall
ansible.builtin.package:
name: '{{ item }}'
state: absent
loop: '{{ pgedge_packages }}'
when: repo_reconfigured_to_staging.changed or repo_reconfigured_to_release.changed
- name: Install pgEdge packages
ansible.builtin.package:
name: '{{ item }}'
state: present
with_items:
- pgedge-postgresql-18
- pgedge-postgresql-17
- pgedge-postgresql-16
- pgedge-postgresql-18-spock50
- pgedge-postgresql-17-spock50
- pgedge-postgresql-16-spock50
- pgedge-postgresql-18-snowflake
- pgedge-postgresql-17-snowflake
- pgedge-postgresql-16-snowflake
- pgedge-postgresql-18-lolor
- pgedge-postgresql-17-lolor
- pgedge-postgresql-16-lolor
- pgedge-patroni
- pgedge-pgbackrest
- which
- wget
- git
- chrony
loop: '{{ pgedge_packages }}'
- name: Disable default postgres units
ansible.builtin.systemd_service:
name: '{{ item }}'
state: stopped
enabled: false
with_items:
loop:
- postgresql.service
- postgresql@16-main.service
- postgresql@17-main.service
Expand Down
15 changes: 15 additions & 0 deletions lima/roles/deb_prerequisites/vars/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,18 @@ etcd_download_url: https://github.com/etcd-io/etcd/releases/download/{{ etcd_ver
go_version: 1.25.5
go_archive_name: go{{ go_version }}.linux-{{ _arch_transform[ansible_facts.architecture] }}.tar.gz
go_download_url: https://dl.google.com/go/{{ go_archive_name }}
pgedge_packages:
- pgedge-postgresql-18
- pgedge-postgresql-17
- pgedge-postgresql-16
- pgedge-postgresql-18-spock50
- pgedge-postgresql-17-spock50
- pgedge-postgresql-16-spock50
- pgedge-postgresql-18-snowflake
- pgedge-postgresql-17-snowflake
- pgedge-postgresql-16-snowflake
- pgedge-postgresql-18-lolor
- pgedge-postgresql-17-lolor
- pgedge-postgresql-16-lolor
- pgedge-patroni
- pgedge-pgbackrest
51 changes: 27 additions & 24 deletions lima/roles/rhel_prerequisites/tasks/main.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
---
- name: Install epel-release
- name: Install base prerequisites
ansible.builtin.package:
name: '{{ item }}'
state: present
with_items:
loop:
- epel-release
- dnf
- which
- wget
- git
- name: Enable crb
community.general.dnf_config_manager:
name: crb
Expand Down Expand Up @@ -33,31 +36,31 @@
gpgcheck: no
enabled: yes
sslverify: yes
- name: Install prerequisites
- name: Reconfigure pgEdge repository for staging packages
ansible.builtin.replace:
path: /etc/yum.repos.d/pgedge.repo
regexp: release
replace: staging
when: use_staging_packages | bool
register: repo_reconfigured_to_staging
- name: Reconfigure pgEdge repository for release packages
ansible.builtin.replace:
path: /etc/yum.repos.d/pgedge.repo
regexp: staging
replace: release
when: not (use_staging_packages | bool)
register: repo_reconfigured_to_release
- name: Remove pgEdge packages for reinstall
ansible.builtin.package:
name: '{{ item }}'
state: absent
loop: '{{ pgedge_packages }}'
when: repo_reconfigured_to_staging.changed or repo_reconfigured_to_release.changed
- name: Install pgEdge packages
ansible.builtin.package:
name: '{{ item }}'
state: present
with_items:
- pgedge-postgresql18
- pgedge-postgresql17
- pgedge-postgresql16
- pgedge-spock50_18
- pgedge-spock50_17
- pgedge-spock50_16
- pgedge-snowflake_18
- pgedge-snowflake_17
- pgedge-snowflake_16
- pgedge-lolor_18
- pgedge-lolor_17
- pgedge-lolor_16
- pgedge-postgresql18-contrib
- pgedge-postgresql17-contrib
- pgedge-postgresql16-contrib
- pgedge-patroni
- pgedge-pgbackrest
- which
- wget
- git
loop: '{{ pgedge_packages }}'
- name: Install etcdctl and etcdutl
ansible.builtin.unarchive:
src: "{{ etcd_download_url }}"
Expand Down
18 changes: 18 additions & 0 deletions lima/roles/rhel_prerequisites/vars/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,21 @@ etcd_download_url: https://github.com/etcd-io/etcd/releases/download/{{ etcd_ver
go_version: 1.25.5
go_archive_name: go{{ go_version }}.linux-{{ _arch_transform[ansible_facts.architecture] }}.tar.gz
go_download_url: https://dl.google.com/go/{{ go_archive_name }}
pgedge_packages:
- pgedge-postgresql18
- pgedge-postgresql17
- pgedge-postgresql16
- pgedge-spock50_18
- pgedge-spock50_17
- pgedge-spock50_16
- pgedge-snowflake_18
- pgedge-snowflake_17
- pgedge-snowflake_16
- pgedge-lolor_18
- pgedge-lolor_17
- pgedge-lolor_16
- pgedge-postgresql18-contrib
- pgedge-postgresql17-contrib
- pgedge-postgresql16-contrib
- pgedge-patroni
- pgedge-pgbackrest
1 change: 1 addition & 0 deletions lima/vars.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
use_staging_packages: false
os: rocky-9
machines:
- name: control-plane-dev-1
Expand Down