aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/kernel-disk
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-05-19 15:10:12 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-05-21 15:29:32 +0000
commit3d44fbce238dd0a3c3520364695d0c62f237225d (patch)
treeaf8a739b429dc11cb4dd159125f0ff9060e6916d /syz-cluster/kernel-disk
parent351f479562d9d7868be8bb644f30bf047767c828 (diff)
syz-cluster: use kubectl for one-off fetch kernels run
Refactor the cron job that pulls the base kernels once in a while to enable its manual triggering without installing the Argo CLI utility.
Diffstat (limited to 'syz-cluster/kernel-disk')
-rw-r--r--syz-cluster/kernel-disk/fetch-kernels-cron.yaml64
-rw-r--r--syz-cluster/kernel-disk/fetch-kernels-once.yaml10
-rw-r--r--syz-cluster/kernel-disk/fetch-kernels-template.yaml70
-rw-r--r--syz-cluster/kernel-disk/kustomization.yaml1
4 files changed, 83 insertions, 62 deletions
diff --git a/syz-cluster/kernel-disk/fetch-kernels-cron.yaml b/syz-cluster/kernel-disk/fetch-kernels-cron.yaml
index 640bb0f38..b5d1b956b 100644
--- a/syz-cluster/kernel-disk/fetch-kernels-cron.yaml
+++ b/syz-cluster/kernel-disk/fetch-kernels-cron.yaml
@@ -11,65 +11,5 @@ spec:
concurrencyPolicy: "Replace"
startingDeadlineSeconds: 0
workflowSpec:
- entrypoint: main
- podMetadata:
- labels:
- tier: workflow
- serviceAccountName: argo-executor-ksa
- templates:
- - name: main
- parallelism: 1
- steps:
- - - name: query-trees
- template: query-trees-template
- - - name: iterate-trees
- template: process-tree
- arguments:
- parameters:
- - name: tree
- value: "{{item}}"
- withParam: "{{=jsonpath(steps['query-trees'].outputs.result, '$.trees')}}"
- continueOn:
- failed: true
- - name: query-trees-template
- http:
- url: "http://controller-service:8080/trees"
- method: "GET"
- - name: process-tree
- inputs:
- parameters:
- - name: tree
- volumes:
- - name: git-repo
- persistentVolumeClaim:
- claimName: base-kernel-repo-pv-claim
- container:
- image: alpine/git:latest
- imagePullPolicy: IfNotPresent
- volumeMounts:
- - name: git-repo
- mountPath: /repo.git
- resources:
- requests:
- cpu: 4
- memory: 8G
- limits:
- cpu: 8
- memory: 16G
- command:
- - "/bin/sh"
- - "-c"
- - |
- cd /repo.git
- if [ ! -d "refs" ]; then
- git init --bare
- fi
- NAME="{{=jsonpath(inputs.parameters.tree, '$.name')}}"
- REPO="{{=jsonpath(inputs.parameters.tree, '$.URL')}}"
- BRANCH="{{=jsonpath(inputs.parameters.tree, '$.branch')}}"
- echo "${NAME}: ${REPO}/${BRANCH}"
- if ! git config --get remote.${NAME}.url > /dev/null; then
- git remote add ${NAME} ${REPO}
- fi
- git fetch ${NAME} ${BRANCH} --tags
- git tag -f ${NAME}-head ${NAME}/${BRANCH}
+ workflowTemplateRef:
+ name: fetch-kernels-workflow-template
diff --git a/syz-cluster/kernel-disk/fetch-kernels-once.yaml b/syz-cluster/kernel-disk/fetch-kernels-once.yaml
new file mode 100644
index 000000000..1bef9e681
--- /dev/null
+++ b/syz-cluster/kernel-disk/fetch-kernels-once.yaml
@@ -0,0 +1,10 @@
+# Copyright 2025 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+apiVersion: argoproj.io/v1alpha1
+kind: Workflow
+metadata:
+ generateName: fetch-kernels-manual-
+spec:
+ workflowTemplateRef:
+ name: fetch-kernels-workflow-template
diff --git a/syz-cluster/kernel-disk/fetch-kernels-template.yaml b/syz-cluster/kernel-disk/fetch-kernels-template.yaml
new file mode 100644
index 000000000..4f485708b
--- /dev/null
+++ b/syz-cluster/kernel-disk/fetch-kernels-template.yaml
@@ -0,0 +1,70 @@
+# Copyright 2025 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+apiVersion: argoproj.io/v1alpha1
+kind: WorkflowTemplate
+metadata:
+ name: fetch-kernels-workflow-template
+spec:
+ entrypoint: main
+ podMetadata:
+ labels:
+ tier: workflow
+ serviceAccountName: argo-executor-ksa
+ templates:
+ - name: main
+ parallelism: 1
+ steps:
+ - - name: query-trees
+ template: query-trees-template
+ - - name: iterate-trees
+ template: process-tree
+ arguments:
+ parameters:
+ - name: tree
+ value: "{{item}}"
+ withParam: "{{=jsonpath(steps['query-trees'].outputs.result, '$.trees')}}"
+ continueOn:
+ failed: true
+ - name: query-trees-template
+ http:
+ url: "http://controller-service:8080/trees"
+ method: "GET"
+ - name: process-tree
+ inputs:
+ parameters:
+ - name: tree
+ volumes:
+ - name: git-repo
+ persistentVolumeClaim:
+ claimName: base-kernel-repo-pv-claim
+ container:
+ image: alpine/git:latest
+ imagePullPolicy: IfNotPresent
+ volumeMounts:
+ - name: git-repo
+ mountPath: /repo.git
+ resources:
+ requests:
+ cpu: 4
+ memory: 8G
+ limits:
+ cpu: 8
+ memory: 16G
+ command:
+ - "/bin/sh"
+ - "-c"
+ - |
+ cd /repo.git
+ if [ ! -d "refs" ]; then
+ git init --bare
+ fi
+ NAME="{{=jsonpath(inputs.parameters.tree, '$.name')}}"
+ REPO="{{=jsonpath(inputs.parameters.tree, '$.URL')}}"
+ BRANCH="{{=jsonpath(inputs.parameters.tree, '$.branch')}}"
+ echo "${NAME}: ${REPO}/${BRANCH}"
+ if ! git config --get remote.${NAME}.url > /dev/null; then
+ git remote add ${NAME} ${REPO}
+ fi
+ git fetch ${NAME} ${BRANCH} --tags
+ git tag -f ${NAME}-head ${NAME}/${BRANCH}
diff --git a/syz-cluster/kernel-disk/kustomization.yaml b/syz-cluster/kernel-disk/kustomization.yaml
index 9963b1cf5..f25926eaa 100644
--- a/syz-cluster/kernel-disk/kustomization.yaml
+++ b/syz-cluster/kernel-disk/kustomization.yaml
@@ -2,4 +2,5 @@
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
resources:
+ - fetch-kernels-template.yaml
- fetch-kernels-cron.yaml