Reference
APIs and tools¶
The OpenStack APIs behind Breqwatr Cloud, and the tools this site uses to drive them.
Everything you do in the Breqwatr Cloud Portal (Strata), the OpenStack CLI, OpenTofu or Ansible goes through the same APIs, so a resource made with one tool can be read and changed with another.
APIs¶
Each API has a type in the service catalogue. Its endpoint for each region is in the catalogue, as in Regions and endpoints.
| Service | Type in the catalogue | Covers | OpenStack CLI commands |
|---|---|---|---|
| Identity | identity |
Signing in, application credentials | openstack application credential, openstack token issue |
| Compute | compute |
Instances, flavours, key pairs | openstack server, openstack flavor, openstack keypair |
| Block storage | volumev3 |
Volumes, volume snapshots and backups | openstack volume |
| Image | image |
Images | openstack image |
| Networking | network |
Networks, routers, security groups, floating IPs | openstack network, openstack router, openstack security group, openstack floating ip |
| Load balancing | load-balancer |
Load balancers, listeners, pools, health monitors | openstack loadbalancer (with python-octaviaclient) |
| Kubernetes (BKS) | container-infra |
BKS clusters | openstack coe cluster (with python-magnumclient) |
To see which versions of an API are current:
Tools¶
| Tool | What it is | Install | Version this site uses |
|---|---|---|---|
| OpenStack CLI | The openstack command, with plugins for load balancing and BKS |
pip install python-openstackclient python-octaviaclient python-magnumclient, as in Install the OpenStack CLI |
The current release |
| OpenTofu | Infrastructure as code: the tofu command |
As in Launch your first instances | OpenTofu 1.13.1 |
| OpenStack provider for OpenTofu | The resources and data sources for Breqwatr Cloud | terraform-provider-openstack/openstack, version ~> 3.4, which tofu init installs |
3.4.0 |
| Ansible | Configuration and provisioning playbooks | pip install ansible pywinrm, as in Configuration with Ansible |
Ansible 14.5.0 (ansible-core 2.21.5), on Python 3.14 |
openstack.cloud collection |
Ansible's modules and inventory for OpenStack | Included in the ansible package |
2.6.0 |
Ansible doesn't yet run on Python 3.15, which is why the OpenStack CLI's environment uses Python 3.14.
Signing in¶
Every tool signs in with an application credential, from the same clouds.yaml:
| Tool | Chooses the clouds.yaml entry with |
|---|---|
| OpenStack CLI | --os-cloud <cloud-name> |
| OpenTofu | OS_CLOUD=<cloud-name> |
| Ansible | cloud: in a task, or only_clouds in the inventory |
Related¶
- Application credentials and clouds.yaml: create a credential and the file every tool reads.
- GUI, API and infrastructure as code: when to reach for each tool.
- OpenTofu fundamentals: the provider, state and modules.
- OpenStack CLI documentation: every command and option.
- OpenStack provider documentation: every resource and data source.