6b0402ff8b6bef04941b57818fac8ad483b997d3
Odoo's and Nextcloud's Ingress objects live in the default namespace (historical, from the original Docker->k8s migration) rather than their own app namespace like n8n/mautic/erpnext. management-platform-sa had no binding there at all. Granting the full backup ClusterRole in default would be way too broad (default also hosts unrelated live services, and that role includes secrets/pod writes) - so this adds a separate ClusterRole scoped to just ingresses get/list/watch, bound only in default. Needed for the Application Sites page fix (next commit) to read real domain/TLS state instead of guessing. Applied and verified live: can read ingresses in default, still denied secrets/pod-delete there. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017avLHFqkiti3g62Anq9sVA
CloudOps - Infrastructure Management & Disaster Recovery Platform
Overview
This repository contains the complete infrastructure code for Navitrends' backup and disaster recovery platform.
Components
- Platform: Flask web application for backup/restore management
- Scripts: Backup, restore, and sync scripts
- Docker Compose: Configuration for all 5 applications
Applications Managed
- Nextcloud (File sharing)
- Odoo (ERP/CRM)
- Frappe/ERPNext
- Mautic (Marketing automation)
- n8n (Workflow automation)
Servers
- Main Server: 173.249.20.244
- Backup VM: 192.168.152.128
Description
Languages
PHP
66.6%
JavaScript
15.8%
Twig
8.6%
CSS
4.4%
Less
2.1%
Other
2.4%