HIVE-2382: Add AWS user-provisioned DNS OTE coverage - #2933
Conversation
Port the ClusterDeployment and ClusterPool scenarios from OCP-83733 into the Hive OTE suite. The tests publish and clean up their own API and ingress DNS records, verify Hive does not create a managed DNSZone, and prove the installed clusters are reachable. Assisted-by: GPT-5
|
@bandrade: This pull request references HIVE-2382 which is a valid jira issue. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAWS Hive test coverage now supports user-provisioned DNS for ClusterDeployments and ClusterPools. Templates pass the setting, the custom DNS manager waits for Route 53 propagation, and tests verify cluster installation and access. ChangesAWS user-provisioned DNS
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant HiveTest
participant Hive
participant AWSCustomDNSManager
participant AWS
participant Route53
participant Cluster
HiveTest->>Hive: Create user-provisioned DNS ClusterDeployment or ClusterPool
Hive-->>HiveTest: Render install-config and omit dnszone
HiveTest->>AWSCustomDNSManager: Publish API and ingress records
AWSCustomDNSManager->>AWS: Find tagged load balancers
AWS-->>AWSCustomDNSManager: Return load balancer DNS names
AWSCustomDNSManager->>Route53: Upsert CNAME records
Route53-->>AWSCustomDNSManager: Confirm propagated changes
HiveTest->>Cluster: Retrieve kubeconfig and run oc get co
Cluster-->>HiveTest: Return cluster operator status
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/ote/hive/hive_aws_custom_dns.go`:
- Around line 127-150: Update awsCustomDNSManager.upsertCNAME to retain the
ChangeResourceRecordSets change ID and wait until Route 53 reports the change as
INSYNC before recording the resource and returning true. Apply the same
synchronization to the corresponding delete path, waiting for each change ID (or
using the available Route 53 waiter) before cleanup proceeds.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: b22612b3-8c56-46d6-850d-1947133f0ed2
⛔ Files ignored due to path filters (1)
test/ote/go.sumis excluded by!**/*.sum
📒 Files selected for processing (6)
test/ote/go.modtest/ote/hive/hive_aws.gotest/ote/hive/hive_aws_custom_dns.gotest/ote/hive/hive_util.gotest/ote/hive/testdata/aws-install-config.yamltest/ote/hive/testdata/clusterpool-custom-dns.yaml
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2933 +/- ##
=======================================
Coverage 50.51% 50.51%
=======================================
Files 282 282
Lines 34485 34485
=======================================
Hits 17420 17420
Misses 15707 15707
Partials 1358 1358 🚀 New features to boost your workflow:
|
|
/approve Your change did not introduce new vulns; the existing ones will be dealt with elsewhere. /override ci/prow/security (I'll need to repeat this ^ if we iterate.) Where/how are you validating this? It's not covered by any of the prow presubmits (and I don't know how to trigger a periodic with a PR included). |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: 2uasimojo, bandrade The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@2uasimojo: Overrode contexts on behalf of 2uasimojo: ci/prow/security DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@bandrade: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Wait for Route 53 changes to reach INSYNC before tests continue or cleanup completes. Assisted-by: GPT-5
|
Thanks. The validation path is:
The periodic lane is active (latest run on July 25 passed), but it does not have a presubmit variant that injects the PR branch, so the first full AWS execution of these cases is the post-merge weekly run. I also addressed the Route 53 propagation review finding in This PR intentionally establishes the two public AWS cases that previously passed OCP-83733. PrivateLink remains an open HIVE-2382 validation scenario; I am coordinating the expected custom-DNS/reachability flow before extending automation for that topology. |
Summary
userProvisionedDNS: Enabledand does not create a managedDNSZoneValidation
go test -vet=off ./hive -run "^$"fromtest/otemake -C test/ote buildmake -C test/ote -f bindata.mk verify-testdatagit diff --checkThe default
go testvet pass still reports existing non-constant-format findings elsewhere inhive_aws.goandhive_util.go; the OTE build used by CI succeeds.Summary by CodeRabbit
New Features
userProvisionedDNS(defaulting toDisabled) and optional template reference injection.Tests
Bug Fixes