- Updated Dockerfile and generate_go_binary script to include new test binaries for pod-autoscaler, node-io-stress, and pod-network-duplication.
- Enhanced the build process to ensure all relevant experiments are compiled and ready for execution.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Refactored the Dockerfile to use a multi-stage build with Go 1.24-alpine for improved efficiency and reduced image size.
- Added installation of necessary build dependencies and set up the Go environment for cross-compilation.
- Enhanced the build process by copying go.mod and go.sum first for better caching and building individual experiment binaries.
- Updated the generate_go_binary script to include environment setup and binary format verification, ensuring successful builds.
- Improved runtime image by installing additional dependencies and ensuring all binaries are executable.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Eliminated the logic for manually setting ConnectedInfraID from ExistingInfraID in multiple chaos experiment tests (container-kill, disk-fill, node-cpu-hog, node-io-stress, node-memory-hog, pod-autoscaler, pod-cpu-hog, pod-memory-hog, pod-network-corruption, pod-network-duplication, pod-network-latency, pod-network-loss, pod-delete).
- This change simplifies the infrastructure setup process by relying on the updated logic in the SetupInfrastructure function, enhancing code clarity and maintainability.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Eliminated HTTP fetching and YAML parsing logic from the chaos experiment request construction functions in multiple tests (container-kill, node-cpu-hog, node-io-stress, node-memory-hog, pod-cpu-hog, pod-memory-hog).
- Streamlined the experiment request construction process by removing unnecessary dependencies and simplifying the code structure.
- Improved overall maintainability and clarity of chaos experiment tests by focusing on essential functionalities.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Updated the litmus-go-sdk dependency to version v0.0.0-20250513045254-3a81cc911979 in both go.mod and go.sum files, ensuring compatibility with the latest features and fixes.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Set default values for MemoryConsumptionPercentage and MemoryConsumptionMebibytes to "0" in the NodeMemoryHog configuration, ensuring clarity in resource allocation.
- Removed unnecessary NODE_LABEL entries from the node-memory-hog and node-cpu-hog manifests to streamline configuration.
- Added comprehensive permissions for various Kubernetes resources in the experiment manifests, enhancing operational capabilities.
- Improved overall manifest structure by ensuring consistent labeling and resource definitions across chaos experiments.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduced a comprehensive list of environment variables for configuring environments, infrastructure, and probes in the README.
- Implemented `GenerateEnvironmentID` function to create unique environment IDs.
- Enhanced `SetupEnvironment` function to manage the creation or usage of existing environments based on provided environment variables.
- Updated `ConnectInfrastructure` to utilize the new environment setup logic, improving infrastructure management.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Enhanced GetExperimentManifest to remove NODE_LABEL environment variables when empty, ensuring cleaner manifests.
- Updated regex patterns to match and remove NODE_LABEL in various formats, improving flexibility in manifest generation.
- Implemented logic to directly replace NODE_LABEL with an empty string or its value based on configuration, streamlining experiment setup.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replaced environment.ClientSets with Litmus SDK client in various chaos experiment tests (container-kill, disk-fill, node-cpu-hog, node-io-stress, node-memory-hog, pod-autoscaler, pod-cpu-hog, pod-memory-hog, pod-network-corruption, pod-network-duplication, pod-network-latency, pod-network-loss) for improved clarity and maintainability.
- Updated SetupInfrastructure and DisconnectInfrastructure functions to utilize the new SDK client, enhancing infrastructure management.
- Streamlined experiment run polling and status checking by leveraging the SDK client, ensuring consistent error handling and logging.
- Enhanced CreateProbe function to utilize the SDK client for probe creation, improving flexibility in chaos experiment configurations.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replaced environment.ClientSets with Litmus SDK client in pod-delete experiment tests for improved clarity and maintainability.
- Updated SetupInfrastructure and DisconnectInfrastructure functions to utilize the new SDK client, enhancing infrastructure management.
- Streamlined experiment run polling and status checking by leveraging the SDK client, ensuring consistent error handling and logging.
- Enhanced CreateProbe function to utilize the SDK client for probe creation, improving flexibility in chaos experiment configurations.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Updated GetExperimentManifest to remove NODE_LABEL environment variables when empty, improving manifest cleanliness.
- Added logic to replace NODE_LABEL with its value when provided, ensuring proper configuration for chaos experiments.
- Adjusted CPU_LOAD environment variable to a fixed value of '100' for consistency across experiments.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Removed uuid dependency from chaos experiment tests (node-cpu-hog, node-io-stress, node-memory-hog) to streamline imports.
- Commented out kubeconfig retrieval and clientset generation in tests for improved clarity.
- Enhanced experiment request construction by utilizing pkg functions to generate unique experiment names and IDs, improving maintainability.
- Added logic to set ConnectedInfraID from ExistingInfraID if not already set, enhancing infrastructure setup reliability.
- Updated GetDefaultExperimentConfig to include new chaos experiment types and their specific configurations, ensuring comprehensive support for node chaos experiments.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Eliminated NODE_LABEL from the environment variables in multiple chaos experiment tests (disk-fill, node-cpu-hog, node-io-stress, node-memory-hog) to streamline configuration.
- Implemented logic to filter out NODE_LABEL if it is empty, enhancing the flexibility of experiment configurations.
- Updated the GetExperimentManifest function to handle NODE_LABEL removal in the manifest generation process, ensuring cleaner manifests.
- Improved overall maintainability and clarity of chaos experiment tests by reducing unnecessary environment variables.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Added support for probe configuration in various chaos experiment tests (container-kill, disk-fill, node-cpu-hog, node-io-stress, node-memory-hog, pod-autoscaler, pod-cpu-hog, pod-memory-hog, pod-network-corruption, pod-network-duplication, pod-network-latency, pod-network-loss).
- Implemented logic to create and validate probes before running experiments, enhancing flexibility and reliability.
- Included cleanup procedures for probes after experiment execution to ensure proper resource management.
- Enhanced logging for probe setup and cleanup processes to improve traceability during test execution.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduced probe configuration options in ExperimentDetails, allowing for dynamic probe creation during the pod-delete experiment.
- Updated the GetENV function to read new environment variables related to probe settings.
- Enhanced the pod-delete experiment test to set up and clean up probes based on the new configuration.
- Implemented CreateProbe and CleanupProbe functions to manage probe lifecycle, improving experiment flexibility and maintainability.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Updated multiple chaos experiment tests (container-kill, disk-fill, node-cpu-hog, node-io-stress, node-memory-hog, pod-cpu-hog, pod-memory-hog) to replace ioutil.ReadAll with io.ReadAll for improved performance and consistency.
- Modified file handling in pkg/file.go and pkg/install.go to utilize os.ReadFile and os.WriteFile, enhancing clarity and maintainability.
- Ensured consistent error handling and logging across all updated tests.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Updated various chaos experiment tests (container-kill, disk-fill, pod-autoscaler, pod-cpu-hog, pod-memory-hog, pod-network-corruption, pod-network-duplication, pod-network-latency, pod-network-loss) to include a polling mechanism for checking the availability of experiment runs.
- Enhanced logging to provide detailed insights during the polling process, including retry attempts and found experiment run IDs.
- Removed commented-out kubeconfig retrieval and clientset generation for improved clarity and maintainability.
- Ensured consistent error handling and expectations during experiment run status checks across all updated tests.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Updated container-kill, disk-fill, and pod-autoscaler experiments to utilize the workflow package for constructing experiment requests, improving maintainability.
- Replaced log statements with klog for consistent logging across all chaos experiments.
- Enhanced error handling during experiment creation and run status polling, ensuring accurate fetching of the latest experiment run ID.
- Updated test descriptions for better clarity and consistency across chaos experiments.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Updated pod network experiments (corruption, latency, loss, duplication) to utilize the workflow package for constructing experiment requests.
- Improved logging consistency by replacing log statements with klog across all network chaos tests.
- Modularized experiment request construction to dynamically generate unique experiment names and IDs, enhancing maintainability.
- Enhanced error handling during experiment creation and run status polling, ensuring accurate fetching of the latest experiment run ID.
- Updated test descriptions for better clarity and consistency across network chaos experiments.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Added new fields to ExperimentConfig for probe configuration, including UseExistingProbe, ProbeName, and ProbeMode.
- Updated GetDefaultExperimentConfig to set default probe values.
- Modified experiment manifest generation to include probe annotations directly in the YAML.
- Implemented applyProbeConfigFromEnv function to read probe settings from environment variables, improving flexibility for experiment configurations.
- Updated specific experiment request constructors to apply probe configurations, enhancing reusability and maintainability.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Commented out kubeconfig retrieval and clientset generation in both pod-cpu-hog and pod-memory-hog tests for clarity.
- Enhanced logging by replacing log with klog for better consistency across experiments.
- Modularized experiment request construction by utilizing the workflow package for generating unique experiment names and IDs.
- Improved error handling during experiment creation and run status polling, ensuring dynamic fetching of the latest experiment run ID.
- Updated the test descriptions for better readability and consistency.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduced new experiment types (PodCPUHog, PodMemoryHog) with specific parameters in the ExperimentConfig structure.
- Enhanced GetDefaultExperimentConfig to apply experiment-specific defaults based on the type.
- Modularized the construction of Argo Workflow manifests to support dynamic templates for various experiment types.
- Improved error handling and logging during manifest generation and experiment request construction, enhancing clarity and maintainability.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Moved the pod-delete experiment request construction logic to a new workflow package for better organization and reusability.
- Introduced a templated approach for generating Argo Workflow manifests, allowing for dynamic parameter handling.
- Enhanced the ExperimentConfig structure to encapsulate experiment-specific configurations.
- Updated the test to utilize the new workflow functions, improving clarity and maintainability of the experiment execution process.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replaced static Argo Workflow manifest with a templated approach for dynamic parameter handling.
- Improved metadata handling by utilizing template data structure for experiment details.
- Streamlined the construction of the experiment request, enhancing clarity and maintainability.
- Updated logging to provide better insights during the experiment request creation process.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replaced the experiment saving logic with a direct creation method for better clarity and error handling.
- Enhanced the experiment run status polling by fetching the latest run ID dynamically.
- Improved logging to provide clearer insights during experiment execution and status checks.
- Updated the experiment request construction to ensure proper handling of experiment run IDs and statuses.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replaced UUID generation with a unique experiment name generation function for better clarity.
- Updated the Argo Workflow manifest to dynamically set the experiment name and improved metadata handling.
- Enhanced logging to provide clearer insights during experiment request construction.
- Streamlined the manifest parsing logic to ensure consistent naming conventions across the experiment lifecycle.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Added a local replacement for github.com/litmuschaos/litmus-go-sdk in go.mod, to be removed after the SDK is published.
- Updated go.sum to reflect the changes in dependencies and their versions.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduced a unique experiment name generation using UUID for better identification.
- Updated the Argo Workflow manifest to include proper JSON escaping and dynamic parameters.
- Refactored the manifest parsing logic to modify metadata and workflow names dynamically.
- Improved error handling during manifest parsing and JSON conversion.
This refactor enhances clarity and maintainability of the pod-delete experiment request construction.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Commented out kubeconfig retrieval and clientset generation in the pod-delete experiment test for clarity.
- Enhanced infrastructure setup logic to manually set ConnectedInfraID when using existing infrastructure.
- Refactored clientset generation to retrieve the token using the Auth() method, improving error handling and logging for token retrieval.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Added replacement for github.com/go-openapi/spec to v0.19.5 in go.mod.
- Added replacement for k8s.io/kube-openapi to v0.0.0-20200805222855-6aeccd4b50c6 in go.mod.
- Updated go.sum to reflect changes in dependencies and their versions.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduce a new utility function, ContainsString, in the pkg module to streamline the checking of final phases in various experiment tests.
- Replace the previous manual phase checking logic with the new utility function across multiple experiment test files, enhancing code clarity and maintainability.
- Ensure consistent handling of final phase validation for improved status checks in experiments.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduce a new environment variable, NODES_AFFECTED_PERC, to capture the percentage of affected pods during the node IO stress experiment.
- Update the setNodeIOStressExperimentENV function to include this new variable alongside existing filesystem utilization parameters for enhanced experiment configuration.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replace the previous method of fetching the engine template from an external source with a direct construction of an Argo Workflow manifest for Litmus 3.0.
- Update the manifest to include dynamic parameters for experiment execution, enhancing clarity and maintainability.
- Remove unnecessary HTTP requests and YAML parsing, streamlining the experiment request construction process.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Refactor experiment test files to utilize dynamic timeout and polling interval values from environment variables.
- Enhance error messages to reflect the actual timeout duration for better debugging.
- Extend final phase checks to include "Completed_With_Error" and "Terminated" for improved status validation.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Replace usage of final status object with final phase string for polling experiment run status.
- Enhance validation checks to ensure final phase is not empty and equals "Completed" after polling.
- Improve code clarity and maintainability by simplifying the status handling in both experiment tests.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Update all experiment test files to replace direct SDK infrastructure connection logic with the new `infrastructure` module for setup and cleanup.
- Enhance code clarity and maintainability by centralizing infrastructure management.
- Validate infrastructure ID after setup to ensure proper connection.
- Ensure consistent error handling across all experiments during infrastructure operations.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduce a new `infrastructure` package to handle setup and disconnection of infrastructure for chaos experiments.
- Update experiment test files to utilize the new infrastructure management functions, improving code clarity and maintainability.
- Add new environment variables for controlling infrastructure installation and usage of existing infrastructure.
- Update `go.mod` and `go.sum` to reflect changes in dependencies.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Add support for the `github.com/google/uuid` package to generate unique identifiers in experiments.
- Update experiment test files to utilize the Litmus SDK for constructing and executing chaos experiments.
- Refactor YAML manifest construction logic to dynamically set experiment parameters based on input details.
- Introduce new environment variables and enhance error handling for manifest generation.
- Update `go.mod` to include the latest version of `github.com/google/uuid` and `sigs.k8s.io/yaml`.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Introduce HTTP fetching of the engine template for the pod-delete experiment.
- Update the manifest construction logic to modify the fetched YAML template with experiment details.
- Replace the placeholder manifest with a dynamic template that adapts based on input parameters.
- Enhance error handling for template fetching and parsing.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Integrate the use of the Litmus SDK for creating and running the pod-delete experiment.
- Refactor test setup to include infrastructure connection and experiment request construction.
- Add new helper function to construct experiment requests with proper manifest YAML.
- Update go.mod and go.sum to include the latest version of github.com/google/uuid.
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Add support for connecting to ChaosCenter infrastructure via SDK in the pod-delete experiment.
- Introduce new environment variables for infrastructure configuration.
- Refactor test setup to include infrastructure connection checks and cleanup.
- Update go.mod to include the necessary Litmus SDK dependency.
Signed-off-by: [Your Name] [Your Email]
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>
- Bump Go version to 1.24.0 and toolchain to 1.24.1
- Update dependencies for litmuschaos components and testing libraries
- Add new indirect dependencies for improved functionality and compatibility
- Remove outdated versions and clean up go.sum
Signed-off-by: [Your Name] [Your Email]
Signed-off-by: Sky Singh <akashsingh2210670@gmail.com>