From 452aaa3862ebe76a0acaba370aece6776009b9ed Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Wed, 29 Apr 2026 15:29:17 +0000 Subject: [PATCH] feat: pass external gateway config to coreflow --- ts/manager.coreflow/coreflowmanager.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ts/manager.coreflow/coreflowmanager.ts b/ts/manager.coreflow/coreflowmanager.ts index eab93b0..fcbf4ca 100644 --- a/ts/manager.coreflow/coreflowmanager.ts +++ b/ts/manager.coreflow/coreflowmanager.ts @@ -103,12 +103,30 @@ export class CloudlyCoreflowManager { const cluster = await this.cloudlyRef.clusterManager.getClusterBy_Identity(identityArg); const services = await this.cloudlyRef.serviceManager.CService.getInstances({}); const platformDesiredState = await this.cloudlyRef.platformManager.getPlatformDesiredState(); - return { + const settings = await this.cloudlyRef.settingsManager.getSettings(); + const targetPort = Number(settings.dcrouterTargetPort || '80'); + const externalGateway = settings.dcrouterGatewayUrl && settings.dcrouterGatewayApiToken + ? { + url: settings.dcrouterGatewayUrl, + apiToken: settings.dcrouterGatewayApiToken, + workHosterType: 'cloudly' as const, + workHosterId: settings.dcrouterWorkHosterId || cluster.id, + targetHost: settings.dcrouterTargetHost, + targetPort: Number.isInteger(targetPort) && targetPort > 0 ? targetPort : 80, + } + : undefined; + const payload: plugins.servezoneInterfaces.requests.config.IRequest_Cloudly_Coreflow_PushClusterConfig['request'] & { + externalGateway?: typeof externalGateway; + } = { configData: await cluster.createSavableObject(), services: await Promise.all(services.map((service) => service.createSavableObject())), platformProviderConfigs: platformDesiredState.providerConfigs, platformBindings: platformDesiredState.bindings, }; + if (externalGateway) { + payload.externalGateway = externalGateway; + } + return payload; } public async pushClusterConfigToConnectedCoreflows() {