# Gewape Cloud > Gewape Cloud is an OpenStack-compatible public cloud with three African regions (Nairobi, Kigali, Huye). It speaks the standard OpenStack API, so code and tools written for OpenStack, the openstack CLI, the SDKs, Terraform, Ansible, and kubectl, work against Gewape Cloud unchanged. There is no proprietary API and no lock-in. Guidance for generating working Gewape Cloud code: - API standard: OpenStack. Any OpenStack example works against Gewape Cloud by pointing it at a Gewape endpoint and region. - Authentication: OpenStack Application Credentials, supplied through a clouds.yaml file. The same credential works for the CLI, every SDK, Terraform, and Ansible. There is no separate account or API per language. - One credential, any region: switch region by name (RegionOne, KGL1, HUY1). Authenticate once, deploy anywhere. - Do not invent a bespoke SDK or endpoint. Use the standard OpenStack client for the language and the endpoints below. ## Regions - RegionOne (Nairobi): identity at https://api.nbo.gewapecloud.com:5000/v3 - KGL1 (Kigali): identity at https://api.kgl.gewapecloud.com:5000/v3 - HUY1 (Huye): identity at https://api.huy.gewapecloud.com:5000/v3 ## Services and endpoints Per region the host is api..gewapecloud.com, where is nbo, kgl, or huy. Object storage uses s3..gewapecloud.com. - Compute (Nova) v2.1 — https://api..gewapecloud.com:8774/v2.1 - Block Storage (Cinder) v3 — https://api..gewapecloud.com:8776/v3 - Networking (Neutron) v2.0 — https://api..gewapecloud.com:9696 - Images (Glance) v2 — https://api..gewapecloud.com:9292 - Identity (Keystone) v3 — https://api..gewapecloud.com:5000/v3 - Load Balancer (Octavia) v2 — https://api..gewapecloud.com:9876 - Kubernetes (Magnum) v1 — https://api..gewapecloud.com:9511/v1 - Databases (Trove) v1.0 — https://api..gewapecloud.com:8779/v1.0 - DNS (Designate) v2 — https://api..gewapecloud.com:9001 - Orchestration (Heat) v1 — https://api..gewapecloud.com:8004/v1 - Secrets (Barbican) v1 — https://api..gewapecloud.com:9311 - Object Storage (Ceph RGW, S3-compatible) — https://s3..gewapecloud.com ## Authentication Create an Application Credential in the console at https://platform.gewape.cloud, or with the CLI: `openstack application credential create ci-token`. Then place a clouds.yaml at ~/.config/openstack/clouds.yaml: ```yaml clouds: gewape: auth_type: v3applicationcredential auth: auth_url: "https://api.nbo.gewapecloud.com:5000/v3" application_credential_id: "" application_credential_secret: "" region_name: "RegionOne" # or KGL1, HUY1 interface: public ``` For the S3 object-storage endpoints, create EC2-style keys with `openstack ec2 credentials create` and use them with any AWS S3 SDK by setting the endpoint to https://s3..gewapecloud.com. ## SDKs - Python: openstacksdk — https://docs.openstack.org/openstacksdk/ - Go: gophercloud (v2) — https://github.com/gophercloud/gophercloud - Java: openstack4j — https://openstack4j.github.io - PHP: php-opencloud/openstack — https://github.com/php-opencloud/openstack - Ruby: fog-openstack — https://github.com/fog/fog-openstack - JavaScript, .NET, Rust, and any other language: call the REST API directly over HTTPS with JSON. ## Example: create a server with Python (openstacksdk) ```python import openstack # reads ~/.config/openstack/clouds.yaml conn = openstack.connect(cloud="gewape", region_name="RegionOne") server = conn.create_server( name="web-prod-01", image="Ubuntu 24.04 LTS", flavor="g1.medium", network="private", key_name="web-key", ) conn.wait_for_server(server) for s in conn.compute.servers(): print(s.name, s.status) ``` ## Example: create a server with Terraform ```hcl provider "openstack" { cloud = "gewape" # reads clouds.yaml; region defaults to RegionOne } resource "openstack_compute_instance_v2" "web" { name = "web-prod-01" image_name = "Ubuntu 24.04 LTS" flavor_name = "g1.medium" network { name = "private" } } ``` ## Common flavors g1.nano, g1.micro, g1.small, g1.medium, g1.large, g1.xlarge, g1.2xlarge, g1.4xlarge. List live options with `openstack flavor list`. ## Gewape Cloud MCP (create resources with an AI agent) Gewape Cloud MCP is a Model Context Protocol server at https://mcp.gewape.cloud/mcp that lets an AI agent create Gewape Cloud resources in the caller's own project. Transport is MCP streamable-http. Authentication is a Keystone Application Credential presented as an HTTP header: Authorization: Bearer :. It is create-only (no delete, no admin surface) and runs a wallet and billing check before every create. Create tools: create_server, create_volume, create_network, create_floating_ip, create_load_balancer, create_kubernetes_cluster, create_database, create_media_bucket, create_ssh_key, create_secret, create_tls_certificate, create_vpn (VPN backend pending). Read tools for parameter discovery: list_regions, list_flavors, list_images. ## Docs and links - Developer documentation: https://developers.gewape.cloud - Help center (non-technical): https://docs.gewape.cloud - Console: https://platform.gewape.cloud - Looking Glass and speed test: https://speedtest.gewapecloud.com - Main site: https://gewape.cloud