Developers

Manage your infrastructure as code

Automate your infrastructure with the REST API, OpenStack-compatible tools, and Terraform.

Example · Terraform
provider "openstack" {
  cloud = "ict-cloud-core"  # entry in clouds.yaml, no secret in code or state
}

resource "openstack_networking_network_v2" "app" {
  name = "app-net"
}

resource "openstack_networking_subnet_v2" "app" {
  network_id = openstack_networking_network_v2.app.id
  cidr       = "10.10.2.0/24"
}

Where to start

Concepts to know first

Scope model

Resources live in a tenant → subscription → project → region hierarchy. API paths carry the scope: /scopes/{scopeId}/{service}/…

Authentication

Use service accounts and scoped API tokens for automation. Revoked tokens fail with 401 immediately.

Idempotency

Send an Idempotency-Key with every write. A retried request returns the original result instead of creating a duplicate.

Pagination

List operations return { data, meta } and take page and pageSize query parameters.

The same task, three ways

curl -X POST \
  "https://{console-host}/api/v1/scopes/$SCOPE/compute/instances" \
  -H "Authorization: Bearer $PC_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "web", "count": 3, "region": "ist-1",
       "flavorId": "{flavor-id}", "imageId": "{image-id}",
       "keyPairs": ["deploy-key"]}'

Values in braces are placeholders. Real endpoints will be published on the docs site.

Running your own Kubernetes? Configure the OpenStack Cloud Controller Manager and Cinder CSI with a service-account credential. OpenStack API Access

Start building on ICT Cloud.

Creating an account is free. Resources are billed per second, with a 60-second minimum.

Your privacy

We use strictly necessary cookies to run this site. With your consent we would also use analytics cookies to improve it. This prototype sets none.