UNPKG

@starship-ci/generator

Version:

Kubernetes manifest generator for Starship deployments

102 lines (101 loc) 3.53 kB
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;