Skip to content

Commit eb8eb32

Browse files
step-registry: add upgrade workflows
Signed-off-by: Steve Kuznetsov <[email protected]>
1 parent 8a7eabe commit eb8eb32

File tree

12 files changed

+221
-3
lines changed

12 files changed

+221
-3
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ update:
3939
$(MAKE) jobs
4040
$(MAKE) ci-operator-config
4141
$(MAKE) prow-config
42+
$(MAKE) registry-metadata
4243

4344
release-controllers:
4445
./hack/generators/release-controllers/generate-release-controllers.py .
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
releases:
2+
initial:
3+
release:
4+
channel: stable
5+
version: "4.4"
6+
latest:
7+
candidate:
8+
product: ocp
9+
stream: ci
10+
version: "4.5"
11+
resources:
12+
'*':
13+
requests:
14+
cpu: 100m
15+
memory: 200Mi
16+
tests:
17+
- as: e2e-44-stable-to-45-ci
18+
cron: 0 */6 * * *
19+
steps:
20+
cluster_profile: aws
21+
workflow: openshift-upgrade-aws
22+
zz_generated_metadata:
23+
branch: master
24+
org: openshift
25+
repo: release
26+
variant: ocp-4.5-ci

ci-operator/jobs/openshift/release/openshift-release-master-periodics.yaml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,78 @@ periodics:
293293
- name: result-aggregator
294294
secret:
295295
secretName: result-aggregator
296+
- agent: kubernetes
297+
cluster: api.ci
298+
cron: 0 */6 * * *
299+
decorate: true
300+
decoration_config:
301+
skip_cloning: true
302+
extra_refs:
303+
- base_ref: master
304+
org: openshift
305+
repo: release
306+
labels:
307+
ci-operator.openshift.io/prowgen-controlled: "true"
308+
ci-operator.openshift.io/variant: ocp-4.5-ci
309+
job-release: "4.5"
310+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
311+
name: periodic-ci-openshift-release-master-ocp-4.5-ci-e2e-44-stable-to-45-ci
312+
spec:
313+
containers:
314+
- args:
315+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
316+
- --lease-server-password-file=/etc/boskos/password
317+
- --report-password-file=/etc/report/password.txt
318+
- --report-username=ci
319+
- --secret-dir=/secrets/ci-pull-credentials
320+
- --secret-dir=/usr/local/e2e-44-stable-to-45-ci-cluster-profile
321+
- --target=e2e-44-stable-to-45-ci
322+
- --variant=ocp-4.5-ci
323+
command:
324+
- ci-operator
325+
image: ci-operator:latest
326+
imagePullPolicy: Always
327+
name: ""
328+
resources:
329+
requests:
330+
cpu: 10m
331+
volumeMounts:
332+
- mountPath: /etc/boskos
333+
name: boskos
334+
readOnly: true
335+
- mountPath: /secrets/ci-pull-credentials
336+
name: ci-pull-credentials
337+
readOnly: true
338+
- mountPath: /usr/local/e2e-44-stable-to-45-ci-cluster-profile
339+
name: cluster-profile
340+
- mountPath: /etc/pull-secret
341+
name: pull-secret
342+
readOnly: true
343+
- mountPath: /etc/report
344+
name: result-aggregator
345+
readOnly: true
346+
serviceAccountName: ci-operator
347+
volumes:
348+
- name: boskos
349+
secret:
350+
items:
351+
- key: password
352+
path: password
353+
secretName: boskos-credentials
354+
- name: ci-pull-credentials
355+
secret:
356+
secretName: ci-pull-credentials
357+
- name: cluster-profile
358+
projected:
359+
sources:
360+
- secret:
361+
name: cluster-secrets-aws
362+
- name: pull-secret
363+
secret:
364+
secretName: regcred
365+
- name: result-aggregator
366+
secret:
367+
secretName: result-aggregator
296368
- agent: kubernetes
297369
cluster: api.ci
298370
cron: 0 0 */2 * *

ci-operator/step-registry/ipi/install/install/ipi-install-install-commands.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ set -o pipefail
66

77
trap 'CHILDREN=$(jobs -p); if test -n "${CHILDREN}"; then kill ${CHILDREN} && wait; fi' TERM
88

9-
if [[ -z "$RELEASE_IMAGE_LATEST" ]]; then
10-
echo "RELEASE_IMAGE_LATEST is an empty string, exiting"
9+
if [[ -z "$OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE" ]]; then
10+
echo "OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE is an empty string, exiting"
1111
exit 1
1212
fi
1313

14+
echo "Installing from release ${OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE}"
1415
export SSH_PRIV_KEY_PATH=${CLUSTER_PROFILE_DIR}/ssh-privatekey
1516
export PULL_SECRET_PATH=${CLUSTER_PROFILE_DIR}/pull-secret
16-
export OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE=${RELEASE_IMAGE_LATEST}
1717
export OPENSHIFT_INSTALL_INVOKER=openshift-internal-ci/${JOB_NAME}/${BUILD_ID}
1818
export HOME=/tmp
1919

ci-operator/step-registry/ipi/install/install/ipi-install-install-ref.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,10 @@ ref:
66
requests:
77
cpu: 1000m
88
memory: 2Gi
9+
dependencies:
10+
- name: "release:latest"
11+
env: OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE
12+
- name: "release:latest"
13+
env: RELEASE_IMAGE_LATEST
914
documentation: |-
1015
The IPI install step runs the OpenShift Installer in order to bring up an OpenShift cluster, using the provided cluster profile to choose a target IaaS platform. Anything that needs to be configured using manifests should generate them before this step and put them in the SHARED_DIR with the filename manifest_(manifest_name).yml so that this step can pull in the manifest in.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
approvers:
2+
- smarterclayton
3+
- wking
4+
- stevekuznetsov
5+
- vrutkovs
6+
- abhinavdahiya
7+
- deads2k
8+
- crawford
9+
- ewolinetz
10+
- csrwng
11+
- staebler
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
approvers:
2+
- smarterclayton
3+
- wking
4+
- stevekuznetsov
5+
- vrutkovs
6+
- abhinavdahiya
7+
- deads2k
8+
- crawford
9+
- ewolinetz
10+
- csrwng
11+
- staebler
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
workflow:
2+
as: ipi-upgrade-aws
3+
steps:
4+
pre:
5+
- chain: ipi-aws-pre
6+
post:
7+
- chain: ipi-aws-post
8+
dependencies:
9+
OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE: "release:initial"
10+
documentation: |-
11+
The IPI upgrade workflow provides pre- and post- steps that provision and
12+
deprovision an OpenShift cluster with a default configuration on AWS,
13+
allowing job authors to inject their own end-to-end test logic.
14+
15+
The original installation will use the initial release payload and upgrade
16+
to the latest release payload, however the configuration defines those.
17+
18+
All modifications to this workflow should be done by modifying the
19+
`ipi-aws-{pre,post}` chains to allow other workflows to mimic and extend
20+
this base workflow without a need to backport changes.

ci-operator/step-registry/metadata.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -959,6 +959,23 @@
959959
]
960960
}
961961
},
962+
"ipi-upgrade-aws-workflow.yaml": {
963+
"path": "ipi/upgrade/aws/ipi-upgrade-aws-workflow.yaml",
964+
"owners": {
965+
"approvers": [
966+
"smarterclayton",
967+
"wking",
968+
"stevekuznetsov",
969+
"vrutkovs",
970+
"abhinavdahiya",
971+
"deads2k",
972+
"crawford",
973+
"ewolinetz",
974+
"csrwng",
975+
"staebler"
976+
]
977+
}
978+
},
962979
"ipi-vsphere-post-chain.yaml": {
963980
"path": "ipi/vsphere/post/ipi-vsphere-post-chain.yaml",
964981
"owners": {
@@ -1531,6 +1548,23 @@
15311548
]
15321549
}
15331550
},
1551+
"openshift-upgrade-aws-workflow.yaml": {
1552+
"path": "openshift/upgrade/aws/openshift-upgrade-aws-workflow.yaml",
1553+
"owners": {
1554+
"approvers": [
1555+
"smarterclayton",
1556+
"wking",
1557+
"stevekuznetsov",
1558+
"vrutkovs",
1559+
"abhinavdahiya",
1560+
"deads2k",
1561+
"crawford",
1562+
"ewolinetz",
1563+
"csrwng",
1564+
"staebler"
1565+
]
1566+
}
1567+
},
15341568
"operatorhub-subscribe-ref.yaml": {
15351569
"path": "operatorhub/subscribe/operatorhub-subscribe-ref.yaml",
15361570
"owners": {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
approvers:
2+
- smarterclayton
3+
- wking
4+
- stevekuznetsov
5+
- vrutkovs
6+
- abhinavdahiya
7+
- deads2k
8+
- crawford
9+
- ewolinetz
10+
- csrwng
11+
- staebler
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
approvers:
2+
- smarterclayton
3+
- wking
4+
- stevekuznetsov
5+
- vrutkovs
6+
- abhinavdahiya
7+
- deads2k
8+
- crawford
9+
- ewolinetz
10+
- csrwng
11+
- staebler
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
workflow:
2+
as: openshift-upgrade-aws
3+
steps:
4+
pre:
5+
- chain: ipi-aws-pre
6+
test:
7+
- ref: openshift-e2e-test
8+
post:
9+
- chain: ipi-aws-post
10+
dependencies:
11+
OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE: "release:initial"
12+
env:
13+
TEST_COMMAND: "run-upgrade"
14+
TEST_SUITE: "all"
15+
documentation: |-
16+
The Openshift E2E AWS workflow executes the upgrade end-to-end test suite on AWS with a default cluster configuration, exercising an upgrade during the process.

0 commit comments

Comments
 (0)