Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
let resourceRequirements = new kubernetes.V1ResourceRequirements();
if (resourceRequests) {
resourceRequirements.requests = {
cpu: resourceRequests.cpu,
memory: resourceRequests.memory
};
}
if (resourceLimits) {
resourceRequirements.limits = {
cpu: resourceLimits.cpu,
memory: resourceLimits.memory
};
}
c1.resources = resourceRequirements;
pod.spec = new kubernetes.V1PodSpec();
pod.spec.containers = [c1];
pod.spec.restartPolicy = "Never";
pod.spec.serviceAccount = serviceAccount;
pod.spec.serviceAccountName = serviceAccount;
return pod;
}
async createPod(name: string,
image: string,
serviceAccount: string,
restartPolicy: string,
pullPolicy: string,
configMapEnvSource: string,
namespace: string) {
const k8sCoreApi = this.kc.makeApiClient(CoreV1Api)
let pod = new V1Pod()
pod.metadata = new V1ObjectMeta()
pod.metadata.name = name
pod.metadata.labels = { app: name }
pod.metadata.namespace = namespace
pod.spec = new V1PodSpec()
pod.spec.containers
pod.spec.restartPolicy = restartPolicy
pod.spec.serviceAccountName = serviceAccount
let opContainer = new V1Container()
opContainer.name = name
opContainer.image = image
opContainer.imagePullPolicy = pullPolicy
let envFromSource = new V1EnvFromSource()
envFromSource.configMapRef = new V1ConfigMapEnvSource()
envFromSource.configMapRef.name = configMapEnvSource
opContainer.envFrom = [envFromSource]
pod.spec.containers = [opContainer]
try {
return await k8sCoreApi.createNamespacedPod(namespace, pod)
} catch (e) {
pullPolicy: string,
configMapEnvSource: string,
namespace: string) {
const k8sAppsApi = this.kc.makeApiClient(AppsV1Api)
let deployment = new V1Deployment()
deployment.metadata = new V1ObjectMeta()
deployment.metadata.name = name
deployment.metadata.namespace = namespace
deployment.spec = new V1DeploymentSpec()
deployment.spec.selector = new V1LabelSelector()
deployment.spec.selector.matchLabels = { app: name }
deployment.spec.template = new V1PodTemplateSpec()
deployment.spec.template.metadata = new V1ObjectMeta()
deployment.spec.template.metadata.name = name
deployment.spec.template.metadata.labels = { app: name }
deployment.spec.template.spec = new V1PodSpec()
deployment.spec.template.spec.serviceAccountName = serviceAccount
let opContainer = new V1Container()
opContainer.name = name
opContainer.image = image
opContainer.imagePullPolicy = pullPolicy
let envFromSource = new V1EnvFromSource()
envFromSource.configMapRef = new V1ConfigMapEnvSource()
envFromSource.configMapRef.name = configMapEnvSource
opContainer.envFrom = [envFromSource]
deployment.spec.template.spec.containers = [opContainer]
try {
return await k8sAppsApi.createNamespacedDeployment(namespace, deployment)
} catch (e) {
throw this.wrapK8sClientError(e)
}