fix(acceptance): 阻断本地控制面漂移污染验收
本地 K3s 节点此前在 Kubelet 中登记为宿主机资源,负载可挤压 etcd 并在 server 重启后继续污染同一 Run。现在为三节点设置真实可调度预算、独立 etcd/数据卷和锁定依赖镜像,并持续核对 server 与 API/etcd 健康。\n\n每次验收生成独立 Run ID,报告使用独占或原子写入,负载错误记录具体阶段;数据库鉴权不可用返回带 Retry-After 的 503,避免基础设施故障被误报为 401。\n\n验证:Go 全量测试、go vet、gofmt、OpenAPI、bash -n、ShellCheck、报告测试和 k3d 配置解析均通过。
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { execFileSync } from 'node:child_process';
|
||||
import { execFileSync, spawnSync } from 'node:child_process';
|
||||
import { mkdtempSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
||||
import { tmpdir } from 'node:os';
|
||||
import { join, resolve } from 'node:path';
|
||||
@@ -73,6 +73,19 @@ assert.equal(report.stages.amd64Artifact.status, 'passed');
|
||||
assert.equal(report.promotion.ready, false);
|
||||
assert.equal(readFileSync(output, 'utf8').includes('must-not-be-copied'), false);
|
||||
execFileSync('node', [join(root, 'scripts/acceptance/report.mjs'), 'validate', '--input', output]);
|
||||
const overwrite = spawnSync('node', [
|
||||
join(root, 'scripts/acceptance/report.mjs'),
|
||||
'build-local',
|
||||
'--runtime', runtime,
|
||||
'--snapshot', snapshot,
|
||||
'--reports', reports,
|
||||
'--artifact', artifact,
|
||||
'--api-digest', digest,
|
||||
'--output', output
|
||||
], { encoding: 'utf8' });
|
||||
assert.notEqual(overwrite.status, 0);
|
||||
assert.match(`${overwrite.stdout}${overwrite.stderr}`, /EEXIST|file already exists/);
|
||||
assert.equal(JSON.parse(readFileSync(output, 'utf8')).runId, runID);
|
||||
|
||||
execFileSync('node', [
|
||||
join(root, 'scripts/acceptance/report.mjs'),
|
||||
@@ -82,11 +95,13 @@ execFileSync('node', [
|
||||
'--reports', reports,
|
||||
'--certified-profile', 'P24',
|
||||
'--failure-phase', 'capacity_p28_round_2',
|
||||
'--failure-gate', 'local_control_plane_restarted',
|
||||
'--output', partialOutput
|
||||
]);
|
||||
const partialReport = JSON.parse(readFileSync(partialOutput, 'utf8'));
|
||||
assert.equal(partialReport.stages.localNative.status, 'failed');
|
||||
assert.equal(partialReport.stages.localNative.failurePhase, 'capacity_p28_round_2');
|
||||
assert.equal(partialReport.gates[0].id, 'local_control_plane_restarted');
|
||||
assert.equal(partialReport.stages.amd64Artifact.status, 'not-run');
|
||||
assert.equal(partialReport.promotion.ready, false);
|
||||
assert.equal(readFileSync(partialOutput, 'utf8').includes('must-not-be-copied'), false);
|
||||
|
||||
Reference in New Issue
Block a user