Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.

Add S3 v1 interface and update S3 v0 interface#306

Merged
james-garner-canonical merged 17 commits into
canonical:mainfrom
theoctober19th:s3-v1
Nov 24, 2025
Merged

Add S3 v1 interface and update S3 v0 interface#306
james-garner-canonical merged 17 commits into
canonical:mainfrom
theoctober19th:s3-v1

Conversation

@theoctober19th
Copy link
Copy Markdown
Member

@theoctober19th theoctober19th commented Oct 25, 2025

This PR aims to introduce a newer version of s3 interface (v1), which is going to be implemented by the s3-integrator on 2/ track going further. The new s3-integrator charm is added with features of automatic bucket creation and verification, as per the spec DA171.

The major changes in the interface is that now the sensitive information like access-key and secret-key are to be passed by encapsulating them in a Juju secret -- while other things being similar. The interface now also adds for support for both provider and requirer writing the version of the S3 lib they're using -- to enable us to have more flexibility in the future should we have the necessity to have conditional logic based on some specific version of charm lib.

This PR also aims to update some old and obsolete information on the s3 v0 interface.

@theoctober19th theoctober19th changed the title [draft] Add S3 v1 interface and edit relevant sections in v0 [draft] Add S3 v1 interface and update S3 v0 interface accordingly Oct 25, 2025
@theoctober19th theoctober19th changed the title [draft] Add S3 v1 interface and update S3 v0 interface accordingly [draft] Add S3 v1 interface and update S3 v0 interface Oct 25, 2025
@theoctober19th theoctober19th marked this pull request as ready for review October 25, 2025 05:31
@theoctober19th theoctober19th changed the title [draft] Add S3 v1 interface and update S3 v0 interface Add S3 v1 interface and update S3 v0 interface Oct 25, 2025
Comment thread interfaces/s3/v0/README.md Outdated
Comment thread interfaces/s3/v1/README.md Outdated
Comment thread interfaces/s3/v1/README.md Outdated
Comment thread interfaces/s3/v1/README.md Outdated
Comment thread interfaces/s3/v1/README.md Outdated
Copy link
Copy Markdown
Contributor

@deusebio deusebio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @theoctober19th for adding this! I believe it is very beneficial.

I just have a couple of questions on whether some fields are really optional, but otherwise everything looks good!

Comment thread interfaces/s3/v1/README.md Outdated
Comment thread interfaces/s3/v0/README.md
Comment thread interfaces/s3/v0/README.md Outdated
Comment thread interfaces/s3/v1/README.md
Copy link
Copy Markdown
Contributor

@james-garner-canonical james-garner-canonical left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chiming in with my review since @dimaqq requested it. I'd love to see more in the v1 readme about the migration strategy for deployments, as well as some documentation (or a pointer to library docs) explaining which library versions support which interface versions.

Comment thread interfaces/s3/v0/README.md
Comment thread interfaces/s3/v0/README.md Outdated
Comment thread interfaces/s3/v0/README.md Outdated
Comment thread interfaces/s3/v1/README.md Outdated
Comment thread interfaces/s3/v1/README.md
Comment thread interfaces/s3/v1/schemas/provider.json Outdated
@james-garner-canonical
Copy link
Copy Markdown
Contributor

Hi @theoctober19th @Batalex @deusebio, we're moving towards archiving this repo very soon, however interface specifications live on in the charmlibs repo.

I'm happy to merge this PR and migrate the interface definition to charmlibs, but it looks like there are a couple of open questions from @deusebio and @Batalex that should be addressed first.

I also posted some documentation feedback, most of which is minor and can be skipped, but it would be great to get some documentation of migration strategies and the library versions that support the different interface versions.

@theoctober19th
Copy link
Copy Markdown
Member Author

Hi @james-garner-canonical, thank you for the information that this repo is soon to be archived. I'll do the needful to get this merged ASAP.

@theoctober19th
Copy link
Copy Markdown
Member Author

Hi @james-garner-canonical, I've added the requested changes in the PR. Can you have a look again?

Copy link
Copy Markdown
Contributor

@james-garner-canonical james-garner-canonical left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, thank you for adding the extra documentation and the Pydantic schema! I'll leave the PR open for now to give @Batalex and @deusebio a chance to reply, but it's good to merge from my perspective.

Copy link
Copy Markdown
Contributor

@deusebio deusebio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thanks @theoctober19th !

@james-garner-canonical james-garner-canonical merged commit 662b4dc into canonical:main Nov 24, 2025
6 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants