@appsemble/node-utils
Version:
NodeJS utilities used by Appsemble internally.
34 lines (33 loc) • 1.73 kB
TypeScript
import { type ContainerEnvVar, type ContainerResourceProps, type ContainerResources } from '@appsemble/lang-sdk';
import { AppsV1Api, CoreV1Api, KubeConfig, type V1EnvVar } from '@kubernetes/client-node';
export declare const maxCPU: number;
export declare const maxMemoryGi: number;
export declare const appIdLabel = "appId";
export declare const resourceDefaults: ContainerResourceProps;
export declare function getContainerNamespace(): string;
export declare function formatServiceName(containerName: string, appName: string, appId: string): string;
export declare function formatSecretName(appName: string, appId: string): string;
export declare function handleKubernetesError(error: unknown): void;
export declare function getKubeConfig(): {
appsApi: AppsV1Api;
coreApi: CoreV1Api;
kubeconfig: KubeConfig;
};
export declare function deleteResource(type: 'deployment' | 'secret' | 'service', namespace: string, name: string): Promise<void>;
/**
* Accepts a url used to call a companion container.
*
* @param url Url for internal communication to a container.
* @returns the metadata used to form the url.
* @example input: `containername-appname-1.companion-containers.svc.cluster.local`
* result: containername-appname-1, 1, appname, appsemble, appsemble-or-namespace
*/
export declare function parseServiceUrl(url: string): {
deploymentName: string;
appId: string;
appName: string;
namespace: string;
};
export declare function validateContainerResources(resources?: ContainerResources): ContainerResources;
export declare function isWhitelisted(fullImageName: string): Boolean;
export declare function formatEnv(input: ContainerEnvVar[], appName: string, appId: string): V1EnvVar[];