-
Notifications
You must be signed in to change notification settings - Fork 9
Add appliance wizard v2.0 with ARM64 and LXC support #107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
- appliance-wizard.sh: Interactive TUI wizard for deploying Docker appliances - Automatic ARM64/x86_64 architecture detection - Wizard-based deployment directly on OpenNebula front-end - Progress indicators and proper VM state waiting - Support for Sunstone integration - generate-docker-appliance.sh: Script to generate appliance files from Docker images - Creates packer templates, appliance.sh, and context files - Multi-OS support (Debian, RHEL, SUSE families) - ARM64 native support with UEFI firmware configuration
Replace gawk (GNU awk specific) with sed for SSH configuration. This fixes build failures on AlmaLinux, Rocky Linux, and Debian 12 which may not have gawk installed by default.
1. Cleanup on build failure: - Removes appliances/<name>/ directory - Removes packer/<name>/ directory - Removes from Makefile.config SERVICES 2. Improved tests (comprehensive): - Docker installation tests - Container status tests - Port mapping verification - Environment variable checks - Volume mount validation - SSH/Console configuration tests 3. Env file support for non-interactive mode: - ./appliance-wizard.sh myapp.env - AUTO_BUILD=true for automatic builds - --help shows env file format 4. SSH config fix for Alma/Rocky/Debian: - Uses sed instead of gawk for compatibility
- Rename docs/automatic-appliance-tutorial/ -> wizard/ - Update internal path references - Add example env files for popular apps (nginx, portainer, grafana) Users can now simply: cd wizard && ./appliance-wizard.sh
…, improve SSH step
7798a17 to
1488520
Compare
- Add ghcr.io (GitHub Container Registry) support for image validation - Fix autologin setting being ignored (now respects AUTOLOGIN_ENABLED) - Add LOGIN_USERNAME and ROOT_PASSWORD support for password-based login - Improve VM failure detection with better error messages - Fix OS family detection for better distro support - Improve JSON regex matching for architecture detection
- Add DOCKER_AUTO_UPDATE option (CHECK/YES/NO) to wizard - CHECK: Notify user of updates on boot (default) - YES: Automatically update Docker image on boot - NO: Never check for updates - Add docker-appliance-update helper script for manual updates - Add ONEAPP_DOCKER_AUTO_UPDATE context variable for runtime override - Update example .env files with new option
Major update adding LXC system container support alongside Docker appliances: LXC Container Features: - Alpine Linux-based lightweight containers - Pre-configured application catalog: - Mosquitto MQTT, Node-RED, Nginx, Redis - PostgreSQL, InfluxDB, Telegraf, Grafana - Homebridge, Zigbee2MQTT, Netdata - Automatic service configuration with OpenRC init scripts - DHCP networking with optional OpenNebula context support - SSH host key generation during build - Proper SCHED_REQUIREMENTS for LXC host scheduling UI/UX Improvements: - New space-themed ASCII logo - Updated welcome screen reflecting both Docker and LXC capabilities - Fixed ANSI escape code display issues in output Technical Changes: - Version bump to 2.0.0 - Added appliance type selection step - LXC build process with Alpine minirootfs - Direct deployment to OpenNebula with oneimage/onetemplate - Privileged container support (LXC_UNPRIVILEGED=no) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
@pablodelarco Please check the attached document. I tested each OS with different options, and the appliance build failed in all cases. I tested only docker based appliances on x86_64. |
- Add marketplace submission workflow with automated file generation - Add terminal input reset function for reliable interactive prompts - Add LXC container IP detection and OpenNebula sync - Add network IP allocation and address range checks - Add memory requirements configuration per LXC application - Improve Grafana setup to listen on all interfaces
|
Thanks for the detailed testing @roamingengineer311 ! I've identified and fixed the root cause. Issue FoundThe Notice Fix AppliedCommit AUTOLOGIN_ENABLED="${AUTOLOGIN_ENABLED:-true}"
LOGIN_USERNAME="${LOGIN_USERNAME:-root}"
ROOT_PASSWORD="${ROOT_PASSWORD:-opennebula}"Note on SSH TimeoutsThe SSH timeout issues on |
The LOGIN_USERNAME, ROOT_PASSWORD, and AUTOLOGIN_ENABLED variables were not being embedded in the generated appliance.sh script, causing the chpasswd command to fail with empty username during provisioning. Error was: chpasswd: (user ) pam_chauthtok() failed This fix adds the login configuration variables to the APPLIANCE_HEADER section so they are available when configure_console_autologin() runs.
046817a to
1319fb1
Compare
|
@pablodelarco resolved Could you test this on your side? |
Appliance Creation Wizard v2.0
An interactive wizard that makes creating OpenNebula appliances simple and fast. Now supports Docker appliances and LXC system containers for both x86_64 and ARM64 architectures.
Features
Docker Appliances (KVM)
LXC System Containers (New in v2.0)
General Features
Testing Instructions
Prerequisites
Quick Start
Non-Interactive Mode
Files Changed
What to Test