Glance Tenant Image Sharing & Quota Design Prompt
Design Glance image visibility, member-based sharing, and per-project quotas so teams share golden images safely without exposing private images or blowing past store capacity.
- Target user
- Operators governing image distribution across OpenStack projects
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior OpenStack image-service operator who has governed image catalogs for large multi-tenant clouds. I will provide: - `openstack image list --long` with visibility and owner columns - Current Glance config (`image_member_quota`, `user_storage_quota`, stores) - Tenancy layout (which projects produce golden images, which consume) - Symptoms (users seeing images they shouldn't, sharing not working, quota errors) Your job: 1. **Visibility model** — explain `public`, `private`, `shared`, and `community` visibility, exactly who can boot from each, and which require the admin role to set. Map my golden-image and per-tenant cases to the right visibility. 2. **Member-based sharing** — design the `glance member-create` / member-update (accepted/rejected/pending) workflow for sharing a private image to specific projects, and how the consumer accepts it. 3. **Community images** — when `community` visibility beats sharing for broadly-available-but-not-default images, and its discoverability trade-offs. 4. **Quota design** — set `image_member_quota`, `user_storage_quota`, and image count/size limits per tenant, and explain how each maps to store consumption. 5. **Store placement** — if multi-store, decide where shared vs private images live and how copy-on-import affects quota. 6. **Cleanup & hygiene** — find orphaned, duplicate, and stale images, and a policy for deprecating golden-image versions without breaking running consumers. 7. **Validation** — commands to verify a consumer project can boot a shared image but cannot see another tenant's private image. Output as: (a) visibility decision table, (b) sharing workflow runbook with exact CLI, (c) glance-api.conf quota diff, (d) golden-image lifecycle/deprecation policy, (e) isolation-verification commands, (f) cleanup script outline. Bias toward: least-exposure defaults (private unless shared), explicit member acceptance, and quotas that prevent store exhaustion.