-
Notifications
You must be signed in to change notification settings - Fork 36
Enable parallel OpenShift E2E test execution #721
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
MCK 1.7.0 Release NotesNew Features
Bug Fixes
|
333a386 to
42f4a1c
Compare
| # OM tests are also run on the same Openshift cluster, so we use 1 max host to not | ||
| # allow the helm installations to interfere with each other during the setup of the tests. | ||
| max_hosts: 1 | ||
| max_hosts: 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this enables concurrent re-runs as well as independent retries
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but, we can't set a higher number as we are still limited by openshift
42f4a1c to
b8b4905
Compare
- Add configurable webhook name via MDB_WEBHOOK_NAME env var and operator.webhook.name helm value - Add support for MDB_OPERATOR_NAME env var to set operator.name helm value - Set namespace-unique operator and webhook names in OpenShift context files - Remove max_hosts constraint from OpenShift task group to allow parallel execution The ValidatingWebhookConfiguration name was previously hardcoded to 'mdbpolicy.mongodb.com', causing conflicts when multiple operator instances run on the same cluster. This change allows each instance to use a unique webhook name while maintaining backward compatibility (default remains 'mdbpolicy.mongodb.com' when not explicitly set).
b8b4905 to
1b2fc53
Compare
The sequential dependency was added as a workaround for webhook name conflicts between parallel OpenShift tests. PR #721 solved this by making webhook names namespace-unique, so the dependency is no longer needed.
Summary
OpenShift E2E tests were forced to run sequentially (
max_hosts: 1) because multiple operator instances on the same cluster would conflict on theValidatingWebhookConfiguration, a cluster-scoped resource with a hardcoded namemdbpolicy.mongodb.com.Changes to Enable Parallel Execution
1. Configurable Webhook Name
Why: The
ValidatingWebhookConfigurationis cluster-scoped. Multiple operators would overwrite each other.What: Made webhook name configurable via
MDB_WEBHOOK_NAMEenv var andoperator.webhook.namehelm value. OpenShift context files set namespace-unique names (e.g.,mdbpolicy.${NAMESPACE}.mongodb.com).2. Controlled Parallelism with Retries
Why: Unlimited parallelism caused pod scheduling failures due to cluster resource contention.
What: Set
max_hosts: 2per variant. Added retry mechanism via<<: *teardown_groupand removed OpenShift from retry exclusion list.Proof of Work
https://spruce.mongodb.com/version/6977bceda7da920007894d34/tasks?sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC -> were running in parallel
Checklist
skip-changeloglabel if not needed