fix: 校验 Code Agent Codex home 挂载契约
This commit is contained in:
@@ -98,6 +98,12 @@ export function inspectCodeAgentProviderManifestRefs({ deployEnv = {}, workloadE
|
||||
if (deployEnv?.CODEX_HOME !== contract.codexHome.path || workloadInspection.codexHome.present !== true) {
|
||||
missingCodexHomeContract.push(`CODEX_HOME must be ${contract.codexHome.path}`);
|
||||
}
|
||||
if (workloadInspection.codexHome.writableHomeMountPresent !== true) {
|
||||
missingCodexHomeContract.push(`${contract.codexHome.path} must be a writable volumeMount`);
|
||||
}
|
||||
if (workloadInspection.codexHome.emptyDirPresent !== true) {
|
||||
missingCodexHomeContract.push(`${contract.codexHome.path} must be backed by emptyDir`);
|
||||
}
|
||||
if (workloadInspection.codexHome.configMapPresent !== true) {
|
||||
missingCodexHomeContract.push(`${contract.codexHome.configMapName}/${contract.codexHome.configKey}`);
|
||||
}
|
||||
@@ -424,6 +430,13 @@ function inspectCodexHomeWorkloadMounts(workloadEnv = {}) {
|
||||
const volumeMounts = Array.isArray(workloadEnv.__volumeMounts) ? workloadEnv.__volumeMounts : [];
|
||||
const volumes = Array.isArray(workloadEnv.__volumes) ? workloadEnv.__volumes : [];
|
||||
const homeMount = volumeMounts.find((entry) => entry?.name === "hwlab-code-agent-codex-home" && entry?.mountPath === contract.codexHome.path);
|
||||
const writableHomeMount = homeMount && homeMount.readOnly !== true;
|
||||
const homeVolume = volumes.find((entry) =>
|
||||
entry?.name === "hwlab-code-agent-codex-home" &&
|
||||
entry?.emptyDir &&
|
||||
typeof entry.emptyDir === "object" &&
|
||||
!Array.isArray(entry.emptyDir)
|
||||
);
|
||||
const configMount = volumeMounts.find((entry) =>
|
||||
entry?.name === "hwlab-code-agent-codex-config" &&
|
||||
entry?.mountPath === `${contract.codexHome.path}/${contract.codexHome.configKey}` &&
|
||||
@@ -448,8 +461,9 @@ function inspectCodexHomeWorkloadMounts(workloadEnv = {}) {
|
||||
);
|
||||
return {
|
||||
path: contract.codexHome.path,
|
||||
present: Boolean(homeMount),
|
||||
writableHomeMountPresent: Boolean(homeMount),
|
||||
present: Boolean(writableHomeMount && homeVolume),
|
||||
writableHomeMountPresent: Boolean(writableHomeMount),
|
||||
emptyDirPresent: Boolean(homeVolume),
|
||||
configMapPresent: Boolean(configMount && configVolume),
|
||||
authSecretPresent: Boolean(authMount && authVolume),
|
||||
configMapName: contract.codexHome.configMapName,
|
||||
|
||||
Reference in New Issue
Block a user