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

Create ext_index.json #4764

Closed
wants to merge 7 commits into from

Conversation

awestover
Copy link
Contributor

@awestover awestover commented Jul 20, 2023

Problem

compute_ctl expects needs a file ext_index.json containing the data necessary to create control files, and containing the locations of extension archives in remote storage.
The ext_index.json file should be generated by Dockerfile.compute-node.

Summary of Changes

The layout of the S3 bucket is as follows:

5615610098 // this is an extension build number
├── v14
│   ├── extensions
│   │   ├── anon.tar.zstd
│   │   └── embedding.tar.zstd
│   └── ext_index.json
└── v15
    ├── extensions
    │   ├── anon.tar.zstd
    │   └── embedding.tar.zstd
    └── ext_index.json
5615261079
├── v14
│   ├── extensions
│   │   └── anon.tar.zstd
│   └── ext_index.json
└── v15
    ├── extensions
    │   └── anon.tar.zstd
    └── ext_index.json
5623261088
├── v14
│   ├── extensions
│   │   └── embedding.tar.zstd
│   └── ext_index.json
└── v15
    ├── extensions
    │   └── embedding.tar.zstd
    └── ext_index.json

ext_index.json stores the control files and location of extension archives.

More specifically, here is an example ext_index.json

{
  "embedding": {
    "control_data": {
      "embedding.control": "comment = 'hnsw index' \ndefault_version = '0.1.0' \nmodule_pathname = '$libdir/embedding' \nrelocatable = true \ntrusted = true"
    },
    "archive_path": "5623261088/v15/extensions/embedding.tar.zstd"
  },
  "anon": {
    "control_data": {
      "anon.control": "# PostgreSQL Anonymizer (anon) extension \ncomment = 'Data anonymization tools' \ndefault_version = '1.1.0' \ndirectory='extension/anon' \nrelocatable = false \nrequires = 'pgcrypto' \nsuperuser = false \nmodule_pathname = '$libdir/anon' \ntrusted = true \n"
    },
    "archive_path": "5615261079/v15/extensions/anon.tar.zstd"
  }
}

@awestover awestover requested a review from bayandin July 20, 2023 19:45
@bayandin bayandin force-pushed the bayandin/new-extension-format branch 2 times, most recently from fb79a98 to f846758 Compare July 20, 2023 19:55
@github-actions
Copy link

github-actions bot commented Jul 20, 2023

1040 tests run: 987 passed, 1 failed, 52 skipped (full report)


Failures on Posgres 14

  • test_crafted_wal_end[last_wal_record_xlog_switch_ends_on_page_boundary]: debug
# Run all failed tests locally:
scripts/pytest -vv -n $(nproc) -k "test_crafted_wal_end[debug-pg14-last_wal_record_xlog_switch_ends_on_page_boundary]"
Flaky tests (1)

Postgres 15

  • test_crafted_wal_end[last_wal_record_crossing_segment]: debug

@awestover awestover mentioned this pull request Jul 20, 2023
@awestover awestover force-pushed the bayandin/new-extension-format branch from f846758 to 1b6e13a Compare July 21, 2023 15:08
@awestover awestover force-pushed the alek/extension_index branch 2 times, most recently from 302dc49 to 63c8967 Compare July 21, 2023 15:28
@awestover awestover requested a review from a team as a code owner July 21, 2023 15:28
@awestover awestover requested review from lubennikovaav and removed request for a team July 21, 2023 15:28
@awestover awestover force-pushed the alek/extension_index branch from 63c8967 to a969635 Compare July 21, 2023 15:33
This was referenced Jul 21, 2023
@awestover
Copy link
Contributor Author

awestover commented Jul 24, 2023

note: failure of 0c0f494 is just flaky tests, not an actual problem

Dockerfile.compute-node Outdated Show resolved Hide resolved
Dockerfile.compute-node Outdated Show resolved Hide resolved
Dockerfile.compute-node Outdated Show resolved Hide resolved
scripts/combine_control_files.py Show resolved Hide resolved
scripts/combine_control_files.py Outdated Show resolved Hide resolved
Dockerfile.compute-node Show resolved Hide resolved
@awestover
Copy link
Contributor Author

DONT FORGET CHANGE THIS:

    # if: |
    #   (github.ref_name == 'main' || github.ref_name == 'release') &&
    #    github.event_name != 'workflow_dispatch'

@lubennikovaav
Copy link
Contributor

closed in favor of #4792

@bayandin bayandin deleted the alek/extension_index branch July 27, 2023 10:13
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.

2 participants