Skip to content

Commit 88ff590

Browse files
committed
ShiftStack CI Config: migrating synchronisation tooling from merge-bot to rebasebot
- Chose to migrate only one repo as a first iteration, cloud-provider-openstack-main. - Builds rebasebot image from shiftstack fork - Reuses existing credentials from merge-bot - cron schedule changed will occur 2 hours earlier Equivalent merge-bot backup will be removed when rebasebot is verified to work successfully in this PR Signed-off-by: Daniel Lawton <dlawton@redhat.com>
1 parent b2250c6 commit 88ff590

8 files changed

Lines changed: 448 additions & 0 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
approvers:
2+
- gryf
3+
- mandre
4+
- stephenfin
5+
options: {}
6+
reviewers:
7+
- gryf
8+
- mandre
9+
- stephenfin
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
build_root:
2+
project_image:
3+
dockerfile_literal: |-
4+
FROM registry.access.redhat.com/ubi9/python-312
5+
6+
USER root
7+
8+
ENV GO_VERSION=1.24.3
9+
ENV PATH="/usr/local/go/bin:$PATH"
10+
11+
RUN dnf install -y tar gzip git make && \
12+
curl -Ls https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | \
13+
tar -C /usr/local -zxvf - go/ && \
14+
python -m pip install uv
15+
16+
# Prow expects to be able to check out a repo under /go
17+
RUN mkdir -p /go && \
18+
chown 1001:1001 /go && \
19+
chmod 755 /go
20+
21+
WORKDIR /go
22+
USER 1001:1001
23+
images:
24+
items:
25+
- dockerfile_path: Containerfile
26+
to: rebasebot
27+
resources:
28+
'*':
29+
limits:
30+
memory: 4Gi
31+
requests:
32+
cpu: 100m
33+
memory: 200Mi
34+
test_binary_build_commands: make deps
35+
tests:
36+
- as: unit
37+
commands: make unittests
38+
container:
39+
from: test-bin
40+
- as: lint
41+
commands: make lint
42+
container:
43+
from: test-bin
44+
- as: cloud-provider-openstack-main
45+
cron: 0 10 * * Mon,Thu
46+
steps:
47+
test:
48+
- as: cloud-provider-openstack-main
49+
commands: |
50+
rebasebot --source https://github.com/kubernetes/cloud-provider-openstack:release-1.35 \
51+
--dest openshift/cloud-provider-openstack:main \
52+
--rebase shiftstack/cloud-provider-openstack:rebase-bot-main \
53+
--update-go-modules \
54+
--git-username shiftstack-rebasebot \
55+
--git-email shiftstack-rebasebot@redhat.com \
56+
--github-app-key /secrets/merge-bot/github_private_key \
57+
--github-cloner-key /secrets/merge-bot/github_cloner_private_key \
58+
--slack-webhook /secrets/slack-hooks/forum-shiftstack
59+
credentials:
60+
- mount_path: /secrets/merge-bot
61+
name: shiftstack-merge-bot
62+
namespace: test-credentials
63+
- mount_path: /secrets/slack-hooks
64+
name: shiftstack-slack-hooks
65+
namespace: test-credentials
66+
from: rebasebot
67+
resources:
68+
limits:
69+
memory: 4Gi
70+
requests:
71+
cpu: 100m
72+
memory: 200Mi
73+
zz_generated_metadata:
74+
branch: main
75+
org: shiftstack
76+
repo: rebasebot
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
approvers:
2+
- gryf
3+
- mandre
4+
- stephenfin
5+
options: {}
6+
reviewers:
7+
- gryf
8+
- mandre
9+
- stephenfin
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
periodics:
2+
- agent: kubernetes
3+
cluster: build01
4+
cron: 0 10 * * Mon,Thu
5+
decorate: true
6+
decoration_config:
7+
skip_cloning: true
8+
extra_refs:
9+
- base_ref: main
10+
org: shiftstack
11+
repo: rebasebot
12+
labels:
13+
ci.openshift.io/generator: prowgen
14+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
15+
name: periodic-ci-shiftstack-rebasebot-main-cloud-provider-openstack-main
16+
spec:
17+
containers:
18+
- args:
19+
- --gcs-upload-secret=/secrets/gcs/service-account.json
20+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
21+
- --lease-server-credentials-file=/etc/boskos/credentials
22+
- --report-credentials-file=/etc/report/credentials
23+
- --target=cloud-provider-openstack-main
24+
command:
25+
- ci-operator
26+
env:
27+
- name: HTTP_SERVER_IP
28+
valueFrom:
29+
fieldRef:
30+
fieldPath: status.podIP
31+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
32+
imagePullPolicy: Always
33+
name: ""
34+
ports:
35+
- containerPort: 8080
36+
name: http
37+
resources:
38+
requests:
39+
cpu: 10m
40+
volumeMounts:
41+
- mountPath: /etc/boskos
42+
name: boskos
43+
readOnly: true
44+
- mountPath: /secrets/gcs
45+
name: gcs-credentials
46+
readOnly: true
47+
- mountPath: /secrets/manifest-tool
48+
name: manifest-tool-local-pusher
49+
readOnly: true
50+
- mountPath: /etc/pull-secret
51+
name: pull-secret
52+
readOnly: true
53+
- mountPath: /etc/report
54+
name: result-aggregator
55+
readOnly: true
56+
serviceAccountName: ci-operator
57+
volumes:
58+
- name: boskos
59+
secret:
60+
items:
61+
- key: credentials
62+
path: credentials
63+
secretName: boskos-credentials
64+
- name: manifest-tool-local-pusher
65+
secret:
66+
secretName: manifest-tool-local-pusher
67+
- name: pull-secret
68+
secret:
69+
secretName: registry-pull-credentials
70+
- name: result-aggregator
71+
secret:
72+
secretName: result-aggregator
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
presubmits:
2+
shiftstack/rebasebot:
3+
- agent: kubernetes
4+
always_run: true
5+
branches:
6+
- ^main$
7+
- ^main-
8+
cluster: build01
9+
context: ci/prow/images
10+
decorate: true
11+
decoration_config:
12+
skip_cloning: true
13+
labels:
14+
ci.openshift.io/generator: prowgen
15+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
16+
name: pull-ci-shiftstack-rebasebot-main-images
17+
rerun_command: /test images
18+
spec:
19+
containers:
20+
- args:
21+
- --gcs-upload-secret=/secrets/gcs/service-account.json
22+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
23+
- --report-credentials-file=/etc/report/credentials
24+
- --target=[images]
25+
command:
26+
- ci-operator
27+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
28+
imagePullPolicy: Always
29+
name: ""
30+
resources:
31+
requests:
32+
cpu: 10m
33+
volumeMounts:
34+
- mountPath: /secrets/gcs
35+
name: gcs-credentials
36+
readOnly: true
37+
- mountPath: /secrets/manifest-tool
38+
name: manifest-tool-local-pusher
39+
readOnly: true
40+
- mountPath: /etc/pull-secret
41+
name: pull-secret
42+
readOnly: true
43+
- mountPath: /etc/report
44+
name: result-aggregator
45+
readOnly: true
46+
serviceAccountName: ci-operator
47+
volumes:
48+
- name: manifest-tool-local-pusher
49+
secret:
50+
secretName: manifest-tool-local-pusher
51+
- name: pull-secret
52+
secret:
53+
secretName: registry-pull-credentials
54+
- name: result-aggregator
55+
secret:
56+
secretName: result-aggregator
57+
trigger: (?m)^/test( | .* )images,?($|\s.*)
58+
- agent: kubernetes
59+
always_run: true
60+
branches:
61+
- ^main$
62+
- ^main-
63+
cluster: build01
64+
context: ci/prow/lint
65+
decorate: true
66+
decoration_config:
67+
skip_cloning: true
68+
labels:
69+
ci.openshift.io/generator: prowgen
70+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
71+
name: pull-ci-shiftstack-rebasebot-main-lint
72+
rerun_command: /test lint
73+
spec:
74+
containers:
75+
- args:
76+
- --gcs-upload-secret=/secrets/gcs/service-account.json
77+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
78+
- --report-credentials-file=/etc/report/credentials
79+
- --target=lint
80+
command:
81+
- ci-operator
82+
env:
83+
- name: HTTP_SERVER_IP
84+
valueFrom:
85+
fieldRef:
86+
fieldPath: status.podIP
87+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
88+
imagePullPolicy: Always
89+
name: ""
90+
ports:
91+
- containerPort: 8080
92+
name: http
93+
resources:
94+
requests:
95+
cpu: 10m
96+
volumeMounts:
97+
- mountPath: /secrets/gcs
98+
name: gcs-credentials
99+
readOnly: true
100+
- mountPath: /secrets/manifest-tool
101+
name: manifest-tool-local-pusher
102+
readOnly: true
103+
- mountPath: /etc/pull-secret
104+
name: pull-secret
105+
readOnly: true
106+
- mountPath: /etc/report
107+
name: result-aggregator
108+
readOnly: true
109+
serviceAccountName: ci-operator
110+
volumes:
111+
- name: manifest-tool-local-pusher
112+
secret:
113+
secretName: manifest-tool-local-pusher
114+
- name: pull-secret
115+
secret:
116+
secretName: registry-pull-credentials
117+
- name: result-aggregator
118+
secret:
119+
secretName: result-aggregator
120+
trigger: (?m)^/test( | .* )lint,?($|\s.*)
121+
- agent: kubernetes
122+
always_run: true
123+
branches:
124+
- ^main$
125+
- ^main-
126+
cluster: build01
127+
context: ci/prow/unit
128+
decorate: true
129+
decoration_config:
130+
skip_cloning: true
131+
labels:
132+
ci.openshift.io/generator: prowgen
133+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
134+
name: pull-ci-shiftstack-rebasebot-main-unit
135+
rerun_command: /test unit
136+
spec:
137+
containers:
138+
- args:
139+
- --gcs-upload-secret=/secrets/gcs/service-account.json
140+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
141+
- --report-credentials-file=/etc/report/credentials
142+
- --target=unit
143+
command:
144+
- ci-operator
145+
env:
146+
- name: HTTP_SERVER_IP
147+
valueFrom:
148+
fieldRef:
149+
fieldPath: status.podIP
150+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
151+
imagePullPolicy: Always
152+
name: ""
153+
ports:
154+
- containerPort: 8080
155+
name: http
156+
resources:
157+
requests:
158+
cpu: 10m
159+
volumeMounts:
160+
- mountPath: /secrets/gcs
161+
name: gcs-credentials
162+
readOnly: true
163+
- mountPath: /secrets/manifest-tool
164+
name: manifest-tool-local-pusher
165+
readOnly: true
166+
- mountPath: /etc/pull-secret
167+
name: pull-secret
168+
readOnly: true
169+
- mountPath: /etc/report
170+
name: result-aggregator
171+
readOnly: true
172+
serviceAccountName: ci-operator
173+
volumes:
174+
- name: manifest-tool-local-pusher
175+
secret:
176+
secretName: manifest-tool-local-pusher
177+
- name: pull-secret
178+
secret:
179+
secretName: registry-pull-credentials
180+
- name: result-aggregator
181+
secret:
182+
secretName: result-aggregator
183+
trigger: (?m)^/test( | .* )unit,?($|\s.*)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
approvers:
2+
- gryf
3+
- mandre
4+
- stephenfin
5+
options: {}
6+
reviewers:
7+
- gryf
8+
- mandre
9+
- stephenfin

0 commit comments

Comments
 (0)