pipeline: add testing improvements for branch-based workflows
Some checks failed
Run nix flake check / flake-check (push) Has been cancelled
Some checks failed
Run nix flake check / flake-check (push) Has been cancelled
Implement dual improvements to enable efficient testing of pipeline changes without polluting master branch: 1. Add --force flag to create-host script - Skip hostname/IP uniqueness validation - Overwrite existing host configurations - Update entries in flake.nix and terraform/vms.tf (no duplicates) - Useful for iterating on configurations during testing 2. Add branch support to bootstrap mechanism - Bootstrap service reads NIXOS_FLAKE_BRANCH environment variable - Defaults to master if not set - Uses branch in git URL via ?ref= parameter - Service loads environment from /etc/environment 3. Add cloud-init disk support for branch configuration - VMs can specify flake_branch field in terraform/vms.tf - Automatically generates cloud-init snippet setting NIXOS_FLAKE_BRANCH - Uploads snippet to Proxmox via SSH - Production VMs omit flake_branch and use master 4. Update documentation - Document --force flag usage in create-host README - Add branch testing examples in terraform README - Update TODO.md with testing workflow - Add .generated/ to gitignore Testing workflow: Create feature branch, set flake_branch in VM definition, deploy with terraform, iterate with --force flag, clean up before merging. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,23 @@ python -m scripts.create_host.create_host create \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
### Force Mode (Regenerate Existing Configuration)
|
||||
|
||||
Overwrite an existing host configuration (useful for testing):
|
||||
|
||||
```bash
|
||||
python -m scripts.create_host.create_host create \
|
||||
--hostname test01 \
|
||||
--ip 10.69.13.50/24 \
|
||||
--force
|
||||
```
|
||||
|
||||
This mode:
|
||||
- Skips hostname and IP uniqueness validation
|
||||
- Overwrites files in `hosts/<hostname>/`
|
||||
- Updates existing entries in `flake.nix` and `terraform/vms.tf` (doesn't duplicate)
|
||||
- Useful for iterating on configuration templates during testing
|
||||
|
||||
### Options
|
||||
|
||||
- `--hostname` (required): Hostname for the new host
|
||||
@@ -73,6 +90,10 @@ python -m scripts.create_host.create_host create \
|
||||
|
||||
- `--dry-run` (flag): Preview changes without creating files
|
||||
|
||||
- `--force` (flag): Overwrite existing host configuration
|
||||
- Skips uniqueness validation
|
||||
- Updates existing entries instead of creating duplicates
|
||||
|
||||
## What It Does
|
||||
|
||||
The tool performs the following actions:
|
||||
|
||||
Reference in New Issue
Block a user