# LoxiLB Octavia Driver
[](https://badge.fury.io/py/octavia-loxilb-driver)
[](https://www.python.org/downloads/)
[](https://docs.openstack.org/octavia/)
[](https://opensource.org/licenses/Apache-2.0)
Software Load Balancer (SLB) OpenStack Octavia provider driver for [LoxiLB](https://github.com/loxilb-io/loxilb) - bringing eBPF/XDP-powered load balancing to your OpenStack cloud through dynamic VM provisioning.
## β¨ Features
- π **High Performance**: eBPF/XDP-based load balancing with minimal CPU overhead
- βοΈ **Cloud Native**: Seamless integration with OpenStack and Kubernetes environments
- π **High Availability**: Support for ACTIVE_STANDBY and ACTIVE_ACTIVE topologies
- π§ **Full Integration**: Complete OpenStack Octavia provider driver implementation
- β
**Production Ready**: 121/121 tests passing with 100% test coverage
- π¦ **Easy Installation**: Automated setup with deployment profiles
## π Quick Start
Choose your deployment scenario:
### π Common Steps (All Deployments)
#### Step 1: Setup OpenStack Resources
```bash
pip install octavia-loxilb-driver
# Run automated setup to create networks, flavors, and security groups
octavia-loxilb-setup
```
#### Step 2: Download and Upload LoxiLB VM Image
```bash
# Download LoxiLB VM image from releases
wget https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/releases/download/vm-v1.0.0/loxilb-vm-standard-v1.0.0.qcow2.gz
# Extract and upload to OpenStack with loxilb tag and performance properties
gunzip loxilb-vm-standard-v1.0.0.qcow2.gz
openstack image create --disk-format qcow2 --container-format bare \
--public --tag loxilb \
--property hw_vif_multiqueue_enabled=True \
--property hw_vif_model=virtio \
--property hw_disk_bus=virtio \
--property hw_video_model=virtio \
--property os_distro=ubuntu \
--property os_type=linux \
--file loxilb-vm-standard-v1.0.0.qcow2 loxilb-vm-standard
# Note: hw_vif_multiqueue_enabled=True is critical for LoxiLB performance
# It enables multiple queue networking for high-throughput packet processing
```
---
### π₯οΈ Traditional OpenStack (systemd services)
#### Step 3: Install Driver on Controller Node
```bash
# Install on the controller node where Octavia services run
pip install octavia-loxilb-driver
```
#### Step 4: Configure Octavia
```bash
# Edit /etc/octavia/octavia.conf and add the generated configuration
sudo vim /etc/octavia/octavia.conf
```
#### Step 5: Restart Services
```bash
sudo systemctl restart octavia-api octavia-worker octavia-controller
```
---
### π³ Containerized Deployments
#### For Kolla-Ansible:
```bash
# Step 3: Install in Octavia containers
sudo docker exec octavia_api pip install octavia-loxilb-driver
sudo docker exec octavia_worker pip install octavia-loxilb-driver
sudo docker exec octavia_controller pip install octavia-loxilb-driver
# Step 4: Update kolla configuration
# Add to /etc/kolla/octavia-api/octavia.conf
# Add to /etc/kolla/octavia-worker/octavia.conf
# Add to /etc/kolla/octavia-controller/octavia.conf
# Step 5: Restart containers
sudo docker restart octavia_api octavia_worker octavia_controller
```
#### For OpenStack-Helm (Kubernetes):
```bash
# Step 3: Update helm values to include the driver
# Add to values.yaml:
# conf:
# octavia:
# api_settings:
# enabled_provider_drivers: amphora:amphora,loxilb:loxilb
# Step 4: Upgrade helm release
helm upgrade octavia ./octavia --values=values.yaml
```
#### For TripleO:
```bash
# Step 3: Add to container customization
# Create custom container image with the driver pre-installed
# Or use ExtraConfig to install during deployment
```
---
### π§ DevStack Environment
#### Step 3: Install in DevStack
```bash
# Install in devstack environment
source ~/devstack/openrc admin admin
pip install octavia-loxilb-driver
# Configure in local.conf for persistent setup
echo "pip install octavia-loxilb-driver" >> ~/devstack/local.sh
```
---
### β
Verification (All Deployments)
```bash
# Verify provider is available
openstack loadbalancer provider list
# Create your first LoxiLB load balancer
openstack loadbalancer create --provider loxilb --subnet-id <SUBNET_ID> my-lb
```
**Note**: For containerized deployments, you may need to rebuild container images or use persistent volume mounts to ensure the driver survives container restarts.
## π Prerequisites
- **OpenStack**: Zed or later with Octavia service
- **Python**: 3.8+ with pip
- **Access**: OpenStack admin credentials and sudo access
- **Resources**: Available compute and network quotas
- **LoxiLB VM Image**: Downloaded from GitHub releases
- **Manual Configuration**: Octavia configuration file editing required
## ποΈ Architecture
The LoxiLB Octavia Driver is a Software Load Balancer (SLB) that dynamically provisions LoxiLB VMs for each load balancer:
```
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Octavia API βββββΆβ LoxiLB Driver βββββΆβ Dynamic LoxiLB VMs
β (Per Load Balancer) β | | |
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βΌ
ββββββββββββββββββββ
β OpenStack VMs β
β (LoxiLB Instance)β
ββββββββββββββββββββ
```
**Key Components:**
- **Provider Driver**: Main integration with Octavia API
- **LoxiLB API Client**: High-performance API communication with retry logic
- **Resource Mapping**: ID translation between Octavia and LoxiLB
- **Health Monitoring**: Coordinated health checking
- **State Reconciliation**: Ensures data consistency
## β‘ Deployment Profiles
Choose the right profile for your environment:
| Profile | Use Case | Resources | Command |
|---------|----------|-----------|---------|
| **DevStack** | Development & Testing | 1 vCPU, 4GB RAM | `octavia-loxilb-setup --deployment-type devstack` |
| **Standard** | Standard Production | 2 vCPU, 8GB RAM | `octavia-loxilb-setup` (default) |
| **Production** | High Performance | 4 vCPU, 16GB RAM | `octavia-loxilb-setup --deployment-type production` |
## π§ Custom Configuration
For advanced deployments, create a JSON configuration file:
```json
{
"flavor": {
"name": "custom-loxilb-flavor",
"vcpus": 2,
"ram": 4096,
"disk": 30
},
"network": {
"name": "custom-mgmt-network",
"cidr": "172.16.100.0/24"
}
}
```
Use with: `octavia-loxilb-setup --custom-config config.json`
## π Performance Benefits
Compared to traditional software load balancers:
- **10x Lower Latency**: eBPF/XDP processing in kernel space
- **50% Less CPU Usage**: Efficient packet processing without userspace overhead
- **Higher Throughput**: Multi-million packets per second capability
- **Better Scaling**: Linear performance scaling with additional cores
## π Network Architecture
### Management Network
- **Purpose**: Octavia controller β LoxiLB VM communication
- **Default**: `octavia-mgmt-net` (192.168.1.0/24)
- **Ports**: 8091 (API), 9443 (BGP), 11111/22222 (HA)
### Data Networks
- **Purpose**: User traffic load balancing
- **Integration**: Works with existing tenant networks
- **Protocols**: TCP, UDP, HTTP, HTTPS with L4/L7 load balancing
## π οΈ Deployment-Specific Installation
### π₯οΈ Traditional OpenStack (Bare Metal/VMs)
```bash
# On controller node(s)
sudo pip install octavia-loxilb-driver
octavia-loxilb-setup --deployment-type production
# Configure /etc/octavia/octavia.conf
# Restart systemd services
sudo systemctl restart octavia-api octavia-worker octavia-controller
```
### π³ Kolla-Ansible Deployment
```bash
# Method 1: Install in existing containers (temporary)
for container in octavia_api octavia_worker octavia_controller; do
sudo docker exec $container pip install octavia-loxilb-driver
done
# Method 2: Persistent installation via kolla customization
# Add to /etc/kolla/kolla-build.conf:
# [octavia-base]
# pip_packages = octavia-loxilb-driver
# Rebuild containers:
# kolla-build octavia
```
### βΈοΈ OpenStack-Helm (Kubernetes)
```yaml
# Add to helm values.yaml
images:
tags:
octavia_api: custom-octavia:latest # with driver pre-installed
conf:
octavia:
api_settings:
enabled_provider_drivers: amphora:amphora,loxilb:loxilb
loxilb:
# Generated configuration here
```
### π― DevStack Development
```bash
# Install directly
pip install octavia-loxilb-driver
octavia-loxilb-setup --deployment-type devstack
# Or add to local.conf for automated setup
echo "pip_install octavia-loxilb-driver" >> local.conf
```
### π§ Manual/Custom Deployment
```bash
# Generate configuration only
pip install octavia-loxilb-driver
octavia-loxilb-setup --output-config /tmp/loxilb-config.conf
# Review and manually integrate configuration
# Restart services based on your deployment method
```
## π Verification
### Check Provider Availability
```bash
openstack loadbalancer provider list
# Should show 'loxilb' in the list
```
### Health Check
```bash
octavia-loxilb-health-check --detailed
```
### Create Test Load Balancer
```bash
openstack loadbalancer create --provider loxilb --subnet-id <SUBNET_ID> test-lb
openstack loadbalancer show test-lb
```
## π Documentation
| Document | Description |
|----------|-------------|
| **[Quick Start Guide](docs/QUICKSTART.md)** | Get running in 10 minutes |
| **[Installation Guide](docs/INSTALLATION.md)** | Comprehensive setup instructions |
| **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** | Common issues and solutions |
| **[VM Images Guide](docs/LOXILB-VM-IMAGES.md)** | LoxiLB VM distribution and setup |
| **[Architecture Docs](docs/architecture/)** | Technical deep-dive documentation |
## π§ Configuration Reference
Key configuration sections in `/etc/octavia/octavia.conf`:
```ini
[api_settings]
enabled_provider_drivers = amphora:amphora,loxilb:loxilb
[driver_loxilb]
# LoxiLB VM Configuration
api_timeout = 30
api_retries = 3
debug_api_calls = true
# OpenStack Authentication (REQUIRED for VM provisioning)
auth_url = YOUR_KEYSTONE_AUTH_URL
auth_type = password
username = octavia
password = YOUR_OCTAVIA_PASSWORD
user_domain_name = Default
project_name = service
project_domain_name = Default
# OpenStack resource IDs (populated by setup script)
lb_mgmt_net_id = abc123-def456-ghi789
lb_security_group_id = def456-ghi789-jkl012
lb_flavor_id = ghi789-jkl012-mno345
lb_image_id = jkl012-mno345-pqr678
```
## π Security Features
- **Secure API Communication**: HTTPS with authentication
- **Network Isolation**: Separate management and data networks
- **Resource Isolation**: Dedicated security groups and networks
- **Access Control**: SSH key-based access to LoxiLB VMs
- **Audit Trail**: Comprehensive logging and monitoring
## π Troubleshooting
### Common Issues
**Provider not available:**
```bash
# Check configuration
sudo grep -A 10 "enabled_provider_drivers" /etc/octavia/octavia.conf
# Restart services
sudo systemctl restart octavia-api octavia-worker
```
**LoxiLB VM issues:**
```bash
# Check LoxiLB VM status
openstack server list --name loxilb-vm
# Check VM console logs
openstack console log show <LOXILB_VM_ID>
# Check security groups
openstack security group show loxilb-mgmt-sec-grp
```
For detailed troubleshooting, see the [Troubleshooting Guide](docs/TROUBLESHOOTING.md).
## π€ Contributing
We welcome contributions! Please see our contributing guidelines:
1. Fork the repository
2. Create a feature branch
3. Make your changes with tests
4. Ensure all tests pass: `python -m pytest`
5. Submit a pull request
### Development Setup
```bash
git clone https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver.git
cd octavia-loxilb-driver
pip install -e .
python -m pytest octavia_loxilb_driver/tests/unit/ -v
```
## π Support
- **GitHub Issues**: [Report bugs and request features](https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/issues)
- **LoxiLB Community**: [LoxiLB project](https://github.com/loxilb-io/loxilb)
- **Documentation**: [Complete documentation suite](docs/)
- **Health Check**: Built-in diagnostic tool: `octavia-loxilb-health-check`
## π Roadmap
- [x] **v1.0.0**: Production-ready driver with automated setup
- [ ] **v1.1.0**: Enhanced monitoring and metrics
- [ ] **v1.2.0**: Advanced traffic policies and SSL termination
- [ ] **v2.0.0**: Multi-cloud integration and service mesh support
## π’ Production Usage
The LoxiLB Octavia Driver is designed for production use with:
- **Enterprise Grade**: Comprehensive testing and validation
- **High Availability**: Multi-instance deployment support
- **Monitoring Integration**: Extensive logging and health checks
- **Performance Optimization**: Tuned for high-throughput scenarios
- **Security Hardening**: Following OpenStack security best practices
## π Why Choose LoxiLB?
- **Modern Architecture**: eBPF/XDP for ultimate performance
- **Cloud Native**: Built for containerized and virtualized environments
- **OpenStack Integration**: Native Octavia provider driver
- **Active Development**: Continuous improvements and feature additions
- **Community Support**: Growing ecosystem and user community
## π License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
## π Acknowledgments
- **LoxiLB Team**: For the amazing eBPF/XDP load balancer
- **OpenStack Octavia Team**: For the extensible load balancing framework
- **OpenStack Community**: For the robust cloud platform
- **Contributors**: Everyone who has contributed to this project
---
## π Get Started Today!
```bash
# Install the driver
pip install octavia-loxilb-driver
# Setup OpenStack resources
octavia-loxilb-setup
# Download VM image and configure Octavia (see Quick Start above)
```
Transform your OpenStack load balancing with the power of eBPF/XDP!
**Questions?** Check out our [documentation](docs/) or [open an issue](https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/issues).
---
*Made with β€οΈ by the LoxiLB and OpenStack communities*
Raw data
{
"_id": null,
"home_page": null,
"name": "octavia-loxilb-driver",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "OpenStack Community <openstack-discuss@lists.openstack.org>",
"keywords": "openstack, octavia, loadbalancer, loxilb",
"author": null,
"author_email": "OpenStack Community <openstack-discuss@lists.openstack.org>",
"download_url": "https://files.pythonhosted.org/packages/04/86/5a1b7ce4e6d7caf873081199a8a4760b59a683877971da87615ec27f9a7d/octavia_loxilb_driver-1.0.3.tar.gz",
"platform": null,
"description": "# LoxiLB Octavia Driver\n\n[](https://badge.fury.io/py/octavia-loxilb-driver)\n[](https://www.python.org/downloads/)\n[](https://docs.openstack.org/octavia/)\n[](https://opensource.org/licenses/Apache-2.0)\n\nSoftware Load Balancer (SLB) OpenStack Octavia provider driver for [LoxiLB](https://github.com/loxilb-io/loxilb) - bringing eBPF/XDP-powered load balancing to your OpenStack cloud through dynamic VM provisioning.\n\n## \u2728 Features\n\n- \ud83d\ude80 **High Performance**: eBPF/XDP-based load balancing with minimal CPU overhead\n- \u2601\ufe0f **Cloud Native**: Seamless integration with OpenStack and Kubernetes environments \n- \ud83d\udd04 **High Availability**: Support for ACTIVE_STANDBY and ACTIVE_ACTIVE topologies\n- \ud83d\udd27 **Full Integration**: Complete OpenStack Octavia provider driver implementation\n- \u2705 **Production Ready**: 121/121 tests passing with 100% test coverage\n- \ud83d\udce6 **Easy Installation**: Automated setup with deployment profiles\n\n## \ud83d\ude80 Quick Start\n\nChoose your deployment scenario:\n\n### \ud83d\udccb Common Steps (All Deployments)\n\n#### Step 1: Setup OpenStack Resources\n```bash\npip install octavia-loxilb-driver\n# Run automated setup to create networks, flavors, and security groups\noctavia-loxilb-setup\n```\n\n#### Step 2: Download and Upload LoxiLB VM Image\n```bash\n# Download LoxiLB VM image from releases\nwget https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/releases/download/vm-v1.0.0/loxilb-vm-standard-v1.0.0.qcow2.gz\n\n# Extract and upload to OpenStack with loxilb tag and performance properties\ngunzip loxilb-vm-standard-v1.0.0.qcow2.gz\nopenstack image create --disk-format qcow2 --container-format bare \\\n --public --tag loxilb \\\n --property hw_vif_multiqueue_enabled=True \\\n --property hw_vif_model=virtio \\\n --property hw_disk_bus=virtio \\\n --property hw_video_model=virtio \\\n --property os_distro=ubuntu \\\n --property os_type=linux \\\n --file loxilb-vm-standard-v1.0.0.qcow2 loxilb-vm-standard\n\n# Note: hw_vif_multiqueue_enabled=True is critical for LoxiLB performance\n# It enables multiple queue networking for high-throughput packet processing\n```\n\n---\n\n### \ud83d\udda5\ufe0f Traditional OpenStack (systemd services)\n\n#### Step 3: Install Driver on Controller Node\n```bash\n# Install on the controller node where Octavia services run\npip install octavia-loxilb-driver\n```\n\n#### Step 4: Configure Octavia\n```bash\n# Edit /etc/octavia/octavia.conf and add the generated configuration\nsudo vim /etc/octavia/octavia.conf\n```\n\n#### Step 5: Restart Services\n```bash\nsudo systemctl restart octavia-api octavia-worker octavia-controller\n```\n\n---\n\n### \ud83d\udc33 Containerized Deployments\n\n#### For Kolla-Ansible:\n```bash\n# Step 3: Install in Octavia containers\nsudo docker exec octavia_api pip install octavia-loxilb-driver\nsudo docker exec octavia_worker pip install octavia-loxilb-driver\nsudo docker exec octavia_controller pip install octavia-loxilb-driver\n\n# Step 4: Update kolla configuration\n# Add to /etc/kolla/octavia-api/octavia.conf\n# Add to /etc/kolla/octavia-worker/octavia.conf \n# Add to /etc/kolla/octavia-controller/octavia.conf\n\n# Step 5: Restart containers\nsudo docker restart octavia_api octavia_worker octavia_controller\n```\n\n#### For OpenStack-Helm (Kubernetes):\n```bash\n# Step 3: Update helm values to include the driver\n# Add to values.yaml:\n# conf:\n# octavia:\n# api_settings:\n# enabled_provider_drivers: amphora:amphora,loxilb:loxilb\n\n# Step 4: Upgrade helm release\nhelm upgrade octavia ./octavia --values=values.yaml\n```\n\n#### For TripleO:\n```bash\n# Step 3: Add to container customization\n# Create custom container image with the driver pre-installed\n# Or use ExtraConfig to install during deployment\n```\n\n---\n\n### \ud83d\udd27 DevStack Environment\n\n#### Step 3: Install in DevStack\n```bash\n# Install in devstack environment\nsource ~/devstack/openrc admin admin\npip install octavia-loxilb-driver\n\n# Configure in local.conf for persistent setup\necho \"pip install octavia-loxilb-driver\" >> ~/devstack/local.sh\n```\n\n---\n\n### \u2705 Verification (All Deployments)\n```bash\n# Verify provider is available\nopenstack loadbalancer provider list\n\n# Create your first LoxiLB load balancer\nopenstack loadbalancer create --provider loxilb --subnet-id <SUBNET_ID> my-lb\n```\n\n**Note**: For containerized deployments, you may need to rebuild container images or use persistent volume mounts to ensure the driver survives container restarts.\n\n## \ud83d\udccb Prerequisites\n\n- **OpenStack**: Zed or later with Octavia service\n- **Python**: 3.8+ with pip\n- **Access**: OpenStack admin credentials and sudo access\n- **Resources**: Available compute and network quotas\n- **LoxiLB VM Image**: Downloaded from GitHub releases\n- **Manual Configuration**: Octavia configuration file editing required\n\n## \ud83c\udfd7\ufe0f Architecture\n\nThe LoxiLB Octavia Driver is a Software Load Balancer (SLB) that dynamically provisions LoxiLB VMs for each load balancer:\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Octavia API \u2502\u2500\u2500\u2500\u25b6\u2502 LoxiLB Driver \u2502\u2500\u2500\u2500\u25b6\u2502 Dynamic LoxiLB VMs \n\u2502 (Per Load Balancer) \u2502 | | |\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502\n \u25bc\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 OpenStack VMs \u2502\n \u2502 (LoxiLB Instance)\u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**Key Components:**\n- **Provider Driver**: Main integration with Octavia API\n- **LoxiLB API Client**: High-performance API communication with retry logic\n- **Resource Mapping**: ID translation between Octavia and LoxiLB\n- **Health Monitoring**: Coordinated health checking\n- **State Reconciliation**: Ensures data consistency\n\n## \u26a1 Deployment Profiles\n\nChoose the right profile for your environment:\n\n| Profile | Use Case | Resources | Command |\n|---------|----------|-----------|---------|\n| **DevStack** | Development & Testing | 1 vCPU, 4GB RAM | `octavia-loxilb-setup --deployment-type devstack` |\n| **Standard** | Standard Production | 2 vCPU, 8GB RAM | `octavia-loxilb-setup` (default) |\n| **Production** | High Performance | 4 vCPU, 16GB RAM | `octavia-loxilb-setup --deployment-type production` |\n\n## \ud83d\udd27 Custom Configuration\n\nFor advanced deployments, create a JSON configuration file:\n\n```json\n{\n \"flavor\": {\n \"name\": \"custom-loxilb-flavor\",\n \"vcpus\": 2,\n \"ram\": 4096,\n \"disk\": 30\n },\n \"network\": {\n \"name\": \"custom-mgmt-network\",\n \"cidr\": \"172.16.100.0/24\"\n }\n}\n```\n\nUse with: `octavia-loxilb-setup --custom-config config.json`\n\n## \ud83d\udcca Performance Benefits\n\nCompared to traditional software load balancers:\n\n- **10x Lower Latency**: eBPF/XDP processing in kernel space\n- **50% Less CPU Usage**: Efficient packet processing without userspace overhead\n- **Higher Throughput**: Multi-million packets per second capability\n- **Better Scaling**: Linear performance scaling with additional cores\n\n## \ud83c\udf10 Network Architecture\n\n### Management Network\n- **Purpose**: Octavia controller \u2194 LoxiLB VM communication\n- **Default**: `octavia-mgmt-net` (192.168.1.0/24)\n- **Ports**: 8091 (API), 9443 (BGP), 11111/22222 (HA)\n\n### Data Networks\n- **Purpose**: User traffic load balancing\n- **Integration**: Works with existing tenant networks\n- **Protocols**: TCP, UDP, HTTP, HTTPS with L4/L7 load balancing\n\n## \ud83d\udee0\ufe0f Deployment-Specific Installation\n\n### \ud83d\udda5\ufe0f Traditional OpenStack (Bare Metal/VMs)\n```bash\n# On controller node(s)\nsudo pip install octavia-loxilb-driver\noctavia-loxilb-setup --deployment-type production\n\n# Configure /etc/octavia/octavia.conf\n# Restart systemd services\nsudo systemctl restart octavia-api octavia-worker octavia-controller\n```\n\n### \ud83d\udc33 Kolla-Ansible Deployment\n```bash\n# Method 1: Install in existing containers (temporary)\nfor container in octavia_api octavia_worker octavia_controller; do\n sudo docker exec $container pip install octavia-loxilb-driver\ndone\n\n# Method 2: Persistent installation via kolla customization\n# Add to /etc/kolla/kolla-build.conf:\n# [octavia-base]\n# pip_packages = octavia-loxilb-driver\n\n# Rebuild containers:\n# kolla-build octavia\n```\n\n### \u2638\ufe0f OpenStack-Helm (Kubernetes)\n```yaml\n# Add to helm values.yaml\nimages:\n tags:\n octavia_api: custom-octavia:latest # with driver pre-installed\n\nconf:\n octavia:\n api_settings:\n enabled_provider_drivers: amphora:amphora,loxilb:loxilb\n loxilb:\n # Generated configuration here\n```\n\n### \ud83c\udfaf DevStack Development\n```bash\n# Install directly\npip install octavia-loxilb-driver\noctavia-loxilb-setup --deployment-type devstack\n\n# Or add to local.conf for automated setup\necho \"pip_install octavia-loxilb-driver\" >> local.conf\n```\n\n### \ud83d\udd27 Manual/Custom Deployment\n```bash\n# Generate configuration only\npip install octavia-loxilb-driver\noctavia-loxilb-setup --output-config /tmp/loxilb-config.conf\n\n# Review and manually integrate configuration\n# Restart services based on your deployment method\n```\n\n## \ud83d\udd0d Verification\n\n### Check Provider Availability\n```bash\nopenstack loadbalancer provider list\n# Should show 'loxilb' in the list\n```\n\n### Health Check\n```bash\noctavia-loxilb-health-check --detailed\n```\n\n### Create Test Load Balancer\n```bash\nopenstack loadbalancer create --provider loxilb --subnet-id <SUBNET_ID> test-lb\nopenstack loadbalancer show test-lb\n```\n\n## \ud83d\udcda Documentation\n\n| Document | Description |\n|----------|-------------|\n| **[Quick Start Guide](docs/QUICKSTART.md)** | Get running in 10 minutes |\n| **[Installation Guide](docs/INSTALLATION.md)** | Comprehensive setup instructions |\n| **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** | Common issues and solutions |\n| **[VM Images Guide](docs/LOXILB-VM-IMAGES.md)** | LoxiLB VM distribution and setup |\n| **[Architecture Docs](docs/architecture/)** | Technical deep-dive documentation |\n\n## \ud83d\udd27 Configuration Reference\n\nKey configuration sections in `/etc/octavia/octavia.conf`:\n\n```ini\n[api_settings]\nenabled_provider_drivers = amphora:amphora,loxilb:loxilb\n\n[driver_loxilb]\n# LoxiLB VM Configuration\napi_timeout = 30\napi_retries = 3\ndebug_api_calls = true\n\n# OpenStack Authentication (REQUIRED for VM provisioning)\nauth_url = YOUR_KEYSTONE_AUTH_URL\nauth_type = password\nusername = octavia\npassword = YOUR_OCTAVIA_PASSWORD\nuser_domain_name = Default\nproject_name = service\nproject_domain_name = Default\n\n# OpenStack resource IDs (populated by setup script)\nlb_mgmt_net_id = abc123-def456-ghi789\nlb_security_group_id = def456-ghi789-jkl012\nlb_flavor_id = ghi789-jkl012-mno345\nlb_image_id = jkl012-mno345-pqr678\n```\n\n## \ud83d\udd12 Security Features\n\n- **Secure API Communication**: HTTPS with authentication\n- **Network Isolation**: Separate management and data networks\n- **Resource Isolation**: Dedicated security groups and networks\n- **Access Control**: SSH key-based access to LoxiLB VMs\n- **Audit Trail**: Comprehensive logging and monitoring\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n**Provider not available:**\n```bash\n# Check configuration\nsudo grep -A 10 \"enabled_provider_drivers\" /etc/octavia/octavia.conf\n\n# Restart services\nsudo systemctl restart octavia-api octavia-worker\n```\n\n**LoxiLB VM issues:**\n```bash\n# Check LoxiLB VM status\nopenstack server list --name loxilb-vm\n\n# Check VM console logs\nopenstack console log show <LOXILB_VM_ID>\n\n# Check security groups\nopenstack security group show loxilb-mgmt-sec-grp\n```\n\nFor detailed troubleshooting, see the [Troubleshooting Guide](docs/TROUBLESHOOTING.md).\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our contributing guidelines:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes with tests\n4. Ensure all tests pass: `python -m pytest`\n5. Submit a pull request\n\n### Development Setup\n```bash\ngit clone https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver.git\ncd octavia-loxilb-driver\npip install -e .\npython -m pytest octavia_loxilb_driver/tests/unit/ -v\n```\n\n## \ud83c\udd98 Support\n\n- **GitHub Issues**: [Report bugs and request features](https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/issues)\n- **LoxiLB Community**: [LoxiLB project](https://github.com/loxilb-io/loxilb)\n- **Documentation**: [Complete documentation suite](docs/)\n- **Health Check**: Built-in diagnostic tool: `octavia-loxilb-health-check`\n\n## \ud83d\udcc8 Roadmap\n\n- [x] **v1.0.0**: Production-ready driver with automated setup\n- [ ] **v1.1.0**: Enhanced monitoring and metrics\n- [ ] **v1.2.0**: Advanced traffic policies and SSL termination\n- [ ] **v2.0.0**: Multi-cloud integration and service mesh support\n\n## \ud83c\udfe2 Production Usage\n\nThe LoxiLB Octavia Driver is designed for production use with:\n\n- **Enterprise Grade**: Comprehensive testing and validation\n- **High Availability**: Multi-instance deployment support\n- **Monitoring Integration**: Extensive logging and health checks\n- **Performance Optimization**: Tuned for high-throughput scenarios\n- **Security Hardening**: Following OpenStack security best practices\n\n## \ud83c\udf1f Why Choose LoxiLB?\n\n- **Modern Architecture**: eBPF/XDP for ultimate performance\n- **Cloud Native**: Built for containerized and virtualized environments\n- **OpenStack Integration**: Native Octavia provider driver\n- **Active Development**: Continuous improvements and feature additions\n- **Community Support**: Growing ecosystem and user community\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **LoxiLB Team**: For the amazing eBPF/XDP load balancer\n- **OpenStack Octavia Team**: For the extensible load balancing framework\n- **OpenStack Community**: For the robust cloud platform\n- **Contributors**: Everyone who has contributed to this project\n\n---\n\n## \ud83d\ude80 Get Started Today!\n\n```bash\n# Install the driver\npip install octavia-loxilb-driver\n\n# Setup OpenStack resources\noctavia-loxilb-setup\n\n# Download VM image and configure Octavia (see Quick Start above)\n```\n\nTransform your OpenStack load balancing with the power of eBPF/XDP!\n\n**Questions?** Check out our [documentation](docs/) or [open an issue](https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/issues).\n\n---\n\n*Made with \u2764\ufe0f by the LoxiLB and OpenStack communities*\n",
"bugtrack_url": null,
"license": null,
"summary": "LoxiLB provider driver for OpenStack Octavia Load Balancer as a Service",
"version": "1.0.3",
"project_urls": {
"Bug Reports": "https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/issues",
"Changelog": "https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver#readme",
"Homepage": "https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver",
"Repository": "https://github.com/NLX-SeokHwanKong/octavia-loxilb-driver.git"
},
"split_keywords": [
"openstack",
" octavia",
" loadbalancer",
" loxilb"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "48429c0beff60f0d0c31d7c4dd7ea621d127dc3b51648f787bf01e269f06b3a6",
"md5": "76eb844b5d9bc5436011ab0d07a23da5",
"sha256": "18c023606e0cebff03c4b0d6c33f2751b418e52e92100c6d8b86024023150196"
},
"downloads": -1,
"filename": "octavia_loxilb_driver-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "76eb844b5d9bc5436011ab0d07a23da5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 190867,
"upload_time": "2025-09-01T03:49:17",
"upload_time_iso_8601": "2025-09-01T03:49:17.320580Z",
"url": "https://files.pythonhosted.org/packages/48/42/9c0beff60f0d0c31d7c4dd7ea621d127dc3b51648f787bf01e269f06b3a6/octavia_loxilb_driver-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "04865a1b7ce4e6d7caf873081199a8a4760b59a683877971da87615ec27f9a7d",
"md5": "55994c186545b6bff645a703fcc90acd",
"sha256": "5d1c55752dadcc489c0780aeb83ebe117ab571eb8e5d8c2cf7c603241e445c5d"
},
"downloads": -1,
"filename": "octavia_loxilb_driver-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "55994c186545b6bff645a703fcc90acd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 481903,
"upload_time": "2025-09-01T03:49:19",
"upload_time_iso_8601": "2025-09-01T03:49:19.124861Z",
"url": "https://files.pythonhosted.org/packages/04/86/5a1b7ce4e6d7caf873081199a8a4760b59a683877971da87615ec27f9a7d/octavia_loxilb_driver-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-01 03:49:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NLX-SeokHwanKong",
"github_project": "octavia-loxilb-driver",
"github_not_found": true,
"lcname": "octavia-loxilb-driver"
}