-
Notifications
You must be signed in to change notification settings - Fork 27
Add initial backup and rewind settings #45
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
Merged
Merged
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
f46705d
Add initial backup settings
marceloneppel 805b499
Add additional backup settings
marceloneppel 23e74f1
Fix unit tests
marceloneppel 556233b
Add max_replication_slots
marceloneppel 27053b4
Remove settings
marceloneppel 974fb1f
Remove settings
marceloneppel 3e23e66
Rename user
marceloneppel 9cd8178
Add test for TLS being used on pg_rewind connections
marceloneppel 430bd81
Merge branch 'main' into backup-configurations-part-1
marceloneppel cd7f35c
Improve comments and docstrings
marceloneppel 0b7e56e
Small fixes
marceloneppel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,6 +12,10 @@ | |
| check_tls, | ||
| check_tls_patroni_api, | ||
| deploy_and_relate_application_with_postgresql, | ||
| enable_connections_logging, | ||
| get_primary, | ||
| primary_changed, | ||
| run_command_on_unit, | ||
| ) | ||
|
|
||
| MATTERMOST_APP_NAME = "mattermost" | ||
|
|
@@ -65,6 +69,41 @@ async def test_mattermost_db(ops_test: OpsTest) -> None: | |
| assert await check_tls(ops_test, unit.name, enabled=True) | ||
| assert await check_tls_patroni_api(ops_test, unit.name, enabled=True) | ||
|
|
||
| # Test TLS being used by pg_rewind. To accomplish that, get the primary unit | ||
| # and a replica that will be promoted to primary (this should trigger a rewind | ||
| # operation when the old primary is started again). | ||
| primary = await get_primary(ops_test) | ||
| replica = [ | ||
| unit.name | ||
| for unit in ops_test.model.applications[DATABASE_APP_NAME].units | ||
| if unit.name != primary | ||
| ][0] | ||
|
|
||
| # Enable additional logs on the PostgreSQL instance to check TLS | ||
| # being used in a later step. | ||
| await enable_connections_logging(ops_test, primary) | ||
|
|
||
| # Promote the replica to primary. | ||
| await run_command_on_unit( | ||
| ops_test, | ||
| replica, | ||
| 'su postgres -c "/usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/data/pgdata promote"', | ||
| ) | ||
|
|
||
| # Stop the initial primary. | ||
| await run_command_on_unit(ops_test, primary, "/charm/bin/pebble stop postgresql") | ||
|
|
||
| # Check that the primary changed. | ||
| assert await primary_changed(ops_test, primary), "primary not changed" | ||
|
|
||
| # Restart the initial primary and check the logs to ensure TLS is being used by pg_rewind. | ||
| await run_command_on_unit(ops_test, primary, "/charm/bin/pebble start postgresql") | ||
| logs = await run_command_on_unit(ops_test, replica, "/charm/bin/pebble logs") | ||
| assert ( | ||
| "connection authorized: user=rewind database=postgres" | ||
| " SSL enabled (protocol=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384, bits=256)" in logs | ||
| ), "TLS is not being used on pg_rewind connections" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Wow so thorough 🤩 |
||
|
|
||
| # Deploy and check Mattermost user and database existence. | ||
| relation_id = await deploy_and_relate_application_with_postgresql( | ||
| ops_test, "mattermost-k8s", MATTERMOST_APP_NAME, APPLICATION_UNITS, status="waiting" | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.