@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
190 lines • 7.08 kB
TypeScript
/// <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