Skip to main content

ChatOps discord bot to request and provision Openstack resources in MidgardLab

Project description

Midgard Discord bot

pre-commit.ci status Python 3.10

Midgard is a private OpenStack cloud for VAIT testing, training, and development purpose. This project aims to simplify and allow quick provisioning of OpenStack VM using an opinionated workflow entirely through Discord, following a ChatOps model.

Motivations

  1. Midgard is an OpenStack lab running entirely on-premise. While it has NAT connectivity, the sticking point is how to direct ingress point to the VMs provisioned inside the lab.
  2. For most teaching lab, the users do not deviate from a standard configuration.
  3. The resource should be accessible to most users so beginners and professionals alike can quickly provision, experiment and shutdown their solutions.
  4. We want to avoid running jumpboxes.
  5. We want to avoid installing any VPN solution.
  6. We want to avoid software client dependencies, access should simply be SSH into the VM.

Software Architecture

The software architecture for the bot is as followed:

Midgard-Discord Bot Architecture Diagram

  1. Users will interface with the MidgardLab entirely through Discord slash commands.
  2. The Discord bot will communicate with the OpenStack API on the users' behalf to setup an account, register public key and provision VM.
  3. The Discord bot will also setup Cloudflare DNS tunnels to allow users to SSH into the VMs provisioned.

Usage

Run the bot with the following command:

poetry run midgard

Contributing

See CONTRIBUTING.md for more information.

License

This project is licensed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

midgard_discord-0.8.0.tar.gz (10.9 kB view hashes)

Uploaded Source

Built Distribution

midgard_discord-0.8.0-py3-none-any.whl (12.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page