← All tools

gtema/openstack

Popularity 75 Updated Development & Build

OpenStack SDK for Rust with CLI and TUI

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

<div align="center" <img src="doc/src/logo-horizontal-crab.png" width="400"/ </div <p align="center"Control your OpenStack cloud resources</p

OpenStack Client Tools

Welcome to the world of next generation OpenStack client tools written in Rust.

As a programming language Rust is getting more and more traction in the low level programming. It has very unique programming safety features what makes it a very good fit in a complex world of OpenStack. As a compiled language it is also a very good fit for the CLI tools allowing users to escape the python dependency issues. In the containerization era placing a small size binary is so much easier.

Current focus of the project is at introducing Rust as a programming language into the ecosystem of OpenStack user facing tooling and provides SDK as well as CLI and TUI.

Components

  • openstacksdk - SDK
  • openstackcli - The new and shiny CLI for OpenStack
  • openstacktui - Text (Terminal) User Interface
  • openstacktypes - Type definitions for the API responses.
  • doc - Project documentation

OpenStackClient (NG)

New approach for having a CLI for OpenStack using complied language offering blazing fast UX (it is the cloud to blame for being slow from now on, not the client).

  • Advanced authentication caching built-in and enabled by default
  • Status based resource coloring (resource list table rows are colored by the

resource state)

  • Output configuration (using $XDGCONFIGDIR/osc/config.yaml it is possible

to configure which fields should be returned when listing resources to enable customization).

  • Strict microversion binding for resource modification requests (instead of

openstack server create ... which will not work with all microversions you use osc compute server create290 which will only work if server supports it. It is similar to openstack --os-compute-api-version X.Y). It behaves the same on every cloud independent of which microversion this cloud supports (as long as it supports required microversion).

  • Can be wonderfully combined with jq for ultimate control of the necessary

data (osc server list -o json | jq -r ".[].flavor.originalname")