Skip to content
Development
Skill

/glance

OpenStack Glance image service skill for deploying, configuring, operating, and troubleshooting the VM image registry. Covers image upload/download, format management (qcow2, raw, vmdk, vhd, iso), backend storage selection (file, swift, ceph), image import methods (web-download,

From plugin
gsd-skill-creator
71102 skills61 agents26 commands1 MCP

Claude Code

$ npx -y skills add Tibsfox/gsd-skill-creator --skill glance --agent claude-code

SKILL.md

glance.SKILL.md
name: openstack-glance
description: "OpenStack Glance image service skill for deploying, configuring, operating, and troubleshooting the VM image registry. Covers image upload/download, format management (qcow2, raw, vmdk, vhd, iso), backend storage selection (file, swift, ceph), image import methods (web-download, glance-direct, copy-image), metadata management, property protections, image sharing between projects, snapshot lifecycle, image caching, and storage usage monitoring. Use when deploying Glance via Kolla-Ansible, managing VM images, converting image formats, or troubleshooting image upload failures."
user-invocable: true
allowed-tools: Read Grep Glob
metadata:
  extensions:
    gsd-skill-creator:
      version: 1
      createdAt: "2026-02-22"
      triggers:
        intents:
          - "glance"
          - "image"
          - "snapshot"
          - "image format"
          - "qcow2"
          - "raw"
          - "image import"
          - "image registry"
        contexts:
          - "deploying openstack images"
          - "managing vm images"
          - "troubleshooting image service"
          - "converting image formats"

OpenStack Glance Image Service

Glance is the image catalog and delivery service for OpenStack. It stores, discovers, and serves virtual machine images that Nova uses to boot instances. Glance handles image metadata, format validation, access control, and backend storage abstraction -- it does not care where images are physically stored, only that they are retrievable.

Supported image formats: **qcow2** (default, copy-on-write, thin provisioning), **raw** (direct disk image, fastest I/O), **vmdk** (VMware), **vhd/vhdx** (Hyper-V), **iso** (CD/DVD). Backend storage options: **file** (local filesystem, simplest), **swift** (OpenStack object storage), **ceph** (distributed storage via RBD), **cinder** (block storage as image backend).

Deploy

Kolla-Ansible Configuration

**globals.yml settings:**

# Backend storage (choose one)
glance_backend_file: "yes"              # Local filesystem (single-node, simplest)
# glance_backend_ceph: "yes"           # Ceph RBD (multi-node, production)
# glance_backend_swift: "yes"          # Swift object storage

# File backend data directory
# glance_file_datadir: "/var/lib/glance/images"  # Default location

# Database and auth
glance_database_password: "{{ vault_glance_database_password }}"
glance_keystone_password: "{{ vault_glance_keystone_password }}"

# Image size limit (bytes, 0 = unlimited)
# glance_image_size_cap: 0

# Enable image import (web-download, glance-direct)
# enable_glance_image_import: "yes"

**Deployment:**

# Deploy Glance
kolla-ansible -i inventory deploy --tags glance

# Verify containers
docker ps --filter "name=glance" --format "table {{.Names}}\t{{.Status}}"
# Expected: glance_api (Up)

**Post-deploy verification:**

source /etc/kolla/admin-openrc.sh

# Verify Glance service in catalog
openstack service list | grep image
openstack endpoint list --service glance

# Test image upload with CirrOS (minimal test image)
wget http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img
openstack image create --file cirros-0.6.2-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --public cirros
openstack image list
openstack image show cirros

Image Import Task Setup

For web-download and glance-direct import methods:

# glance-api.conf [DEFAULT]
enabled_import_methods = [glance-direct, web-download, copy-image]

# glance-api.conf [task]
task_executor = taskflow
work_dir = /var/lib/glance/tasks_work_dir

Configure

Backend Storage Selection

| Backend | Use Case | Pros | Cons | |---------|----------|------|------| | **file** | Single-node, lab, development | Simplest, no dependencies | No HA, limited by local disk | | **swift** | Multi-node with Swift deployed | Native OpenStack, scalable | Requires Swift deployment | | **ceph** | Multi-node production | High availability, consistent performance | Requires Ceph cluster | | **cinder** | Boot-from-volume workflows | Leverages existing block storage | Higher latency for image serving |

Image Format Policies

# glance-api.conf [image_format]
disk_formats = qcow2,raw,iso          # Restrict accepted formats
container_formats = bare,docker        # Restrict container formats
default_disk_format = qcow2

Image Size Limits

# glance-api.conf [DEFAULT]
image_size_cap = 13743895347           # ~12.8 GB max image size

# Per-user quota (via Keystone project quotas)
# Managed through Oslo quotas framework

Image Caching

Glance cache stores frequently requested images locally on the API node for faster serving:

# glance-api.conf [DEFAULT]
image_cache_max_size = 10737418240     # 10 GB cache
image_cache_stall_time = 86400         # Stale after 24h
image_cache_dir = /var/lib/glance/image-cache

# Cache management
# glance-cache-manage list-cached
# glance-cache-manage list-queued
# glance-cache-manage delete-all-cached-images

Metadata Definitions

Glance supports structured metadata namespaces for organizing image properties:

# List metadata namespaces
openstack image metadata namespace list

# Create custom metadata
openstack image set --property os_type=linux \
  --property os_distro=ubuntu \
  --property os_version=22.04 \
  my-image

Property Protections

Control which users can read/write specific image properties:

# property-protections.conf
[x_billing_code]
create = role:admin
read = role:admin,role:member
update = role:admin
delete = role:admin

Image Import Methods

# Web-download: import from URL (Glance downloads it)
glance image-create-via-import --name web-image \
  --disk-format qcow2 --container-format bare \
  --import-method web-download \
  --uri http://example.com/image.qcow2

# Glance-direct: stage then import (client uploads data)
glance image-create-via-i
Read more
@tibsfox
Ships withgsd-skill-creator

An adaptive learning and coprocessor architecture for Claude Code, built as an extension to GSD (open-gsd)

71102 skills61 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
71
Star history of Tibsfox/gsd-skill-creator on GitHub, a chart by star-history.com

Other skills on gsd-skill-creator.

aminet-index

aminet-index

Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when…

aminet-mirror

aminet-mirror

Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about glance.

Which coding agents can use glance?
glance installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.