Modified vSphere hybrid jobs for OCP 5#77919
Conversation
WalkthroughAdds TechPreviewNoUpgrade vSphere OVN hybrid-env jobs (including serial conformance variants), adjusts existing hybrid job envs (network type), and updates periodics to reference new job names and schedules across nightly-4.22, nightly-4.23, and nightly-5.0. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ci-operator/config/openshift/release/openshift-release-main__nightly-5.0.yaml (1)
1059-1059: Spread these daily vSphere jobs across the day.Using
@dailyfor all three hybrid-env jobs will enqueue them at the same time againstvsphere-elastic. Most nearby vSphere jobs are explicitly staggered, so this is likely to create avoidable contention and flake. Please keep them daily, but assign distinct cron times.Also applies to: 1071-1071, 1084-1084
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@ci-operator/config/openshift/release/openshift-release-main__nightly-5.0.yaml` at line 1059, Several hybrid-env nightly jobs are all using cron: '@daily' and thus enqueue simultaneously against the vsphere-elastic queue; change each of the three job cron entries (the hybrid-env jobs that target vsphere-elastic) from '@daily' to distinct daily cron times (for example use three different UTC times like '0 2 * * *', '0 10 * * *', '0 18 * * *') so they remain daily but are staggered; update the cron fields for the three occurrences currently at lines with cron: '@daily' (the hybrid-env jobs) accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml`:
- Around line 284461-284489: The job declares a volumeMount named
"gcs-credentials" (mountPath "/secrets/gcs") but lacks the corresponding volume
in the job's volumes list; add a volume entry named "gcs-credentials" with a
secret backend pointing to secretName "gcs-credentials" in the same job spec
(i.e., add the volume alongside other volumes for that job so the container's
volumeMount for gcs-credentials resolves).
---
Nitpick comments:
In
`@ci-operator/config/openshift/release/openshift-release-main__nightly-5.0.yaml`:
- Line 1059: Several hybrid-env nightly jobs are all using cron: '@daily' and
thus enqueue simultaneously against the vsphere-elastic queue; change each of
the three job cron entries (the hybrid-env jobs that target vsphere-elastic)
from '@daily' to distinct daily cron times (for example use three different UTC
times like '0 2 * * *', '0 10 * * *', '0 18 * * *') so they remain daily but are
staggered; update the cron fields for the three occurrences currently at lines
with cron: '@daily' (the hybrid-env jobs) accordingly.
🪄 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: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: e3650c96-8702-4856-b931-805666708499
📒 Files selected for processing (3)
ci-operator/config/openshift/release/openshift-release-main__nightly-4.22.yamlci-operator/config/openshift/release/openshift-release-main__nightly-5.0.yamlci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml
| - agent: kubernetes | ||
| cluster: vsphere02 | ||
| cron: 49 23 * * * | ||
| decorate: true | ||
| decoration_config: | ||
| skip_cloning: true | ||
| extra_refs: | ||
| - base_ref: main | ||
| org: openshift | ||
| repo: release | ||
| labels: | ||
| ci-operator.openshift.io/cloud: vsphere | ||
| ci-operator.openshift.io/cloud-cluster-profile: vsphere-elastic | ||
| ci-operator.openshift.io/variant: nightly-5.0 | ||
| ci.openshift.io/generator: prowgen | ||
| ci.openshift.io/no-builds: "true" | ||
| job-release: "5.0" | ||
| pj-rehearse.openshift.io/can-be-rehearsed: "true" | ||
| name: periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-hybrid-env-techpreview | ||
| spec: | ||
| containers: | ||
| - args: | ||
| - --gcs-upload-secret=/secrets/gcs/service-account.json | ||
| - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson | ||
| - --lease-server-credentials-file=/etc/boskos/credentials | ||
| - --report-credentials-file=/etc/report/credentials | ||
| - --secret-dir=/secrets/ci-pull-credentials | ||
| - --target=e2e-vsphere-ovn-hybrid-env-techpreview | ||
| - --variant=nightly-5.0 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify the new techpreview job has gcs-credentials volume defined
# Search for the job and check if gcs-credentials volume exists in its spec
rg -A 100 'name: periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-hybrid-env-techpreview' ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml | head -120Repository: openshift/release
Length of output: 3222
Add missing gcs-credentials volume definition to this job.
The job has a volumeMount for gcs-credentials (referencing /secrets/gcs), but the corresponding volume is missing from the volumes section. This must be added to match the pattern used in other jobs:
- name: gcs-credentials
secret:
secretName: gcs-credentials
Without this, the pod will fail to start.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml`
around lines 284461 - 284489, The job declares a volumeMount named
"gcs-credentials" (mountPath "/secrets/gcs") but lacks the corresponding volume
in the job's volumes list; add a volume entry named "gcs-credentials" with a
secret backend pointing to secretName "gcs-credentials" in the same job spec
(i.e., add the volume alongside other volumes for that job so the container's
volumeMount for gcs-credentials resolves).
e7c5438 to
82724b8
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@ci-operator/config/openshift/release/openshift-release-main__nightly-5.0.yaml`:
- Around line 1083-1092: The nightly-5.0 UPI hybrid-env TechPreview job dropped
STORAGE_CO_DEGRADE_CHECK causing a config regression; restore
STORAGE_CO_DEGRADE_CHECK: "true" in the job's env block for the job named
e2e-vsphere-ovn-upi-hybrid-env-techpreview so the workflow step
ipi-install-vsphere-virt (which reads this variable) continues to perform
storage cluster operator degrade checks; update the env section to include
STORAGE_CO_DEGRADE_CHECK with the same value used in nightly-4.22/4.23 to match
behavior when CSI_MANAGEMENT_REMOVED is "true".
🪄 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: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 1b0496b9-8f6d-4a2b-be14-4a92ef691a71
📒 Files selected for processing (4)
ci-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/jobs/openshift/release/openshift-release-main-periodics.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
- ci-operator/config/openshift/release/openshift-release-main__nightly-4.22.yaml
- ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml
82724b8 to
4f482cb
Compare
|
[REHEARSALNOTIFIER]
Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (1)
ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml (1)
284513-284544:⚠️ Potential issue | 🔴 CriticalDuplicate:
gcs-credentialsis still missing from thenightly-5.0serial job.Same blocker as previously noted: Line 284513 mounts
gcs-credentials, but thespec.volumeslist still ends without declaring that secret. The pod will not start until the volume is added.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml` around lines 284513 - 284544, The pod mounts /secrets/gcs with volume name gcs-credentials but the spec.volumes list lacks that volume; add a volume entry under spec.volumes with name: gcs-credentials and a secret pointing to secretName: gcs-credentials so the mount has a backing secret (locate the mountPath /secrets/gcs / name: gcs-credentials and add the matching volume in the spec.volumes block).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml`:
- Around line 227072-227103: The job specs mount /secrets/gcs and pass
--gcs-upload-secret but never declare the corresponding volume; add a volumes
entry named gcs-credentials under each job's spec.volumes (matching the existing
volume style) that uses a secret with secretName: gcs-credentials and, if
needed, an items mapping to the credential key/path; update both new serial job
specs where mountPath: /secrets/gcs appears so the gcs-credentials volume is
present alongside boskos, ci-pull-credentials, manifest-tool-local-pusher,
pull-secret, and result-aggregator.
- Around line 250343-250359: The periodic job
"periodic-ci-openshift-release-main-nightly-4.23-e2e-vsphere-ovn-hybrid-env-serial-techpreview"
has cron: '@weekly' but should match the source config which declares '@daily';
update the cron field for that job from '@weekly' to '@daily' (or re-run the
prowgen/generator that produces the jobs from the nightly-4.23 config) so the
generated periodic aligns with the ci-operator config.
---
Duplicate comments:
In `@ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml`:
- Around line 284513-284544: The pod mounts /secrets/gcs with volume name
gcs-credentials but the spec.volumes list lacks that volume; add a volume entry
under spec.volumes with name: gcs-credentials and a secret pointing to
secretName: gcs-credentials so the mount has a backing secret (locate the
mountPath /secrets/gcs / name: gcs-credentials and add the matching volume in
the spec.volumes block).
🪄 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: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: b75fc003-5875-4c08-a075-18c51c246839
📒 Files selected for processing (4)
ci-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/jobs/openshift/release/openshift-release-main-periodics.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
- ci-operator/config/openshift/release/openshift-release-main__nightly-4.23.yaml
- ci-operator/config/openshift/release/openshift-release-main__nightly-4.22.yaml
| - mountPath: /secrets/gcs | ||
| name: gcs-credentials | ||
| readOnly: true | ||
| - mountPath: /secrets/manifest-tool | ||
| name: manifest-tool-local-pusher | ||
| readOnly: true | ||
| - mountPath: /etc/pull-secret | ||
| name: pull-secret | ||
| readOnly: true | ||
| - mountPath: /etc/report | ||
| name: result-aggregator | ||
| readOnly: true | ||
| serviceAccountName: ci-operator | ||
| volumes: | ||
| - name: boskos | ||
| secret: | ||
| items: | ||
| - key: credentials | ||
| path: credentials | ||
| secretName: boskos-credentials | ||
| - name: ci-pull-credentials | ||
| secret: | ||
| secretName: ci-pull-credentials | ||
| - name: manifest-tool-local-pusher | ||
| secret: | ||
| secretName: manifest-tool-local-pusher | ||
| - name: pull-secret | ||
| secret: | ||
| secretName: registry-pull-credentials | ||
| - name: result-aggregator | ||
| secret: | ||
| secretName: result-aggregator |
There was a problem hiding this comment.
Add the missing gcs-credentials volume to both new serial jobs.
Both jobs mount /secrets/gcs and pass --gcs-upload-secret, but neither spec.volumes block declares gcs-credentials. These pods will fail to start as written.
Suggested fix
- name: ci-pull-credentials
secret:
secretName: ci-pull-credentials
+ - name: gcs-credentials
+ secret:
+ secretName: gcs-credentials
- name: manifest-tool-local-pusher
secret:
secretName: manifest-tool-local-pusherApply the same addition to both job specs.
Also applies to: 250393-250424
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml`
around lines 227072 - 227103, The job specs mount /secrets/gcs and pass
--gcs-upload-secret but never declare the corresponding volume; add a volumes
entry named gcs-credentials under each job's spec.volumes (matching the existing
volume style) that uses a secret with secretName: gcs-credentials and, if
needed, an items mapping to the credential key/path; update both new serial job
specs where mountPath: /secrets/gcs appears so the gcs-credentials volume is
present alongside boskos, ci-pull-credentials, manifest-tool-local-pusher,
pull-secret, and result-aggregator.
|
/pj-rehearse periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-hybrid-env-serial-techpreview |
|
@vr4manta: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/lgtm |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dgoodwin, jcpowermac, vr4manta 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 ack |
|
@vr4manta: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/retest |
|
@vr4manta: The following test 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. |
ce4eb48
into
openshift:main
Changes
Summary by CodeRabbit