{"id":46691631,"url":"https://github.com/homestak-iac/iac-driver","last_synced_at":"2026-04-02T00:17:42.109Z","repository":{"id":331565721,"uuid":"1127081162","full_name":"homestak-iac/iac-driver","owner":"homestak-iac","description":"Integration test orchestration for Proxmox VE infrastructure-as-code","archived":false,"fork":false,"pushed_at":"2026-03-21T03:40:57.000Z","size":977,"stargazers_count":1,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-21T10:26:27.616Z","etag":null,"topics":["homelab","infrastructure-as-code","integration-testing","proxmox"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/homestak-iac.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-03T06:11:53.000Z","updated_at":"2026-03-21T01:42:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/homestak-iac/iac-driver","commit_stats":null,"previous_names":["homestak-dev/iac-driver","homestak-iac/iac-driver"],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/homestak-iac/iac-driver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homestak-iac%2Fiac-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homestak-iac%2Fiac-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homestak-iac%2Fiac-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homestak-iac%2Fiac-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/homestak-iac","download_url":"https://codeload.github.com/homestak-iac/iac-driver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homestak-iac%2Fiac-driver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["homelab","infrastructure-as-code","integration-testing","proxmox"],"created_at":"2026-03-09T04:08:26.091Z","updated_at":"2026-04-02T00:17:42.082Z","avatar_url":"https://github.com/homestak-iac.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iac-driver\n\nInfrastructure orchestration engine for Proxmox VE.\n\n## Overview\n\nManifest-driven orchestration that coordinates the homestak tool repositories:\n\n| Repo | Purpose |\n|------|---------|\n| [bootstrap](https://github.com/homestak/bootstrap) | Entry point - curl\\|bash setup |\n| [config](https://github.com/homestak/config) | Site-specific secrets and configuration |\n| [ansible](https://github.com/homestak-iac/ansible) | Proxmox host configuration, PVE installation |\n| [tofu](https://github.com/homestak-iac/tofu) | VM provisioning with OpenTofu |\n| [packer](https://github.com/homestak-iac/packer) | Custom Debian cloud images |\n\n## Quick Start\n\n```bash\n# Clone iac-driver and config\ngit clone https://github.com/homestak-iac/iac-driver.git\ngit clone https://github.com/homestak/config.git\n\n# Setup secrets\ncd config\nmake setup \u0026\u0026 make decrypt\n\n# Clone sibling tool repos\ncd ../iac-driver\n./scripts/setup-tools.sh\n\n# Deploy a VM and verify SSH\n./run.sh manifest test -M n1-push -H srv1\n```\n\n## CLI Usage\n\n```bash\n# Manifest commands (infrastructure lifecycle)\n./run.sh manifest apply -M \u003cmanifest\u003e -H \u003chost\u003e          # Deploy\n./run.sh manifest destroy -M \u003cmanifest\u003e -H \u003chost\u003e --yes  # Tear down\n./run.sh manifest test -M \u003cmanifest\u003e -H \u003chost\u003e           # Roundtrip test\n./run.sh manifest validate -M \u003cmanifest\u003e -H \u003chost\u003e       # Dry validate\n\n# Config commands (node self-configuration)\n./run.sh config fetch [--insecure]     # Fetch spec from server\n./run.sh config apply                  # Apply spec via ansible\n\n# Scenario commands (standalone workflows)\n./run.sh scenario run pve-setup --local     # Configure PVE host\n./run.sh scenario run user-setup --local    # Create homestak user\n\n# Preflight checks\n./run.sh --preflight --host srv1\n\n# Options\n  --dry-run        Preview without executing\n  --json-output    Structured JSON to stdout (logs to stderr)\n  --verbose        Enable debug logging\n```\n\n**Available scenarios:**\n\n| Scenario | Runtime | Description |\n|----------|---------|-------------|\n| `pve-setup` | ~3m | Install PVE (if needed), configure host, create API token |\n| `user-setup` | ~30s | Create homestak user with sudo |\n| `push-vm-roundtrip` | ~3m | Push-mode integration test |\n| `pull-vm-roundtrip` | ~5m | Pull-mode integration test |\n\n## Secrets Management\n\nCredentials are managed in the [config](https://github.com/homestak/config) repository using SOPS + age.\n\n```bash\ncd ../config\nmake setup    # Configure git hooks, check dependencies\nmake decrypt  # Decrypt secrets (requires age key)\n```\n\nSee [config README](https://github.com/homestak/config#readme) for setup instructions.\n\n## Prerequisites\n\n- [config](https://github.com/homestak/config) set up and decrypted\n- Ansible 2.15+ (via pipx), OpenTofu\n- SSH key at `~/.ssh/id_rsa`\n- Proxmox VE host with API access\n\n## Documentation\n\nSee [CLAUDE.md](CLAUDE.md) for detailed architecture, manifest schema, operator engine, server daemon, and config phase documentation.\n\n## License\n\nApache 2.0 - see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomestak-iac%2Fiac-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhomestak-iac%2Fiac-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomestak-iac%2Fiac-driver/lists"}