feat: pass external gateway config to coreflow
This commit is contained in:
@@ -103,12 +103,30 @@ export class CloudlyCoreflowManager {
|
|||||||
const cluster = await this.cloudlyRef.clusterManager.getClusterBy_Identity(identityArg);
|
const cluster = await this.cloudlyRef.clusterManager.getClusterBy_Identity(identityArg);
|
||||||
const services = await this.cloudlyRef.serviceManager.CService.getInstances({});
|
const services = await this.cloudlyRef.serviceManager.CService.getInstances({});
|
||||||
const platformDesiredState = await this.cloudlyRef.platformManager.getPlatformDesiredState();
|
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(),
|
configData: await cluster.createSavableObject(),
|
||||||
services: await Promise.all(services.map((service) => service.createSavableObject())),
|
services: await Promise.all(services.map((service) => service.createSavableObject())),
|
||||||
platformProviderConfigs: platformDesiredState.providerConfigs,
|
platformProviderConfigs: platformDesiredState.providerConfigs,
|
||||||
platformBindings: platformDesiredState.bindings,
|
platformBindings: platformDesiredState.bindings,
|
||||||
};
|
};
|
||||||
|
if (externalGateway) {
|
||||||
|
payload.externalGateway = externalGateway;
|
||||||
|
}
|
||||||
|
return payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async pushClusterConfigToConnectedCoreflows() {
|
public async pushClusterConfigToConnectedCoreflows() {
|
||||||
|
|||||||
Reference in New Issue
Block a user