Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
build_root:
image_stream_tag:
name: eco-ci-cd
namespace: telcov10n-ci
tag: eco-ci-cd
releases:
latest:
candidate:
product: ocp
stream: nightly
version: "4.18"
resources:
'*':
limits:
memory: 4Gi
requests:
cpu: 100m
memory: 200Mi
tests:
- as: cnf-ran-ztp-tests
capabilities:
- intranet
cron: 0 0 31 2 *
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot May 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Cron schedule is unschedulable.

Line 23 uses 0 0 31 2 *, which never triggers (February has no 31st). This effectively disables the periodic lane.

Suggested fix
-  cron: 0 0 31 2 *
+  cron: 0 0 * * *
As per coding guidelines, "For CI configuration, edit files in `ci-operator/config///` and run `make update` to generate downstream Prow job configs".
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
cron: 0 0 31 2 *
cron: 0 0 * * *
🤖 Prompt for 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.

In
`@ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-ran-sno-day2-worker-4.18.yaml`
at line 23, The cron entry "0 0 31 2 *" in the file
openshift-kni-eco-ci-cd-main__cnf-ran-sno-day2-worker-4.18.yaml is unschedulable
(February has no 31st); replace that cron expression with a valid schedule
(e.g., a valid February date like "0 0 28 2 *" or an alternative monthly
schedule) so the periodic lane actually runs, then follow the CI config workflow
by editing the file under ci-operator/config/<org>/<repo>/ and running make
update to regenerate downstream Prow job configs.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is intentional, as we want to disable the job until the bug in the failed test is resolved upstream.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

@rdiscala, understood! Using an impossible date like 0 0 31 2 * as a "dead cron" to intentionally park a periodic job is a recognized pattern in OpenShift CI. I'll resolve my comment and note this for future reviews.


🏁 Script executed:

#!/bin/bash
# Resolve the review comment made by coderabbitai[bot] on this PR
# First, list review comments on PR `#79357` to find the comment ID
gh api repos/openshift/release/pulls/79357/comments --jq '.[] | select(.user.login == "coderabbitai[bot]") | {id: .id, body: .body[0:80]}'

Length of output: 222


🏁 Script executed:

#!/bin/bash
# Resolve the review thread for comment ID 3250363928 using GraphQL
# First, get the pull request node ID and find the review thread
gh api graphql -f query='
{
  repository(owner: "openshift", name: "release") {
    pullRequest(number: 79357) {
      reviewThreads(first: 50) {
        nodes {
          id
          isResolved
          comments(first: 1) {
            nodes {
              databaseId
              body
            }
          }
        }
      }
    }
  }
}'  --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select(.comments.nodes[0].databaseId == 3250363928) | {threadId: .id, isResolved: .isResolved}'

Length of output: 56


🏁 Script executed:

#!/bin/bash
# Resolve the review thread using GraphQL mutation
gh api graphql -f query='
mutation {
  resolveReviewThread(input: {threadId: "PRRT_kwDOBHvUUM6Cc3uz"}) {
    thread {
      id
      isResolved
    }
  }
}'

Length of output: 266


@rdiscala, I wasn't able to resolve the comment programmatically due to repository permission restrictions. Could you please resolve it manually? The learning has been saved so this pattern won't be flagged in future reviews.


✏️ Learnings added
Learnt from: rdiscala
Repo: openshift/release PR: 79357
File: ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-ran-sno-day2-worker-4.18.yaml:23-23
Timestamp: 2026-05-20T11:54:20.424Z
Learning: In OpenShift CI (openshift/release repository), using an impossible cron date such as `0 0 31 2 *` (February 31st) is an intentional pattern to effectively disable a periodic CI job without removing the configuration entirely. This is used to park a job while an upstream bug is being fixed. Do not flag this as an error during code review.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

steps:
env:
CLUSTER_NAME: kni-qe-106
CNF_GOTESTS_FEATURES: reboot
DISABLE_INSIGHTS: "true"
DISCONNECTED: "true"
DOWNSTREAM_TEST_REPO: https://gitlab.cee.redhat.com/cnf/cnf-gotests/
ECO_GOTESTS_FEATURES: gitopsztp deploymenttypes
HUB_CLUSTER: kni-qe-106
HUB_OPERATORS: |
[
{"name":"local-storage-operator","catalog":"redhat-operators","nsname":"openshift-local-storage","channel":"stable","og_name":"local-operator-group","subscription_name":"local-storage-operator","deploy_default_config":false,"ns_annotations":{"workload.openshift.io/allowed":"management"}},
{"name":"openshift-gitops-operator","catalog":"redhat-operators","nsname":"openshift-gitops-operator","channel":"latest","og_name":"openshift-gitops-operator","subscription_name":"openshift-gitops-operator","deploy_default_config":false,"og_spec":{"targetNamespaces":[]}},
{"name":"advanced-cluster-management","catalog":"redhat-operators","nsname":"open-cluster-management","channel":"release-2.13","default_channel":"release-2.16","og_name":"open-cluster-management","subscription_name":"acm-operator-subscription","deploy_default_config":false,"og_spec":{"targetNamespaces":["open-cluster-management"]}},
{"name":"multicluster-engine","catalog":"redhat-operators","nsname":"multicluster-engine","channel":"stable-2.8","default_channel":"stable-2.11","og_name":"multicluster-engine","subscription_name":"multicluster-engine","deploy_default_config":true,"og_spec":{}},
{"name":"topology-aware-lifecycle-manager","catalog":"topology-aware-lifecycle-manager-fbc","og_name":"global-operators","nsname":"openshift-operators","fbc_iib_repo":"latest","channel":"stable","deploy_default_config":false,"ocp_operator_mirror_fbc_image_base":"quay.io/redhat-user-workloads/telco-5g-tenant/topology-aware-lifecycle-manager-fbc-4-18"},
{"name":"cluster-logging","catalog":"redhat-operators","nsname":"openshift-logging","channel":"stable-6.1","default_channel":"stable-6.4","og_name":"cluster-logging","subscription_name":"cluster-logging","og_spec":{"targetNamespaces":[]}}
]
JOB_NAME: periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-sno-day2-worker-4.18-cnf-ran-ztp-tests
JOB_TYPE: "1"
MIRROR_REGISTRY: disconnected.registry.local:5000
RAN_METRICS_LIST: spoke_general_ocp,hub_general_ocp,sriov,sriov_fec,ptp,acm,talm,gitops,local_storage,logging
REPORTER_TEMPLATE_NAME: Telco 5G RAN Regression 4_18 - Telco 5G RAN Regression
- <build> - 4.18
REPORTPORTAL_FILES: .reportportal_url_Sno_Day2_Worker
REPORTS_PORTAL_ATTRIBUTES_ENV: ci-lane:telco-ft-ran-sno-day2-worker;spoke_ocp_version:4.18
SPOKE_CLUSTER: '[''kni-qe-107'']'
SPOKE_OPERATORS: |
[
{"name":"sriov-fec","catalog":"certified-operators","nsname":"vran-acceleration-operators","channel":"stable"},
{"name":"ptp-operator","catalog":"redhat-operators-ptp-art","fbc_iib_repo":"ose-ptp-rhel9-operator","nsname":"openshift-ptp","channel":"stable","ns_labels":{"workload.openshift.io/allowed":"management","name":"openshift-ptp"}},
{"name":"sriov-network-operator","catalog":"redhat-operators-sriov-art","fbc_iib_repo":"ose-sriov-network-rhel9-operator","nsname":"openshift-sriov-network-operator","channel":"stable","og_name":"sriov-network-operators","subscription_name":"sriov-network-operator-subscription"},
{"name":"cluster-logging","catalog":"redhat-operators","nsname":"openshift-logging","channel":"stable-6.1","default_channel":"stable-6.4","og_name":"cluster-logging","subscription_name":"cluster-logging","og_spec":{"targetNamespaces":[]}},
{"name":"local-storage-operator","catalog":"redhat-operators","nsname":"openshift-local-storage","channel":"stable","og_name":"local-operator-group","subscription_name":"local-storage-operator","deploy_default_config":false,"ns_labels":{"workload.openshift.io/allowed":"management"}}
]
VERSION: "4.18"
ZTP_GIT_BRANCH: sno_day2_worker
ZTP_GIT_BRANCH_DAY2_WORKER: sno_day2_worker_add_worker
ZTP_GIT_REPO: https://gitlab.cee.redhat.com/rdiscala/ztp-site-configs-ci.git
post:
- ref: telcov10n-functional-cnf-ran-report-compact
- ref: telcov10n-functional-cnf-ran-send-slack-notification
- ref: telcov10n-functional-cnf-network-trigger-job
- ref: telcov10n-verify-junit-reports
pre:
- ref: telcov10n-functional-cnf-ran-hub-deploy
- ref: telcov10n-functional-cnf-ran-hub-config
- ref: telcov10n-functional-cnf-ran-mirror-spoke-operators
- ref: telcov10n-functional-cnf-ran-deploy-spoke-sno
- ref: telcov10n-functional-cnf-ran-deploy-spoke-sno-day2-worker
test:
- ref: telcov10n-functional-cnf-ran-cnf-gotests-sno-worker
- ref: telcov10n-functional-cnf-ran-eco-gotests-sno-worker
Comment thread
rdiscala marked this conversation as resolved.
zz_generated_metadata:
branch: main
org: openshift-kni
repo: eco-ci-cd
variant: cnf-ran-sno-day2-worker-4.18
Original file line number Diff line number Diff line change
Expand Up @@ -2920,6 +2920,88 @@ periodics:
- name: result-aggregator
secret:
secretName: result-aggregator
- agent: kubernetes
cluster: build07
cron: 0 0 31 2 *
decorate: true
decoration_config:
skip_cloning: true
extra_refs:
- base_ref: main
org: openshift-kni
repo: eco-ci-cd
labels:
capability/intranet: intranet
ci-operator.openshift.io/variant: cnf-ran-sno-day2-worker-4.18
ci.openshift.io/generator: prowgen
job-release: "4.18"
pj-rehearse.openshift.io/can-be-rehearsed: "true"
name: periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-sno-day2-worker-4.18-cnf-ran-ztp-tests
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=cnf-ran-ztp-tests
- --variant=cnf-ran-sno-day2-worker-4.18
command:
- ci-operator
env:
- name: HTTP_SERVER_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
imagePullPolicy: Always
name: ""
ports:
- containerPort: 8080
name: http
resources:
requests:
cpu: 10m
volumeMounts:
- mountPath: /etc/boskos
name: boskos
readOnly: true
- mountPath: /secrets/ci-pull-credentials
name: ci-pull-credentials
readOnly: true
- 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
- agent: kubernetes
cluster: build07
cron: 0 0 31 2 *
Expand Down