@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
92 lines (91 loc) • 3.43 kB
TypeScript
import { type AccountManager } from '../core/account-manager.js';
import { BaseCommand } from './base.js';
import { type ArgvStruct, type NodeAliases } from '../types/aliases.js';
import { type ClusterReferenceName, type ComponentId, NamespaceNameAsString, type Optional, type SoloListrTask } from '../types/index.js';
import { NamespaceName } from '../types/namespace/namespace-name.js';
import { type RelayNodeStateSchema } from '../data/schema/model/remote/state/relay-node-state-schema.js';
import { type CommandFlags } from '../types/flag-types.js';
interface RelayDestroyConfigClass {
chartDirectory: string;
namespace: NamespaceName;
deployment: string;
nodeAliases: NodeAliases;
releaseName: string;
isChartInstalled: boolean;
clusterRef: Optional<ClusterReferenceName>;
context: Optional<string>;
id: number;
isLegacyChartInstalled: boolean;
}
interface RelayDestroyContext {
config: RelayDestroyConfigClass;
}
interface RelayDeployConfigClass {
chainId: string;
chartDirectory: string;
relayChartDirectory: string;
namespace: NamespaceName;
deployment: string;
nodeAliasesUnparsed: string;
operatorId: string;
operatorKey: string;
relayReleaseTag: string;
componentImage: string;
replicaCount: number;
valuesFile: string;
isChartInstalled: boolean;
nodeAliases: NodeAliases;
releaseName: string;
valuesArg: string;
clusterRef: Optional<ClusterReferenceName>;
domainName: Optional<string>;
context: Optional<string>;
newRelayComponent: RelayNodeStateSchema;
id: ComponentId;
forcePortForward: Optional<boolean>;
cacheDir: Optional<string>;
isLegacyChartInstalled: false;
mirrorNodeId: ComponentId;
mirrorNamespace: NamespaceNameAsString;
mirrorNodeReleaseName: string;
isMirrorNodeLegacyChartInstalled: boolean;
}
interface RelayDeployContext {
config: RelayDeployConfigClass;
}
export declare class RelayCommand extends BaseCommand {
private readonly accountManager;
constructor(accountManager: AccountManager);
private static readonly DEPLOY_CONFIGS_NAME;
private static readonly UPGRADE_CONFIGS_NAME;
static readonly DEPLOY_FLAGS_LIST: CommandFlags;
static readonly UPGRADE_FLAGS_LIST: CommandFlags;
static readonly DESTROY_FLAGS_LIST: CommandFlags;
private prepareValuesArgForRelay;
/**
* created a JSON string to represent the map between the node keys and their ids
* output example '{"node-1": "0.0.3", "node-2": "0.004"}'
*/
private prepareNetworkJsonString;
private getReleaseName;
private renderReleaseName;
private prepareLegacyReleaseName;
private checkChartIsInstalledTask;
private prepareChartValuesTask;
private deployJsonRpcRelayTask;
private checkRelayIsRunningTask;
private checkRelayIsReadyTask;
private enablePortForwardingTask;
add(argv: ArgvStruct): Promise<boolean>;
upgrade(argv: ArgvStruct): Promise<boolean>;
destroy(argv: ArgvStruct): Promise<boolean>;
/** Adds the relay component to remote config. */
addRelayComponent(): SoloListrTask<RelayDeployContext>;
/** Remove the relay component from remote config. */
disableRelayComponent(): SoloListrTask<RelayDestroyContext>;
close(): Promise<void>;
private checkIfLegacyChartIsInstalled;
private inferRelayId;
private inferRelayData;
}
export {};