Skip to content

🌐 Lightweight Go-based REST API for managing OpenStack resources using Gophercloud β€” ideal for cloud automation and frontend integrations.

License

Notifications You must be signed in to change notification settings

itera-io/openstack-web-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenStack Web API Client

A lightweight and modular web API client for managing OpenStack resources via RESTful endpoints using Go and the Gophercloud SDK.


🧭 Overview

This project is a web client for interacting with OpenStack services. It provides REST APIs built on top of the Gophercloud SDK, enabling developers or frontend applications to manage infrastructure programmatically.


✨ Features

  • βœ… RESTful endpoints to interface with OpenStack services
  • βš™οΈ Written in idiomatic Go
  • πŸ” Environment-based configuration with .env support
  • 🧩 Extensible and modular project structure
  • πŸ“¦ Vendor-less dependency management with Go Modules

πŸ“¦ Prerequisites

  • Go 1.16 or higher
  • Access to a running OpenStack environment
  • Environment variables or .env file for credentials

πŸ”§ Installation & Setup

git clone https://github.com/itera-io/openstack-web-client.git
cd openstack-web-client
go mod tidy

πŸ› οΈ Configuration

Create a .env file in the project root with the following content:

OS_AUTH_URL=https://<your-openstack-auth-url>/v3
OS_USERNAME=<your-username>
OS_PASSWORD=<your-password>
OS_PROJECT_NAME=<your-project>
OS_DOMAIN_NAME=<your-domain>

Make sure these credentials match your OpenStack environment.


πŸš€ Running the Application

go run main.go

By default, the server runs at:

http://localhost:8080

You can update the listening port or add additional configuration via environment variables or Go flags if implemented.


πŸ“š API Endpoints

Method Endpoint Description
GET /instances List all compute instances
POST /instances Create a new instance
GET /instances/{id} Get details for one instance
DELETE /instances/{id} Delete an instance

Note: Endpoint availability depends on the features implemented in the current version.


πŸ§ͺ Running Tests

go test ./...

Ensure your OpenStack environment or mock is accessible if tests rely on live resources.


🀝 Contributing

We welcome contributions! To get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -am 'Add my feature')
  4. Push to your fork (git push origin feature/my-feature)
  5. Open a Pull Request

Before submitting, make sure to:

  • Follow idiomatic Go conventions
  • Add or update relevant tests
  • Keep PRs scoped and descriptive

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.


πŸ™Œ Acknowledgements


Made with ❀️ by itera-io

About

🌐 Lightweight Go-based REST API for managing OpenStack resources using Gophercloud β€” ideal for cloud automation and frontend integrations.

Resources

License

Stars

Watchers

Forks

Languages