OmniForge is the dedicated build engine for OmniCloud, specializing in building VM Helix images, container images, and developer-created applications ready for deployment to OmniCloud environments.
OmniForge provides a comprehensive build pipeline for all OmniCloud deployable assets. It operates as a distributed build system where multiple OmniForge instances can be deployed across an OmniCloud environment, pulling jobs from a central queue and reporting build status back to the OmniCloud Orchestrator cluster.
- OmniCloud Integration: Seamlessly builds all assets for deployment to OmniCloud
- Multi-Asset Building: Creates VM Helix images, container images, and compiled applications
- Distributed Build Capacity: Deploy multiple OmniForge instances to scale build capacity
- Centralized Job Queuing: Pulls jobs from OmniCloud's central build queue
- Orchestrator Reporting: Reports build status directly to OmniCloud Orchestrator cluster
- Development Environment Generation: Creates consistent development environments for OmniCloud application creation
- VM Helix Image Builder: Creates optimized virtual machine images for OmniCloud deployment
- Container Image Factory: Builds and validates container images for microservice deployments
- Application Compiler: Compiles developer applications with appropriate runtime dependencies
- OmniCloud Connector: Interfaces with OmniCloud Orchestrator for job management
- Multiple Instances: Deploy numerous OmniForge engines across OmniCloud for increased capacity
- Load Balancing: Automatic job distribution based on instance availability and capacity
- Fail-over Protection: Jobs automatically reassigned if a build instance fails
- Local Development: Simulates OmniCloud environment locally for developers
- Pre-deployment Validation: Verifies applications before submission to OmniCloud
- Configuration Testing: Tests deployment configurations before production use
The OmniForge job queue system integrates with OmniCloud Orchestrator:
- Job priority management and scheduling
- Build result reporting and logging
- Resource allocation optimization
- Failure recovery and retry mechanisms
- Node.js and NPM
- Docker
- Dev Containers CLI
- Clone the repository:
git clone https://github.com/omnicloudorg/omniforge
cd omniforge- Run the installation script:
cargo runThis will automatically:
- Check for required dependencies
- Install missing components
- Configure the development environment
OmniForge must be configured to connect to your OmniCloud Orchestrator cluster:
omni connect --orchestrator https://orchestrator.omnicloud.example.comThis registers the OmniForge instance with the OmniCloud Orchestrator and enables it to receive build jobs.
OmniForge creates specialized build outputs for different OmniCloud deployment scenarios:
# Generate a VM Helix image for OmniCloud deployment
omni build vm-helix --config configs/vm-spec.json
# Generate a container image for microservice deployment
omni build container --config configs/container-spec.jsonomni show devcontainer configThis command:
- Creates a development environment configured for OmniCloud application development
- Installs OmniCloud SDK and development tools
- Configures local testing capabilities for OmniCloud deployments
Configure connection to the OmniCloud Orchestrator in omniforge.yaml:
orchestrator:
url: https://orchestrator.omnicloud.example.com
api_key: ${OMNI_API_KEY}
build_capacity: 4 # Number of concurrent builds
job_types:
- vm-helix
- container
- applicationVM Helix build configuration example:
{
"name": "web-server-vm",
"base_image": "omnicloud-ubuntu-22.04",
"resources": {
"cpu": 2,
"memory": "4GB",
"storage": "40GB"
},
"network": {
"interfaces": 1,
"public": true
},
"packages": [
"nginx",
"certbot"
]
}omniforge/
├── src/
│ ├── builders/ # Build engines for different asset types
│ ├── queue/ # Job queue management
│ ├── orchestrator/ # OmniCloud Orchestrator client
│ └── main.rs # Main application
├── .devcontainer/ # Development container configs
└── docs/ # Documentation
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
[License Type] - see LICENSE.md for details
- Documentation: [Link to docs coming soon]
- Issue Tracker: https://github.com/orgs/OmniCloudOrg/projects/3
- Community Forum: https://github.com/omnicloudorg/discussions
- The OmniCloud Team
- Dev Containers project
- All contributors
Built with ❤️ by the OmniCloud & OmniForge Community