Skip to content

Add an installer option to configure S3 object storage - #243

Merged
rbardaji merged 1 commit into
mainfrom
feature/installer-configure-s3
Aug 17, 2026
Merged

Add an installer option to configure S3 object storage#243
rbardaji merged 1 commit into
mainfrom
feature/installer-configure-s3

Conversation

@rbardaji

Copy link
Copy Markdown
Collaborator

Closes #242

Problem

The installer could set up the catalog backends (MongoDB, CKAN) and access requests, but it had no way to turn on S3 object storage. It always wrote S3 as disabled and nothing re-enabled it, so an Endpoint that should offer S3 bucket/object management could only get one by editing the .env by hand and starting the container manually.

What it does

Offers S3 the same way the other optional pieces are offered — an interactive prompt and a flag — in two modes, mirroring how MongoDB/CKAN do bundled-vs-existing:

Bundled MinIO Existing S3 (AWS or your own)
Flag --s3 --s3-endpoint <host> (+ --s3-access-key, --s3-secret-key, --s3-region, --s3-secure)
Docker installed MinIO via compose profile s3 (ndp-minio) none
.env the user provides nothing (fixed minio:9000 / minioadmin) endpoint, access key, secret key, region, secure

When S3 is not chosen, nothing changes from before (S3_ENABLED=False, no profile).

Verified

  • Dry-run in all three cases: --s3 (bundled → S3_ENABLED=True, minio:9000, profile s3), --s3-endpoint … (existing → the given endpoint/creds, no profile), and no-S3 (unchanged S3_ENABLED=False).
  • --s3-endpoint without credentials fails cleanly.
  • New install tests: the installer offers S3 (flag + prompt), the bundled block enables it + adds the s3 profile + points at MinIO, an existing S3 requires credentials, and MinIO is behind exactly the s3 profile so the installer's profile starts it.
  • Full suite 1238 passed (incl. install/tests/); black/flake8 clean. install.sh passes bash -n.

No backend or image code changes; the MinIO service already existed in docker-compose.yml behind the s3 profile.

The installer set up the catalog backends and access requests, but always
wrote S3 as disabled with nothing to re-enable it, so object storage could
only be added by hand-editing .env and starting the container manually.

Offer S3 the same way as the other optional pieces — a --s3 flag and an
interactive prompt — in two modes: install the bundled MinIO alongside the
Endpoint (compose profile 's3'), or point at an S3-compatible service the
operator already runs (including Amazon S3) via --s3-endpoint and its
credentials. An install that does not ask for S3 renders exactly as before.

Closes #242
@rbardaji
rbardaji merged commit 2d790c6 into main Aug 17, 2026
1 check passed
@rbardaji
rbardaji deleted the feature/installer-configure-s3 branch August 17, 2026 09:40
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.

The installer cannot configure S3 object storage

1 participant