UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

68 lines 2.94 kB
/** * SPDX-License-Identifier: Apache-2.0 */ import { Flags as flags } from '../flags.js'; import * as constants from '../../core/constants.js'; import { ListrEnquirerPromptAdapter } from '@listr2/prompt-adapter-enquirer'; import { SoloError } from '../../core/errors.js'; export const CONNECT_CONFIGS_NAME = 'connectConfig'; export const connectConfigBuilder = async function (argv, ctx, task) { const config = this.getConfig(CONNECT_CONFIGS_NAME, argv.flags, []); // set config in the context for later tasks to use ctx.config = config; return ctx.config; }; export const setupConfigBuilder = async function (argv, ctx, task) { const parent = this.parent; const configManager = parent.getConfigManager(); configManager.update(argv); flags.disablePrompts([flags.chartDirectory]); await configManager.executePrompt(task, [ flags.chartDirectory, flags.clusterSetupNamespace, flags.deployCertManager, flags.deployCertManagerCrds, flags.deployMinio, flags.deployPrometheusStack, ]); ctx.config = { chartDir: configManager.getFlag(flags.chartDirectory), clusterSetupNamespace: configManager.getFlag(flags.clusterSetupNamespace), deployCertManager: configManager.getFlag(flags.deployCertManager), deployCertManagerCrds: configManager.getFlag(flags.deployCertManagerCrds), deployMinio: configManager.getFlag(flags.deployMinio), deployPrometheusStack: configManager.getFlag(flags.deployPrometheusStack), soloChartVersion: configManager.getFlag(flags.soloChartVersion), }; parent.logger.debug('Prepare ctx.config', { config: ctx.config, argv }); ctx.isChartInstalled = await parent .getChartManager() .isChartInstalled(ctx.config.clusterSetupNamespace, constants.SOLO_CLUSTER_SETUP_CHART); return ctx.config; }; export const resetConfigBuilder = async function (argv, ctx, task) { if (!argv[flags.force.name]) { const confirm = await task.prompt(ListrEnquirerPromptAdapter).run({ type: 'toggle', default: false, message: 'Are you sure you would like to uninstall solo-cluster-setup chart?', }); if (!confirm) { // eslint-disable-next-line n/no-process-exit process.exit(0); } } this.parent.getConfigManager().update(argv); ctx.config = { clusterName: this.parent.getConfigManager().getFlag(flags.clusterRef), clusterSetupNamespace: this.parent.getConfigManager().getFlag(flags.clusterSetupNamespace), }; ctx.isChartInstalled = await this.parent .getChartManager() .isChartInstalled(ctx.config.clusterSetupNamespace, constants.SOLO_CLUSTER_SETUP_CHART); if (!ctx.isChartInstalled) { throw new SoloError('No chart found for the cluster'); } return ctx.config; }; //# sourceMappingURL=configs.js.map