firmament-docker
Version:
Typescript classes for performing Docker operations
368 lines (367 loc) • 11 kB
TypeScript
export interface DockerMachineDriverOptionsBase {
nodeCount: number;
nodeName: string;
engineLabels: {
role: string;
affinity: string;
};
}
export interface DockerMachineDriverOptions extends DockerMachineDriverOptionsBase {
driver: string;
engineInsecureRegistry: string;
}
export interface DockerMachineDriverOptions_vmwarevsphere extends DockerMachineDriverOptions {
vmwarevsphereUsername: string;
vmwarevspherePassword: string;
vmwarevsphereCpuCount: number;
vmwarevsphereDiskSize: number;
vmwarevsphereMemorySize: number;
vmwarevsphereVcenter: string;
}
export interface DockerMachineDriverOptions_virtualbox extends DockerMachineDriverOptions {
virtualboxCpuCount: number;
virtualboxMemory: number;
}
export interface DockerMachineDriverOptions_openstack extends DockerMachineDriverOptions {
openstackUsername: string;
openstackPassword: string;
openstackAuthUrl: string;
openstackFlavorId: string;
openstackImageId: string;
openstackSecGroups: string;
openstackSshUser: string;
openstackFloatingipPool: string;
openstackTenantName: string;
}
export interface DockerMachineDriverOptions_amazonec2 extends DockerMachineDriverOptions {
amazonec2AccessKey: string;
amazonec2Ami: string;
amazonec2BlockDurationMinutes: string;
amazonec2DeviceName: string;
amazonec2Endpoint: string;
amazonec2IamInstanceProfile: string;
amazonec2InsecureTransport: string;
amazonec2InstanceType: string;
amazonec2KeypairName: string;
amazonec2Monitoring: string;
amazonec2OpenPort: string;
amazonec2PrivateAddressOnly: string;
amazonec2Region: string;
amazonec2RequestSpotInstance: string;
amazonec2Retries: string;
amazonec2RootSize: string;
amazonec2SecretKey: string;
amazonec2SecurityGroup: string;
amazonec2SessionToken: string;
amazonec2SpotPrice: string;
amazonec2SshKeypath: string;
amazonec2SshUser: string;
amazonec2SubnetId: string;
amazonec2Tags: string;
amazonec2UseEbsOptimizedInstance: string;
amazonec2UsePrivateAddress: string;
amazonec2Userdata: string;
amazonec2VolumeType: string;
amazonec2VpcId: string;
amazonec2Zone: string;
}
export interface DockerServiceDescription {
image: string;
deploy: {
labels: string[];
};
}
export interface DockerVolumeDescription {
driver: string;
driver_opts: {
type: string;
device: string;
o: string;
};
}
export interface DockerComposeYaml {
services: any;
volumes: any;
}
export interface NfsConfig {
nfsUser: string;
nfsPassword?: string;
nfsSshKeyPath?: string;
nfsSshPort?: number;
exportBaseDir: string;
serverAddr: string;
options: string;
}
export interface DockerStackConfigTemplate {
stackName: string;
clusterPrefix: string;
hostMachineDnsServer: string;
defaultDockerRegistry: string;
defaultDockerImageTag: string;
traefikZoneName: string;
nfsConfig?: NfsConfig;
dockerComposeYaml: DockerComposeYaml;
dockerMachineDriverOptions: DockerMachineDriverOptions;
dockerMachines: {
common: any;
manager: DockerMachineDriverOptionsBase;
workers: DockerMachineDriverOptionsBase[];
};
}
export declare class DockerDescriptors {
static dockerContainerConfigTemplate: ({
name: string;
Image: string;
DockerFilePath: string;
Hostname: string;
HostConfig: {
Links?: undefined;
PortBindings?: undefined;
};
ExpressApps?: undefined;
} | {
name: string;
Image: string;
DockerFilePath: string;
Hostname: string;
HostConfig: {
Links: string[];
PortBindings: {
'3001/tcp': {
HostPort: string;
}[];
'8701/tcp': {
HostPort: string;
}[];
'3002/tcp'?: undefined;
'3003/tcp'?: undefined;
};
};
ExpressApps: {
GitUrl: string;
GitSrcBranchName: string;
StrongLoopBranchName: string;
StrongLoopServerUrl: string;
ServiceName: string;
}[];
} | {
name: string;
Image: string;
DockerFilePath: string;
Hostname: string;
HostConfig: {
Links: string[];
PortBindings: {
'3001/tcp': {
HostPort: string;
}[];
'3002/tcp': {
HostPort: string;
}[];
'3003/tcp': {
HostPort: string;
}[];
'8701/tcp': {
HostPort: string;
}[];
};
};
ExpressApps: {
GitUrl: string;
GitSrcBranchName: string;
StrongLoopBranchName: string;
StrongLoopServerUrl: string;
ServiceName: string;
DoBowerInstall: boolean;
ClusterSize: number;
EnvironmentVariables: {
PORT: number;
NODE_ENV: string;
};
Scripts: {
StopDeployOnFailure: boolean;
RelativeWorkingDir: string;
Command: string;
Args: string[];
}[];
}[];
})[];
static dockerContainerDefaultDescriptor: {
"Hostname": string;
"Domainname": string;
"User": string;
"AttachStdin": boolean;
"AttachStdout": boolean;
"AttachStderr": boolean;
"Tty": boolean;
"OpenStdin": boolean;
"StdinOnce": boolean;
"Env": string[];
"Cmd": any[];
"Entrypoint": string;
"Image": string;
"Labels": {
"com.example.vendor": string;
"com.example.license": string;
"com.example.version": string;
};
"Mounts": {
"Name": string;
"Source": string;
"Destination": string;
"Driver": string;
"Mode": string;
"RW": boolean;
"Propagation": string;
}[];
"WorkingDir": string;
"NetworkDisabled": boolean;
"MacAddress": string;
"ExposedPorts": {
"22/tcp": {};
};
"StopSignal": string;
"HostConfig": {
"Binds": string[];
"Links": string[];
"Memory": number;
"MemorySwap": number;
"MemoryReservation": number;
"KernelMemory": number;
"CpuShares": number;
"CpuPeriod": number;
"CpuQuota": number;
"CpusetCpus": string;
"CpusetMems": string;
"BlkioWeight": number;
"BlkioWeightDevice": {}[];
"BlkioDeviceReadBps": {}[];
"BlkioDeviceReadIOps": {}[];
"BlkioDeviceWriteBps": {}[];
"BlkioDeviceWriteIOps": {}[];
"MemorySwappiness": number;
"OomKillDisable": boolean;
"OomScoreAdj": number;
"PortBindings": {
"22/tcp": {
"HostPort": string;
}[];
};
"PublishAllPorts": boolean;
"Privileged": boolean;
"ReadonlyRootfs": boolean;
"Dns": string[];
"DnsOptions": string[];
"DnsSearch": string[];
"ExtraHosts": any;
"VolumesFrom": string[];
"CapAdd": string[];
"CapDrop": string[];
"GroupAdd": string[];
"RestartPolicy": {
"Name": string;
"MaximumRetryCount": number;
};
"NetworkMode": string;
"Devices": any[];
"Ulimits": {}[];
"LogConfig": {
"Type": string;
"Config": {};
};
"SecurityOpt": string[];
"CgroupParent": string;
"VolumeDriver": string;
"ShmSize": number;
};
};
static dockerContainerDefaultTemplate: {
"Hostname": string;
"Domainname": string;
"User": string;
"AttachStdin": boolean;
"AttachStdout": boolean;
"AttachStderr": boolean;
"Tty": boolean;
"OpenStdin": boolean;
"StdinOnce": boolean;
"Env": string[];
"Cmd": any[];
"Entrypoint": string;
"Image": string;
"Labels": {
"com.example.vendor": string;
"com.example.license": string;
"com.example.version": string;
};
"Mounts": {
"Name": string;
"Source": string;
"Destination": string;
"Driver": string;
"Mode": string;
"RW": boolean;
"Propagation": string;
}[];
"WorkingDir": string;
"NetworkDisabled": boolean;
"MacAddress": string;
"ExposedPorts": {
"22/tcp": {};
};
"StopSignal": string;
"HostConfig": {
"Binds": string[];
"Links": string[];
"Memory": number;
"MemorySwap": number;
"MemoryReservation": number;
"KernelMemory": number;
"CpuShares": number;
"CpuPeriod": number;
"CpuQuota": number;
"CpusetCpus": string;
"CpusetMems": string;
"BlkioWeight": number;
"BlkioWeightDevice": {}[];
"BlkioDeviceReadBps": {}[];
"BlkioDeviceReadIOps": {}[];
"BlkioDeviceWriteBps": {}[];
"BlkioDeviceWriteIOps": {}[];
"MemorySwappiness": number;
"OomKillDisable": boolean;
"OomScoreAdj": number;
"PortBindings": {
"22/tcp": {
"HostPort": string;
}[];
};
"PublishAllPorts": boolean;
"Privileged": boolean;
"ReadonlyRootfs": boolean;
"Dns": string[];
"DnsOptions": string[];
"DnsSearch": string[];
"ExtraHosts": any;
"VolumesFrom": string[];
"CapAdd": string[];
"CapDrop": string[];
"GroupAdd": string[];
"RestartPolicy": {
"Name": string;
"MaximumRetryCount": number;
};
"NetworkMode": string;
"Devices": any[];
"Ulimits": {}[];
"LogConfig": {
"Type": string;
"Config": {};
};
"SecurityOpt": string[];
"CgroupParent": string;
"VolumeDriver": string;
"ShmSize": number;
};
}[];
}