Skip to content

upcoming: [UIE-10729] — Parity between image options in Rebuild Linode dialog with privateImageSharing flag on & off#13568

Merged
dwiley-akamai merged 5 commits intolinode:developfrom
dwiley-akamai:UIE-10729-rebuild-with-public-images
Apr 10, 2026
Merged

upcoming: [UIE-10729] — Parity between image options in Rebuild Linode dialog with privateImageSharing flag on & off#13568
dwiley-akamai merged 5 commits intolinode:developfrom
dwiley-akamai:UIE-10729-rebuild-with-public-images

Conversation

@dwiley-akamai
Copy link
Copy Markdown
Contributor

@dwiley-akamai dwiley-akamai commented Apr 8, 2026

Description 📝

Ensure public images are included in the ImageSelectTable

Changes 🔄

Remove the properties in the filter that were causing public images to be excluded.

Scope 🚢

Upon production release, changes in this PR will be visible to:

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Target release date 🗓️

TBD

How to test 🧪

Prerequisites

Toggle the Private Image Sharing flag ON in the CM DevTool.

Reproduction steps

With the flag OFF, observe that public images such as Arch Linux are options in the Image dropdown of the Rebuild Linode dialog.

With the flag ON, observe that the table only has private images as options.

Verification steps

With the flag ON, there should be parity now with the options available on this branch locally compared to prod or DevCloud.

One way to do this is to check the images network request's results count in prod or DevCloud, and confirm the number of items in the ImageSelectTable matches that count.

To confirm the StackScript-based filtering is working when you try to rebuild from a StackScript, it would be easiest to choose or create a StackScript that is compatible with only one image. When you choose that StackScript, you should see just the expected image in the table.

Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@dwiley-akamai dwiley-akamai self-assigned this Apr 8, 2026
@dwiley-akamai dwiley-akamai added the Private Image Sharing Related to Private Image Sharing feature label Apr 8, 2026
{
...combinedFilter,
is_public: false,
type: 'manual',
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think this is sufficient to achieve parity because looking at its ImageSelect counterpart, the variant is "all" so there's no filtering in useAllImagesQuery():

<ImageSelect
disabled={props.disabled}
errorText={fieldState.error?.message}
filter={getImageSelectFilter(stackscript)}
label="Image"
loading={isLoading}
noMarginTop
onChange={(value) => field.onChange(value?.id ?? null)}
value={field.value ?? null}
variant="all"
/>

and the StackScript-based filtering is applied a few lines down.

@dwiley-akamai dwiley-akamai marked this pull request as ready for review April 8, 2026 18:24
@dwiley-akamai dwiley-akamai requested a review from a team as a code owner April 8, 2026 18:24
Copy link
Copy Markdown
Contributor

@fabrice-akamai fabrice-akamai left a comment

Choose a reason for hiding this comment

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

Confirmed parity when PIS flag is on vs off in Rebuild Linode ✅

error: imagesError,
isFetching,
isLoading,
} = useAllImagesQuery(
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

As follow up work, could we make this new table use proper API pagination?

The API supports X-Filtering the Images endpoint on label, tags, and region so I think it would be possible. It could pay dividends in the future for accounts with tons of images.

Image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I created UIE-10836

@github-project-automation github-project-automation Bot moved this from Review to Approved in Cloud Manager Apr 9, 2026
@linode-gh-bot
Copy link
Copy Markdown

Cloud Manager UI test results

🔺 2 failing tests on test run #6 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
2 Failing900 Passing11 Skipped43m 5s

Details

Failing Tests
SpecTest
one-click-apps.spec.tsCloud Manager Cypress Tests→OneClick Apps (OCA) » Can view app details of a marketplace app
object-storage.e2e.spec.tsCloud Manager Cypress Tests→object storage end-to-end tests » can update bucket access

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/oneClickApps/one-click-apps.spec.ts,cypress/e2e/core/objectStorage/object-storage.e2e.spec.ts"

@dwiley-akamai dwiley-akamai merged commit 1b992c1 into linode:develop Apr 10, 2026
33 of 35 checks passed
@github-project-automation github-project-automation Bot moved this from Approved to Merged in Cloud Manager Apr 10, 2026
@dwiley-akamai dwiley-akamai deleted the UIE-10729-rebuild-with-public-images branch April 10, 2026 17:23
grevanak-akamai pushed a commit that referenced this pull request Apr 23, 2026
…e dialog with privateImageSharing flag on & off (#13568)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Private Image Sharing Related to Private Image Sharing feature

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants