Openstack
OpenStack for swamp, through the official openstack CLI.
Sixteen model types cover the compute, storage, network and identity primitives of a project: servers (create with NICs, ports, block devices and config drive; update, start/stop/reboot, attach/detach interfaces, delete), images (upload, find newest, update, delete), keypairs, server groups, volumes (create, extend, attach/detach, delete), volume snapshots, security groups with inline rules, networks, subnets, routers (gateway, subnet interfaces, static routes), ports (fixed IPs, allowed addresses), floating IPs (allocate, bind to server or port, unbind, release), application credentials (create with one-time secret, delete), and read-only lookups for flavors, availability zones and volume types. Every list fans out show so stored resources are always the full object, and every mutating method re-reads and stores the result.
Transport is python-openstackclient (10.x) reading -f json; the CLI handles Keystone auth types, the service catalog and microversions. Authenticate with a named clouds.yaml cloud or an application credential from a vault (env overrides, secret redacted from errors). Creates reuse an existing resource of the same name; deletes are no-ops when already gone.
| Argument | Type | Description |
|---|---|---|
| name? | string | Regex filter on server name |
| status? | string | Filter on status, e.g. ACTIVE |
| Argument | Type | Description |
|---|---|---|
| name | string | Server name; reused if it already exists |
| flavor | string | Flavor name or ID |
| image? | string | Boot image name or ID |
| volume? | string | Boot volume name or ID |
| bootFromVolume? | number | Create a boot volume of this many GB from the image |
| networks? | array | Networks (name or ID) to attach a NIC to, in order |
| ports? | array | Pre-created ports (name or ID) to attach, in order |
| nics? | array | NICs with fixed addresses; network or port names are resolved to ids |
| blockDevices? | array | Block device mappings beyond the boot disk |
| configDrive? | boolean | Force (true) or forbid (false) a config drive; cloud default when omitted |
| hints? | record | Scheduler hints, e.g. different_host=<id> |
| keyName? | string | Keypair name to inject |
| securityGroups? | array | |
| userData? | string | cloud-init user data, passed to the CLI through a private temp file; empty means none |
| availabilityZone? | string | |
| serverGroup? | string | Server group name or ID |
| properties? | record | |
| tags? | array | |
| description? | string | |
| wait | boolean | Wait for the build to finish |
| Argument | Type | Description |
|---|---|---|
| name? | string | New name |
| description? | string | |
| properties? | record | Properties to set (others are left alone) |
| removeProperties? | array |
| Argument | Type | Description |
|---|---|---|
| force | boolean | |
| wait | boolean |
| Argument | Type | Description |
|---|---|---|
| network? | string | Attach a new NIC on this network (name or ID) |
| port? | string | Attach this existing port (name or ID) |
| tag? | string |
| Argument | Type | Description |
|---|---|---|
| network? | string | Detach every NIC on this network (name or ID) |
| port? | string | Detach this port (name or ID) |
| Argument | Type | Description |
|---|---|---|
| hard | boolean | |
| wait | boolean |
Resources
| Argument | Type | Description |
|---|---|---|
| name? | string | Exact name filter |
| visibility? | enum | Limit to one visibility, or all |
| status? | string |
| Argument | Type | Description |
|---|---|---|
| name | string | Image name; reused if it already exists |
| file | string | Local image file to upload; relative paths resolve against the repository |
| containerFormat | string | |
| minDiskGb? | number | |
| minRamMb? | number | |
| protected? | boolean | |
| properties? | record | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| name? | string | Exact name (server-side filter) |
| nameRegex? | string | Regular expression on the name (client-side) |
| tags? | array | Every tag must be present |
| properties? | record | Property values that must match, e.g. os_distro=debian |
| visibility? | enum | |
| status | string |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| minDiskGb? | number | |
| minRamMb? | number | |
| protected? | boolean | |
| properties? | record | |
| tags? | array |
Resources
| Argument | Type | Description |
|---|---|---|
| publicKey? | string | OpenSSH public key line to import; omit to have Nova generate an ed25519 key |
| type? | enum |
Resources
| Argument | Type | Description |
|---|---|---|
| name | string | Group name; an existing group is reused |
| policy | enum | |
| maxServerPerHost? | number | Rule for anti-affinity: how many members may share a host |
Resources
| Argument | Type | Description |
|---|---|---|
| all | boolean | Include private flavors the project can see |
| minRamMb? | number | |
| minDiskGb? | number |
| Argument | Type | Description |
|---|---|---|
| flavor | string | Flavor name or ID |
Resources
| Argument | Type | Description |
|---|---|---|
| service | enum |
Resources
| Argument | Type | Description |
|---|---|---|
| name? | string | Exact name filter |
| status? | string |
| Argument | Type | Description |
|---|---|---|
| name | string | Volume name; an existing volume is reused |
| sizeGb? | number | Size in GB; required unless cloning a snapshot or volume |
| type? | string | Volume type |
| image? | string | Populate from this image (name or ID) |
| snapshot? | string | Populate from this snapshot |
| source? | string | Clone this volume |
| description? | string | |
| availabilityZone? | string | |
| bootable? | boolean | |
| properties? | record | |
| wait | boolean | Wait until the volume is available |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| description? | string | |
| sizeGb? | number | Extend to this size |
| bootable? | boolean | |
| properties? | record |
| Argument | Type | Description |
|---|---|---|
| force | boolean | Delete regardless of state |
| wait | boolean |
| Argument | Type | Description |
|---|---|---|
| server | string | Server name or ID |
| device? | string | Device name inside the server |
| deleteOnTermination? | boolean |
| Argument | Type | Description |
|---|---|---|
| server | string | Server name or ID |
Resources
| Argument | Type | Description |
|---|---|---|
| volumeType | string | Volume type name or ID |
Resources
| Argument | Type | Description |
|---|---|---|
| volume? | string | Only snapshots of this volume (name or ID) |
| name? | string | Exact name filter |
| status? | string |
| Argument | Type | Description |
|---|---|---|
| name | string | Snapshot name; an existing snapshot is reused |
| volume | string | Volume to snapshot (name or ID) |
| description? | string | |
| force | boolean | Allow snapshotting an attached volume |
| properties? | record | |
| wait | boolean |
| Argument | Type | Description |
|---|---|---|
| wait | boolean |
Resources
| Argument | Type | Description |
|---|---|---|
| name? | string | Keep only groups with exactly this name |
| Argument | Type | Description |
|---|---|---|
| name | string | Group name; an existing group is reused |
| description? | string | |
| stateless | boolean | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| description? | string |
| Argument | Type | Description |
|---|---|---|
| direction | enum | |
| protocol? | string | tcp, udp, icmp, ... default any |
| portRange? | string | Destination port or range, e.g. 22 or 137:139 |
| remoteIp? | string | Remote CIDR, default 0.0.0.0/0 or ::/0 |
| remoteGroup? | string | Remote security group (name or ID) |
| ethertype? | enum | |
| icmpType? | number | |
| icmpCode? | number | |
| description? | string |
| Argument | Type | Description |
|---|---|---|
| rule | string | Rule ID |
Resources
| Argument | Type | Description |
|---|---|---|
| name? | string | Exact name filter |
| external? | boolean | true: only external networks; false: only internal |
| status? | string |
| Argument | Type | Description |
|---|---|---|
| name | string | Network name; an existing network is reused |
| description? | string | |
| shared? | boolean | |
| portSecurity? | boolean | Default port security for ports on it |
| mtu? | number | |
| dnsDomain? | string | |
| availabilityZoneHints? | array | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| description? | string | |
| shared? | boolean | |
| portSecurity? | boolean | |
| mtu? | number | |
| dnsDomain? | string |
Resources
| Argument | Type | Description |
|---|---|---|
| network? | string | Only subnets of this network (name or ID) |
| name? | string | Exact name filter |
| ipVersion? | union |
| Argument | Type | Description |
|---|---|---|
| name | string | Subnet name; an existing subnet is reused |
| network | string | Parent network (name or ID) |
| cidr | string | Subnet range, e.g. 192.0.2.0/24 |
| ipVersion | union | |
| gateway? | string | Gateway address, or "none" for no gateway (default: first address) |
| dhcp | boolean | |
| dnsNameservers? | array | |
| allocationPools? | array | |
| hostRoutes? | array | |
| description? | string | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| description? | string | |
| gateway? | string | New gateway address or "none" |
| dhcp? | boolean | |
| dnsNameservers? | array | Replaces the current list |
| allocationPools? | array | Replaces the current pools |
| hostRoutes? | array | Replaces the current routes |
Resources
| Argument | Type | Description |
|---|---|---|
| name? | string | Exact name filter |
| Argument | Type | Description |
|---|---|---|
| name | string | Router name; an existing router is reused |
| externalGateway? | string | External network (name or ID) to use as gateway |
| snat? | boolean | Source NAT on the gateway (cloud default when omitted) |
| description? | string | |
| availabilityZoneHints? | array | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| description? | string | |
| externalGateway? | string | Set the gateway network (name or ID) |
| clearExternalGateway | boolean | |
| snat? | boolean |
| Argument | Type | Description |
|---|---|---|
| subnet | string | Subnet name or ID |
| Argument | Type | Description |
|---|---|---|
| subnet | string | Subnet name or ID |
Resources
| Argument | Type | Description |
|---|---|---|
| network? | string | Only ports on this network (name or ID) |
| server? | string | Only ports of this server (name or ID) |
| device? | string | Only ports owned by this device ID |
| name? | string | Exact name filter |
| status? | enum |
| Argument | Type | Description |
|---|---|---|
| name | string | Port name; an existing port of the same name is reused |
| network | string | Network (name or ID) |
| fixedIps? | array | Requested addresses; omit for DHCP-style allocation |
| securityGroups? | array | Empty list means no security group |
| portSecurity? | boolean | |
| allowedAddresses? | array | |
| description? | string | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| name? | string | |
| description? | string | |
| securityGroups? | array | Replaces the current groups; empty clears them |
| allowedAddresses? | array | Replaces the current pairs; empty clears them |
| portSecurity? | boolean | |
| fixedIps? | array | Replaces the current fixed IPs |
Resources
| Argument | Type | Description |
|---|---|---|
| network? | string | Only IPs from this floating network (name or ID) |
| status? | enum |
| Argument | Type | Description |
|---|---|---|
| network | string | External network to allocate from (name or ID) |
| description? | string | Description; when set, an existing IP on the network with the same description is reused |
| address? | string | Request a specific address; reused if already allocated |
| subnet? | string | |
| tags? | array |
| Argument | Type | Description |
|---|---|---|
| server? | string | Server (name or ID) whose first port receives the IP |
| port? | string | Port (name or ID) to associate directly, e.g. a load balancer VIP |
| fixedIpAddress? | string | Which fixed IP on the server or port to map |
| Argument | Type | Description |
|---|---|---|
| server? | string | Server (name or ID) to remove it from; omit to disassociate whatever port holds it |
Resources
| Argument | Type | Description |
|---|---|---|
| name | string | Credential name; an existing one of the same name is reused (its secret is not recoverable) |
| roles? | array | Roles to grant; default is every role the user holds on the project |
| description? | string | |
| expiration? | string | ISO-8601 expiry, e.g. 2027-01-01T00:00:00 |
| unrestricted | boolean |
Resources
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned