aminet-browser
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching,…
OpenStack Nova compute service skill for deploying, configuring, operating, and troubleshooting cloud compute infrastructure. Covers instance lifecycle management (create/stop/start/reboot/resize/migrate/evacuate), compute scheduling with filters and weights, flavor management,
$ npx -y skills add Tibsfox/gsd-skill-creator --skill nova --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/novaContext preview
The summary Claude sees to decide when to auto-load this skill.
OpenStack Nova compute service skill for deploying, configuring, operating, and troubleshooting cloud compute infrastructure. Covers instance lifecycle management (create/stop/start/reboot/resize/migrate/evacuate), compute scheduling with filters and weights, flavor management,
name: openstack-nova
description: "OpenStack Nova compute service skill for deploying, configuring, operating, and troubleshooting cloud compute infrastructure. Covers instance lifecycle management (create/stop/start/reboot/resize/migrate/evacuate), compute scheduling with filters and weights, flavor management, live migration procedures, hypervisor management (KVM/QEMU via libvirt), placement service for resource tracking, CPU pinning, NUMA topology, huge pages, cell mapping, VNC/SPICE console access, and capacity planning. Use when deploying compute via Kolla-Ansible, managing instances, debugging scheduler failures, or planning compute capacity."
user-invocable: true
allowed-tools: Read Grep Glob
metadata:
extensions:
gsd-skill-creator:
version: 1
createdAt: "2026-02-22"
triggers:
intents:
- "nova"
- "compute"
- "instance"
- "server"
- "flavor"
- "live migration"
- "hypervisor"
- "placement"
- "scheduler"
contexts:
- "deploying openstack compute"
- "managing instances"
- "troubleshooting compute"
- "capacity planning"Nova is the compute scheduler and instance lifecycle manager for OpenStack. It receives instance creation requests, selects an appropriate hypervisor through the scheduler and placement service, coordinates with Glance for images, Neutron for networking, and Cinder for volumes, then manages the full instance lifecycle through libvirt/KVM.
Nova operates in a cell-based architecture. Cell0 holds instances that failed to schedule. Cell1 (and beyond) holds running instances. The placement service tracks resource inventories (vCPUs, RAM, disk) independently from Nova, providing accurate capacity data for scheduling decisions.
**globals.yml settings:**
# Hypervisor type
nova_compute_virt_type: "kvm" # Production: hardware KVM
# nova_compute_virt_type: "qemu" # Nested virt or no VT-x/AMD-V
# Libvirt container
enable_nova_libvirt_container: "yes"
# CPU and RAM allocation ratios
nova_cpu_allocation_ratio: 4.0 # 4:1 vCPU to pCPU (adjust for workload)
nova_ram_allocation_ratio: 1.5 # 1.5:1 vRAM to pRAM
nova_disk_allocation_ratio: 1.0 # 1:1 (do not overcommit disk)
# Console access
nova_console: "novnc" # Options: novnc, spice
# nova_console: "spice" # Better performance, less browser support
# Metadata service
enable_nova_metadata: "yes"
# Nova database password
nova_database_password: "{{ vault_nova_database_password }}"
nova_api_database_password: "{{ vault_nova_api_database_password }}"
nova_keystone_password: "{{ vault_nova_keystone_password }}"**Deployment:**
# Deploy Nova (as part of full deploy or targeted)
kolla-ansible -i inventory deploy --tags nova
# Verify containers
docker ps --filter "name=nova" --format "table {{.Names}}\t{{.Status}}"
# Expected: nova_api, nova_conductor, nova_scheduler, nova_novncproxy,
# nova_compute, nova_libvirt (all Up)**Post-deploy verification:**
source /etc/kolla/admin-openrc.sh # Verify compute service registration openstack compute service list # All services should show Status=enabled, State=up # Verify cell mapping nova-manage cell_v2 list_cells # Expected: cell0 and cell1 with transport_url and database # Verify hypervisor openstack hypervisor list # Should show each compute node with vCPUs, Memory, Disk # Verify placement openstack resource provider list # Should match hypervisor list
Flavors define instance resource profiles. Create a standard set:
# Standard flavors (name, RAM-MB, disk-GB, vCPUs) openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.tiny openstack flavor create --ram 2048 --disk 20 --vcpus 1 m1.small openstack flavor create --ram 4096 --disk 40 --vcpus 2 m1.medium openstack flavor create --ram 8192 --disk 80 --vcpus 4 m1.large openstack flavor create --ram 16384 --disk 160 --vcpus 8 m1.xlarge # Private flavor (restricted to specific project) openstack flavor create --ram 32768 --disk 320 --vcpus 16 \ --private m1.xxlarge openstack flavor set --project dev-team m1.xxlarge
# nova.conf [DEFAULT] on compute nodes
vcpu_pin_set = 4-15 # Pin guest vCPUs to physical cores 4-15
# Reserve cores 0-3 for host OS
# NUMA topology filter
[filter_scheduler]
enabled_filters = ...,NUMATopologyFilter**Flavor extra specs for NUMA:**
openstack flavor set m1.large \ --property hw:cpu_policy=dedicated \ --property hw:numa_nodes=1
# On compute host: allocate huge pages echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages # Flavor with huge pages openstack flavor set m1.large \ --property hw:mem_page_size=large
# globals.yml nova_compute_virt_type: "kvm" enable_nova_libvirt_container: "yes" # For live migration, all compute nodes need: # 1. Shared storage (NFS, Ceph) or block migration # 2. Same CPU model (or cpu_mode=host-model) # 3. Matching libvirt versions
# nova.conf [libvirt] live_migration_tunnelled = false # Use native QEMU migration live_migration_uri = qemu+tcp://%s/system cpu_mode = host-model # Consistent CPU features across hosts
# nova.conf [filter_scheduler] enabled_filters = AvailabilityZoneFilter,ComputeFilter, ComputeCapabilitiesFilter,ImagePropertiesFilter, ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter, AggregateInstanceExtraSpecsFilter,NUMATopologyFilter # Weight classes determine host preference after filtering weight_classes = nova.scheduler.weights.ram.RAMWeigher ram_weight_multiplier = 1.0 # Prefer h
An adaptive learning and coprocessor architecture for Claude Code, built as an extension to GSD (open-gsd)
Repo: Tibsfox/gsd-skill-creator
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching,…
FS-UAE emulator configuration and launch: hardware profiles, ROM management, WHDLoad integration, config generation, and state snapshots. Use when configuring…
Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when managing INDEX data, checking…
Aminet package installation: LhA/LZX extraction, Amiga filesystem mapping, dependency detection, install tracking, and scan gate enforcement. Use when…
Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync detection. Use when…
Multi-layer virus scanning for Aminet packages. Signature-based detection, heuristic hunk analysis, boot block scanning, quarantine management, and scan…