Skip to main content

OpenStack Setup

Overview​

This document describes the OpenStack setup deployed on an HPE ProLiant DL360 Gen9 server. The infrastructure is divided into two main environments:

  • INF1: A local OpenStack environment used for testing and development.
  • INF2: A production-grade, exposed OpenStack infrastructure intended for public-facing services.

Both environments are virtualized on top of Proxmox VE (type 1 hypervisor) hosted on the same physical server. OpenStack services are deployed using containerization and follow a modular architecture, with centralized identity and networking services.


Host Hardware​

  • Model: HPE ProLiant DL360 Gen9
  • CPUs: 2x Intel Xeon E5-series processors
  • Total RAM: 128 GB
  • Disk: RAID-backed SSD storage
  • Hypervisor: Proxmox VE (Type 1)

The Proxmox host is partitioned into multiple virtual machines used to build INF1 and INF2.

Infrastructure Diagram


πŸ—οΈ Overview of Environments​

πŸ”Ή INF1 β€” Local OpenStack (Testing/Staging)​

  • Purpose: Development, testing, internal validation
  • Access: Local network only (non-exposed)
  • Components:
    • 1 Γ— Controller Node
    • 3 Γ— Compute Node
    • 1 Γ— Block Storage Node
  • Features:
    • Mail server (Mailcow) installed on the controller node
    • Reverse proxy configured locally (for internal tests)
    • Testing of networking, floating IPs, and OpenStack APIs
    • VM images include Cirros, Ubuntu, Alpine

Check the full set of configuration files for INF1 here:
πŸ‘‰ github.com/NidhalOunissi/openstack-config/tree/main/inf1

πŸ”Ή INF2 β€” Public OpenStack (Production-like)​

  • Purpose: Exposed infrastructure for real-world use cases and client services
  • Access: Accessible over the internet (secured)
  • Components:
    • 1 Γ— Controller Node
    • 1 Γ— Compute Node
    • 1 Γ— Block Storage Node
    • External access to Horizon, APIs, and services
  • Features:
    • Proper domain + SSL setup (using NGINX reverse proxy)
    • Reverse proxy hosted on separate VM / VPS (optional)
    • Integrated with Keycloak for IAM
    • Secure services: Keystone, Nova, Glance, Neutron, Cinder
    • Projects per user, managed with OpenStack4j via custom backend

Check the full set of configuration files for INF2 here:
πŸ‘‰ github.com/NidhalOunissi/openstack-config/tree/main/inf2


🌐 Reverse Proxy Setup​

  • All OpenStack endpoints are exposed via NGINX reverse proxy
  • Reverse proxy handles:
    • TLS termination (Let’s Encrypt certificates)
    • Path-based routing to Horizon, Keystone, Nova API, etc.
    • Connection forwarding from external public IP to internal INF2 services

Details of networking and reverse proxy setup are covered in networking.md.


πŸ“§ Mail Integration​

  • Mail Server: Mailcow
  • Location: INF1 Controller Node
  • Usage: Internal transactional email testing and marketing platform integration
  • DNS: Managed for internal domain, not publicly exposed
  • Future: May be replaced or mirrored on INF2 for production mail delivery

Virtualization Architecture​

Each OpenStack environment (INF1 and INF2) is deployed on its own set of Proxmox virtual machines:

                   +-----------------------------+
| Proxmox VE Hypervisor |
| (HPE DL360 Gen9 Host) |
+-------------+---------------+
|
+----------------------+----------------------+
| |
+-----v-----+ +-----v-----+
| INF1 | | INF2 |
| (Local) | | (Exposed) |
+-----------+ +-----------+