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

Proxy release 2024-12-17 #10180

Merged
merged 49 commits into from
Dec 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
739f627
Bump vm-builder v0.35.0 -> v0.37.1 (#10015)
mikhail-sakhnov Dec 12, 2024
0bd8eca
Storage: create release PRs On Fridays (#10017)
bayandin Dec 12, 2024
ec0ce06
tests: default interpreted proto in tests (#10079)
VladLazar Dec 12, 2024
c9a773a
Fix test_subscriber_synchronous_commit flakiness. (#10057)
arssher Dec 12, 2024
e502e88
chore(proxy): remove code for old API (#10109)
conradludgate Dec 12, 2024
58d45c6
ci(fix): Use OIDC auth to login on ECR (#10055)
rahulinux Dec 12, 2024
2f34338
Change the channel for notification. (#10112)
a-masterov Dec 12, 2024
5372126
Disable connection logging in pgbouncer by default (#10118)
hlinnaka Dec 12, 2024
6d56875
fix(ci): Allow github-script to post test reports (#10120)
rahulinux Dec 12, 2024
a93e3d3
storcon: refine logic for choosing AZ on tenant creation (#10054)
jcsp Dec 12, 2024
5ff4b99
feat(pageserver): gc-compaction split over LSN (#9900)
skyzh Dec 12, 2024
2f3f98a
use OIDC role instead of AWS access keys for managing test runner (#…
Bodobolero Dec 12, 2024
ac04bad
CI: don't run debug builds with LFC (#10123)
bayandin Dec 12, 2024
59ef701
CI(deploy): fix git tag/release creation (#10119)
jcgruenhage Dec 12, 2024
2451969
fix(ci): Allow github-action-script to post reports (#10136)
rahulinux Dec 13, 2024
7dc3826
Fix pg_regress tests on a cloud staging instance (#10134)
a-masterov Dec 13, 2024
ce8eb08
Extract public sk types to safekeeper_api (#10137)
arssher Dec 13, 2024
2c91062
test_prefetch: reduce timeout to default 5m from 10m (#10105)
bayandin Dec 13, 2024
fcff752
fix(test_timeline_archival_chaos): flakiness caused by orphan layers …
problame Dec 13, 2024
eeabecd
Correctly update LFC used_pages in case of LFC resize (#10128)
knizhnik Dec 13, 2024
07d1db5
Improve comments and log messages in the logical replication monitor …
tristan957 Dec 13, 2024
7ee5dca
fix(pageserver): race between gc-compaction and repartition (#10127)
skyzh Dec 13, 2024
d56fea6
CI: always require aws-oicd-role-arn input to be set (#10145)
bayandin Dec 13, 2024
2521eba
Check for invalid down link while prefetching B-Tree leave pages for …
knizhnik Dec 13, 2024
cf161e1
fix(adapter): password not set in role drop (#10130)
myrrc Dec 14, 2024
f3ecd5d
pageserver: revert flush backpressure (#8550) (#10135)
erikgrinaker Dec 15, 2024
117c1b5
Do not perform prefetch for temp relations (#10146)
knizhnik Dec 16, 2024
ebcbc1a
pageserver: tighten up code around SLRU dir key handling (#10082)
jcsp Dec 16, 2024
24d6587
chore(proxy): refactor self-signed config (#10154)
conradludgate Dec 16, 2024
1ed0e52
Extract safekeeper http client to separate crate. (#10140)
arssher Dec 16, 2024
c5e3314
Add test restarting compute at WAL page boundary (#10111)
arssher Dec 16, 2024
6565fd4
chore: fix clippy lints 2024-12-06 (#10138)
conradludgate Dec 16, 2024
3d30a7a
pageserver: make `RemoteTimelineClient::schedule_index_upload` infall…
erikgrinaker Dec 16, 2024
2e4c9c5
chore(proxy): remove allow_self_signed from regular proxy (#10157)
conradludgate Dec 16, 2024
59b7ff8
chore(proxy): disallow unwrap and unimplemented (#10142)
conradludgate Dec 16, 2024
28ccda0
test_runner: ignore error in `test_timeline_archival_chaos` (#10161)
erikgrinaker Dec 16, 2024
aa7ab9b
proxy: Allow dumping TLS session keys for debugging (#10163)
cloneable Dec 16, 2024
e226d7a
Fix docker compose with PG17 (#10165)
a-masterov Dec 17, 2024
b0e43c2
postgres_ffi: add `WalStreamDecoder::complete_record()` benchmark (#1…
erikgrinaker Dec 17, 2024
b5833ef
remote_storage: configurable connection pooling for ABS (#10169)
jcsp Dec 17, 2024
2dfd3ca
fix(compute): Report compute_backpressure_throttling_seconds as count…
ololobus Dec 17, 2024
007b13b
Don't build tests in compute image, use ninja (#10149)
myrrc Dec 17, 2024
a55853f
utils: symbolize heap profiles (#10153)
erikgrinaker Dec 17, 2024
7dddbb9
Add pg_repack extension (#10100)
tristan957 Dec 17, 2024
93e9583
[proxy]: Use TLS for cancellation queries (#10152)
awarus Dec 17, 2024
fd23022
storcon: include preferred AZ in compute notifications (#9953)
jcsp Dec 17, 2024
2ee6bc5
chore(proxy): update vendored postgres libs to edition 2021 (#10139)
conradludgate Dec 17, 2024
c52514a
Fix allure report creation on periodic `pg_regress` testing (#10171)
a-masterov Dec 17, 2024
758680d
Proxy release 2024-12-17
github-actions[bot] Dec 17, 2024
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
2 changes: 2 additions & 0 deletions .github/actionlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ config-variables:
- BENCHMARK_INGEST_TARGET_PROJECTID
- PGREGRESS_PG16_PROJECT_ID
- PGREGRESS_PG17_PROJECT_ID
- SLACK_ON_CALL_QA_STAGING_STREAM
- DEV_AWS_OIDC_ROLE_MANAGE_BENCHMARK_EC2_VMS_ARN
14 changes: 6 additions & 8 deletions .github/actions/allure-report-generate/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@ inputs:
type: boolean
required: false
default: false
aws_oicd_role_arn:
description: 'the OIDC role arn to (re-)acquire for allure report upload - if not set call must acquire OIDC role'
required: false
default: ''
aws-oicd-role-arn:
description: 'OIDC role arn to interract with S3'
required: true

outputs:
base-url:
Expand Down Expand Up @@ -84,12 +83,11 @@ runs:
ALLURE_VERSION: 2.27.0
ALLURE_ZIP_SHA256: b071858fb2fa542c65d8f152c5c40d26267b2dfb74df1f1608a589ecca38e777

- name: (Re-)configure AWS credentials # necessary to upload reports to S3 after a long-running test
if: ${{ !cancelled() && (inputs.aws_oicd_role_arn != '') }}
uses: aws-actions/configure-aws-credentials@v4
- uses: aws-actions/configure-aws-credentials@v4
if: ${{ !cancelled() }}
with:
aws-region: eu-central-1
role-to-assume: ${{ inputs.aws_oicd_role_arn }}
role-to-assume: ${{ inputs.aws-oicd-role-arn }}
role-duration-seconds: 3600 # 1 hour should be more than enough to upload report

# Potentially we could have several running build for the same key (for example, for the main branch), so we use improvised lock for this
Expand Down
14 changes: 6 additions & 8 deletions .github/actions/allure-report-store/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@ inputs:
unique-key:
description: 'string to distinguish different results in the same run'
required: true
aws_oicd_role_arn:
description: 'the OIDC role arn to (re-)acquire for allure report upload - if not set call must acquire OIDC role'
required: false
default: ''
aws-oicd-role-arn:
description: 'OIDC role arn to interract with S3'
required: true

runs:
using: "composite"
Expand All @@ -36,12 +35,11 @@ runs:
env:
REPORT_DIR: ${{ inputs.report-dir }}

- name: (Re-)configure AWS credentials # necessary to upload reports to S3 after a long-running test
if: ${{ !cancelled() && (inputs.aws_oicd_role_arn != '') }}
uses: aws-actions/configure-aws-credentials@v4
- uses: aws-actions/configure-aws-credentials@v4
if: ${{ !cancelled() }}
with:
aws-region: eu-central-1
role-to-assume: ${{ inputs.aws_oicd_role_arn }}
role-to-assume: ${{ inputs.aws-oicd-role-arn }}
role-duration-seconds: 3600 # 1 hour should be more than enough to upload report

- name: Upload test results
Expand Down
9 changes: 9 additions & 0 deletions .github/actions/download/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,19 @@ inputs:
prefix:
description: "S3 prefix. Default is '${GITHUB_RUN_ID}/${GITHUB_RUN_ATTEMPT}'"
required: false
aws-oicd-role-arn:
description: 'OIDC role arn to interract with S3'
required: true

runs:
using: "composite"
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: eu-central-1
role-to-assume: ${{ inputs.aws-oicd-role-arn }}
role-duration-seconds: 3600

- name: Download artifact
id: download-artifact
shell: bash -euxo pipefail {0}
Expand Down
20 changes: 12 additions & 8 deletions .github/actions/run-python-test-set/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ inputs:
description: 'benchmark durations JSON'
required: false
default: '{}'
aws_oicd_role_arn:
description: 'the OIDC role arn to (re-)acquire for allure report upload - if not set call must acquire OIDC role'
required: false
default: ''
aws-oicd-role-arn:
description: 'OIDC role arn to interract with S3'
required: true

runs:
using: "composite"
Expand All @@ -62,6 +61,7 @@ runs:
with:
name: neon-${{ runner.os }}-${{ runner.arch }}-${{ inputs.build_type }}-artifact
path: /tmp/neon
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}

- name: Download Neon binaries for the previous release
if: inputs.build_type != 'remote'
Expand All @@ -70,6 +70,7 @@ runs:
name: neon-${{ runner.os }}-${{ runner.arch }}-${{ inputs.build_type }}-artifact
path: /tmp/neon-previous
prefix: latest
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}

- name: Download compatibility snapshot
if: inputs.build_type != 'remote'
Expand All @@ -81,6 +82,7 @@ runs:
# The lack of compatibility snapshot (for example, for the new Postgres version)
# shouldn't fail the whole job. Only relevant test should fail.
skip-if-does-not-exist: true
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}

- name: Checkout
if: inputs.needs_postgres_source == 'true'
Expand Down Expand Up @@ -218,17 +220,19 @@ runs:
# The lack of compatibility snapshot shouldn't fail the job
# (for example if we didn't run the test for non build-and-test workflow)
skip-if-does-not-exist: true
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}

- name: (Re-)configure AWS credentials # necessary to upload reports to S3 after a long-running test
if: ${{ !cancelled() && (inputs.aws_oicd_role_arn != '') }}
uses: aws-actions/configure-aws-credentials@v4
- uses: aws-actions/configure-aws-credentials@v4
if: ${{ !cancelled() }}
with:
aws-region: eu-central-1
role-to-assume: ${{ inputs.aws_oicd_role_arn }}
role-to-assume: ${{ inputs.aws-oicd-role-arn }}
role-duration-seconds: 3600 # 1 hour should be more than enough to upload report

- name: Upload test results
if: ${{ !cancelled() }}
uses: ./.github/actions/allure-report-store
with:
report-dir: /tmp/test_output/allure/results
unique-key: ${{ inputs.build_type }}-${{ inputs.pg_version }}
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}
2 changes: 2 additions & 0 deletions .github/actions/save-coverage-data/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ runs:
name: coverage-data-artifact
path: /tmp/coverage
skip-if-does-not-exist: true # skip if there's no previous coverage to download
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}

- name: Upload coverage data
uses: ./.github/actions/upload
with:
name: coverage-data-artifact
path: /tmp/coverage
aws-oicd-role-arn: ${{ inputs.aws-oicd-role-arn }}
11 changes: 11 additions & 0 deletions .github/actions/upload/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ inputs:
prefix:
description: "S3 prefix. Default is '${GITHUB_SHA}/${GITHUB_RUN_ID}/${GITHUB_RUN_ATTEMPT}'"
required: false
aws-oicd-role-arn:
description: "the OIDC role arn for aws auth"
required: false
default: ""

runs:
using: "composite"
Expand Down Expand Up @@ -53,6 +57,13 @@ runs:

echo 'SKIPPED=false' >> $GITHUB_OUTPUT

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: eu-central-1
role-to-assume: ${{ inputs.aws-oicd-role-arn }}
role-duration-seconds: 3600

- name: Upload artifact
if: ${{ steps.prepare-artifact.outputs.SKIPPED == 'false' }}
shell: bash -euxo pipefail {0}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/_benchmarking_preparation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ jobs:
name: neon-${{ runner.os }}-${{ runner.arch }}-release-artifact
path: /tmp/neon/
prefix: latest
aws-oicd-role-arn: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }}

# we create a table that has one row for each database that we want to restore with the status whether the restore is done
- name: Create benchmark_restore_status table if it does not exist
Expand Down
18 changes: 16 additions & 2 deletions .github/workflows/_build-and-test-locally.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@ defaults:
env:
RUST_BACKTRACE: 1
COPT: '-Werror'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_DEV }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY_DEV }}

jobs:
build-neon:
runs-on: ${{ fromJson(format('["self-hosted", "{0}"]', inputs.arch == 'arm64' && 'large-arm64' || 'large')) }}
permissions:
id-token: write # aws-actions/configure-aws-credentials
contents: read
container:
image: ${{ inputs.build-tools-image }}
credentials:
Expand Down Expand Up @@ -205,6 +206,13 @@ jobs:
done
fi

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: eu-central-1
role-to-assume: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }}
role-duration-seconds: 18000 # 5 hours

- name: Run rust tests
env:
NEXTEST_RETRIES: 3
Expand Down Expand Up @@ -256,6 +264,7 @@ jobs:
with:
name: neon-${{ runner.os }}-${{ runner.arch }}-${{ inputs.build-type }}-artifact
path: /tmp/neon
aws-oicd-role-arn: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }}

# XXX: keep this after the binaries.list is formed, so the coverage can properly work later
- name: Merge and upload coverage data
Expand All @@ -265,6 +274,10 @@ jobs:
regress-tests:
# Don't run regression tests on debug arm64 builds
if: inputs.build-type != 'debug' || inputs.arch != 'arm64'
permissions:
id-token: write # aws-actions/configure-aws-credentials
contents: read
statuses: write
needs: [ build-neon ]
runs-on: ${{ fromJson(format('["self-hosted", "{0}"]', inputs.arch == 'arm64' && 'large-arm64' || 'large')) }}
container:
Expand Down Expand Up @@ -295,6 +308,7 @@ jobs:
real_s3_region: eu-central-1
rerun_failed: true
pg_version: ${{ matrix.pg_version }}
aws-oicd-role-arn: ${{ vars.DEV_AWS_OIDC_ROLE_ARN }}
env:
TEST_RESULT_CONNSTR: ${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}
CHECK_ONDISK_DATA_COMPATIBILITY: nonempty
Expand Down
Loading
Loading