From 385ce26b47b833bc241b9a56404a30fbd0dbe581 Mon Sep 17 00:00:00 2001 From: Chad Ferman Date: Fri, 3 Apr 2026 18:47:42 -0500 Subject: [PATCH 1/2] docs: Add comprehensive changelog and update README badges Adds CHANGELOG.md following Keep a Changelog format with complete project history organized by date and category (Added, Changed, Fixed). Changes: - Created CHANGELOG.md with all notable changes from March-April 2026 - Updated README.md "Last Updated" badge to April 2026 - Added Changelog badge linking to CHANGELOG.md - Added Changelog to Community section - Added Changelog to Table of Contents Changelog includes: - Documentation improvements (AAP 2.6 components, validation reports, guides) - Bug fixes (YAML validation, CloudNativePG, formatting) - Features (Apache 2.0 license) - Validation status (100% AAP 2.6 compliance) Co-Authored-By: Claude Sonnet 4.5 --- CHANGELOG.md | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 5 +- 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..19533eb --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,152 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.0.0] - 2026-04-03 + +### Added + +#### Documentation - April 2026 +- **[2026-04-03]** Comprehensive AAP 2.6 components reference guide ([#36](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/36)) + - Complete deployment reference for Gateway, Controller, Hub, and EDA + - Database architecture documentation (4 databases on 1 PostgreSQL instance) + - Advanced HA configuration example with replicas and resource limits + - Verification procedures and troubleshooting guide + - Scaling guidance and resource sizing recommendations +- **[2026-04-03]** AAP 2.6 deployment validation reports ([#35](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/35)) + - Comprehensive 18-section validation report against Red Hat documentation + - Executive summary with deployment readiness checklist + - 100% compliance validation (14/14 requirements passed) + - Real deployment validation with CloudNativePG PostgreSQL cluster +- **[2026-04-03]** AAP OpenShift external DB deployment report ([#34](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/34)) + - Documented successful 10-pod deployment (Gateway, Controller, Redis) + - Environment-specific deployment insights + - Skills symlink for easier access +- **[2026-04-03]** Reorganized scripts documentation with comprehensive guides ([#33](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/33)) + - Scripts operations guide with deployment and DR workflows + - Detailed scripts library reference for all shared functions + - Scripts hooks and CI/CD integration guide +- **[2026-04-02]** HAProxy/PgBouncer architectural analysis ([#32](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/32)) + - Comprehensive routing architecture analysis for EDB PostgreSQL + - Comparison of HAProxy vs PgBouncer for AAP workloads + - Connection pooling and health check configurations + - Performance and scalability considerations +- PostgreSQL replication test reports + - Cross-cluster replication validation + - RTO/RPO measurement results + - Streaming replication verification +- Reports directory structure with README + - Organized validation and deployment reports + - Clear categorization and indexing + +#### Documentation - March 2026 +- **[2026-03-31]** Improved main README with badges, prerequisites, and community links ([#31](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/31)) + - Added status badges (License, Status, Last Updated) + - Enhanced prerequisites section with detailed requirements + - Improved quick start navigation and structure +- **[2026-03-31]** AAP 2.6 containerized DR architectures and validation ([#29](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/29)) + - Enterprise DR architecture documentation + - Containerized growth architecture patterns + - Architecture validation reports +- **[2026-03-31]** Comprehensive Quick Start Guide ([#25](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/25)) + - OpenShift deployment path (15 minutes) + - RHEL with TPA deployment path (20 minutes) + - Local CRC testing path (30 minutes) + - Prerequisites and troubleshooting sections +- **[2026-03-31]** Refactored architecture into dedicated file ([#26](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/26)) + - Moved architecture details to docs/architecture.md + - Improved documentation organization and navigation + - Enhanced diagrams and technical depth +- **[2026-03-31]** Documentation infrastructure improvements + - Comprehensive documentation index (docs/INDEX.md) + - Fixed cross-references across all documentation + - Standardized terminology for EDB Postgres on OpenShift + - Added table of contents and navigation aids +- **[2026-03-27]** Standardized namespace and cluster naming conventions + - Updated all documentation with consistent naming + - Clarified deployment architecture across datacenters + - Improved configuration examples +- **[2026-03-25]** Enhanced OpenShift/Kubernetes deployment documentation + - Improved deployment instructions and prerequisites + - Added Trusted Postgres Architect (TPA) integration guide + - Expanded troubleshooting guidance + +#### Features +- **[2026-03-31]** Added Apache 2.0 license file ([#27](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/27)) + - Added proper open-source licensing + - Included license headers guidance + +### Changed + +- **[2026-04-03]** Clarified AAP 2.6 parent CR pattern in all deployment documentation ([#35](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/35)) + - Updated to reference AnsibleAutomationPlatform parent CR instead of individual component CRs + - Added specific field paths for all four component database secrets + - Enhanced inline documentation for database connection parameters + +### Fixed + +#### Bug Fixes - March 2026 +- **[2026-03-31]** Renamed .github/README.md to WORKFLOWS.md to fix main README display ([#30](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/30)) + - GitHub was showing .github/README.md instead of root README.md + - Resolved by renaming to WORKFLOWS.md +- **[2026-03-31]** Fixed CloudNativePG operator deployment issues ([#28](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/28)) + - Resolved operator installation failures + - Fixed cluster bootstrap configuration + - Corrected storage class references +- **[2026-03-31]** Improved README formatting for better GitHub rendering ([#24](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing/pull/24)) + - Fixed Markdown rendering issues + - Improved table formatting + - Enhanced code block syntax +- **[2026-03-31]** Resolved YAML validation and Kustomize build failures + - Fixed YAML syntax errors across all manifests + - Corrected Kustomize configuration issues + - Validated all YAML files pass CI/CD checks +- **[2026-03-31]** Resolved ShellCheck warnings in all shell scripts + - Fixed quote handling and variable expansion + - Corrected shellcheck violations + - Improved script robustness +- **[2026-03-31]** Fixed YAML indentation and security scan issues + - Corrected indentation across all YAML files + - Resolved security scan findings + - Enhanced secret handling +- **[2026-03-31]** Resolved CI/CD validation failures + - Fixed GitHub Actions workflow issues + - Corrected linting and validation steps + - Ensured all checks pass + +## Validation Status + +### AAP 2.6 Compliance +- ✅ **Overall Compliance**: 100% (14/14 requirements validated) +- ✅ **Parent CR Pattern**: Correct use of AnsibleAutomationPlatform CR +- ✅ **Platform Gateway**: Properly configured with dedicated database +- ✅ **External PostgreSQL**: Four databases correctly configured +- ✅ **Operator Installation**: Correct stable-2.6 channel +- ✅ **Security**: Two-layer password validation, no hardcoded credentials + +### Infrastructure Validation +- ✅ **CloudNativePG Integration**: Verified with 2-instance cluster +- ✅ **External Database Configuration**: 4 databases on 1 PostgreSQL instance +- ✅ **Replication**: Cross-cluster streaming replication validated +- ✅ **CI/CD Pipelines**: All YAML validations passing +- ✅ **Security Scans**: All ShellCheck and security issues resolved + +### Deployment Verification +- ✅ **OpenShift Deployment**: Successfully deployed on OpenShift 4.12+ +- ✅ **Gateway**: 2 pods operational +- ✅ **Controller**: 7 pods operational (3 web, 4 task) +- ✅ **Redis**: 1 pod operational +- ✅ **PostgreSQL**: 2-instance cluster with replication + +## Links + +- [GitHub Repository](https://github.com/Red-Hat-EnterpriseDB-Testing/EDB_Testing) +- [Documentation Index](docs/INDEX.md) +- [Quick Start Guide](docs/quick-start-guide.md) +- [Contributing Guide](CONTRIBUTING.md) +- [License](LICENSE) diff --git a/README.md b/README.md index 8f25b99..ae71ca9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,8 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) ![Status](https://img.shields.io/badge/Status-Production--Ready-green) -![Last Updated](https://img.shields.io/badge/Updated-March%202026-blue) +![Last Updated](https://img.shields.io/badge/Updated-April%202026-blue) +[![Changelog](https://img.shields.io/badge/Changelog-Keep%20a%20Changelog-orange.svg)](CHANGELOG.md) > **🚀 NEW: [Quick Start Guide](docs/quick-start-guide.md)** - Deploy in 15-30 minutes > Choose your path: [OpenShift (15 min)](docs/quick-start-guide.md#quick-start-openshift-15-minutes) | [RHEL with TPA (20 min)](docs/quick-start-guide.md#quick-start-rhel-with-tpa-20-minutes) | [Local CRC (30 min)](docs/quick-start-guide.md#quick-start-local-testing-with-crc-30-minutes) @@ -15,6 +16,7 @@ - [Prerequisites](#prerequisites) - [Quick Links](#quick-links) - [Repository Structure](#repository-structure) +- [Changelog](CHANGELOG.md) ## Overview @@ -67,6 +69,7 @@ Before getting started, ensure you have: - **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions ### Community +- **[📝 Changelog](CHANGELOG.md)** - All notable changes to this project - **[Contributing Guide](CONTRIBUTING.md)** - How to contribute to this project - **[License](LICENSE)** - Apache 2.0 License From b183211331dff37911704c690ca769fb13290775 Mon Sep 17 00:00:00 2001 From: Chad Ferman Date: Fri, 10 Apr 2026 09:15:31 -0500 Subject: [PATCH 2/2] docs: Unify AAP inventory file for multi-datacenter deployment Combine separate DC1 and DC2 inventory sections (4.1, 4.2) into a single unified inventory file where all servers from both datacenters are grouped by component type. Database connection settings are now specified as DC-specific host variables. Benefits: - Simpler inventory management with single source of truth - Clearer component grouping across datacenters - Easier to maintain consistent configuration Co-Authored-By: Claude Sonnet 4.5 --- ...ontainerized-enterprise-dr-architecture.md | 145 ++++++------------ 1 file changed, 51 insertions(+), 94 deletions(-) diff --git a/docs/aap-containerized-enterprise-dr-architecture.md b/docs/aap-containerized-enterprise-dr-architecture.md index 5700cb1..3a6374f 100644 --- a/docs/aap-containerized-enterprise-dr-architecture.md +++ b/docs/aap-containerized-enterprise-dr-architecture.md @@ -506,36 +506,44 @@ user.email=ops@example.com ## 4. AAP Containerized Installer Configuration -### 4.1 AAP Inventory File (DC1) +### 4.1 AAP Unified Inventory File (Multi-Datacenter) **Based on Red Hat AAP 2.6 Container Enterprise Topology** ```ini -# /opt/aap/inventory-dc1 +# /opt/aap/inventory # Red Hat Ansible Automation Platform 2.6 - Container Enterprise Topology -# Multi-Datacenter Active/Passive Extension +# Multi-Datacenter Active/Passive Configuration -# Platform Gateway (2 VMs with colocated Redis) +# Platform Gateway (4 VMs - 2 per DC with colocated Redis) [automationgateway] gateway1-dc1.example.com gateway2-dc1.example.com +gateway1-dc2.example.com +gateway2-dc2.example.com -# Automation Controller (2 VMs - dedicated) +# Automation Controller (4 VMs - 2 per DC, dedicated) [automationcontroller] controller1-dc1.example.com controller2-dc1.example.com +controller1-dc2.example.com +controller2-dc2.example.com -# Automation Hub (2 VMs with colocated Redis) +# Automation Hub (4 VMs - 2 per DC with colocated Redis) [automationhub] hub1-dc1.example.com hub2-dc1.example.com +hub1-dc2.example.com +hub2-dc2.example.com -# Event-Driven Ansible (2 VMs with colocated Redis) +# Event-Driven Ansible (4 VMs - 2 per DC with colocated Redis) [automationeda] eda1-dc1.example.com eda2-dc1.example.com +eda1-dc2.example.com +eda2-dc2.example.com -# Redis (colocated on gateway, hub, and EDA nodes - 6 VMs total for HA) +# Redis (colocated on gateway, hub, and EDA nodes - 12 VMs total across both DCs) [redis] gateway1-dc1.example.com gateway2-dc1.example.com @@ -543,6 +551,12 @@ hub1-dc1.example.com hub2-dc1.example.com eda1-dc1.example.com eda2-dc1.example.com +gateway1-dc2.example.com +gateway2-dc2.example.com +hub1-dc2.example.com +hub2-dc2.example.com +eda1-dc2.example.com +eda2-dc2.example.com [all:vars] # Common variables @@ -558,8 +572,6 @@ redis_mode='standalone' # Use 'cluster' for Redis HA (optional) # Platform Gateway Configuration gateway_admin_password='' -gateway_pg_host='10.1.1.20' # HAProxy database router (routes to PostgreSQL VIP 10.1.2.100) -gateway_pg_port='5432' gateway_pg_database='automationgateway' gateway_pg_username='aap' gateway_pg_password='' @@ -567,108 +579,53 @@ gateway_main_url='https://aap.example.com' # Automation Controller Configuration controller_admin_password='' -controller_pg_host='10.1.1.20' # HAProxy database router -controller_pg_port='5432' controller_pg_database='awx' controller_pg_username='aap' controller_pg_password='' # Automation Hub Configuration hub_admin_password='' -hub_pg_host='10.1.1.20' # HAProxy database router -hub_pg_port='5432' hub_pg_database='automationhub' hub_pg_username='aap' hub_pg_password='' # Event-Driven Ansible Configuration eda_admin_password='' -eda_pg_host='10.1.1.20' # HAProxy database router -eda_pg_port='5432' eda_pg_database='automationedacontroller' eda_pg_username='aap' eda_pg_password='' -``` - -### 4.2 AAP Inventory File (DC2 - Standby) - -```ini -# /opt/aap/inventory-dc2 -# IMPORTANT: All AAP containers will be STOPPED after installation until failover - -# Platform Gateway (2 VMs with colocated Redis) -[automationgateway] -gateway1-dc2.example.com -gateway2-dc2.example.com - -# Automation Controller (2 VMs - dedicated) -[automationcontroller] -controller1-dc2.example.com -controller2-dc2.example.com - -# Automation Hub (2 VMs with colocated Redis) -[automationhub] -hub1-dc2.example.com -hub2-dc2.example.com -# Event-Driven Ansible (2 VMs with colocated Redis) -[automationeda] -eda1-dc2.example.com -eda2-dc2.example.com - -# Redis (colocated on gateway, hub, and EDA nodes) -[redis] -gateway1-dc2.example.com -gateway2-dc2.example.com -hub1-dc2.example.com -hub2-dc2.example.com -eda1-dc2.example.com -eda2-dc2.example.com - -[all:vars] -# Common variables (MUST MATCH DC1) -postgresql_admin_username=postgres -postgresql_admin_password='' -registry_username='' -registry_password='' -redis_mode='standalone' - -# CRITICAL: Admin passwords MUST match DC1 for seamless failover -gateway_admin_password='' -controller_admin_password='' -hub_admin_password='' -eda_admin_password='' - -# Platform Gateway (pointing to DC2 HAProxy) -gateway_pg_host='10.2.1.20' # HAProxy database router (routes to PostgreSQL VIP 10.2.2.100) -gateway_pg_port='5432' -gateway_pg_database='automationgateway' -gateway_pg_username='aap' -gateway_pg_password='' - -# Automation Controller -controller_pg_host='10.2.1.20' # HAProxy database router -controller_pg_port='5432' -controller_pg_database='awx' -controller_pg_username='aap' -controller_pg_password='' - -# Automation Hub -hub_pg_host='10.2.1.20' # HAProxy database router -hub_pg_port='5432' -hub_pg_database='automationhub' -hub_pg_username='aap' -hub_pg_password='' - -# Event-Driven Ansible -eda_pg_host='10.2.1.20' # HAProxy database router -eda_pg_port='5432' -eda_pg_database='automationedacontroller' -eda_pg_username='aap' -eda_pg_password='' +# DC1-specific host variables (pointing to DC1 HAProxy) +[automationgateway:vars] +gateway1-dc1.example.com gateway_pg_host='10.1.1.20' gateway_pg_port='5432' +gateway2-dc1.example.com gateway_pg_host='10.1.1.20' gateway_pg_port='5432' + +[automationcontroller:vars] +controller1-dc1.example.com controller_pg_host='10.1.1.20' controller_pg_port='5432' +controller2-dc1.example.com controller_pg_host='10.1.1.20' controller_pg_port='5432' + +[automationhub:vars] +hub1-dc1.example.com hub_pg_host='10.1.1.20' hub_pg_port='5432' +hub2-dc1.example.com hub_pg_host='10.1.1.20' hub_pg_port='5432' + +[automationeda:vars] +eda1-dc1.example.com eda_pg_host='10.1.1.20' eda_pg_port='5432' +eda2-dc1.example.com eda_pg_host='10.1.1.20' eda_pg_port='5432' + +# DC2-specific host variables (pointing to DC2 HAProxy) +gateway1-dc2.example.com gateway_pg_host='10.2.1.20' gateway_pg_port='5432' +gateway2-dc2.example.com gateway_pg_host='10.2.1.20' gateway_pg_port='5432' +controller1-dc2.example.com controller_pg_host='10.2.1.20' controller_pg_port='5432' +controller2-dc2.example.com controller_pg_host='10.2.1.20' controller_pg_port='5432' +hub1-dc2.example.com hub_pg_host='10.2.1.20' hub_pg_port='5432' +hub2-dc2.example.com hub_pg_host='10.2.1.20' hub_pg_port='5432' +eda1-dc2.example.com eda_pg_host='10.2.1.20' eda_pg_port='5432' +eda2-dc2.example.com eda_pg_host='10.2.1.20' eda_pg_port='5432' ``` -### 4.3 Installation Steps +> **Note:** DC2 nodes will be STOPPED after installation until failover is triggered. All admin passwords and database credentials must match between DC1 and DC2 for seamless failover. + +### 4.2 Installation Steps **DC1 Installation (Active)**