Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function followK8sLog(container: K8sContainer): request.Request {
const k8sLog = new k8s.Log(container.config);
const logStream = new Writable({
write: (chunk, encoding, callback) => {
container.log.write(chunk.toString());
callback();
},
});
const doneCallback = e => {
if (e) {
if (e.message) {
container.log.write(e.message);
} else {
container.log.write(stringify(e));
}
}
};
const logOptions: k8s.LogOptions = { follow: true };
**********************************************************************/
import { ApiextensionsV1beta1Api, ApisApi, AppsV1Api, CoreV1Api, CustomObjectsApi, ExtensionsV1beta1Api, KubeConfig, Log, RbacAuthorizationV1Api, V1beta1CustomResourceDefinition, V1beta1IngressList, V1ClusterRole, V1ClusterRoleBinding, V1ConfigMap, V1ConfigMapEnvSource, V1Container, V1DeleteOptions, V1Deployment, V1DeploymentList, V1DeploymentSpec, V1EnvFromSource, V1LabelSelector, V1ObjectMeta, V1PersistentVolumeClaimList, V1Pod, V1PodList, V1PodSpec, V1PodTemplateSpec, V1Role, V1RoleBinding, V1RoleRef, V1Secret, V1ServiceAccount, V1ServiceList, V1Subject } from '@kubernetes/client-node'
import { Context } from '@kubernetes/client-node/dist/config_types'
import axios from 'axios'
import { cli } from 'cli-ux'
import * as fs from 'fs'
import https = require('https')
import * as yaml from 'js-yaml'
import { Writable } from 'stream'
import { DEFAULT_CHE_IMAGE } from '../constants'
export class KubeHelper {
kc = new KubeConfig()
logHelper = new Log(this.kc)
podWaitTimeout: number
podReadyTimeout: number
constructor(flags?: any, context?: string) {
if (!context) {
this.kc.loadFromDefault()
} else {
this.kc.loadFromString(context)
}
if (flags && flags.k8spodwaittimeout) {
this.podWaitTimeout = parseInt(flags.k8spodwaittimeout, 10)
} else {
this.podWaitTimeout = 300000
}
if (flags && flags.k8spodreadytimeout) {