krkn-lib 5.1.5__tar.gz → 5.1.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/PKG-INFO +4 -2
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/pyproject.toml +1 -1
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/pod_monitor/pod_monitor.py +1 -5
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/pod_monitor/models.py +8 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor.py +2 -1
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_utils.py +19 -1
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/utils/functions.py +18 -2
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/LICENSE +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/README.md +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/aws_tests/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/aws_tests/test_krkn_telemetry_kubernetes.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/aws_tests/test_krkn_telemetry_openshift.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/elastic/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/elastic/krkn_elastic.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/krkn_kubernetes.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/pod_monitor/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/hog_pod.j2 +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/node_exec_pod.j2 +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/service_hijacking_config_map.j2 +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/service_hijacking_pod.j2 +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/syn_flood_pod.j2 +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/elastic/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/elastic/models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/k8s/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/k8s/models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/krkn/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/krkn/models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/pod_monitor/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/telemetry/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/models/telemetry/models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/ocp/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/ocp/krkn_openshift.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/prometheus/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/prometheus/krkn_prometheus.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/k8s/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/k8s/krkn_telemetry_kubernetes.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/ocp/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/ocp/krkn_telemetry_openshift.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/base_test.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_elastic.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_elastic_models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_check.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_create.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_delete.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_exec.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_get.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_list.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_misc.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor_models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_openshift.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_prometheus.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_telemetry_models.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_version.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/utils/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/utils/safe_logger.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/version/__init__.py +0 -0
- {krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/version/version.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: krkn-lib
|
|
3
|
-
Version: 5.1.
|
|
3
|
+
Version: 5.1.7
|
|
4
4
|
Summary: Foundation library for Kraken
|
|
5
5
|
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Author: Red Hat Chaos Team
|
|
7
8
|
Requires-Python: >=3.9,<4.0
|
|
8
9
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -12,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
12
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
15
17
|
Requires-Dist: PyYAML (==6.0.1)
|
|
16
18
|
Requires-Dist: base64io (>=1.0.3,<2.0.0)
|
|
17
19
|
Requires-Dist: coverage (>=7.6.12,<8.0.0)
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import re
|
|
3
2
|
from concurrent.futures import Future
|
|
4
3
|
from concurrent.futures.thread import ThreadPoolExecutor
|
|
5
4
|
from functools import partial
|
|
6
5
|
|
|
7
|
-
from kubernetes import
|
|
6
|
+
from kubernetes import watch
|
|
8
7
|
from kubernetes.client import V1Pod, CoreV1Api
|
|
9
8
|
|
|
10
9
|
from krkn_lib.models.pod_monitor.models import (
|
|
@@ -14,9 +13,6 @@ from krkn_lib.models.pod_monitor.models import (
|
|
|
14
13
|
PodStatus,
|
|
15
14
|
)
|
|
16
15
|
|
|
17
|
-
config.load_kube_config(os.path.join(os.environ["HOME"], ".kube/config"))
|
|
18
|
-
|
|
19
|
-
|
|
20
16
|
def _select_pods(
|
|
21
17
|
select_partial: partial,
|
|
22
18
|
namespace_pattern: str = None,
|
|
@@ -8,6 +8,7 @@ from krkn_lib.models.k8s import PodsStatus, AffectedPod
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class PodStatus(Enum):
|
|
11
|
+
UNDEFINED = 0
|
|
11
12
|
READY = 1
|
|
12
13
|
NOT_READY = 2
|
|
13
14
|
DELETION_SCHEDULED = 3
|
|
@@ -20,6 +21,7 @@ class PodEvent:
|
|
|
20
21
|
status: PodStatus
|
|
21
22
|
|
|
22
23
|
def __init__(self, timestamp: float = None):
|
|
24
|
+
self.status = PodStatus.UNDEFINED
|
|
23
25
|
if not timestamp:
|
|
24
26
|
self._timestamp = time.time()
|
|
25
27
|
else:
|
|
@@ -142,12 +144,18 @@ class PodsSnapshot:
|
|
|
142
144
|
)
|
|
143
145
|
)
|
|
144
146
|
else:
|
|
147
|
+
# pod stayed ready but was restarted
|
|
148
|
+
# or has a failed container
|
|
145
149
|
pods_status.recovered.append(
|
|
146
150
|
AffectedPod(
|
|
147
151
|
pod_name=pod.name,
|
|
148
152
|
namespace=pod.namespace,
|
|
149
153
|
pod_readiness_time=ready_status.timestamp
|
|
150
154
|
- status_change.timestamp,
|
|
155
|
+
pod_rescheduling_time=0,
|
|
156
|
+
total_recovery_time=
|
|
157
|
+
ready_status.timestamp
|
|
158
|
+
- status_change.timestamp
|
|
151
159
|
)
|
|
152
160
|
)
|
|
153
161
|
break
|
|
@@ -441,8 +441,9 @@ class TestKrknKubernetesPodsMonitor(BaseTest):
|
|
|
441
441
|
pods_status = snapshot.get_pods_status()
|
|
442
442
|
self.background_delete_ns(namespace)
|
|
443
443
|
self.assertEqual(len(pods_status.recovered), 1)
|
|
444
|
-
self.assertEqual(pods_status.recovered[0].pod_rescheduling_time,
|
|
444
|
+
self.assertEqual(pods_status.recovered[0].pod_rescheduling_time, 0)
|
|
445
445
|
self.assertGreater(pods_status.recovered[0].pod_readiness_time, 0)
|
|
446
|
+
self.assertEqual(pods_status.recovered[0].total_recovery_time, pods_status.recovered[0].pod_readiness_time)
|
|
446
447
|
|
|
447
448
|
def test_monitor_stopping_earlier(self):
|
|
448
449
|
|
|
@@ -426,7 +426,25 @@ class UtilFunctionTests(BaseTest):
|
|
|
426
426
|
os.environ["JOB_NAME"] = "1953335493844275200"
|
|
427
427
|
ci_job_url = utils.get_ci_job_url()
|
|
428
428
|
print("ci job url" + str(ci_job_url))
|
|
429
|
-
self.assertIn(
|
|
429
|
+
self.assertIn(
|
|
430
|
+
"prow.ci.openshift.org/view/gs/origin-ci-test", ci_job_url
|
|
431
|
+
)
|
|
432
|
+
os.environ["PULL_NUMBER"] = "68493"
|
|
433
|
+
os.environ["PROW_JOB_ID"] = os.environ["JOB_NAME"] = (
|
|
434
|
+
"1965813126276321280"
|
|
435
|
+
)
|
|
436
|
+
os.environ["JOB_TYPE"] = "presubmit"
|
|
437
|
+
|
|
438
|
+
os.environ["BUILD_ID"] = (
|
|
439
|
+
"rehearse-68493-periodic-ci-redhat-chaos-prow-scripts-main-4.20-nightly-krkn-hub-node-tests-aws-ipsec" # NOQA
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
ci_job_url = utils.get_ci_job_url()
|
|
443
|
+
print("ci job url" + str(ci_job_url))
|
|
444
|
+
self.assertIn(
|
|
445
|
+
"prow.ci.openshift.org/view/gs/test-platform-results", ci_job_url
|
|
446
|
+
)
|
|
447
|
+
|
|
430
448
|
os.environ["PROW_JOB_ID"] = ""
|
|
431
449
|
os.environ["BUILD_URL"] = (
|
|
432
450
|
"https://jenkins-csb-openshift-qe-mastern.dno.corp.redhat.com/job/scale-ci/job/e2e-benchmarking-multibranch-pipeline/job/kraken/" # NOQA
|
|
@@ -472,10 +472,26 @@ def get_ci_job_url():
|
|
|
472
472
|
prow_base_url = (
|
|
473
473
|
"https://prow.ci.openshift.org/view/gs/origin-ci-test/logs"
|
|
474
474
|
)
|
|
475
|
+
prow_pr_base_url=(
|
|
476
|
+
"https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_release" # NOQA
|
|
477
|
+
)
|
|
475
478
|
task_id = os.getenv("BUILD_ID")
|
|
476
479
|
job_id = os.getenv("JOB_NAME")
|
|
477
|
-
|
|
478
|
-
|
|
480
|
+
pull_number = os.getenv("PULL_NUMBER")
|
|
481
|
+
job_type=os.getenv("JOB_TYPE")
|
|
482
|
+
if job_type == "presubmit" and "pull" in task_id:
|
|
483
|
+
# Indicates a ci test triggered in PR against source code
|
|
484
|
+
job_type = "pull"
|
|
485
|
+
if job_type == "presubmit" and "rehearse" in task_id:
|
|
486
|
+
# Indicates a rehearsel in PR against openshift/release repo
|
|
487
|
+
job_type = "pull"
|
|
488
|
+
# Handle cases where a periodic job iw triggered via pull request
|
|
489
|
+
if job_type == "periodic" and pull_number:
|
|
490
|
+
job_type = "pull"
|
|
491
|
+
if job_type == "pull" :
|
|
492
|
+
build_url=f"{prow_pr_base_url}/{pull_number}/{task_id}/{job_id}"
|
|
493
|
+
else:
|
|
494
|
+
build_url=f"{prow_base_url}/{job_id}/{task_id}"
|
|
479
495
|
|
|
480
496
|
elif os.getenv("BUILD_URL", ""):
|
|
481
497
|
# Jenkins build url
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/service_hijacking_config_map.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{krkn_lib-5.1.5 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|