Add POTE app project support and improve IP conflict detection #3

Merged
ilia merged 6 commits from add-pote-support into master 2026-01-01 11:19:54 -05:00
Owner

Summary

This PR adds comprehensive support for deploying the POTE application project via Ansible, along with improvements to IP conflict detection and a new app stack provisioning system for Proxmox-managed LXC containers.

Key Features

🆕 New Roles

  • roles/pote: Python/venv deployment role for POTE (PostgreSQL, cron jobs, Alembic migrations)
  • roles/app_setup: Generic app deployment role (Node.js/systemd)
  • roles/base_os: Base OS hardening role

🛡️ Safety Improvements

  • IP uniqueness validation within projects
  • Proxmox-side IP conflict detection
  • Enhanced error messages for IP conflicts

📦 New Playbooks

  • playbooks/app/site.yml: End-to-end app stack deployment
  • playbooks/app/provision_vms.yml: Proxmox guest provisioning
  • playbooks/app/configure_app.yml: OS + application configuration

Security

  • All secrets stored in encrypted vault.yml
  • Deploy keys excluded via .gitignore
  • No plaintext secrets committed

Testing

  • POTE successfully deployed to dev/qa/prod environments
  • All components validated (Git, PostgreSQL, cron, migrations)
## Summary This PR adds comprehensive support for deploying the **POTE** application project via Ansible, along with improvements to IP conflict detection and a new app stack provisioning system for Proxmox-managed LXC containers. ## Key Features ### 🆕 New Roles - **`roles/pote`**: Python/venv deployment role for POTE (PostgreSQL, cron jobs, Alembic migrations) - **`roles/app_setup`**: Generic app deployment role (Node.js/systemd) - **`roles/base_os`**: Base OS hardening role ### 🛡️ Safety Improvements - IP uniqueness validation within projects - Proxmox-side IP conflict detection - Enhanced error messages for IP conflicts ### 📦 New Playbooks - `playbooks/app/site.yml`: End-to-end app stack deployment - `playbooks/app/provision_vms.yml`: Proxmox guest provisioning - `playbooks/app/configure_app.yml`: OS + application configuration ## Security - ✅ All secrets stored in encrypted vault.yml - ✅ Deploy keys excluded via .gitignore - ✅ No plaintext secrets committed ## Testing - ✅ POTE successfully deployed to dev/qa/prod environments - ✅ All components validated (Git, PostgreSQL, cron, migrations)
ilia added 1 commit 2025-12-28 20:52:48 -05:00
Add POTE app project support and improve IP conflict detection
Some checks failed
CI / lint-and-test (pull_request) Failing after 1m20s
CI / ansible-validation (pull_request) Successful in 6m40s
CI / secret-scanning (pull_request) Successful in 2m36s
CI / dependency-scan (pull_request) Successful in 6m12s
CI / sast-scan (pull_request) Successful in 6m48s
CI / license-check (pull_request) Successful in 1m16s
CI / vault-check (pull_request) Failing after 6m13s
CI / playbook-test (pull_request) Successful in 6m34s
CI / container-scan (pull_request) Successful in 6m57s
CI / sonar-analysis (pull_request) Failing after 1m10s
CI / workflow-summary (pull_request) Successful in 1m11s
f5e32afd81
- Add roles/pote: Python/venv deployment role with PostgreSQL, cron jobs
- Add playbooks/app/: Proxmox app stack provisioning and configuration
- Add roles/app_setup: Generic app deployment role (Node.js/systemd)
- Add roles/base_os: Base OS hardening role
- Enhance roles/proxmox_vm: Split LXC/KVM tasks, improve error handling
- Add IP uniqueness validation: Preflight check for duplicate IPs within projects
- Add Proxmox-side IP conflict detection: Check existing LXC net0 configs
- Update inventories/production/group_vars/all/main.yml: Add pote project config
- Add vault.example.yml: Template for POTE secrets (git key, DB, SMTP)
- Update .gitignore: Exclude deploy keys, backup files, and other secrets
- Update documentation: README, role docs, execution flow guides

Security:
- All secrets stored in encrypted vault.yml (never committed in plaintext)
- Deploy keys excluded via .gitignore
- IP conflict guardrails prevent accidental duplicate IP assignments
ilia force-pushed add-pote-support from f5e32afd81 to c7a300b922 2025-12-28 20:53:49 -05:00 Compare
ilia added 1 commit 2025-12-28 21:30:01 -05:00
Update CI workflow to exclude example vault files from validation and add host variables for dev02
Some checks failed
CI / lint-and-test (pull_request) Successful in 1m21s
CI / ansible-validation (pull_request) Successful in 8m50s
CI / secret-scanning (pull_request) Successful in 2m49s
CI / dependency-scan (pull_request) Successful in 6m8s
CI / sast-scan (pull_request) Successful in 6m31s
CI / license-check (pull_request) Successful in 1m16s
CI / vault-check (pull_request) Successful in 5m34s
CI / playbook-test (pull_request) Successful in 5m33s
CI / container-scan (pull_request) Failing after 2m51s
CI / sonar-analysis (pull_request) Failing after 1m10s
CI / workflow-summary (pull_request) Successful in 1m11s
9ea1090d02
- Modify CI workflow to filter out example vault files during encryption validation
- Add new host variables for dev02, including sudo configuration and shell user settings
- Disable installation of data science stack components for dev02
ilia added 1 commit 2025-12-28 21:41:19 -05:00
Remove Node.js installation step from CI workflow
All checks were successful
CI / lint-and-test (pull_request) Successful in 1m20s
CI / ansible-validation (pull_request) Successful in 5m54s
CI / secret-scanning (pull_request) Successful in 1m39s
CI / dependency-scan (pull_request) Successful in 2m53s
CI / sast-scan (pull_request) Successful in 5m46s
CI / license-check (pull_request) Successful in 1m15s
CI / vault-check (pull_request) Successful in 5m29s
CI / playbook-test (pull_request) Successful in 5m35s
CI / container-scan (pull_request) Successful in 4m49s
CI / sonar-analysis (pull_request) Successful in 1m22s
CI / workflow-summary (pull_request) Successful in 1m11s
c84b0b8260
- Eliminate the installation of Node.js for the checkout action in the CI workflow to streamline the process and reduce unnecessary dependencies.
ilia added 1 commit 2025-12-28 23:04:44 -05:00
Add CI skip check for branch name and commit message
All checks were successful
CI / skip-ci-check (pull_request) Successful in 1m12s
CI / lint-and-test (pull_request) Has been skipped
CI / ansible-validation (pull_request) Has been skipped
CI / secret-scanning (pull_request) Has been skipped
CI / dependency-scan (pull_request) Has been skipped
CI / sast-scan (pull_request) Has been skipped
CI / license-check (pull_request) Has been skipped
CI / vault-check (pull_request) Has been skipped
CI / playbook-test (pull_request) Has been skipped
CI / container-scan (pull_request) Has been skipped
CI / sonar-analysis (pull_request) Has been skipped
CI / workflow-summary (pull_request) Successful in 1m11s
32479d03f8
- Introduce a new job in the CI workflow to determine if CI should be skipped based on specific patterns in the branch name or commit message.
- Update existing jobs to depend on the skip check, ensuring that CI processes are only executed when necessary.
- Enhance the overall efficiency of the CI pipeline by preventing unnecessary runs for certain commits.
ilia added 1 commit 2025-12-28 23:53:00 -05:00
Refactor CI skip check to use a single pattern
All checks were successful
CI / skip-ci-check (pull_request) Successful in 1m13s
CI / lint-and-test (pull_request) Has been skipped
CI / ansible-validation (pull_request) Has been skipped
CI / secret-scanning (pull_request) Has been skipped
CI / dependency-scan (pull_request) Has been skipped
CI / sast-scan (pull_request) Has been skipped
CI / license-check (pull_request) Has been skipped
CI / vault-check (pull_request) Has been skipped
CI / playbook-test (pull_request) Has been skipped
CI / container-scan (pull_request) Has been skipped
CI / sonar-analysis (pull_request) Has been skipped
CI / workflow-summary (pull_request) Successful in 1m11s
1b9b801713
- Simplify the CI workflow by consolidating the skip check for both branch names and commit messages to a single case-insensitive pattern: @skipci.
- Remove the previous multiple pattern checks to streamline the logic and improve readability.
- Ensure that the CI process can be effectively skipped based on the new pattern, enhancing overall efficiency.
ilia added 1 commit 2025-12-29 00:01:23 -05:00
Add comment to CI skip check job
All checks were successful
CI / skip-ci-check (pull_request) Successful in 1m12s
CI / lint-and-test (pull_request) Successful in 1m20s
CI / ansible-validation (pull_request) Successful in 5m49s
CI / secret-scanning (pull_request) Successful in 1m38s
CI / dependency-scan (pull_request) Successful in 2m53s
CI / sast-scan (pull_request) Successful in 5m42s
CI / license-check (pull_request) Successful in 1m16s
CI / vault-check (pull_request) Successful in 5m34s
CI / playbook-test (pull_request) Successful in 5m35s
CI / container-scan (pull_request) Successful in 4m58s
CI / sonar-analysis (pull_request) Successful in 1m21s
CI / workflow-summary (pull_request) Successful in 1m11s
572af82852
ilia force-pushed add-pote-support from 572af82852 to e1eb2d137a 2026-01-01 11:16:27 -05:00 Compare
ilia merged commit 69a39e5e5b into master 2026-01-01 11:19:54 -05:00
ilia deleted branch add-pote-support 2026-01-01 11:19:54 -05:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ilia/ansible#3
No description provided.