refactor: variableize yaml lane node naming
This commit is contained in:
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -34,7 +34,7 @@ import { asRecord, compactTail, elapsedMs, isUnideskRepo, nowIso, parseFullCommi
|
||||
import { dockerBuildTimeoutMs, targetExportDir, targetIsMain, targetWorkDir } from "./paths";
|
||||
import { healthVerify, manifestEnvironmentForService, pushStep, readRuntimeState, step } from "./remote";
|
||||
import { buildDirectImageScript, buildImageScript, codeQueueSourcePreflightScript, composeDeployScript, ensureNativeK3sScript, imageLabelVerifyScript, importK3sImageScript, patchDevK3sManifestScript, prepareSourceScript, syncDevFrontendAuthScript, syncK8sControlManifestsScript, syncSourceScript } from "./scripts";
|
||||
import { isD601MaintenanceDeployBlocked, isDevArtifactConsumerService, isDevK3sDeployService, isDirectComposeDeployMode, unsupportedReason } from "./service-plan";
|
||||
import { isTargetSideMaintenanceDeployBlocked, isDevArtifactConsumerService, isDevK3sDeployService, isDirectComposeDeployMode, unsupportedReason } from "./service-plan";
|
||||
|
||||
export async function ensureGithubSshIdentityStep(config: UniDeskConfig, service: UniDeskMicroserviceConfig): Promise<StepResult> {
|
||||
const startedAt = nowIso();
|
||||
@@ -131,7 +131,7 @@ export async function applyOneService(config: UniDeskConfig, service: UniDeskMic
|
||||
|
||||
if (options.dryRun) return { ok: true, serviceId: service.id, action: "would-deploy", before, steps };
|
||||
|
||||
if (!options.dryRun && isD601MaintenanceDeployBlocked(service)) {
|
||||
if (!options.dryRun && isTargetSideMaintenanceDeployBlocked(service)) {
|
||||
return {
|
||||
ok: false,
|
||||
serviceId: service.id,
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -32,7 +32,7 @@ import type { DeployEnvironmentManifestSource, DeployManifest, DeployManifestSer
|
||||
import { readProdDeployManifestSnapshot } from "./manifest";
|
||||
import { environmentPlanServiceConfig, redactedSecretContractForService } from "./paths";
|
||||
import { readRuntimeState } from "./remote";
|
||||
import { artifactConsumerPlanKind, artifactConsumerPlanKindFromDeployJson, artifactConsumerPlanTarget, artifactConsumerPlanTargetFromDeployJson, artifactConsumerPlanValidation, codeQueueCiCdBoundary, codeQueueSelfBootstrapGuard, databaseFingerprint, deployJsonExecutorMirrors, deploymentPathForEnvironmentService, deploymentPathForEnvironmentServiceId, environmentTargetSummary, isD601MaintenanceDeployBlocked, selectServices, unsupportedEnvironmentPlanReason, unsupportedPlanTarget, unsupportedReason } from "./service-plan";
|
||||
import { artifactConsumerPlanKind, artifactConsumerPlanKindFromDeployJson, artifactConsumerPlanTarget, artifactConsumerPlanTargetFromDeployJson, artifactConsumerPlanValidation, codeQueueCiCdBoundary, codeQueueSelfBootstrapGuard, databaseFingerprint, deployJsonExecutorMirrors, deploymentPathForEnvironmentService, deploymentPathForEnvironmentServiceId, environmentTargetSummary, isTargetSideMaintenanceDeployBlocked, selectServices, unsupportedEnvironmentPlanReason, unsupportedPlanTarget, unsupportedReason } from "./service-plan";
|
||||
import { artifactConsumerDryRunBlockedServiceIds, deployEnvironmentTargets, devApplySupportedServiceIds, devArtifactConsumerProdDesiredFallbackServiceIds, devArtifactConsumerServiceIds, devArtifactLiveApplyBlockedServiceIds, prodArtifactConsumerServiceIds, prodArtifactLiveApplyBlockedServiceIds } from "./types";
|
||||
|
||||
export async function checkOrPlan(config: UniDeskConfig, manifest: DeployManifest, options: DeployOptions, action: "check" | "plan"): Promise<Record<string, unknown>> {
|
||||
@@ -255,14 +255,14 @@ export function unsupportedDevApplyServices(manifest: DeployManifest, serviceId:
|
||||
return services.map((service) => service.id).filter((id) => !devApplySupportedServiceIds.has(id) && !devArtifactConsumerServiceIds.has(id));
|
||||
}
|
||||
|
||||
export function blockedD601MaintenanceDeployServices(config: UniDeskConfig, manifest: DeployManifest, serviceId: string | null): string[] {
|
||||
export function blockedTargetSideMaintenanceDeployServices(config: UniDeskConfig, manifest: DeployManifest, serviceId: string | null): string[] {
|
||||
return selectServices(config, manifest, serviceId)
|
||||
.map((item) => item.config)
|
||||
.filter(isD601MaintenanceDeployBlocked)
|
||||
.filter(isTargetSideMaintenanceDeployBlocked)
|
||||
.map((service) => service.id);
|
||||
}
|
||||
|
||||
export function d601MaintenanceDeployBlockMessage(blocked: string[]): string {
|
||||
export function targetSideMaintenanceDeployBlockMessage(blocked: string[]): string {
|
||||
return `D601 target-side deployment is enabled only for k3sctl-adapter as a control-bridge maintenance path; artifact consumers must use registry CD. Blocked services: ${blocked.join(", ")}. Code Queue is dev-only through artifact-registry/deploy --env dev and has no production direct rollout path.`;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -32,7 +32,7 @@ import { resolveArtifactRegistryTarget } from "../ops/targets";
|
||||
|
||||
import type { DeployAction } from "./types";
|
||||
import { applyJob, devArtifactApplyJob, prodArtifactApplyJob, runApplyNow, runArtifactConsumerApplyNow, runProdArtifactApplyNow } from "./artifact-jobs";
|
||||
import { blockedD601MaintenanceDeployServices, checkOrPlan, commitOverrideArtifactConsumerError, d601MaintenanceDeployBlockMessage, devArtifactLiveApplyBlockedResult, environmentDryRunPlan, prodArtifactConsumerLocalManifestResult, prodArtifactUnsupportedResult, prodArtifactUnsupportedServices, selectedDevArtifactServicesWithProdFallback, selectedDevTargetServices, selectedEnvironmentServices, unsupportedDevApplyServices } from "./check-plan";
|
||||
import { blockedTargetSideMaintenanceDeployServices, checkOrPlan, commitOverrideArtifactConsumerError, targetSideMaintenanceDeployBlockMessage, devArtifactLiveApplyBlockedResult, environmentDryRunPlan, prodArtifactConsumerLocalManifestResult, prodArtifactUnsupportedResult, prodArtifactUnsupportedServices, selectedDevArtifactServicesWithProdFallback, selectedDevTargetServices, selectedEnvironmentServices, unsupportedDevApplyServices } from "./check-plan";
|
||||
import { readDeployManifest, readEnvironmentDeployManifest } from "./manifest";
|
||||
import { deployHelp, isHelpArg, optionValue, parseOptions, resolveManifestCommits } from "./options";
|
||||
import { devArtifactLiveApplyBlockedServiceIds, prodForbiddenTargetSideBuildServiceIds } from "./types";
|
||||
@@ -87,8 +87,8 @@ export async function runDeployCommand(config: UniDeskConfig | null, args: strin
|
||||
}
|
||||
if (config === null) throw new Error("deploy apply --env dev requires config.json");
|
||||
if (!options.dryRun) {
|
||||
const blocked = blockedD601MaintenanceDeployServices(config, manifest, options.serviceId).filter((serviceId) => serviceId !== "decision-center");
|
||||
if (blocked.length > 0) throw new Error(d601MaintenanceDeployBlockMessage(blocked));
|
||||
const blocked = blockedTargetSideMaintenanceDeployServices(config, manifest, options.serviceId).filter((serviceId) => serviceId !== "decision-center");
|
||||
if (blocked.length > 0) throw new Error(targetSideMaintenanceDeployBlockMessage(blocked));
|
||||
}
|
||||
if (options.dryRun || options.runNow) return await runApplyNow(config, manifest, options);
|
||||
return applyJob(config, args, options);
|
||||
@@ -96,8 +96,8 @@ export async function runDeployCommand(config: UniDeskConfig | null, args: strin
|
||||
if (config === null) throw new Error("deploy local manifest mode requires config.json");
|
||||
const rawManifest = await readDeployManifest(options.file);
|
||||
if (action === "apply") {
|
||||
const blocked = blockedD601MaintenanceDeployServices(config, rawManifest, options.serviceId);
|
||||
if (blocked.length > 0) throw new Error(d601MaintenanceDeployBlockMessage(blocked));
|
||||
const blocked = blockedTargetSideMaintenanceDeployServices(config, rawManifest, options.serviceId);
|
||||
if (blocked.length > 0) throw new Error(targetSideMaintenanceDeployBlockMessage(blocked));
|
||||
}
|
||||
const manifest = resolveManifestCommits(rawManifest, options.serviceId);
|
||||
if (action === "check" || action === "plan") return await checkOrPlan(config, manifest, options, action);
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -29,7 +29,7 @@ import {
|
||||
} from "../deploy-json-contract";
|
||||
|
||||
import type { DeployManifestService } from "./types";
|
||||
import { asRecord, asString, d601K3sGuardScript, parseJsonObjectFromText, shellQuote } from "./options";
|
||||
import { asRecord, asString, k3sTargetGuardScript, parseJsonObjectFromText, shellQuote } from "./options";
|
||||
import { buildImageTag, k8sManifestPath, targetWorkDir } from "./paths";
|
||||
import { runTargetCommand } from "./remote";
|
||||
import { isCoreDeployService, isDevK3sDeployService } from "./service-plan";
|
||||
@@ -84,7 +84,7 @@ export function applyK8sScript(service: UniDeskMicroserviceConfig): string {
|
||||
: "";
|
||||
return [
|
||||
"set -euo pipefail",
|
||||
d601K3sGuardScript(),
|
||||
k3sTargetGuardScript(),
|
||||
cleanup,
|
||||
`kubectl apply -f ${shellQuote(manifest)}`,
|
||||
].filter(Boolean).join("\n");
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
|
||||
@@ -14,7 +14,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -88,8 +88,8 @@ export function shellQuote(value: string): string {
|
||||
return `'${value.replace(/'/gu, `'\\''`)}'`;
|
||||
}
|
||||
|
||||
export function d601K3sGuardScript(): string {
|
||||
return d601K3sGuardShellLines(k8sKubeconfig).join("\n");
|
||||
export function k3sTargetGuardScript(): string {
|
||||
return k3sGuardShellLines(k8sKubeconfig).join("\n");
|
||||
}
|
||||
|
||||
export function compactTail(text: string, maxChars = 1600): string {
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
|
||||
@@ -13,7 +13,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -29,7 +29,7 @@ import {
|
||||
} from "../deploy-json-contract";
|
||||
|
||||
import type { DeployManifestService } from "./types";
|
||||
import { d601K3sGuardScript, isUnideskRepo, providerSourceRepoUrl, safeId, shellQuote } from "./options";
|
||||
import { k3sTargetGuardScript, isUnideskRepo, providerSourceRepoUrl, safeId, shellQuote } from "./options";
|
||||
import { buildBaseImageFallbacks, buildCachePrelude, buildImageTag, devK3sPrepullImages, directBuildContextOverride, directComposeEnvFile, directComposeFile, directDockerfileOverride, k8sManifestPath, sourceBuildContext, sourceDockerfilePath, sourceFallbackWorktree, sourceProxyPrelude, sourceWorkDir, targetIsMain, targetRepoDir, targetWorkDir } from "./paths";
|
||||
import { isDevK3sDeployService, isDirectComposeDeployMode } from "./service-plan";
|
||||
import { k8sKubeconfig, nativeK3sCtrAddress, nativeK3sImage, nativeK3sInstallVersion, providerGatewayWsEgressProxyUrl } from "./types";
|
||||
@@ -50,7 +50,7 @@ export function syncDevFrontendAuthScript(config: UniDeskConfig): string {
|
||||
};
|
||||
return [
|
||||
"set -euo pipefail",
|
||||
d601K3sGuardScript(),
|
||||
k3sTargetGuardScript(),
|
||||
`secret_patch=${shellQuote(JSON.stringify({ data }))}`,
|
||||
`config_patch=${shellQuote(JSON.stringify({ data: runtimeConfig }))}`,
|
||||
`kubectl -n unidesk-dev patch secret unidesk-dev-runtime-secrets --type merge -p "$secret_patch"`,
|
||||
@@ -657,7 +657,7 @@ export function ensureNativeK3sScript(): string {
|
||||
` if KUBECONFIG=${shellQuote(k8sKubeconfig)} kubectl get nodes >/dev/null 2>&1; then break; fi`,
|
||||
" sleep 2",
|
||||
"done",
|
||||
d601K3sGuardScript(),
|
||||
k3sTargetGuardScript(),
|
||||
`KUBECONFIG=${shellQuote(k8sKubeconfig)} kubectl get nodes -l unidesk.ai/node-id=D601 --no-headers | grep -q .`,
|
||||
`KUBECONFIG=${shellQuote(k8sKubeconfig)} kubectl wait --for=condition=Ready node -l unidesk.ai/node-id=D601 --timeout=180s`,
|
||||
"install_system_images_from_legacy_k3s",
|
||||
|
||||
@@ -14,7 +14,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import {
|
||||
compareDeployJsonExecutorMirrors,
|
||||
@@ -31,7 +31,7 @@ import {
|
||||
|
||||
import type { ArtifactConsumerPlanKind, DeployEnvironment, DeployEnvironmentTarget, DeployManifest, DeployManifestService } from "./types";
|
||||
import { targetIsMain, targetWorkDir } from "./paths";
|
||||
import { artifactConsumerDryRunBlockedServiceIds, d601DeployNodeId, d601DeployProviderId, d601MaintenanceDeployAllowedServiceIds, devApplySupportedServiceIds, devArtifactConsumerServiceIds, k8sNamespace, prodArtifactConsumerServiceIds, prodArtifactLiveApplyBlockedServiceIds, unideskRepoUrl } from "./types";
|
||||
import { artifactConsumerDryRunBlockedServiceIds, artifactDeployNodeId, artifactDeployProviderId, targetSideMaintenanceDeployAllowedServiceIds, devApplySupportedServiceIds, devArtifactConsumerServiceIds, k8sNamespace, prodArtifactConsumerServiceIds, prodArtifactLiveApplyBlockedServiceIds, unideskRepoUrl } from "./types";
|
||||
|
||||
export function frontendCoreDeployService(config: UniDeskConfig): UniDeskMicroserviceConfig {
|
||||
return {
|
||||
@@ -179,7 +179,7 @@ export function devK3sDeployService(id: string): UniDeskMicroserviceConfig | und
|
||||
return {
|
||||
id,
|
||||
name: spec.name,
|
||||
providerId: d601DeployProviderId,
|
||||
providerId: artifactDeployProviderId,
|
||||
description: spec.description,
|
||||
repository: {
|
||||
url: spec.repoUrl ?? unideskRepoUrl,
|
||||
@@ -206,11 +206,11 @@ export function devK3sDeployService(id: string): UniDeskMicroserviceConfig | und
|
||||
adapterServiceId: "k3sctl-adapter",
|
||||
k3sServiceId: spec.composeService,
|
||||
namespace: "unidesk-dev",
|
||||
expectedNodeIds: [d601DeployNodeId],
|
||||
activeNodeId: d601DeployNodeId,
|
||||
expectedNodeIds: [artifactDeployNodeId],
|
||||
activeNodeId: artifactDeployNodeId,
|
||||
},
|
||||
development: {
|
||||
providerId: d601DeployProviderId,
|
||||
providerId: artifactDeployProviderId,
|
||||
sshPassthrough: true,
|
||||
worktreePath: id === "code-queue"
|
||||
? "/home/ubuntu/unidesk-dev-code-queue-deploy/code-queue"
|
||||
@@ -243,10 +243,10 @@ export function isDevArtifactConsumerService(service: UniDeskMicroserviceConfig)
|
||||
&& devArtifactConsumerServiceIds.has(service.id);
|
||||
}
|
||||
|
||||
export function isD601MaintenanceDeployBlocked(service: UniDeskMicroserviceConfig): boolean {
|
||||
export function isTargetSideMaintenanceDeployBlocked(service: UniDeskMicroserviceConfig): boolean {
|
||||
if (targetIsMain(service)) return false;
|
||||
if (service.providerId !== "D601") return false;
|
||||
return !d601MaintenanceDeployAllowedServiceIds.has(service.id);
|
||||
return !targetSideMaintenanceDeployAllowedServiceIds.has(service.id);
|
||||
}
|
||||
|
||||
export function isDirectComposeDeployMode(service: UniDeskMicroserviceConfig): boolean {
|
||||
@@ -279,7 +279,7 @@ export function selectServices(config: UniDeskConfig, manifest: DeployManifest,
|
||||
export function unsupportedReason(service: UniDeskMicroserviceConfig): string | null {
|
||||
if (service.repository.dockerfile.startsWith("docker.io/")) return "image-only service has no Dockerfile source artifact";
|
||||
if (service.repository.composeFile.startsWith("docker run")) return "docker-run image-only service has no compose/k8s build path";
|
||||
if (isD601MaintenanceDeployBlocked(service)) return "D601 maintenance-channel deployment is not allowed for this service; use reviewed registry artifact consumers instead";
|
||||
if (isTargetSideMaintenanceDeployBlocked(service)) return "D601 maintenance-channel deployment is not allowed for this service; use reviewed registry artifact consumers instead";
|
||||
if (service.repository.commitId === "local") return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import { baiduNetdiskRuntimeSecretRequirements, runtimeSecretContractFromEnvText
|
||||
import { startJob } from "../jobs";
|
||||
import { coreInternalFetch } from "../microservices";
|
||||
import { codeQueueSourceImportPreflight, codeQueueSourceSubdir } from "../code-queue-source-guard";
|
||||
import { d601K3sGuardShellLines, d601NativeKubeconfig } from "../d601-k3s-guard";
|
||||
import { k3sGuardShellLines, defaultNativeKubeconfig } from "../k3s-target-guard";
|
||||
import { composeRuntimeEnvValue } from "../runtime-env";
|
||||
import { resolveArtifactRegistryTarget } from "../ops/targets";
|
||||
import {
|
||||
@@ -153,11 +153,11 @@ export const shortRemoteTimeoutMs = 20_000;
|
||||
|
||||
export const providerDispatchCompletionLagMs = 45_000;
|
||||
|
||||
const d601ArtifactRegistryTarget = resolveArtifactRegistryTarget("D601");
|
||||
const defaultArtifactRegistryTarget = resolveArtifactRegistryTarget(null);
|
||||
|
||||
export const d601DeployProviderId = d601ArtifactRegistryTarget.providerId;
|
||||
export const artifactDeployProviderId = defaultArtifactRegistryTarget.providerId;
|
||||
|
||||
export const d601DeployNodeId = d601ArtifactRegistryTarget.targetId;
|
||||
export const artifactDeployNodeId = defaultArtifactRegistryTarget.targetId;
|
||||
|
||||
export const pollIntervalMs = 5_000;
|
||||
|
||||
@@ -165,7 +165,7 @@ export const remoteDeployRoot = "/home/ubuntu/.unidesk/deploy";
|
||||
|
||||
export const k8sNamespace = "unidesk";
|
||||
|
||||
export const k8sKubeconfig = d601NativeKubeconfig;
|
||||
export const k8sKubeconfig = defaultNativeKubeconfig;
|
||||
|
||||
export // Production k3s hostPath repo. Code Queue production Pods mount this path as /app and /root/unidesk,
|
||||
// so deploy guards must validate this tree rather than config.json development.worktreePath.
|
||||
@@ -181,7 +181,7 @@ export const nativeK3sCtrAddress = "/run/k3s/containerd/containerd.sock";
|
||||
|
||||
export const unideskRepoUrl = "https://github.com/pikasTech/unidesk";
|
||||
|
||||
export const d601MaintenanceDeployAllowedServiceIds = new Set<string>(["k3sctl-adapter"]);
|
||||
export const targetSideMaintenanceDeployAllowedServiceIds = new Set<string>(["k3sctl-adapter"]);
|
||||
|
||||
export const devApplySupportedServiceIds = new Set<string>();
|
||||
|
||||
@@ -243,8 +243,8 @@ export const deployEnvironmentTargets: Record<DeployEnvironment, DeployEnvironme
|
||||
name: "unidesk",
|
||||
},
|
||||
provider: {
|
||||
providerId: d601DeployProviderId,
|
||||
nodeId: d601DeployNodeId,
|
||||
providerId: artifactDeployProviderId,
|
||||
nodeId: artifactDeployNodeId,
|
||||
credentialScope: "prod",
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user