Merge pull request #1120 from pikasTech/fix/d601-v03-env-download-proxy
修复 D601 v0.3 env-reuse 下载代理
This commit is contained in:
@@ -909,6 +909,7 @@ function normalizeEnvReuseRecipe(recipe) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function normalizeDownloadStack(value) {
|
function normalizeDownloadStack(value) {
|
||||||
|
value = effectiveDownloadStackConfig(value, process.env);
|
||||||
assert.ok(value && typeof value === "object", "envRecipe.downloadStack must be configured in deploy/deploy.yaml");
|
assert.ok(value && typeof value === "object", "envRecipe.downloadStack must be configured in deploy/deploy.yaml");
|
||||||
const normalized = {
|
const normalized = {
|
||||||
httpProxy: normalizeOptionalHttpUrl(value.httpProxy),
|
httpProxy: normalizeOptionalHttpUrl(value.httpProxy),
|
||||||
@@ -927,6 +928,34 @@ function normalizeDownloadStack(value) {
|
|||||||
return normalized;
|
return normalized;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function effectiveDownloadStackConfig(value, env = process.env) {
|
||||||
|
if (!value || typeof value !== "object" || !usesK8sNativeDownloadProxy(env)) return value;
|
||||||
|
const httpProxy = textEnv(env.HTTP_PROXY) || textEnv(env.http_proxy) || value.httpProxy;
|
||||||
|
const httpsProxy = textEnv(env.HTTPS_PROXY) || textEnv(env.https_proxy) || httpProxy || value.httpsProxy;
|
||||||
|
const noProxy = noProxyFromEnv(env) || value.noProxy;
|
||||||
|
return {
|
||||||
|
...value,
|
||||||
|
httpProxy,
|
||||||
|
httpsProxy,
|
||||||
|
noProxy
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function usesK8sNativeDownloadProxy(env = process.env) {
|
||||||
|
return env.HWLAB_DEV_REGISTRY_K8S_NATIVE === "1" || Boolean(textEnv(env.HWLAB_TEKTON_PIPELINERUN));
|
||||||
|
}
|
||||||
|
|
||||||
|
function noProxyFromEnv(env = process.env) {
|
||||||
|
const text = textEnv(env.NO_PROXY) || textEnv(env.no_proxy);
|
||||||
|
if (!text) return null;
|
||||||
|
return text.split(",").map((item) => item.trim()).filter(Boolean);
|
||||||
|
}
|
||||||
|
|
||||||
|
function textEnv(value) {
|
||||||
|
const text = String(value ?? "").trim();
|
||||||
|
return text || null;
|
||||||
|
}
|
||||||
|
|
||||||
function normalizeOptionalHttpUrl(value) {
|
function normalizeOptionalHttpUrl(value) {
|
||||||
const text = String(value ?? "").trim();
|
const text = String(value ?? "").trim();
|
||||||
if (!text) return null;
|
if (!text) return null;
|
||||||
|
|||||||
@@ -2678,7 +2678,12 @@ function planArtifactsTask({ serviceIds = defaultServiceIds } = {}) {
|
|||||||
steps: [{
|
steps: [{
|
||||||
name: "plan",
|
name: "plan",
|
||||||
image: ciToolsRunnerImage,
|
image: ciToolsRunnerImage,
|
||||||
env: [{ name: "HWLAB_SELECTED_SERVICES", value: "$(params.services)" }, ...proxyEnv()],
|
env: [
|
||||||
|
{ name: "HWLAB_SELECTED_SERVICES", value: "$(params.services)" },
|
||||||
|
{ name: "HWLAB_DEV_REGISTRY_K8S_NATIVE", value: "1" },
|
||||||
|
{ name: "HWLAB_TEKTON_PIPELINERUN", value: "$(context.pipelineRun.name)" },
|
||||||
|
...proxyEnv()
|
||||||
|
],
|
||||||
script: planArtifactsScript()
|
script: planArtifactsScript()
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ function envReuseRecipeForLaneConfig(laneConfig, lane = "v02") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function normalizeDownloadStack(value, lane) {
|
function normalizeDownloadStack(value, lane) {
|
||||||
const configured = value && typeof value === "object" ? value : null;
|
const configured = effectiveDownloadStackConfig(value, process.env);
|
||||||
if (!configured) throw new Error(`deploy.lanes.${lane}.envRecipe.downloadStack is required`);
|
if (!configured) throw new Error(`deploy.lanes.${lane}.envRecipe.downloadStack is required`);
|
||||||
const httpProxy = normalizeOptionalHttpUrl(configured.httpProxy, `deploy.lanes.${lane}.envRecipe.downloadStack.httpProxy`);
|
const httpProxy = normalizeOptionalHttpUrl(configured.httpProxy, `deploy.lanes.${lane}.envRecipe.downloadStack.httpProxy`);
|
||||||
const httpsProxy = normalizeOptionalHttpUrl(configured.httpsProxy, `deploy.lanes.${lane}.envRecipe.downloadStack.httpsProxy`);
|
const httpsProxy = normalizeOptionalHttpUrl(configured.httpsProxy, `deploy.lanes.${lane}.envRecipe.downloadStack.httpsProxy`);
|
||||||
@@ -389,6 +389,30 @@ function normalizeDownloadStack(value, lane) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function effectiveDownloadStackConfig(value, env = process.env) {
|
||||||
|
const configured = value && typeof value === "object" ? value : null;
|
||||||
|
if (!configured || !usesK8sNativeDownloadProxy(env)) return configured;
|
||||||
|
const httpProxy = normalizeDeclarationString(env.HTTP_PROXY) || normalizeDeclarationString(env.http_proxy) || configured.httpProxy;
|
||||||
|
const httpsProxy = normalizeDeclarationString(env.HTTPS_PROXY) || normalizeDeclarationString(env.https_proxy) || httpProxy || configured.httpsProxy;
|
||||||
|
const noProxy = noProxyFromEnv(env) || configured.noProxy;
|
||||||
|
return {
|
||||||
|
...configured,
|
||||||
|
httpProxy,
|
||||||
|
httpsProxy,
|
||||||
|
noProxy
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function usesK8sNativeDownloadProxy(env = process.env) {
|
||||||
|
return env.HWLAB_DEV_REGISTRY_K8S_NATIVE === "1" || Boolean(normalizeDeclarationString(env.HWLAB_TEKTON_PIPELINERUN));
|
||||||
|
}
|
||||||
|
|
||||||
|
function noProxyFromEnv(env = process.env) {
|
||||||
|
const text = normalizeDeclarationString(env.NO_PROXY) || normalizeDeclarationString(env.no_proxy);
|
||||||
|
if (!text) return null;
|
||||||
|
return text.split(",").map((item) => item.trim()).filter(Boolean);
|
||||||
|
}
|
||||||
|
|
||||||
function normalizeOptionalHttpUrl(value, label) {
|
function normalizeOptionalHttpUrl(value, label) {
|
||||||
const text = normalizeDeclarationString(value);
|
const text = normalizeDeclarationString(value);
|
||||||
if (!text) return null;
|
if (!text) return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user