Skip to content
Open
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
Expand Up @@ -107,6 +107,47 @@ tests:
- ref: openshift-qe-installer-bm-day2-network-workloads-post
- ref: openshift-qe-egressip
- ref: openshift-qe-evpn
- as: daily-telco-core-6nodes
capabilities:
- intranet
cron: 0 19 * * *
reporter_config:
channel: '#ocp-qe-scale-ci-results'
job_states_to_report:
- success
- failure
- error
report_template: '{{if eq .Status.State "success"}} :white_check_mark: Job *{{.Spec.Job}}*
ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :white_check_mark:
{{else}} :warning: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View
logs> :warning: {{end}}'
restrict_network_access: false
steps:
allow_skip_on_success: true
cluster_profile: metal-perfscale-cpt
env:
CHURN_CYCLES: "2"
CHURN_PERCENT: "50"
EXTRA_FLAGS: --perf-profile=cpt-pao --gc-metrics=false --gc=true --phased=true
--idle-duration=15m
ITERATIONS: "15"
LABEL: node-role.kubernetes.io/worker-dpdk,node-role.kubernetes.io/worker-metallb
OCP_BUILD: dev
OPERATOR_SOURCE_INDEX: prega-operator-index
RUN_ORION: "true"
TELCO: "true"
post:
- ref: openshift-qe-installer-bm-gather-extra
- ref: openshift-qe-installer-bm-must-gather
test:
- ref: openshift-qe-installer-bm-day2-label
- ref: openshift-qe-installer-bm-day2-prega-operators
- ref: openshift-qe-installer-bm-day2-sriov
- ref: openshift-qe-installer-bm-day2-metallb
- ref: openshift-qe-installer-bm-day2-perf-profile-rds-core
- ref: openshift-qe-rds-core
- ref: openshift-qe-orion-rds-core
workflow: openshift-qe-installer-bm-deploy
Comment thread
sraviteja-maker marked this conversation as resolved.
zz_generated_metadata:
branch: main
org: openshift-eng
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5235,6 +5235,101 @@ periodics:
- name: result-aggregator
secret:
secretName: result-aggregator
- agent: kubernetes
cluster: build12
cron: 0 19 * * *
decorate: true
decoration_config:
skip_cloning: true
extra_refs:
- base_ref: main
org: openshift-eng
repo: ocp-perfscale
labels:
capability/intranet: intranet
ci-operator.openshift.io/cloud: metal-perfscale-cpt
ci-operator.openshift.io/cloud-cluster-profile: metal-perfscale-cpt
ci-operator.openshift.io/variant: metal-5.0-nightly-x86
ci.openshift.io/generator: prowgen
job-release: "5.0"
pj-rehearse.openshift.io/can-be-rehearsed: "true"
name: periodic-ci-openshift-eng-ocp-perfscale-main-metal-5.0-nightly-x86-daily-telco-core-6nodes
reporter_config:
slack:
channel: '#ocp-qe-scale-ci-results'
job_states_to_report:
- success
- failure
- error
report_template: '{{if eq .Status.State "success"}} :white_check_mark: Job *{{.Spec.Job}}*
ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :white_check_mark:
{{else}} :warning: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View
logs> :warning: {{end}}'
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=daily-telco-core-6nodes
- --variant=metal-5.0-nightly-x86
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: build12
cron: 30 0 * * *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,40 @@ bastion=$(cat ${CLUSTER_PROFILE_DIR}/address)
get_idms_manifest() {
echo "Getting the ImageDigestMirrorSet manifest from the PREGA build server"
QUAY_URL="https://quay.io/api/v1/repository/prega/prega-operator-index/tag/?limit=100&page=1"
OCP_VERSION=$(oc get clusterversion --no-headers | grep -o '[4].[0-9][0-9]' | head -1 | awk '{print "v"$0}')
OCP_VERSION=$(oc get clusterversion --no-headers | grep -oE '[0-9]+\.[0-9]+' | head -1 | awk '{print "v"$0}')
DIGEST=$(curl -s -H "Authorization: Bearer ${QUAY_ACCESS_TOKEN}" ${QUAY_URL} | jq -r --arg tag "$OCP_VERSION" '.tags[] | select(.name == $tag) | .manifest_digest' | head -1)
OPERATOR_PREGA_VERSION=$(curl -s -H "Authorization: Bearer ${QUAY_ACCESS_TOKEN}" ${QUAY_URL} | jq -r --arg digest "$DIGEST" --arg tag "$OCP_VERSION" '.tags[] | select(.manifest_digest == $digest and .name != $tag) | .name' | sort -u)
Comment thread
sraviteja-maker marked this conversation as resolved.
if [[ -z "${OPERATOR_PREGA_VERSION}" ]]; then
echo "OPERATOR_PREGA_VERSION could not be resolved from Quay; falling back to OCP_VERSION: ${OCP_VERSION}"
OPERATOR_PREGA_VERSION="${OCP_VERSION}"
fi
echo "PREGA Operator Version: ${OPERATOR_PREGA_VERSION} for OCP Version: ${OCP_VERSION}"
ssh ${SSH_ARGS} root@${bastion} "
set -e
set -o pipefail
curl -k -o /tmp/idms.yaml https://${PREGA_BUILD_SERVER_IP}/${OPERATOR_PREGA_VERSION}/imageDigestMirrorSet.yaml
curl -k -o /tmp/idms_${OCP_VERSION}.yaml https://${PREGA_BUILD_SERVER_IP}/${OPERATOR_PREGA_VERSION}/imageDigestMirrorSet.yaml
"
scp -q ${SSH_ARGS} root@${bastion}:/tmp/idms.yaml /tmp/idms.yaml
echo "ImageDigestMirrorSet manifest saved to /tmp/idms.yaml"
scp -q ${SSH_ARGS} root@${bastion}:/tmp/idms_${OCP_VERSION}.yaml /tmp/idms_${OCP_VERSION}.yaml

validate_yaml() {
local f="$1"
[[ -s "$f" ]] || return 1
if command -v yq &>/dev/null; then
yq eval '.apiVersion == "config.openshift.io/v1" and .kind == "ImageDigestMirrorSet"' "$f" 2>/dev/null | grep -q '^true$'
else
grep -qx 'apiVersion: config.openshift.io/v1' "$f" &&
grep -qx 'kind: ImageDigestMirrorSet' "$f"
fi
}

if ! validate_yaml /tmp/idms_${OCP_VERSION}.yaml; then
echo "Downloaded /tmp/idms_${OCP_VERSION}.yaml is not valid YAML; falling back to bastion artifact for ${OCP_VERSION}"
scp -q ${SSH_ARGS} root@${bastion}:/root/prega_artifacts/idms_${OCP_VERSION}.yaml /tmp/idms_${OCP_VERSION}.yaml
validate_yaml /tmp/idms_${OCP_VERSION}.yaml \
|| { echo "Fallback IDMS /root/prega_artifacts/idms_${OCP_VERSION}.yaml is also invalid or missing"; exit 1; }
Comment thread
sraviteja-maker marked this conversation as resolved.
fi

echo "ImageDigestMirrorSet manifest saved to /tmp/idms_${OCP_VERSION}.yaml"
}

oc config view
Expand All @@ -39,15 +62,13 @@ if [ ${OCP_BUILD} == "dev" ]; then
jq -s '.[0] * .[1]' /tmp/existing_pull_secret.json /tmp/prega_pull_secret.json > /tmp/merged_pull_secret.json
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=/tmp/merged_pull_secret.json
sleep 300
kubectl wait --for jsonpath='{.status.updatedMachineCount}'="$(oc get node --no-headers -l node-role.kubernetes.io/worker= | wc -l)" --timeout=60m mcp worker
oc adm wait-for-stable-cluster --minimum-stable-period=2m --timeout=20m
oc adm wait-for-stable-cluster --minimum-stable-period=2m --timeout=40m

echo "Applying the ImageDigestMirrorSet manifest"
get_idms_manifest
oc apply -f /tmp/idms.yaml
oc apply -f /tmp/idms_${OCP_VERSION}.yaml
sleep 300
kubectl wait --for jsonpath='{.status.updatedMachineCount}'="$(oc get node --no-headers -l node-role.kubernetes.io/worker= | wc -l)" --timeout=60m mcp worker
oc adm wait-for-stable-cluster --minimum-stable-period=2m --timeout=20m
oc adm wait-for-stable-cluster --minimum-stable-period=2m --timeout=40m

echo "Creating CatalogSource for PREGA Operator Index"
cat << EOF| oc apply -f -
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,16 @@ set -x
cat /etc/os-release

SRIOV_NUM_VFS=$(cat ${CLUSTER_PROFILE_DIR}/config | jq ".sriov_num_vfs")
SRIOV_PF_NAME=$(cat ${CLUSTER_PROFILE_DIR}/sriov_pf_name)
RHCOS_VERSION=$(oc get nodes -l node-role.kubernetes.io/worker -o jsonpath='{.items[0].status.nodeInfo.osImage}' | sed -E 's/.*CoreOS ([0-9]+)\..*/RHCOS\1/')
echo "Detected RHCOS version: ${RHCOS_VERSION}"
if [[ "${RHCOS_VERSION}" == "RHCOS10" ]]; then
SRIOV_PF_NAME=$(cat ${CLUSTER_PROFILE_DIR}/sriov_pf_name_rhcos10)
elif [[ "${RHCOS_VERSION}" == "RHCOS9" ]]; then
SRIOV_PF_NAME=$(cat ${CLUSTER_PROFILE_DIR}/sriov_pf_name_rhcos9)
Comment thread
sraviteja-maker marked this conversation as resolved.
else
echo "ERROR: Unrecognised RHCOS version '${RHCOS_VERSION}'; cannot determine SRIOV_PF_NAME" >&2
exit 1
fi
Comment thread
sraviteja-maker marked this conversation as resolved.
KERNEL_VFS_RANGE=$(cat ${CLUSTER_PROFILE_DIR}/sriov_kernel_vfs_range)
DPDK_VFS_RANGE=$(cat ${CLUSTER_PROFILE_DIR}/sriov_dpdk_vfs_range)

Expand Down