UNPKG

realm-object-server

Version:

Realm Object Server

85 lines (84 loc) 2.62 kB
/// <reference types="node" /> import { Logger } from "../shared/Logger"; import { StatsdReceiver } from "../stats"; import { StatsSink } from "../stats"; import { EventEmitter } from "events"; import { SyncServiceConfig } from "../services/SyncService"; export interface SyncWorkerConfiguration extends SyncServiceConfig { serviceName: string; endpointsName: string; syncWorkerGroup: string; syncWorkerId: string; kubernetesConfig: any; podIp: string; podRef: any; nodeName: string; disableSlave?: boolean; disableDiskStats?: boolean; enableDebugMode?: boolean; realmsEncryptionKey?: ArrayBuffer | ArrayBufferView; fileUploadFunction?: (file: string) => Promise<void>; } export interface SyncWorkerStartParams { logger: Logger; statsSink: StatsSink; statsdReceiver?: StatsdReceiver; disableWatcher?: boolean; } export interface EndpointsMetadata extends Object { name: string; namespace: string; annotations?: { [key: string]: string; }; labels?: { [key: string]: string; }; resourceVersion: string; } export interface EndpointsResource { metadata: EndpointsMetadata; subsets: any[]; } export declare class KubernetesSyncWorker extends EventEmitter { private readonly masterAnnotationKey; private readonly slaveAnnotationKey; private readonly requestedOperationAnnotationKey; private readonly operationArgumentsAnnotationKey; private readonly config; private readonly disableSlave; private readonly disableDiskStats; startedAt: Date; private watcher; private logger; private statsdSocket; private syncServerPromise; private coreApi; private namespace; private role; private syncWorkerSlaveStatus; private currentResourceVersion; private statsInterval; private statsdToStatsSink; private currentSyncServerConfig; private currentOperation; constructor(config: SyncWorkerConfiguration); start(params: SyncWorkerStartParams): Promise<void>; shutdown(err?: any): Promise<void>; reconcileEndpoints(endpoints: EndpointsResource): Promise<EndpointsResource>; private generateSyncServerConfig; private configureDiskStats; private startSyncServer; private stopSyncServer; private assumeRole; private patchEndpoints; private getReplicaCount; private reconcileSubsets; private registerCandidate; private deregisterCandidate; private verifyFiles; private copyAndUploadFile; private copyFileSafely; private compressFolder; private quarantineFile; }