Add ovs_bridge parameter to xcloudify_network module and client utilities
to enable OVS bridge configuration for VXLAN networks. Includes validation,
documentation, and example updates.
- Add network port configuration during container creation using OVS_SDN
- Clean up OVS bridge ports when deleting containers
- Import OVS_SDN module for port management operations
- Update delete_container method to accept and process network_ports parameter
- Add address=/localhost/127.0.0.1 to DNS zone generation for Docker healthchecks
- Configure container DNS to use 127.0.0.1 for NSControllers with empty dns_opt and search
- Update NSController image to xcloudify-nscontroller:latest
- Adjust Dockerfile healthcheck start-period from 10s to 5s for faster startup detection
Adds a comprehensive bash script that demonstrates DNS functionality for containers:
- Creating containers with DNS-enabled ports (automatic DNS record creation)
- Creating custom A and CNAME records
- Listing, updating TTL, and deleting DNS records for a VDC
Also improves pod naming uniqueness in launch_single_container.sh by adding timestamps, and adds nscontroller image to the build script.
Pod names enable grouping containers into pods with shared networking and lifecycle management. This feature is implemented across Ansible examples, roles, and API scripts, allowing users to specify or create pods by name for better organization of multi-container deployments.
Implement PCI device scanner to detect and report GPUs, TPUs, and other
hardware accelerators on workload hosts at startup. The scanner follows
the same pattern as the existing OVS bridge scanner.
Key components:
- PCIDeviceScannerTask: Scans devices using lspci, filters based on
vendor/device ID combinations from region configuration, and reports
to API server
- Worker integration: Scanner initializes on worker startup and executes
on join accept
- Region-based filtering: JSON configuration allows per-region device
filters with wildcard support
- Storage: Uses existing WorkloadHostFixedResource model with type
'gpu', 'tpu', or 'accelerator'
The scanner loads filters from region config via API, executes lspci,
parses device information, applies filters, and reports matched devices
to the API endpoint /api/workload_hosts/{host_id}/pci_devices.
Includes comprehensive documentation covering implementation details,
configuration examples, testing procedures, and troubleshooting guidance.
Add Ansible playbook for deploying nginx webserver and content generator
using shared NFS storage. Update build script to include new container image,
add port mapping to launch example, and note related todos for reallocation
and NSController CPU issues.
Add comprehensive support for pod management (create/attach/lifecycle), healthchecks (test/interval/timeout/retries/start_period), restart policies (always/on-failure/etc. with max retries), injected files (base64 content/permissions), and partial updates (PATCH for zero-downtime env/resources changes). Update SDK with new methods (patch_container, pod_lifecycle, wait_for_* with backoff), enhanced auth (token refresh), validation, and error handling. Include updated examples, tests, docs, and schemas for backward compatibility and 100% feature coverage.
Bump role version to 2.0.0; deprecate legacy full-recreate with warnings.
Add validation for injected_files parameter in API, including security checks for filenames, base64 content, and permissions. Update pod payload building to include injected files. Implement file injection logic in worker tasks, with base64 decoding, temp file creation, bind mounts, and cleanup. Include comprehensive test script for validation and handling.
- Add new single-container.yml example for deploying nginx container
- Filter out deleted/pending-deleted containers in management operations
- Enhance error handling in network module with safer result access