Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/v23.34 #187

Merged
merged 71 commits into from
Aug 27, 2024
Merged

Release/v23.34 #187

merged 71 commits into from
Aug 27, 2024

Conversation

jdnevin
Copy link
Contributor

@jdnevin jdnevin commented Aug 27, 2024

No description provided.

RichardPooleEDB and others added 30 commits June 24, 2024 15:06
When taking a first barman backup from a replica, we force a switch to
a new WAL segment. If we do this too quickly after starting the backup,
then barman will still be backing up the data files and will need the
new WAL segment as well as the old one. So after asking for the backup,
we check on its status and wait for it to reach WAITING_FOR_WALS before
we force the switch.

Because a backup from a replica might still have to wait for the next
barman-cron run to have the WAL moved into the correct directory, the
default backup_wait_timeout is increased to 90 seconds on a replica.

Fixes: TPA-719
Bumps [pipdeptree](https://github.com/tox-dev/pipdeptree) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/tox-dev/pipdeptree/releases)
- [Commits](tox-dev/pipdeptree@2.22.0...2.23.0)

---
updated-dependencies:
- dependency-name: pipdeptree
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [black](https://github.com/psf/black) from 24.2.0 to 24.3.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](psf/black@24.2.0...24.3.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.2.3...v3.2.5)

---
updated-dependencies:
- dependency-name: pylint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
The current primary is determined from EFM to set the
'upstream_primary' fact. This allows for the EFM cluster
properties file to be correctly configured for each node
after the primary is changed (via the switchover command)
This ensures the block is executed on a primary and/or replica node
tpaexec switchover now sets EFM properties settings based on target. tpaexec deploy now runs tasks to determine upstream_primary in properties.yml
Symbolic link for efm.properties.j2 template file under switchover points to original in config/templates using a relative path
Was switched to false for visibility during development

Co-authored-by: Jonathan Renon <98327055+JonathanRenon-EDB@users.noreply.github.com>
All EBS volumes are automatically replicated across different servers
so using RAID on top of EBS volumes is redundant.

Further information at:
https://docs.aws.amazon.com/ebs/latest/userguide/raid-config.html

References: TPA-13
Co-authored-by: Jonathan Renon <98327055+JonathanRenon-EDB@users.noreply.github.com>
Bumps [pyfakefs](https://github.com/pytest-dev/pyfakefs) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/pytest-dev/pyfakefs/releases)
- [Changelog](https://github.com/pytest-dev/pyfakefs/blob/main/CHANGES.md)
- [Commits](pytest-dev/pyfakefs@v5.5.0...v5.6.0)

---
updated-dependencies:
- dependency-name: pyfakefs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [zipp](https://github.com/jaraco/zipp) from 3.17.0 to 3.19.1.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](jaraco/zipp@v3.17.0...v3.19.1)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Add conditional logic to set parameters if node is pem-server or not.
Added text to explicitly tell the user that TPA is setting the
auto.allow.hosts and stable.nodes.file properties to true so that agents
can join the cluster without a separate step needed.

Also removed some example properties that might not have been good
options (see below). To have some example properties, I've added the
property that limits notifications to only warnings and above to cut
down on noise, and ping.serverp that a user should ideally (but not
necessarily) set to some WKA in their environment.

In case anyone is curious, this is why I've removed these properties:

- standby.restart.delay: This would add a delay to restarting every
standby after a promotion, which just makes failovers take longer. I'm
not convinced there's any *good* use case for this property, but the use
case that prompted it was a customer with twenty standbys in a cluster
and they didn't want them all restarted at the same time after a
promotion.
- application.name: This property only makes sense when standbys use an
application name in primary_conninfo, which isn't set up by default by
TPA. If standbys are using it, this property only makes sense when the
nodes use different names. By setting it here, any node that used to be
a primary will have application_name set during a switchover, leading to
a confusing mix of some standbys with the specified name and some
without.
- reconfigure.sync.primary: It's generally bad to take the cluster out
of synchronous mode without a good reason, so it's probably best not
to suggest it.
- reconfigure.num.sync and reconfigure.num.sync.max: It's fine to use
these, but they only make sense when there is more than one standby (and
a max value of less than two doesn't make sense because the lowest it
can be is one).
Two fixes to cgroup detection:
- on MacOSX, there is no /proc/mounts so we mustn't try to grep it
- on some older systems (reported on Ubuntu 20.04), /sys/fs/cgroup
  can be mounted ro but have filesystems under it mounted rw, so we
  need a slightly more complicated regex to check for it.

Fixes: TPA-760
Remove EOL OSes, update pg versions for compatible architectures for default and simple integration tests.
ensure build-requirements are updated along the other requirement files.

References: TPA-765
Bumps [pipdeptree](https://github.com/tox-dev/pipdeptree) from 2.23.0 to 2.23.1.
- [Release notes](https://github.com/tox-dev/pipdeptree/releases)
- [Commits](tox-dev/pipdeptree@2.23.0...2.23.1)

---
updated-dependencies:
- dependency-name: pipdeptree
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Without this change, our integration tests fail with:
"Architecture error: TPA does not support Patroni with multiple locations"

References: TPA-699
Now that `create-or-update-comment` exists in `repo-actions`, we can use that
action to maintain a “pinned” comment in each PR that is opened against the TPA
repository.

So far we have been running the `validate_relnotes.yml` workflow only on
`opened`/`reopened` PR events to avoid flooding the PRs with comments as the
current implementation appends a comment each time it is run.

Besides that, we were avoiding to mark the run as "failed" in Actions because
the workflow would be triggered only on `opened`/`reopened` events, and that
would prevent the PR from being merged because of failed checks.

With this commit we intend to use the `create-or-update-comment` action to
create a comment when the PR is opened, and keep updating the comment when the
PR is synchronized or reopened.

That behavior also allows us to mark the workflow run as a failed check if we
hit either of these situations:

* Invalid release notes files are found in the folder;
* Unexpected files are found in the folder.

We still avoid failing when the PR introduces no release notes files because
some PRs are non-customer facing changes, so wouldn't require a release note.

Signed-off-by: Israel Barth Rubio <israel.barth@enterprisedb.com>
Use postgres_port when trying to register a witness node in repmgr via
repmgr witness register command.

Add relnote
References: TPA-772

Signed-off-by: Nick Ivanov <nick.ivanov@enterprisedb.com>
Add relnote

References: TPA-768
099f65d added support for accepting
repmgr as a valid option for failover_manager for PGD clusters with the
limited use that allows installation of repmgr and subsequent
configuration when HA setup is required for a subscriber-only node. This
however didn't work as intended for clusters using PGD version 5+. This
change intends to fix just that.

References: TPA-767
Signed-off-by: Muhammad Haroon <muhammad.haroon@enterprisedb.com>
Add to the list of field we query when checking the actual pgd proxy config in tpaexec test comand.
Github's handling of output was masking the actual exit code of tpaexec
test command inside the action step.

this fix saves the value of the actual tpaexec test exit code and use it
as the global exit code for the action step.
JonathanRenon-EDB and others added 26 commits August 2, 2024 11:36
Add the option to use hostnames instead of ip addresses when configuring
efm cluster. `--efm-bind-by-hostname` defaults to false when omitted.

Ensure that the option is only available for M1 + efm clusters.

Set the `bind.address` entry to use the hostname of the node instead of
ip address. Set the .nodes file for efm to use hostnames.

Add doc entry for the option.

Add relnote entry.

Black formatting

References: TPA-758
After generating new config, we must flush handlers to ensure that
we later restart postgres (if required); if we leave it for the flush
to happen later, the outstanding handlers can be forgotten.

Fixes: TPA-781
The efm-pre-config hook runs after efm has been installed and its
configuration directory and user have been created, but before its
configuration is generated. It can be used to install efm helper
scripts.

It runs from inside the efm/config role because the user is created as
part of the role and it is useful for the user to already exist when
installing scripts from the hook.

Fixes: TPA-791
This commit enables PostgreSQL to use a root CA and certificate
authentication. Also pgbouncer is configured to use cert authentication
when `pgbouncer_use_cert_authentication` is set to true in cluster_vars.

References: TPA-650
dependabot can now traverse directories and automatically detect the
different sub directories it might encounter whilst it's walking through
them.

Further information at:
https://github.blog/changelog/2024-06-25-simplified-dependabot-yml-configuration-with-multi-directory-key-directories-and-wildcard-glob-support/

References: TPA-769
The new plugin "tpa" writes task output to stdout, writing only
one line for each task. Each task name is followed by three colour-coded
numbers: a green one showing how many hosts successfully executed the
task, a blue one showing how many hosts skipped the task, and a pink one
showing how many hosts failed to run the task, if the task is marked
with "ignore_errors: true".

Tasks are indented according to include levels.

If you set the TPA_STANDARD_OUTPUT environment variable to a truthy
value, or set the standard_plugin option in ansible.cfg, or use -v on
the command line, the TPA output plugin will behave just like the
default one. This effectively enables ad-hoc flipping between the two
output styles.

References: TPA-778, TPA-673
Previously, EFM was queried for the current primary on a deploy after a
switchover. If EFM is not running, this will fail. Now the
cluster_facts collected through Postgres are used to determine the
current primary after a switchover, removing the dependency on EFM.
Legacy 2ndQuadrant repositories are no longer supported. All new
clusters configured and deployed with the recent versions of TPA default
to using EDB Repos 2.0 and therefore it is only fair that docs reflect
the same.

References: TPA-726
Signed-off-by: Muhammad Haroon <muhammad.haroon@enterprisedb.com>
The Ansible default is to use a proxy, if defined. This does not work in
the (rather common) case of an airgapped environment that needs a proxy
to download packages from the internet, because the proxy also
intercepts (and disrupts) calls to the Patroni API.

This commit changes the default behaviour, but I cannot think of any
scenario where the former behaviour could be useful; hence I did not
implement a user parameter to override it. Should we ever need it, we
can introduce it at a later point in time.

References: TPA-790
Signed-off-by: Gianni Ciolli <gianni.ciolli@enterprisedb.com>
Adding the ppc64le file with arch specific hashes.
PR submitted by the update-requirements GH action.

requirements-ppc64le.txt.cryptography.version:42.0.8 could not be matched in the new requirement files.
requirements-ppc64le.txt.cryptography.hash_set:{'8fb57023a4416678c09f4f547f108363cd9ecfc4781fc8e6ccf64a2ac30a6bee'} could not be matched in the new requirement files.
requirements-ppc64le.txt.markupsafe.hash_set:{'9ba81866a78622e383f48a82bc70e7c6835b8a514ce9047bbb873d022df98aa5'} could not be matched in the new requirement files.
requirements-ppc64le.txt.psutil.version:5.9.8 could not be matched in the new requirement files.
requirements-ppc64le.txt.psutil.hash_set:{'42f94b3539dbcca65ca7510a568f17e1abc2008111e01a3961dc87e0d978443f'} could not be matched in the new requirement files.
requirements-ppc64le.txt.pyyaml.hash_set:{'a56cbdb91d2413864b72f551376b902191f5bb9cf3881b01944c771e04fe72dc'} could not be matched in the new requirement files.
requirements-arm64.txt.psutil.version:5.9.8 could not be matched in the new requirement files.
requirements-arm64.txt.psutil.hash_set:{'aaea6ba26520aae0e7a8bd9bbcd28678579e6c1a66a4de7a7ad3a31dda5cf277'} could not be matched in the new requirement files.

Triggered by PR#<no value> at ref refs/heads/dev/ppc64le-missing being merged into
main.
pyyaml and markupsafe didn't change version
but the current state of the action and pip-compile make this necessary for ARM and PPC deps.
This file was required because upstream wasn't building a wheel for that
architecture. That has changed a few weeks ago and upstream added ARM64
to its building/release process.
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.2.2 to 8.3.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@8.2.2...8.3.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [jq](https://github.com/mwilliamson/jq.py) from 1.7.0 to 1.8.0.
- [Changelog](https://github.com/mwilliamson/jq.py/blob/master/CHANGELOG.rst)
- [Commits](mwilliamson/jq.py@1.7.0...1.8.0)

---
updated-dependencies:
- dependency-name: jq
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
In PEM 9.7.0 httpd is no longer a package dep so we need to install it
Install correct mod_wsgi version for OS
Add mod_ssl package to list of pem_server_webserver_packages
Add release note
Also, adding some cosmetic changes that help readability of the code
when default values are being used.

Related: TPA-650
Working directory is now 'release_notes', no longer 'relnotes'.
@jdnevin jdnevin requested a review from a team as a code owner August 27, 2024 13:32
@JonathanRenon-EDB JonathanRenon-EDB merged commit b260a19 into main Aug 27, 2024
@JonathanRenon-EDB JonathanRenon-EDB deleted the release/v23.34 branch August 27, 2024 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants