Skip to content

Conversation

@ezilber-akamai
Copy link
Contributor

@ezilber-akamai ezilber-akamai commented Dec 22, 2025

📝 Description

Added support for Private Image Sharing features.

TODO: Point at new Python SDK version once released.

NOTES:

  • While label is an updatable field for Image Share Groups, it must serve as the unique identifier in the Ansible module and thus cannot be updatable.
  • The same is true for Image Share Group Tokens, as valid_for_sharegroup_uuid is not a unique field since a user can create multiple tokens for the same Image Share Group. Since label is the only updatable field for this resource in the API and it must serve as the unique identifier for the Ansible module, no fields are mutable in Ansible for this module.
  • The same is also true for Image Share Group Members, as label is the only updatable field but is also the identifying field.

✔️ How to Test

The following steps assume that you have pulled down this PR locally and ran make install. You must also run the following command: export TEST_API_VERSION=v4beta

Several tests for this feature require multiple accounts. In order for these tests to not be skipped, set LINODE_PRODUCER_API_TOKEN and LINODE_CONSUMER_API_TOKEN in your environment to two different accounts.

Integration Tests

  • make test-int TEST_SUITE="image_share_group_basic"
  • make test-int TEST_SUITE="image_share_group_info"
  • make test-int TEST_SUITE="image_share_group_list"
  • make test-int TEST_SUITE="image_share_group_token"
  • make test-int TEST_SUITE="image_share_group_token_info"
  • make test-int TEST_SUITE="image_share_group_token_list"
  • make test-int TEST_SUITE="image_share_group_member"
  • make test-int TEST_SUITE="image_share_group_member_info"
  • make test-int TEST_SUITE="image_share_group_member_list"
  • make test-int TEST_SUITE="image_share_group_image_list"
  • make test-int TEST_SUITE="consumer_image_share_group_info"
    • This test requires LINODE_PRODUCER_API_TOKEN and LINODE_CONSUMER_API_TOKEN to be set.
  • make test-int TEST_SUITE="consumer_image_share_group_image_list"
    • This test requires LINODE_PRODUCER_API_TOKEN and LINODE_CONSUMER_API_TOKEN to be set.

NOTE: For the token and member tests, try running them with LINODE_PRODUCER_API_TOKEN and LINODE_CONSUMER_API_TOKEN unset to verify that the tests get skipped properly.

@ezilber-akamai ezilber-akamai added do-not-merge PRs that should not be merged until the commented issue is resolved new-feature for new features in the changelog. labels Dec 22, 2025
@ezilber-akamai ezilber-akamai force-pushed the TPT-3822-private-image-sharing-features branch from e16b733 to 50809db Compare December 23, 2025 19:19
@ezilber-akamai ezilber-akamai force-pushed the TPT-3822-private-image-sharing-features branch from 50809db to bdbcebf Compare December 23, 2025 19:37
@ezilber-akamai ezilber-akamai force-pushed the TPT-3822-private-image-sharing-features branch 2 times, most recently from d8aecd7 to e7f53bd Compare December 30, 2025 20:01
@ezilber-akamai ezilber-akamai force-pushed the TPT-3822-private-image-sharing-features branch from a1239b0 to b7a8b53 Compare December 30, 2025 20:13
@ezilber-akamai ezilber-akamai marked this pull request as ready for review December 31, 2025 20:36
@ezilber-akamai ezilber-akamai requested a review from a team as a code owner December 31, 2025 20:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces comprehensive support for Private Image Sharing functionality in the Ansible Linode collection. The feature enables producers to share private images with consumers through Image Share Groups, with token-based access control and member management.

Key Changes:

  • Implements complete Image Share Group lifecycle management (create, read, update, delete)
  • Adds Image Share Group Token management for consumer authentication
  • Introduces Image Share Group Member operations for access control
  • Provides list and info modules for all new resource types
  • Includes consumer-specific modules for accessing shared resources

Reviewed changes

Copilot reviewed 56 out of 57 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
plugins/modules/image_share_group*.py (9 files) Core modules implementing Image Share Group, Token, and Member management
plugins/modules/consumer_image_share_group*.py (2 files) Consumer-facing modules for accessing shared image groups and images
plugins/module_utils/doc_fragments/*.py (13 files) Documentation fragments defining examples and response samples
docs/modules/*.md (15 files) Generated documentation for all new modules
tests/integration/targets/*/tasks/main.yaml (12 files) Integration tests covering all new functionality
tests/integration/targets/image_basic/tasks/main.yaml Updated to assert new image sharing fields
Makefile Modified to support producer/consumer API tokens in integration tests
README.md Updated with links to new module documentation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ezilber-akamai ezilber-akamai requested review from jriddle-linode and lgarber-akamai and removed request for a team December 31, 2025 20:36
@ezilber-akamai ezilber-akamai force-pushed the TPT-3822-private-image-sharing-features branch from 496c734 to 3b51389 Compare January 2, 2026 14:59
@ezilber-akamai ezilber-akamai requested a review from Copilot January 2, 2026 15:01
Copy link
Contributor

Copilot AI left a comment

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 56 out of 57 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge PRs that should not be merged until the commented issue is resolved new-feature for new features in the changelog.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant