Skip to content

[FEATURE] 5 Add Batch 3 Resources to XP-Testing Tests #177

@SatabdiG

Description

@SatabdiG

Add Batch 3 Resources to Upgrade Tests

Part of Epic: #163
Depends on: #168
Related: #165 (Resource categorization)

Context

Batches 1 and 2 cover well-tested resources with existing upgrade coverage. Batch 3 adds new resources without prior upgrade test coverage (as required by Epic #163) and complex workflows involving multiple dependencies.

Goals

  • Add new resources identified in Epic [EPIC] Implement Usage of xp-testing Feature in provider-cloudfoundry #163: OrgQuota, Route, Domain, App
  • Test complex multi-resource workflows (App + Route + Domain)
  • Validate resources with org-level scope (OrgQuota, OrgRole, OrgMembers)
  • Complete comprehensive upgrade test coverage
  • Accept longer test duration (may reach 30-40 minutes total)

Batch 3 Resources (from #165 + Epic #163)

Org-Scoped Resources:

  • OrgQuota 🆕 - References Org, may need elevated permissions
  • OrgRole - References Org + User GUID
  • OrgMembers - References Org + User GUID

Complex App Workflow:

  • Domain 🆕 - References Org (already in Batch 1, may promote here)
  • App 🆕 - References Space, complex lifecycle
  • Route 🆕 - References Space + Domain + optionally App

Total: 6 resources (4 new, 2 with existing coverage)

🆕 = New resource without prior upgrade test coverage (Epic #163 requirement)

Tasks

Prerequisites Assessment:

  • Verify permissions for OrgQuota creation/observation
  • Determine if org-level resources need separate test org
  • Obtain User GUIDs for OrgRole/OrgMembers (may reuse from Batch 2)
  • Verify Domain availability or creation permissions
  • Assess App buildpack/image requirements

CR Creation - Org Resources:

  • Create test/upgrade/crs/orgquota/orgquota.yaml (or observe pattern)
  • Create test/upgrade/crs/orgrole/orgrole.yaml
  • Create test/upgrade/crs/orgmembers/orgmembers.yaml

CR Creation - App Workflow:

  • Create test/upgrade/crs/app/app.yaml
  • Create test/upgrade/crs/route/route.yaml
  • Determine if Domain should be in Batch 1 or Batch 3

Dependency Planning:

  • Map out App → Route → Domain dependency chain
  • Document resource creation order
  • Plan cleanup order (reverse of creation)

Testing:

  • Test org-scoped resources individually
  • Test App workflow (App + Route + Domain) as unit
  • Verify all resources survive upgrade
  • Verify cleanup works in correct order
  • Monitor test duration

Documentation:

  • Update test/upgrade/README.md with Batch 3 resources
  • Document org-level permission requirements
  • Document App buildpack/image requirements
  • Document Route + Domain + App relationship
  • Add troubleshooting for complex workflows

Acceptance Criteria

Org Resources:

  • OrgQuota, OrgRole, OrgMembers added to test/upgrade/crs/
  • Resources use observe pattern if elevated permissions needed
  • Proper User GUID configuration documented

App Workflow:

  • App, Route, Domain CRs created with proper dependencies
  • Resource creation order documented
  • App uses simple buildpack or docker image (no complex build)
  • Route properly links Domain and App

Testing:

  • All Batch 3 resources pass locally: make test-upgrade
  • Test duration acceptable
  • No resource conflicts or dependency ordering issues
  • Cleanup verified for all resources (especially App and Routes)

Documentation:

  • README includes all Batch 3 resources
  • Prerequisites clearly documented
  • Complex workflows documented
  • Troubleshooting covers common Batch 3 issues

Technical Notes

Directory Structure After Batch 3:

test/upgrade/crs/
├── import/
│   └── org.yaml                      # TesterBatch
├── space/
│   └── space.yaml                    # TesterBatch
├── spacequota/                       # Batch 1
├── domain/                           # Batch 1 or 3
├── serviceinstance/                  # Batch 2
├── servicecredentialbinding/         # Batch 2
├── spacemembers/                     # Batch 2
├── orgquota/                         # Batch 3 🆕
│   └── orgquota.yaml
├── orgrole/                          # Batch 3
│   └── orgrole.yaml
├── orgmembers/                       # Batch 3
│   └── orgmembers.yaml
├── app/                              # Batch 3 🆕
│   └── app.yaml
└── route/                            # Batch 3 🆕
    └── route.yaml

Dependency Chains:

Org Resources:

Org (import/observe)
  ├── OrgQuota
  ├── OrgRole (+ User GUID)
  └── OrgMembers (+ User GUID)

App Workflow:

Org (import/observe)
  └── Space
      ├── Domain (org-scoped or space-scoped)
      ├── App
      └── Route
          ├── Domain (required)
          └── App (optional destination)

Resource Creation Order (matters!):

  1. Org (import)
  2. Space, Domain
  3. OrgQuota, OrgRole, OrgMembers
  4. App
  5. Route (last - depends on Domain + App)

Cleanup Order (reverse!):

  1. Route
  2. App
  3. OrgMembers, OrgRole, OrgQuota
  4. Domain, Space
  5. Org (import - not deleted)

Parallel Work Options:

Can be split into PRs:

  • PR 1: Org-scoped resources (OrgQuota, OrgRole, OrgMembers)
  • PR 2: App workflow (Domain, App, Route - together due to dependencies)

Success Criteria for Batch 3

This batch is complete when:

  • All 4 new resources (OrgQuota, Route, Domain, App) have upgrade test coverage
  • Epic [EPIC] Implement Usage of xp-testing Feature in provider-cloudfoundry #163 requirement satisfied (new resources tested)
  • Complex App workflow validated through upgrade
  • Org-scoped resources tested
  • Full upgrade test suite runs reliably in CI
  • Test duration acceptable for regular CI runs
  • Comprehensive troubleshooting documentation

Definition of Done

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    CFCF Provider

    Type

    Projects

    Status

    Sprint Scope

    Status

    Validation

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions