UNPKG

@webda/shell

Version:

Deploy a Webda app or configure it

36 lines (35 loc) 2.24 kB
import * as k8s from "@kubernetes/client-node"; import { KubernetesParameters } from "@webda/kubernetes"; import { ContainerResources } from "./container.js"; import { Deployer } from "./deployer.js"; export interface KubernetesObject { kind: string; apiVersion?: string; metadata: { name: string; namespace?: string; }; [key: string]: any; } export declare const K8S_DEFAULT_CRON_DEFINITION = "apiVersion: batch/v1\nkind: CronJob\nmetadata:\n name: ${cron.serviceName.toLowerCase()}-${cron.method.toLowerCase()}-${cron.cronId}\nspec:\n concurrencyPolicy: Forbid\n failedJobsHistoryLimit: 1\n jobTemplate:\n spec:\n template:\n spec:\n containers:\n - image: ${resources.tag}\n imagePullPolicy: Always\n name: scheduled-job\n resources: {}\n command: [\"/webda/node_modules/.bin/webda\"]\n args: [\n \"--noCompile\",\n \"launch\",\n \"${cron.serviceName}\",\n \"${cron.method}\",\n \"${...cron.args}\",\n ]\n restartPolicy: Never\n securityContext: {}\n terminationGracePeriodSeconds: 30\n schedule: ${cron.cron}\n successfulJobsHistoryLimit: 3\n"; export declare function KubernetesObjectToURI({ apiVersion, metadata: { name, namespace }, kind }: KubernetesObject): string; export interface KubernetesResources extends ContainerResources, KubernetesParameters { defaultNamespace?: string; resources?: KubernetesObject[]; patchResources?: any; resourcesFile?: string; resourcesFiles?: string[]; cronTemplate?: string | boolean | KubernetesObject; } /** * @WebdaDeployer WebdaDeployer/Kubernetes */ export declare class Kubernetes extends Deployer<KubernetesResources> { client: k8s.KubernetesObjectApi; loadDefaults(): Promise<void>; addAnnotation(spec: any): void; completeResource(resource: KubernetesObject): boolean; deploy(): Promise<void>; getClient<T extends k8s.ApiType>(api?: k8s.ApiConstructor<T>): T extends never ? k8s.KubernetesObjectApi : T; upsertKubernetesObject(resource: KubernetesObject): Promise<void>; }