@xec-sh/core
Version:
Universal shell execution engine
70 lines (69 loc) • 2.35 kB
TypeScript
import { ExecutionResult } from '../core/result.js';
import { BaseAdapter, BaseAdapterConfig } from './base-adapter.js';
import { Command } from '../core/command.js';
export interface KubernetesAdapterConfig extends BaseAdapterConfig {
kubeconfig?: string;
context?: string;
namespace?: string;
kubectlPath?: string;
kubectlTimeout?: number;
}
export declare class KubernetesAdapter extends BaseAdapter {
protected readonly adapterName = "kubernetes";
private kubectlPath;
private k8sConfig;
constructor(config?: KubernetesAdapterConfig);
isAvailable(): Promise<boolean>;
execute(command: Command): Promise<ExecutionResult>;
private buildKubectlExecArgs;
private buildCommandArray;
executeKubectl(args: string[], options?: {
timeout?: number;
throwOnNonZeroExit?: boolean;
}): Promise<{
stdout: string;
stderr: string;
exitCode: number;
}>;
getPodFromSelector(selector: string, namespace?: string): Promise<string | null>;
isPodReady(pod: string, namespace?: string): Promise<boolean>;
copyFiles(source: string, destination: string, options: {
namespace?: string;
container?: string;
direction: 'to' | 'from';
}): Promise<void>;
dispose(): Promise<void>;
portForward(pod: string, localPort: number, remotePort: number, options?: {
namespace?: string;
dynamicLocalPort?: boolean;
}): Promise<KubernetesPortForward>;
streamLogs(pod: string, onData: (data: string) => void, options?: {
namespace?: string;
container?: string;
follow?: boolean;
tail?: number;
previous?: boolean;
timestamps?: boolean;
}): Promise<{
stop: () => void;
}>;
private buildGlobalOptions;
private portForwards;
private closeAllPortForwards;
}
declare class KubernetesPortForward {
private kubectlPath;
private args;
private requestedLocalPort;
readonly remotePort: number;
private globalOptions;
private proc;
private _localPort;
private _isOpen;
constructor(kubectlPath: string, args: string[], requestedLocalPort: number, remotePort: number, globalOptions: string[]);
get localPort(): number;
get isOpen(): boolean;
open(): Promise<void>;
close(): Promise<void>;
}
export {};