Skip to content

feat(kfp-profile-controller): add s3-credentials relation to relate with s3-integrator#958

Merged
mvlassis merged 33 commits into
mainfrom
kf-8704-kfp-profile-controller
Jul 1, 2026
Merged

feat(kfp-profile-controller): add s3-credentials relation to relate with s3-integrator#958
mvlassis merged 33 commits into
mainfrom
kf-8704-kfp-profile-controller

Conversation

@mvlassis

@mvlassis mvlassis commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add s3 interface support (via an s3-credentials relation) to kfp-profile-controller, letting it use an s3-integrator as an alternative to the in-cluster MinIO (object-storage) backend.
  • A RelationCountGateComponent conflict gate enforces that exactly one of object-storage or s3-credentials is related at a time (relating both, or neither, blocks the charm).
  • Add three new MINIO_* arguments passed into the sync.py workload container

Notes

Closes #966

Add the `s3` interface (via an `s3-credentials` relation) so
kfp-profile-controller can use an s3-integrator as an alternative to the
in-cluster MinIO (`object-storage`) backend. A RelationCountGateComponent
enforces that exactly one of the two relations is related at a time.

The s3 endpoint is parsed into the MINIO_* host, port and SSL flag, and
the sync hook now derives SSL/region and omits the `.namespace` suffix
when using s3 (which has no namespace concept).

Integration tests are split into object-storage and s3 suites, wired up
through a new `integration-s3` tox env and CI matrix entry.
@ckfbot ckfbot added backport track/2.16 Backport to track/2.16 backport track/2.15 Backport to track/2.15 backport track/2.5 Backport to track/2.5 labels Jun 18, 2026
@ckfbot

ckfbot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

🤖 Backport labels populated

Labels to this pull request were added automatically by the populate-labels.yaml action.

When the PR is merged, backport PRs according to the labels will be automatically created. To skip the backport creation, remove any unneeded labels before merging the PR.

@NohaIhab NohaIhab left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you @mvlassis, I left some comments/questions

Comment thread .github/workflows/ci.yaml Outdated
Comment thread charms/kfp-profile-controller/src/charm.py Outdated
Comment thread charms/kfp-profile-controller/tests/integration/test_charm_s3.py
Comment thread charms/kfp-profile-controller/src/charm.py Outdated
Comment thread charms/kfp-profile-controller/metadata.yaml
Comment thread charms/kfp-profile-controller/src/charm.py
Comment thread charms/kfp-profile-controller/src/charm.py
Comment thread charms/kfp-profile-controller/tests/unit/test_operator.py
Comment thread charms/kfp-profile-controller/tests/unit/test_operator.py
Comment thread charms/kfp-profile-controller/tests/unit/test_operator.py
Comment thread charms/kfp-profile-controller/tests/unit/test_operator.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 14 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

charms/kfp-profile-controller/tests/integration/test_charm_object_storage.py:487

  • Application.remove_relation() expects fully-qualified relation endpoints (e.g., app:endpoint). Passing just "object-storage" is inconsistent with the earlier call in this file and is likely to error at runtime. Use the explicit app endpoint for the charm side.

Comment thread charms/kfp-profile-controller/tests/unit/test_operator.py
Comment thread charms/kfp-profile-controller/tests/unit/test_operator.py
mvlassis and others added 6 commits June 30, 2026 09:45
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Manos Vlassis <57320708+mvlassis@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Manos Vlassis <57320708+mvlassis@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 16 changed files in this pull request and generated 4 comments.

Comment thread charms/kfp-profile-controller/files/upstream/sync.py Outdated
Comment thread charms/kfp-profile-controller/src/components/object_storage_validator.py Outdated
Comment thread charms/kfp-profile-controller/src/charm.py
mvlassis and others added 5 commits June 30, 2026 14:46
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Manos Vlassis <57320708+mvlassis@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Manos Vlassis <57320708+mvlassis@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Manos Vlassis <57320708+mvlassis@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Manos Vlassis <57320708+mvlassis@users.noreply.github.com>

@NohaIhab NohaIhab left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you @mvlassis, just a Q on the secure field

Comment thread charms/kfp-profile-controller/src/components/object_storage_validator.py Outdated
Comment thread charms/kfp-profile-controller/src/components/object_storage_validator.py Outdated

@NohaIhab NohaIhab left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks @mvlassis

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.

Add s3 interface to kfp-profile-controller to relate with s3-integrator

6 participants