pull/524/head
Frostebite 2023-03-26 02:23:02 +01:00
parent 10605dbd47
commit 8c016d26af
4 changed files with 17 additions and 18 deletions

14
dist/index.js vendored
View File

@ -3146,6 +3146,7 @@ class Kubernetes {
} }
catch (error) { catch (error) {
cloud_runner_logger_1.default.log(`error running k8s workflow ${error}`); cloud_runner_logger_1.default.log(`error running k8s workflow ${error}`);
await new Promise((resolve) => setTimeout(resolve, 3000));
cloud_runner_logger_1.default.log(JSON.stringify((await this.kubeClient.listNamespacedEvent(this.namespace)).body.items cloud_runner_logger_1.default.log(JSON.stringify((await this.kubeClient.listNamespacedEvent(this.namespace)).body.items
.map((x) => { .map((x) => {
return { return {
@ -3694,6 +3695,7 @@ class KubernetesTaskRunner {
let sinceTime = ``; let sinceTime = ``;
// eslint-disable-next-line no-constant-condition // eslint-disable-next-line no-constant-condition
while (true) { while (true) {
await new Promise((resolve) => setTimeout(resolve, 3000));
const lastReceivedMessage = KubernetesTaskRunner.lastReceivedTimestamp > 0 const lastReceivedMessage = KubernetesTaskRunner.lastReceivedTimestamp > 0
? `\nLast Log Message "${this.lastReceivedMessage}" ${this.lastReceivedTimestamp}` ? `\nLast Log Message "${this.lastReceivedMessage}" ${this.lastReceivedTimestamp}`
: ``; : ``;
@ -3704,18 +3706,18 @@ class KubernetesTaskRunner {
sinceTime = ` --since-time="${dateTimeIsoString}"`; sinceTime = ` --since-time="${dateTimeIsoString}"`;
} }
let extraFlags = ``; let extraFlags = ``;
extraFlags += (await kubernetes_pods_1.default.IsPodRunning(podName, namespace, kubeClient)) ? ` -f` : ` -p`; extraFlags += (await kubernetes_pods_1.default.IsPodRunning(podName, namespace, kubeClient))
? ` -f -c ${containerName} --timestamps${sinceTime}`
: ` --previous`;
let lastMessageSeenIncludedInChunk = false; let lastMessageSeenIncludedInChunk = false;
let lastMessageSeen = false; let lastMessageSeen = false;
let logs; let logs;
try { try {
logs = await cloud_runner_system_1.CloudRunnerSystem.Run(`kubectl logs ${podName}${extraFlags} -c ${containerName} --timestamps${sinceTime}`, false, true); logs = await cloud_runner_system_1.CloudRunnerSystem.Run(`kubectl logs ${podName}${extraFlags}`, false, true);
} }
catch (error) { catch (error) {
const errorString = `${error}`; await new Promise((resolve) => setTimeout(resolve, 3000));
const continueStreaming = errorString.includes(`dial timeout, backstop`) || const continueStreaming = await kubernetes_pods_1.default.IsPodRunning(podName, namespace, kubeClient);
errorString.includes(`HttpError: HTTP request failed`) ||
(await kubernetes_pods_1.default.IsPodRunning(podName, namespace, kubeClient));
cloud_runner_logger_1.default.log(`K8s logging error ${error} ${continueStreaming}`); cloud_runner_logger_1.default.log(`K8s logging error ${error} ${continueStreaming}`);
if (continueStreaming) { if (continueStreaming) {
continue; continue;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -148,6 +148,7 @@ class Kubernetes implements ProviderInterface {
); );
} catch (error: any) { } catch (error: any) {
CloudRunnerLogger.log(`error running k8s workflow ${error}`); CloudRunnerLogger.log(`error running k8s workflow ${error}`);
await new Promise((resolve) => setTimeout(resolve, 3000));
CloudRunnerLogger.log( CloudRunnerLogger.log(
JSON.stringify( JSON.stringify(
(await this.kubeClient.listNamespacedEvent(this.namespace)).body.items (await this.kubeClient.listNamespacedEvent(this.namespace)).body.items

View File

@ -23,6 +23,7 @@ class KubernetesTaskRunner {
let sinceTime = ``; let sinceTime = ``;
// eslint-disable-next-line no-constant-condition // eslint-disable-next-line no-constant-condition
while (true) { while (true) {
await new Promise((resolve) => setTimeout(resolve, 3000));
const lastReceivedMessage = const lastReceivedMessage =
KubernetesTaskRunner.lastReceivedTimestamp > 0 KubernetesTaskRunner.lastReceivedTimestamp > 0
? `\nLast Log Message "${this.lastReceivedMessage}" ${this.lastReceivedTimestamp}` ? `\nLast Log Message "${this.lastReceivedMessage}" ${this.lastReceivedTimestamp}`
@ -36,24 +37,19 @@ class KubernetesTaskRunner {
sinceTime = ` --since-time="${dateTimeIsoString}"`; sinceTime = ` --since-time="${dateTimeIsoString}"`;
} }
let extraFlags = ``; let extraFlags = ``;
extraFlags += (await KubernetesPods.IsPodRunning(podName, namespace, kubeClient)) ? ` -f` : ` -p`; extraFlags += (await KubernetesPods.IsPodRunning(podName, namespace, kubeClient))
? ` -f -c ${containerName} --timestamps${sinceTime}`
: ` --previous`;
let lastMessageSeenIncludedInChunk = false; let lastMessageSeenIncludedInChunk = false;
let lastMessageSeen = false; let lastMessageSeen = false;
let logs; let logs;
try { try {
logs = await CloudRunnerSystem.Run( logs = await CloudRunnerSystem.Run(`kubectl logs ${podName}${extraFlags}`, false, true);
`kubectl logs ${podName}${extraFlags} -c ${containerName} --timestamps${sinceTime}`,
false,
true,
);
} catch (error: any) { } catch (error: any) {
const errorString = `${error}`; await new Promise((resolve) => setTimeout(resolve, 3000));
const continueStreaming = const continueStreaming = await KubernetesPods.IsPodRunning(podName, namespace, kubeClient);
errorString.includes(`dial timeout, backstop`) ||
errorString.includes(`HttpError: HTTP request failed`) ||
(await KubernetesPods.IsPodRunning(podName, namespace, kubeClient));
CloudRunnerLogger.log(`K8s logging error ${error} ${continueStreaming}`); CloudRunnerLogger.log(`K8s logging error ${error} ${continueStreaming}`);
if (continueStreaming) { if (continueStreaming) {
continue; continue;