Runner staging environment
## Proposal Setup a staging environment to enable runner-specific testing. This can be used for: - deployment testing - integration testing - E2E testing ## Requirements - Similar to production, a customer-like environment - Based on reference architectures - Not used for load testing, so smallest reference architecture should be feasible - Private to runner team - Important for deployment testing - Starting point for simplicity, expand controls to allow for other testing as necessary - Configurable - Rake/db migrations to avoid unnecessary UI setup (considering) - Change any system component as necessary - Runner (required at start) - GitLab (required at start) - Gitlay - git - kubernetes - container runtimes - GET will work for initial setup, investigation required for ongoing configurability - Monitored - Standard monitoring (Prometheus, et.al.) - Testability (future) - Clear versioning reported in tests, etc. - Blocking tests reported automatically to Slack channel specific to runner devs - Automated via runner pipeline - Investigate running constantly vs spin up/down based on test needs - Start with constant - Testing required of GET reliability - Tests - Deployment-blocking - Smoke tests (integration/E2E) - Reliable tests (integration/E2E) - Gate for merging to runner master (main) - Integration (runner incept, etc) - Non-blocking - Integration - E2E ## Action items - [x] Initiate team discussion - [ ] Investigate existing issues (aggregate and close duplicates) ### Create issues for: - [x] Select GCP env and determine credentials for GET - [x] Create new 1k reference architecture using GET - [x] Setup basic monitoring (Prometheus, etc) - [ ] Investigate configurability via GET - leverage QE Performance team - determine workaround for current use if necessary ### Determine need for following issues. What do we have already? - [ ] Move CI-CD Runner project tests to this environment - Trigger based on runner repo activity - Primary: Merge to master/main - Secondary: Parameterize for MRs - [ ] Standardize on testing framework - [ ] Make accessible/adoptable to runner development team - [ ] Develop smoke/reliable tests for blocking deployments - [ ] Develop reliable tests for blocking deployment to master - [ ] Develop additional non-blocking tests to run against MRs
epic