diff --git a/kraken/syn_flood/__init__.py b/kraken/syn_flood/__init__.py new file mode 100644 index 000000000..57180326c --- /dev/null +++ b/kraken/syn_flood/__init__.py @@ -0,0 +1 @@ +from .syn_flood import * \ No newline at end of file diff --git a/kraken/syn_flood/syn_flood.py b/kraken/syn_flood/syn_flood.py new file mode 100644 index 000000000..8878f9129 --- /dev/null +++ b/kraken/syn_flood/syn_flood.py @@ -0,0 +1,26 @@ +import time +from typing import List + +from krkn_lib.models.telemetry import ScenarioTelemetry +from krkn_lib.telemetry.k8s import KrknTelemetryKubernetes + + +def run(scenarios_list: list[str], kubeconfig_path: str, telemetry: KrknTelemetryKubernetes) -> (list[str], list[ScenarioTelemetry]): + scenario_telemetries: list[ScenarioTelemetry] = [] + failed_post_scenarios = [] + for scenario in scenarios_list: + scenario_telemetry = ScenarioTelemetry() + scenario_telemetry.scenario = scenario + scenario_telemetry.start_timestamp = time.time() + telemetry.set_parameters_base64(scenario_telemetry, scenario) + + engine_args = build_args(scenario) + status_code = run_workflow(engine_args, kubeconfig_path) + + + scenario_telemetry.end_timestamp = time.time() + scenario_telemetry.exit_status = status_code + scenario_telemetries.append(scenario_telemetry) + if status_code != 0: + failed_post_scenarios.append(scenario) + return failed_post_scenarios, scenario_telemetries \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index f79beebe5..4f3d5ba99 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,7 +15,7 @@ google-api-python-client==2.116.0 ibm_cloud_sdk_core==3.18.0 ibm_vpc==0.20.0 jinja2==3.1.4 -krkn-lib==2.1.4 +krkn-lib@git+https://https://github.com/krkn-chaos/krkn-lib.git@syn_flood lxml==5.1.0 kubernetes==28.1.0 oauth2client==4.1.3