UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

190 lines 7.08 kB
/// <reference types="mongoose/types/aggregate" /> /// <reference types="mongoose/types/callback" /> /// <reference types="mongoose/types/collection" /> /// <reference types="mongoose/types/connection" /> /// <reference types="mongoose/types/cursor" /> /// <reference types="mongoose/types/document" /> /// <reference types="mongoose/types/error" /> /// <reference types="mongoose/types/expressions" /> /// <reference types="mongoose/types/helpers" /> /// <reference types="mongoose/types/middlewares" /> /// <reference types="mongoose/types/indexes" /> /// <reference types="mongoose/types/models" /> /// <reference types="mongoose/types/mongooseoptions" /> /// <reference types="mongoose/types/pipelinestage" /> /// <reference types="mongoose/types/populate" /> /// <reference types="mongoose/types/query" /> /// <reference types="mongoose/types/schemaoptions" /> /// <reference types="mongoose/types/schematypes" /> /// <reference types="mongoose/types/session" /> /// <reference types="mongoose/types/types" /> /// <reference types="mongoose/types/utility" /> /// <reference types="mongoose/types/validation" /> /// <reference types="mongoose/types/virtuals" /> /// <reference types="mongoose" /> /// <reference types="mongoose/types/inferschematype" /> import type { IBuild, ICluster, IUser, IWorkspace } from "../entities"; import type { IApp } from "../entities/App"; import type { DeployEnvironment, IQueryFilter, IQueryOptions, IQueryPagination, KubeDeployment } from "../interfaces"; import type { DeployEnvironmentData } from "../interfaces/AppInterfaces"; import type { DeployEnvironmentVolume } from "../interfaces/DeployEnvironmentVolume"; import type { KubeEnvironmentVariable } from "../interfaces/EnvironmentVariable"; import type { Ownership } from "../interfaces/SystemTypes"; export type DeployEnvironmentApp = DeployEnvironment & { app: IApp; appSlug: string; cluster: ICluster; }; export type KubeDeploymentOnCluster = KubeDeployment & { cluster: ICluster; }; export declare class DeployEnvironmentService { /** * Current login user */ user?: IUser; /** * Current active workspace */ workspace?: IWorkspace; /** * Current owner & workspace */ ownership?: Ownership; constructor(ownership?: Ownership); createDeployEnvironment(appSlug: string, params: { /** * `REQUIRES` * --- * Deploy environment name * @default dev */ env: string; /** * `REQUIRES` * --- * Deploy environment configuration */ deployEnvironmentData: DeployEnvironmentData; }, ownership: Ownership): Promise<IApp>; getDeployEnvironmentStatus(deployEnvironment: DeployEnvironment): Promise<DeployEnvironment>; getAllDeployEnvironments(workspaceId: string, options?: IQueryOptions): Promise<any>; listDeployEnvironments(filter?: IQueryFilter<DeployEnvironment>, options?: IQueryOptions & IQueryPagination): Promise<{ data: any; pagination: { skip: number; limit: number; total: any; page: number; size: number; }; }>; viewDeployEnvironmentLogs(app: IApp, env: string): Promise<{ [pod: string]: string; }>; /** * Make deploy environment sleep by scale the replicas to ZERO, so you can wake it up later without re-deploy. */ sleepDeployEnvironment(app: IApp, env: string): Promise<{ success: boolean; message: string; }>; /** * Wake a sleeping deploy environment up by scale it to 1 (Will FAIL if this environment hasn't been deployed). */ wakeUpDeployEnvironment(app: IApp, env: string): Promise<{ success: boolean; message: string; }>; /** * Take down a deploy environment but still keep the deploy environment information (cluster, registry, namespace,...) */ takeDownDeployEnvironment(app: IApp, env: string, options?: IQueryOptions): Promise<{ app: { slug: string; id: string | import("mongoose").Types.ObjectId; owner: string | IUser | import("mongoose").Types.ObjectId; workspace: string | IWorkspace | import("mongoose").Types.ObjectId; tookDownAt?: undefined; cluster?: undefined; }; success: boolean; message: any; } | { app: { slug: string; id: string | import("mongoose").Types.ObjectId; owner: string | IUser | import("mongoose").Types.ObjectId; workspace: string | IWorkspace | import("mongoose").Types.ObjectId; tookDownAt: Date; cluster: string; }; success: boolean; message: any; }>; deleteDeployEnvironment(app: IApp, env: string): Promise<IApp>; /** * Change cluster of a deploy environment * @param app * @param env * @param cluster * @param options * @returns */ changeCluster(app: IApp, env: string, cluster: ICluster, options: { user: IUser; workspace: IWorkspace; deleteAppOnPreviousCluster?: boolean; isDebugging?: boolean; }): Promise<{ build: IBuild; release: import("../entities").IRelease; app: IApp; }>; /** * Get environment variables of a deploy environment * @param app - IApp * @param env - Deploy environment (dev, prod,...) * @returns */ getEnvVars(app: IApp, env: string): Promise<{ name: string; value: string; }[]>; /** * Update environment variables of a deploy environment * @param app - IApp * @param env - Deploy environment (dev, prod,...) * @param variables - Array of environment variables: `[{name,value}]` * @returns */ updateEnvVars(app: IApp, env: string, variables: KubeEnvironmentVariable[]): Promise<{ app: IApp; message: string; }>; /** * Add persistent volume to deploy environment * @param app - IApp * @param env - Deploy environment (dev, prod,...) * @param data - Persistent volume configuration */ addPersistentVolume(app: IApp, env: string, data: DeployEnvironmentVolume): Promise<DeployEnvironmentVolume>; /** * Add persistent volume to deploy environment * @param app - IApp * @param env - Deploy environment (dev, prod,...) * @param data - Persistent volume configuration */ addPersistentVolumeBySize(app: IApp, env: string, data: Pick<DeployEnvironmentVolume, "name" | "size" | "mountPath">): Promise<DeployEnvironmentVolume>; /** * Delete persistent volume to deploy environment * @param app - IApp * @param env - Deploy environment name (dev, prod,...) * @param name - Persistent volume name */ removePersistentVolume(app: IApp, env: string, name: string): Promise<{ success: boolean; message: string; }>; } //# sourceMappingURL=DeployEnvironmentService.d.ts.map