@veecode-platform/safira-cli
Version:
Generate a microservice project from your spec.
46 lines (45 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MockServerInstallImpl = void 0;
const mockserver_operations_1 = require("../vkpr/mockserver-operations");
const mockserver_constants_1 = require("./mockserver-constants");
const commands_1 = require("../kubectl/commands");
const yaml_utils_1 = require("../utils/yaml-utils");
const associate_plugins_1 = require("../kong/associate-plugins");
class MockServerInstallImpl {
constructor() { }
async install(params) {
await new mockserver_operations_1.VkprMockServerOperations().install({
domain: params.domain,
secure: params.secure,
ssl: params.ssl,
crtFile: params.crtFile,
keyFile: params.keyFile,
});
if (params.secureCPanel) {
await this.secureCPanel();
}
if (params.corsHost) {
const corsPluginName = "mock-server-cors";
await this.setCors(corsPluginName, params.corsHost);
await associate_plugins_1.AssociatePlugin.instance.add("mockserver", associate_plugins_1.ResourceType.service, "vkpr", [corsPluginName]);
}
}
async secureCPanel() {
await commands_1.KubernetesApplyString.instance.command([await (0, commands_1.kubernetesSetIngressHostFromVKPR)(), mockserver_constants_1.mockserverIngressPluginSecureCPanel]);
await commands_1.KubernetesCreateMockServerSecret.instance.createSecret(true);
}
async setCors(corsPluginName, hosts) {
const content = yaml_utils_1.YamlUtils.parse(mockserver_constants_1.mockserverCorsPlugin);
content.metadata.name = corsPluginName;
content.config.origins = hosts;
const pluginString = yaml_utils_1.YamlUtils.stringify(content);
await commands_1.KubernetesApplyString.instance.command([pluginString]);
}
static get instance() {
if (!this._instance)
this._instance = new this();
return this._instance;
}
}
exports.MockServerInstallImpl = MockServerInstallImpl;