Run L1 Job
Preliminary
1. prepare csst-msc-l1-mbi-aux-pvc.yaml
apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
name: "csst-msc-l1-mbi-aux-pvc"
namespace: "application"
spec:
accessModes:
- "ReadWriteMany"
resources:
requests:
storage: "200Gi"
storageClassName: "nfs-external-nas"
status:
accessModes:
- "ReadWriteMany"
capacity:
storage: "200Gi"
Resource Type:
2. prepare csst-msc-l1-mbi.job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: csst-msc-l1-mbi
spec:
template:
spec:
securityContext:
runAsUser: 0
runAsGroup: 0
containers:
- name: csst-msc-l1-mbi
env:
- name: CSST_DFS_API_MODE
value: cluster
- name: CSST_DFS_GATEWAY
value: csst-gateway.application:80
- name: CSST_DFS_APP_ID
value: test
- name: CSST_DFS_APP_TOKEN
value: test
- name: CCDS_SERVER_URL
value: ccds-server-nginx.application:9000
- name: CSST_DFS_ROOT
value: /dfsroot:ro
- name: CSST_CRDS_ROOT
value: /crdsroot:ro
- name: CSST_AUX_DIR
value: /pipeline/aux:ro
image: cr.registry.res.cloud.wuxi-yqgcy.cn/mirror/csst-msc-l1-mbi:v240328
command:
- tail
args:
- -f
- /etc/hosts
volumeMounts:
- mountPath: /pipeline/input
name: csst-msc-l1-mbi-input
- mountPath: /pipeline/output
name: csst-msc-l1-mbi-output
- mountPath: /pipeline/aux
name: csst-msc-l1-mbi-aux-pvc
- mountPath: /dfsroot
name: csst-data-pvc
- mountPath: /crdsroot
name: ccds-data-pvc
volumes:
- name: csst-msc-l1-mbi-input
emptyDir: {}
- name: csst-msc-l1-mbi-output
emptyDir: {}
- name: csst-msc-l1-mbi-aux-pvc
persistentVolumeClaim:
claimName: csst-msc-l1-mbi-aux-pvc
- name: csst-data-pvc
persistentVolumeClaim:
claimName: csst-data-pvc
- name: ccds-data-pvc
persistentVolumeClaim:
claimName: ccds-data-pvc
restartPolicy: OnFailure
2. prepare csst-msc-l1-mbi.deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: csst-msc-l1-mbi
labels:
app.kubernetes.io/name: csst-msc-l1-mbi
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: csst-msc-l1-mbi
template:
metadata:
labels:
app.kubernetes.io/name: csst-msc-l1-mbi
spec:
containers:
- name: csst-msc-l1-mbi
image: cr.registry.res.cloud.wuxi-yqgcy.cn/mirror/csst-msc-l1-mbi:v240328
imagePullPolicy: IfNotPresent
env:
- name: CSST_DFS_API_MODE
value: "cluster"
- name: CSST_DFS_GATEWAY
value: "csst-gateway.application:80"
- name: CSST_DFS_APP_ID
value: "test"
- name: CSST_DFS_APP_TOKEN
value: "test"
- name: CCDS_SERVER_URL
value: ccds-server-nginx.application:9000
- name: CSST_DFS_ROOT
value: "/dfsroot"
- name: CSST_CRDS_ROOT
value: "/crdsroot"
- name: CSST_AUX_DIR
value: "/pipeline/aux"
- name: CSST_POS0_USER
value: "-"
- name: CSST_POS0_IP
value: "-"
- name: CSST_CICD_TEST_OUTPUT
value: "/pipeline/output"
- name: TZ
value: Asia/Shanghai
command:
- /bin/bash
args:
- -c
- tail -f /dev/null
volumeMounts:
- mountPath: /pipeline/input
name: csst-msc-l1-mbi-input
- mountPath: /pipeline/output
name: csst-msc-l1-mbi-output
- mountPath: /pipeline/aux
name: csst-msc-l1-mbi-aux-pvc
- mountPath: /dfsroot
name: csst-data-pvc
- mountPath: /ccdsroot
name: ccds-data-pvc
volumes:
- name: csst-msc-l1-mbi-input
emptyDir: {}
- name: csst-msc-l1-mbi-output
emptyDir: {}
- name: csst-msc-l1-mbi-aux-pvc
persistentVolumeClaim:
claimName: csst-msc-l1-mbi-aux-pvc
- name: csst-data-pvc
persistentVolumeClaim:
claimName: csst-data-pvc
- name: ccds-data-pvc
persistentVolumeClaim:
claimName: ccds-data-pvc
2. prepare csst-msc-l1-mbi.final.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: csst-msc-l1-mbi
spec:
template:
spec:
securityContext:
runAsUser: 0
runAsGroup: 0
containers:
- name: csst-msc-l1-mbi
env:
- name: CSST_DFS_API_MODE
value: cluster
- name: CSST_DFS_GATEWAY
value: csst-gateway.application:80
- name: CSST_DFS_APP_ID
value: test
- name: CSST_DFS_APP_TOKEN
value: test
- name: CCDS_SERVER_URL
value: https://ccds-server-nginx.application:9000
- name: CSST_DFS_ROOT
value: /dfsroot:ro
- name: CSST_CRDS_ROOT
value: /ccdsroot:ro
- name: CSST_AUX_DIR
value: /pipeline/aux:ro
image: cr.registry.res.cloud.wuxi-yqgcy.cn/mirror/csst-msc-l1-mbi:v240328
command: ["python", "/pipeline/src/run.py", "--obs-id=10160000001", "--device=cpu", "--n-jobs=18", "--n-jobs-gpu=9", "--clean-l0", "--clean-l1"]
volumeMounts:
- mountPath: /pipeline/input
name: csst-msc-l1-mbi-input
- mountPath: /pipeline/output
name: csst-msc-l1-mbi-output
- mountPath: /pipeline/aux
name: csst-msc-l1-mbi-aux-pvc
- mountPath: /dfsroot
name: csst-data-pvc
- mountPath: /ccdsroot
name: ccds-data-pvc
volumes:
- name: csst-msc-l1-mbi-input
emptyDir: {}
- name: csst-msc-l1-mbi-output
emptyDir: {}
- name: csst-msc-l1-mbi-aux-pvc
persistentVolumeClaim:
claimName: csst-msc-l1-mbi-aux-pvc
- name: csst-data-pvc
persistentVolumeClaim:
claimName: csst-data-pvc
- name: ccds-data-pvc
persistentVolumeClaim:
claimName: ccds-data-pvc
restartPolicy: OnFailure
3. [Optional] create pvc resource
kubectl -n application apply -f l1-mbi_job.pvc.yaml
Resource Type:
4.1 [Optional] delete on k8s
kubectl -n application delete -f csst-msc-l1-mbi.job.yaml
4.2 [Optional] apply on k8s
kubectl -n application apply -f csst-msc-l1-mbi.job.yaml
4.1 [Optional] delete on k8s
kubectl -n application delete -f csst-msc-l1-mbi.deploy.yaml
4.2 [Optional] apply on k8s
kubectl -n application apply -f csst-msc-l1-mbi.deploy.yaml
4.1 [Optional] delete on k8s
kubectl -n application delete -f csst-msc-l1-mbi.final.yaml
4.2 [Optional] apply on k8s
kubectl -n application apply -f csst-msc-l1-mbi.final.yaml
5. exec into pod
kubectl -n application exec -it <$pod_id> -- bash
6. run command in the pod
python /pipeline/src/run.py --obs-id=10160000001 --device=cpu --n-jobs=18 --n-jobs-gpu=9 --clean-l0 --clean-l1