@starship-ci/generator
Version:
Kubernetes manifest generator for Starship deployments
102 lines (101 loc) • 3.53 kB
TypeScript
import { Chain, Resources, StarshipConfig } from '@starship-ci/types';
import { Container, EnvVar, ResourceRequirements, Volume } from 'kubernetesjs';
/**
* Convert chain.id to name usable by templates
* Replaces underscores with hyphens and truncates to 63 chars
*/
export declare function getChainName(chainId: string | number): string;
/**
* Create a default fully qualified app name
*/
export declare function getReleaseName(config: StarshipConfig): string;
/**
* Common labels for all resources
*/
export declare function getCommonLabels(config: StarshipConfig): Record<string, string>;
/**
* Selector labels for resources
*/
export declare function getSelectorLabels(config: StarshipConfig): Record<string, string>;
/**
* Default environment variables for chain containers
*/
export declare function getDefaultEnvVars(chain: Chain): EnvVar[];
/**
* Chain-specific environment variables
*/
export declare function getChainEnvVars(chain: Chain): EnvVar[];
/**
* Timeout environment variables
*/
export declare function getTimeoutEnvVars(timeouts: Record<string, any>): EnvVar[];
/**
* Genesis-specific environment variables
*/
export declare function getGenesisEnvVars(chain: Chain, port: number): EnvVar[];
/**
* Get resource object based on input
* Handles both simple cpu/memory format and full k8s resource format
*/
export declare function getResourceObject(resources: Resources): ResourceRequirements;
/**
* Get node resources with chain-specific overrides
*/
export declare function getNodeResources(chain: Chain, context: StarshipConfig): ResourceRequirements;
/**
* Standard port mappings for Cosmos chains
*/
export declare function getPortMap(): Record<string, number>;
/**
* Returns comma-separated list of chain IDs
*/
export declare function getChainIds(chains: Chain[]): string;
/**
* Returns comma-separated list of chain names
* If chain name is custom, use chain id instead
*/
export declare function getChainNames(chains: Chain[]): string;
/**
* Returns comma-separated list of internal RPC addresses
*/
export declare function getChainInternalRpcAddrs(chains: Chain[]): string;
/**
* Returns comma-separated list of RPC addresses
*/
export declare function getChainRpcAddrs(chains: Chain[], config: StarshipConfig): string;
/**
* Returns comma-separated list of GRPC addresses
*/
export declare function getChainGrpcAddrs(chains: Chain[], config: StarshipConfig): string;
/**
* Returns comma-separated list of REST addresses
*/
export declare function getChainRestAddrs(chains: Chain[], config: StarshipConfig): string;
/**
* Returns comma-separated list of exposer addresses
*/
export declare function getChainExposerAddrs(chains: Chain[], port?: number): string;
/**
* Generate init container for waiting on chains to be ready
*/
export declare function generateWaitInitContainer(chainIDs: string[], port: number, config?: StarshipConfig): Container;
/**
* Generate image pull secrets
*/
export declare function generateImagePullSecrets(imagePullSecrets?: Array<{
name: string;
}>): any;
/**
* Extract tag from docker image
*/
export declare function extractImageTag(image: string): string;
/**
* Generate volume mounts for chain containers
*/
export declare function generateChainVolumeMounts(chain: Chain): any[];
/**
* Generate standard volumes for chain pods
*/
export declare function generateChainVolumes(chain: Chain): Volume[];
export declare function getHostname(chain: Chain): string;
export declare function getChainId(chain: Chain): string;