Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split prow config #891

Merged
merged 4 commits into from
Nov 7, 2024
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
12 changes: 12 additions & 0 deletions prow/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,18 @@ You may also have to create a keypair with the Metal3 CI ssh key.
kubectl apply -k manifests/overlays/metal3
```

1. Create config (updated automatically by prow after this)

```bash
kubectl -n prow create configmap config --from-file=config/config.yaml
kubectl -n prow create configmap plugins --from-file=config/plugins.yaml
kubectl -n prow create configmap label-config --from-file=config/labels.yaml
kubectl -n prow create configmap job-config \
--from-file=config/jobs/metal3-io \
--from-file=config/jobs/Nordix \
--from-file=config/jobs
Comment on lines +451 to +454
Copy link
Member Author

Choose a reason for hiding this comment

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

This is a bit error prone, since we need to remember to add new folders. On the other hand, prow will autoupdate the configmap as long as the config updater is there in the plugins.yaml. This means that as long as we create some configmap here that prow can mount, it will happily sync with folders we forgot on the first reconcile.

```

## Enabling Metal3 prow for new org/repo

Metal3 prow is currently working with two Github organizations(orgs):
Expand Down
136 changes: 136 additions & 0 deletions prow/config/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
prowjob_namespace: prow
pod_namespace: test-pods
log_level: debug

# Sinker configurations (for cleanup)
sinker:
resync_period: 1m
max_prowjob_age: 24h
max_pod_age: 30m
terminated_pod_ttl: 2h

plank:
job_url_prefix_config:
"*": https://prow.apps.test.metal3.io/view/
report_templates:
"*": >-
[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org={{.Spec.Refs.Org}}&repo={{.Spec.Refs.Repo}}&pr={{with index .Spec.Refs.Pulls 0}}{{.Number}}{{end}}). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:{{with index .Spec.Refs.Pulls 0}}{{.Author}}{{end}}).
default_decoration_configs:
"*":
gcs_configuration:
bucket: s3://prow-logs
path_strategy: explicit
s3_credentials_secret: s3-credentials
utility_images:
clonerefs: gcr.io/k8s-prow/clonerefs:v20240730-12bb925b4
entrypoint: gcr.io/k8s-prow/entrypoint:v20240730-12bb925b4
initupload: gcr.io/k8s-prow/initupload:v20240730-12bb925b4
sidecar: gcr.io/k8s-prow/sidecar:v20240730-12bb925b4
resources:
clonerefs:
requests:
cpu: 10m
memory: 10Mi
initupload:
requests:
cpu: 10m
memory: 10Mi
place_entrypoint:
requests:
cpu: 10m
memory: 10Mi
sidecar:
requests:
cpu: 10m
memory: 10Mi

tide:
merge_method:
metal3-io: merge
Nordix/metal3-dev-tools: rebase
Nordix/metal3-clusterapi-docs: rebase
Nordix/sles-ironic-python-agent-builder: rebase
queries:
- repos:
- metal3-io/.github
- metal3-io/baremetal-operator
- metal3-io/cluster-api-provider-metal3
- metal3-io/community
- metal3-io/ip-address-manager
- metal3-io/ironic-client
- metal3-io/ironic-hardware-inventory-recorder-image
- metal3-io/ironic-image
- metal3-io/ironic-agent-image
- metal3-io/ironic-ipa-downloader
- metal3-io/ironic-standalone-operator
- metal3-io/mariadb-image
- metal3-io/metal3-dev-env
- metal3-io/metal3-docs
- metal3-io/metal3-io.github.io
- metal3-io/project-infra
- metal3-io/utility-images
- Nordix/metal3-dev-tools
- Nordix/metal3-clusterapi-docs
- Nordix/sles-ironic-python-agent-builder
labels:
- lgtm
- approved
missingLabels:
- needs-rebase
- do-not-merge
- do-not-merge/hold
- do-not-merge/invalid-owners-file
- do-not-merge/work-in-progress
context_options:
# Use branch protection options to define required and optional contexts
from-branch-protection: true

#
# Use prow to manage the configuration of github branch protection.
# This is what controls which github status checks (or CI jobs) must
# be passing for a PR to merge.
#
# Docs: https://github.com/kubernetes/test-infra/tree/master/prow/cmd/branchprotector
#
branch-protection:
orgs:
Nordix:
# Require "always_run: true" jobs to pass before merging.
# To turn this off for a given job, set "optional: true"
# in the job definition.
protect: true
metal3-io:
# Require "always_run: true" jobs to pass before merging.
# To turn this off for a given job, set "optional: true"
# in the job definition.
protect: true

deck:
spyglass:
size_limit: 500000000 # 500MB
lenses:
- lens:
name: metadata
required_files:
- started.json|finished.json
- lens:
config:
name: buildlog
required_files:
- build-log.txt
- lens:
name: junit
required_files:
- .*/junit.*\.xml
- lens:
name: podinfo
required_files:
- podinfo.json
external_agent_logs:
- agent: jenkins
url_template: "http://jenkins-operator/job/{{.Spec.Job}}/{{.Status.JenkinsBuildID}}/consoleText"

jenkins_operators:
- max_concurrency: 150
max_goroutines: 20
job_url_template: "https://jenkins.nordix.org/view/Metal3/job/{{.Spec.Job}}/{{.Status.JenkinsBuildID}}/"
30 changes: 30 additions & 0 deletions prow/config/jobs/Nordix/metal3-clusterapi-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
presubmits:
Nordix/metal3-clusterapi-docs:
- name: shellcheck
run_if_changed: '((\.sh)|^Makefile)$'
decorate: true
spec:
containers:
- args:
- ./hack/shellcheck.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/koalaman/shellcheck-alpine:v0.10.0@sha256:5921d946dac740cbeec2fb1c898747b6105e585130cc7f0602eec9a10f7ddb63
imagePullPolicy: Always
- name: markdownlint
run_if_changed: '(\.md|markdownlint\.sh)$'
decorate: true
spec:
containers:
- args:
- ./hack/markdownlint.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/pipelinecomponents/markdownlint-cli2:0.12.0@sha256:a3977fba9814f10d33a1d69ae607dc808e7a6470b2ba03e84c17193c0791aac0
imagePullPolicy: Always
30 changes: 30 additions & 0 deletions prow/config/jobs/Nordix/metal3-dev-tools.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
presubmits:
Nordix/metal3-dev-tools:
- name: shellcheck
run_if_changed: '((\.sh)|^Makefile)$'
decorate: true
spec:
containers:
- args:
- ./scripts/shellcheck.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/koalaman/shellcheck-alpine:v0.10.0@sha256:5921d946dac740cbeec2fb1c898747b6105e585130cc7f0602eec9a10f7ddb63
imagePullPolicy: Always
- name: markdownlint
run_if_changed: '(\.md|markdownlint\.sh)$'
decorate: true
spec:
containers:
- args:
- ./hack/markdownlint.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/pipelinecomponents/markdownlint-cli2:0.12.0@sha256:a3977fba9814f10d33a1d69ae607dc808e7a6470b2ba03e84c17193c0791aac0
imagePullPolicy: Always
30 changes: 30 additions & 0 deletions prow/config/jobs/Nordix/sles-ironic-python-agent-builder.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
presubmits:
Nordix/sles-ironic-python-agent-builder:
- name: shellcheck
run_if_changed: '((\.sh)|^Makefile)$'
decorate: true
spec:
containers:
- args:
- ./hack/shellcheck.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/koalaman/shellcheck-alpine:v0.10.0@sha256:5921d946dac740cbeec2fb1c898747b6105e585130cc7f0602eec9a10f7ddb63
imagePullPolicy: Always
- name: markdownlint
run_if_changed: '(\.md|markdownlint\.sh)$'
decorate: true
spec:
containers:
- args:
- ./hack/markdownlint.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/pipelinecomponents/markdownlint-cli2:0.12.0@sha256:a3977fba9814f10d33a1d69ae607dc808e7a6470b2ba03e84c17193c0791aac0
imagePullPolicy: Always
102 changes: 102 additions & 0 deletions prow/config/jobs/metal3-io/baremetal-operator-release-0.5.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
presubmits:
metal3-io/baremetal-operator:
- name: markdownlint
branches:
- release-0.5
run_if_changed: '(\.md|markdownlint\.sh)$'
decorate: true
spec:
containers:
- args:
- ./hack/markdownlint.sh
command:
- sh
env:
- name: IS_CONTAINER
value: "TRUE"
image: docker.io/pipelinecomponents/markdownlint:0.13.0@sha256:9c0cdfb64fd3f1d3bdc5181629b39c2e43b6a52fc9fdc146611e1860845bbae0
imagePullPolicy: Always
- name: metal3-centos-e2e-basic-test-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-ubuntu-e2e-basic-test-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-centos-e2e-integration-test-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-ubuntu-e2e-integration-test-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-centos-e2e-feature-test-release-1-6-pivoting
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-centos-e2e-feature-test-release-1-6-remediation
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-centos-e2e-feature-test-release-1-6-features
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-ubuntu-e2e-feature-test-release-1-6-pivoting
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-ubuntu-e2e-feature-test-release-1-6-remediation
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-ubuntu-e2e-feature-test-release-1-6-features
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-e2e-clusterctl-upgrade-test-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-e2e-1-28-1-29-upgrade-test-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-dev-env-integration-test-centos-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
- name: metal3-dev-env-integration-test-ubuntu-release-1-6
branches:
- release-0.5
agent: jenkins
always_run: false
optional: true
Loading