- Plane with OIDC users, projects and VDCs with per-VDC roles, SSH key vault, Cloudflare exposure, TLS certificates, and a gateway that forwards allowlisted calls to core with the VDC as tenant_id.
- Also added docker compose for setups
A packaged worker binary and node docker-compose for hardware we don't own, authenticated only with its host secret.
Added build scripts for the binary and NSController image, uninstaller.
- Give each NIC its own guest PCI slot; a shared 0x05 default made libvirt reject VMs with more than one network
- VM reconcile no longer treats a domain as orphaned when its assigned host row is the same physical machine
- Pin a workload to one host, which a community lease needs
- A VM's networks, volumes, ports, metadata and GPUs are created once and reused on every retry.
Workloads, Network, Volume, Pod, Server group usees tenant_id for isolation with region_id for placement.
DNS zones and worker DNS paths are tenant-scoped and rooted at BASE_DOMAIN.
Universes, projects, VDCs, region access, permissions, SSH keys, Cloudflare and TLS certificates are product concerns and moves to the cloud/community plane.
Core keeps only infrastructure.
- Move app/, worker/, websocket_server/, migrations/, tests and the services to core/, which becomes a self-contained root
- .gitmodules path for the novnc submodule rewritten by git mv.
- Initial Step to split into core and cloud/community
The management panel for cloud (backend/hyperscale/community) will be handled seperatly via React/Typescript frontend (Secured and More convinient).
Cleaning the repo!
- User can now add zerotier id during vm creation which will add the node to zerotier via cloud-config
- VM creation supports population of user-data cloud-config
Move Libvirt VM creation entirely into the worker thread instead of instantiating it on the main thread, preventing ping-pong responses to/from the master from being blocked.
Previously ns controller pod injected by XCF_DEFAULT_OVS_BRIDGE making it ovs-bridge and not attaching docker bridge.
Added DNS (Essential for cloudflared side container)
Flasgger uses find('---') substring search to detect YAML in docstrings.
Numpy-style section underlines (-------, -----------, etc.) inside route
handler docstrings were triggering YAML parsing on plain English text,
crashing the spec view with a TypeError on every request to /apispec.json.
Added watchdog for celery in dev mode to apply changes
Fix Overwritten of worker settings. Priority keys over .env overwrites
Chore: Script fixes of master,worker
autostart mds in nscontroller
added missing docker volume/packages for socket mounts for ns
added network id env for nscontroller
add missing module of sdn_helper
error handle when ovs-ofctl is empty
Added APIs to expose the metadata endpoints (from api server)
Proxy in worker hosts that listen on sockets and forwards metadata requests to API
Proxy in NSController to forward metadata requests via socket to its worker host.
API to register GPU (worker does at initialization), list all GPUs (to fetch during creation menu)
Schedular to Match with relevant hosts filter
A Table to store GPU models
A table to map gpu to pcie to workload and host
Dynamic binding unbinding of vfio, nvidia driver at runtime for passthrough
Implement NS Controller API for Dispatch & Delete to Per Host Per Network
Chore: Used_ips filter to show deleted (network.py:106) while creating new
DHCP templated w DNSMasq (Mapped Port to IP in NSController)
Protect NSControllers from Delete during Reconsilation
Warning! : It uses Static, Hardcoded at libvirt_xml_builder.py
Implemented GPUCapableHosts Filter
Santize GPU Payload from User Input
Add Endpoint to register PCIE Devices
Seed the all regions with pcie filter of AMD and NVIDIA GPU
Previous code accessed resource.resource_type and resource.quantity which
never existed on WorkloadHostFixedResource. The correct fields are type,
model, manufacturer and physical_address, matching the model definition
and DB schema since the initial migration.
Bug introduced in 1731e2c.
VM:
Enabled Filter VM Scheduling by HasSufficientResources
Implemented to Record Resource Usage by WorkloadResourceUsage; creates new record on basis of resource_type (CPU,RAM)
Volume:
Implemented Local Volume vm spin (Fallback Local and reject other volume types for spinning vm),
Fix: hardcode to image for image backed volume in vm payload :298
Network:
Added error handle for port creation, bridge heirarchy selection (network to stored)