Skip to content
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
13 changes: 13 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/node:latest AS runner_builder

WORKDIR /app

COPY . /app/

RUN npm install && npm run bootstrap && npm run build-all

FROM ghcr.nju.edu.cn/actions/actions-runner:2.325.0

COPY --from=runner_builder /app/packages/k8s/dist/index.js /home/runner/k8s/index.js

USER runner
8 changes: 2 additions & 6 deletions packages/k8s/src/hooks/run-script-step.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,7 @@ export async function runScriptStep(

try {
await execPodStep(
[
'/bin/bash',
'-el',
`/check-npu/check.sh`
],
['/bin/bash', '-el', `/check-npu/check.sh`],
state.jobPod,
JOB_CONTAINER_NAME
)
Expand All @@ -35,7 +31,7 @@ export async function runScriptStep(
const message = (err as any)?.response?.body?.message || err
throw new Error(`failed to run script step: ${message}`)
}

args.entryPoint = 'sh'
args.entryPointArgs = ['-e', containerPath]
try {
Expand Down
28 changes: 16 additions & 12 deletions packages/k8s/src/k8s/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -564,28 +564,32 @@ async function getPodAffinity(nodeName: string): Promise<k8s.V1Affinity> {
return affinity
}

async function getPreferredPodAffinity(nodeName: string): Promise<k8s.V1Affinity> {
const affinity = new k8s.V1Affinity();
affinity.nodeAffinity = new k8s.V1NodeAffinity();

async function getPreferredPodAffinity(
nodeName: string
): Promise<k8s.V1Affinity> {
const affinity = new k8s.V1Affinity()
affinity.nodeAffinity = new k8s.V1NodeAffinity()

// 创建 PreferredSchedulingTerm 对象
const preferredTerm = new k8s.V1PreferredSchedulingTerm();
preferredTerm.weight = 1; // 设置权重(1-100)
const preferredTerm = new k8s.V1PreferredSchedulingTerm()
preferredTerm.weight = 1 // 设置权重(1-100)

// 创建 NodeSelectorTerm
preferredTerm.preference = new k8s.V1NodeSelectorTerm();
preferredTerm.preference = new k8s.V1NodeSelectorTerm()
preferredTerm.preference.matchExpressions = [
{
key: 'kubernetes.io/hostname',
operator: 'In',
values: [nodeName]
}
];
]

// 将 PreferredSchedulingTerm 添加到数组中
affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution = [preferredTerm];

return affinity;
affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution = [
preferredTerm
]

return affinity
}

export function namespace(): string {
Expand Down
Loading