Plan and implement this repository's deployment platform workflow across provisioning (Terraform/cloud-init), host bootstrap, and project orchestration (Ansible + deployment-project catalog). Use when requests mention libvirt/QEMU, Proxmox, Ubuntu cloud images, fixed IPs, SSH bootstrap, Docker installation, deployment-project manifests, Traefik app stacks, or StepCA/Keycloak integration.
Implement provisioning and project deployment with clear boundaries.
terraform + cloud-init + shell scripts for VM provisioning and host readiness.ansible + project manifests + make deployment-project for stack deployment.cloud-init for bootstrap prerequisites: hostname, user, SSH keys, fixed network config, and minimal packages.cloud-init payloads) so it stays easy to iterate.name, hostname)ip, cidr, gateway, dns_servers)ssh_user, ssh_public_key)ubuntu_image, optional checksum/source)libvirt: pool/network/volume specificsproxmox: API endpoint, node, datastore/bridge, token authinfra/terraform/modules/vm-base/infra/terraform/targets/libvirt/infra/terraform/targets/proxmox/infra/cloud-init/user-data.yaml.tftplinfra/cloud-init/network-config.yaml.tftpl (if separate template is needed)deployment/scripts/infra-provision.shdeployment/scripts/host-bootstrap.shdeployment/scripts/host-bootstrap-check.shdeployment/ansible/roles/*deployment/ansible/playbooks/system_bootstrap.ymldeployment/projects/<project-id>/terraform output -json host metadata for downstream automation.deployment-project, catalog, manifest validation, dependency guardrails).libvirt locally first, proxmox second), then validate project wiring.make deployment-project and make deployment-project-list as primary operator entrypoints.id, description, repo_url, repo_ref, compose_profile, services, deploy_playbook, required_env, tls_mode, optional public_host, optional depends_on_projects).tls_mode.<project-id>.<BASE_DOMAIN>, optional override via public_host.depends_on_projects) before compose apply when required by project contract.terraform validate, terraform fmt -check, and smoke checks over manual inspection only.json or simple inventory template) for Ansible handoff stages.