Refactor telco5g PTP tests to use CI-built images#81171
Conversation
Onboard k8snetworkplumbingwg/ptp-operator and k8snetworkplumbingwg/linuxptp-daemon into OpenShift CI so that upstream-built images are available for telco5g PTP e2e tests. Both repos build from their upstream Dockerfiles (public base images) and promote to the ptp-upstream namespace, enabling the telco5g test infrastructure to deploy upstream PTP images without rebuilding from source during test execution.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (6)
✅ Files skipped from review due to trivial changes (3)
🚧 Files skipped from review as they are similar to previous changes (3)
WalkthroughThe PR adds ci-operator build and OWNERS metadata for ChangesPTP CI and test wiring
Sequence Diagram(s)sequenceDiagram
participant Script as telco5g-ptp-tests-commands.sh
participant ReleaseInfo as oc adm release info
participant OperatorRepo as ptp-operator
participant ConformanceRepo as ptp-operator-conformance-test
participant Cluster as kubectl / oc
Script->>ReleaseInfo: resolve PTP_OPERATOR_IMAGE, PTP_DAEMON_IMAGE, SIDECAR_IMG
Script->>OperatorRepo: clone branch and run make deploy
Script->>Cluster: kubectl rollout status linuxptp-daemon
Script->>ConformanceRepo: clone TEST_BRANCH
loop each TEST_MODE
Script->>ConformanceRepo: update event_output_file and run make functests
end
Script->>OperatorRepo: make undeploy
Estimated review effort🎯 4 (Complex) | ⏱️ ~45 minutes Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error, 2 warnings)
✅ Passed checks (12 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 `@ci-operator/step-registry/telco5g/ptp/tests/telco5g-ptp-tests-commands.sh`:
- Around line 14-20: Separate the `oc adm release info` lookups from the
`export` statements in `telco5g_ptp_tests_commands` so failures are not hidden
by command substitution. Assign the results to `IMG`, `DAEMON_IMG`, and
`SIDECAR_IMG` first, then export them only after each lookup succeeds, using the
existing `release_image` flow and the `oc adm release info` calls as the anchor
points.
🪄 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: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 10b5a0c6-d54d-450d-9361-e903e936ab24
⛔ Files ignored due to path filters (4)
ci-operator/jobs/k8snetworkplumbingwg/linuxptp-daemon/k8snetworkplumbingwg-linuxptp-daemon-main-postsubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/k8snetworkplumbingwg/linuxptp-daemon/k8snetworkplumbingwg-linuxptp-daemon-main-presubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/k8snetworkplumbingwg/ptp-operator/k8snetworkplumbingwg-ptp-operator-main-postsubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/k8snetworkplumbingwg/ptp-operator/k8snetworkplumbingwg-ptp-operator-main-presubmits.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (7)
ci-operator/config/k8snetworkplumbingwg/linuxptp-daemon/k8snetworkplumbingwg-linuxptp-daemon-main.yamlci-operator/config/k8snetworkplumbingwg/ptp-operator/k8snetworkplumbingwg-ptp-operator-main.yamlci-operator/config/openshift/release/openshift-release-main__nightly-4.22.yamlci-operator/config/openshift/release/openshift-release-main__nightly-4.23.yamlci-operator/config/openshift/release/openshift-release-main__nightly-5.0.yamlci-operator/step-registry/telco5g/ptp/tests/telco5g-ptp-tests-commands.shci-operator/step-registry/telco5g/ptp/tests/telco5g-ptp-tests-ref.yaml
d0a573b to
8d085af
Compare
|
/pj-rehearse periodic-ci-openshift-release-main-nightly-4.22-e2e-telco5g-ptp |
|
@edcdavid: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
8d085af to
ca1f342
Compare
|
/pj-rehearse periodic-ci-openshift-release-main-nightly-4.22-e2e-telco5g-ptp |
|
@edcdavid: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
Replace the build_images() function (~200 lines, ~12 min) that spawns a privileged pod to clone and build PTP components from source with get_ci_images() that resolves pullspecs from either the release payload (downstream) or ci-operator dependency injection (upstream). Changes: - Remove build_images() privileged pod, oc client download, and Go version setup (only needed for source builds) - Add get_ci_images() with two paths: downstream extracts images from the release payload via oc adm release info; upstream uses images injected by ci-operator dependencies - Always pass all three image overrides (IMG, LINUXPTP_DAEMON_IMAGE, SIDECAR_EVENT_IMAGE) to make deploy for both upstream and downstream - Add base_images and dependencies for upstream PTP images to the 4.22, 4.23, and 5.0 nightly configs - Declare PTP_OPERATOR_IMAGE and PTP_DAEMON_IMAGE dependencies in the telco5g-ptp-tests ref YAML - Update prow-status dashboard phase parsing to match new log anchors
ca1f342 to
78654c0
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: edcdavid 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 |
|
/pj-rehearse periodic-ci-openshift-release-main-nightly-4.22-e2e-telco5g-ptp |
|
@edcdavid: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
[REHEARSALNOTIFIER]
Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse periodic-ci-openshift-release-main-nightly-4.22-e2e-telco5g-ptp |
|
@edcdavid: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@edcdavid: The following tests failed, say
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. |
Summary
k8snetworkplumbingwg/ptp-operatorandk8snetworkplumbingwg/linuxptp-daemoninto OpenShift CI to build upstream PTP images and promote them to theptp-upstreamnamespacebuild_images()(~200 lines, ~12 min privileged pod) intelco5g-ptp-tests-commands.shwithget_ci_images()that resolves image pullspecs from either the OCP release payload (downstream) or ci-operator dependency injection (upstream)IMG,LINUXPTP_DAEMON_IMAGE,SIDECAR_EVENT_IMAGE) tomake deployfor both upstream and downstreamget_ci_imagesinstead ofbuild_images)Image sources
ptp-operatorptpcloud-event-proxyk8snetworkplumbingwg/ptp-operatork8snetworkplumbingwg/linuxptp-daemoncloud-event-proxyBootstrapping note
The upstream test (
e2e-telco5g-ptp-upstream) depends on images from theptp-upstreamimagestream, which won't be populated until the postsubmit promotion jobs run on thek8snetworkplumbingwgrepos after this PR merges. The first upstream nightly run may fail until those imagestreams bootstrap. Downstream tests are unaffected.Test plan
make updatepasses (done locally)k8snetworkplumbingwgrepos and populateptp-upstreamimagestreamSummary by CodeRabbit
This PR onboards
k8snetworkplumbingwg/ptp-operatorandk8snetworkplumbingwg/linuxptp-daemoninto OpenShift CI so their images are built and promoted for telco5g PTP testing. It updates the PTP test workflow to consume CI-built images instead of building them inline, and wires the downstream test step to use the new upstream image dependencies.Practically, this means:
ptp-operatorandlinuxptp-daemonnow have CI/operator configs that build from their repositories and promote images intoptp-upstreamget_ci_images()and passes them intomake deployThe PR also updates dashboard/log parsing to follow the new image-resolution flow.