Functional Characteristics of the Software Instance#
Exordos Core is an open-source software platform (NoOps) for automating the deployment, management, and operation of IT infrastructure and enterprise software. The platform is designed for use in local, private, public, and hybrid environments.
1. Purpose and scope#
Scope of application:
- Automation of deployment and management of virtual machines and physical servers.
- Declarative management of configurations, secrets, variables, and profiles.
- Lifecycle management of elements (applications and infrastructure components).
- Access and user permission management (IAM).
- Load balancing and DNS management.
- Deployment and update of applications in an image-based environment.
2. Functional modules#
The platform includes the following functional modules.
2.1. Compute module#
Provides creation and management of virtual machines (KVM/QEMU) and physical servers.
- Creation, configuration, and deletion of virtual machines (Node).
- Grouping of nodes into NodeSet with a target replica count (
replicas). - Image-based provisioning: compute nodes are created and updated from images; during an update, the root disk is replaced with the target image while attached volumes and network identities are preserved.
- Management of hypervisors (Hypervisor) and storage pools.
- Node placement policies (PlacementPolicy).
2.2. Storage module#
Provides creation and attachment of disk volumes (Volume) for persistent data storage.
- Creation of volumes with a specified size and type.
- Support for multiple disks per node (root disk + data disks).
- Attachment and detachment of volumes to compute nodes.
2.3. Network module#
Provides management of network resources.
- Creation and configuration of network resources.
- Management of node network connections.
- Support for routing and project network isolation.
2.4. DNS module#
Provides management of DNS resources through a built-in DNS server based on CoreDNS.
- Creation and management of DNS domains.
- Creation of DNS records of types A, NS, SOA, TXT.
- Synchronization of domains with external DNS (ecosystem DNS).
2.5. Load Balancer module#
Provides nginx-based load balancing.
- Creation and management of load balancers (LB).
- Support for virtual hosts (Vhost) with HTTP, HTTPS, TCP, UDP protocols.
- Backend pools with the
roundrobinbalancing algorithm. - Prefix-based and L4 (raw) routing.
- Support for TLS termination (HTTPS).
2.6. IAM module (Access management)#
Provides management of users, roles, and access permissions.
- "Deny by default" model — access is explicitly granted through permissions.
- Management of users (User), organizations (Organization), projects (Project).
- Roles (Role) and permission bindings (Permission Binding, Role Binding).
- Global and project-scoped role bindings.
- Token introspection for access permission verification.
- Support for wildcard permissions (
*.*.*). - User types:
user,service,anon.
2.7. Secrets module#
Provides storage and management of confidential data.
- Password management: automatic generation (
AUTO_HEX,AUTO_URL_SAFE) and manual values (MANUAL). - TLS certificate management: automatic issuance through ACME (Let's Encrypt) with DNS-01 verification via the built-in CoreDNS.
- Management of SSH keys and RSA keys.
2.8. Configs module#
Provides delivery of configuration data to compute nodes.
- Creation of configuration files with text content.
- Delivery of files to target nodes with specified path, owner, and access permissions.
- Automatic configuration update when related values change (link tracking).
- Actions on change:
no_action,shell(e.g., service restart).
2.9. Services module#
Provides management of system services on compute nodes.
- Creation and management of systemd services on nodes and NodeSet.
- Service types:
simple,oneshot,monopoly,monopoly_oneshot. - Lifecycle management: start, stop, update.
- Dependencies between services (After, Before).
2.10. Values Store module#
Provides management of variables, values, and profiles.
- Variables (Variable) with profile binding (
develop,small,medium,large,legacy). - Selector variables with value binding support.
- Values (Value) — concrete data bound to variables.
- Profiles (Profile) — sets of values for different deployment scales.
2.11. Element Manager module#
Provides installation, update, and lifecycle management of elements.
- Installation of elements from a manifest (YAML).
- Dependency resolution between elements (requirements).
- Import and export of resources between elements.
- Update of elements with state preservation.
- Deletion of elements with dependency checking.
- Continuous reconciliation of declared and actual state (reconciliation loop).
2.12. Marketplace module#
Provides public and private element catalogs.
- Discovery and installation of elements from catalogs.
- Public catalogs for element distribution.
- Private catalogs for corporate elements.
3. Technical characteristics of the instance#
3.1. System requirements (deployment host)#
| Parameter | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 24.04 / 26.04 | Ubuntu 26.04 |
| Architecture | x86_64 | x86_64 |
| CPU | 4 cores | 8+ cores |
| RAM | 8 GB | 16 GB |
| Disk (free space) | 50 GB | 100+ GB |
| Hypervisor | QEMU 8.2+, libvirt 10.0+ | QEMU 9.0+, libvirt 10.0+ |
3.2. Managed virtual machine characteristics#
| Parameter | Range |
|---|---|
| CPU per VM | from 1 to 32+ cores |
| RAM per VM | from 512 MB to 512+ GB |
| Root disk size | from 1 GB |
| Data disk size | from 1 GB |
| Node type | VM (KVM/QEMU) or HW (bare metal) |
| Maximum number of nodes | limited by hypervisor resources |
| Maximum number of NodeSets | limited by hypervisor resources |
3.3. Network characteristics#
| Parameter | Value |
|---|---|
| Platform network | 10.20.0.0/22 (default, configurable) |
| HTTP API protocols | HTTP/HTTPS |
| HTTP API authentication | Bearer token (JWT) via IAM |
| SSH access to VM | by public key |
3.4. Host software requirements#
| Component | Version |
|---|---|
| QEMU | >= 8.2 |
| libvirt | >= 10.0 |
| curl (for CLI) | any modern |
| Python (for agents) | >= 3.10 |
| systemd | any modern |
4. Functional capabilities (full list)#
- Creation, configuration, and deletion of virtual machines and physical servers.
- NodeSet creation for workload scaling with a target replica count.
- Volume management: creation, attachment, detachment.
- Management of network resources and connections.
- Management of DNS domains and records (A, NS, SOA, TXT).
- Management of load balancers (nginx-based).
- HTTP/HTTPS/TCP/UDP traffic balancing.
- Installation of elements (applications) from manifests with dependency resolution.
- Update and deletion of elements with dependency checking.
- Import and export of resources between elements.
- Centralized management of configuration files with delivery to nodes.
- Centralized management of secrets: passwords, certificates, keys.
- Automatic password generation (
AUTO_HEX,AUTO_URL_SAFE). - Automatic TLS certificate issuance through ACME (Let's Encrypt) with DNS-01.
- Management of variables, values, and profiles (Values Store).
- Scaling profiles:
develop,small,medium,large,legacy. - User, role, and access permission management (IAM).
- "Deny by default" security model.
- Global and project-scoped role bindings.
- Management of services (systemd) on nodes: creation, start, stop, update.
- Continuous reconciliation of declared and actual state (reconciliation loop).
- Tracking of linked fields (links) and automatic update of dependent resources.
- Image-based provisioning of compute nodes with root disk replacement.
- Access to the platform HTTP API for integration with external systems.
- CLI for platform management (
exordosCLI). - Discovery and installation of elements from public and private catalogs.
5. API and integration#
The platform provides an HTTP REST API for managing all resources.
| Resource | API Endpoint |
|---|---|
| MachinePool (Hypervisor) | GET/POST /v1/compute/hypervisors/ |
| Node (VM) | GET/POST /v1/compute/nodes/ |
| NodeSet | GET/POST /v1/compute/sets/ |
| Volume | GET/POST /v1/compute/volumes/ |
| Config | GET/POST /v1/config/configs/ |
| Domain | GET/POST /v1/dns/domains/ |
| LB | GET/POST /v1/network/lb/ |
| Service | GET/POST /v1/em/services/ |
| Certificate | GET/POST /v1/secret/certificates/ |
| Password | GET/POST /v1/secret/passwords/ |
| User | GET/POST /v1/iam/users/ |
| Organization | GET/POST /v1/iam/organizations/ |
| Project | GET/POST /v1/iam/projects/ |
| Role | GET/POST /v1/iam/roles/ |
| Permission | GET/POST /v1/iam/permissions/ |
| Profile | GET/POST /v1/vs/profiles/ |
| Variable | GET/POST /v1/vs/variables/ |
The full API specification is available in the documentation in OpenAPI (Swagger) format.
6. Licensing and distribution#
- License: Apache License 2.0 (open-source software).
- Distribution: through the public Exordos repository (
repo.exordos.com) and the element catalog. - Support: through GitHub Issues and email (support@exordos.com).