0.39.0 - 2024-05-06
-
Added the
chaosk8s.pod.probes.should_be_found_in_logsprobe to search into container logs:{ "title": "Check pod logs", "description": "n/a", "steady-state-hypothesis": { "title": "extract-logs-with-regex", "probes": [ { "name": "at-least-one-pod-should-have-restarted", "type": "probe", "tolerance": { "name": "search-probe", "type": "probe", "provider": { "type": "python", "module": "chaosk8s.pod.probes", "func": "should_be_found_in_logs", "arguments": { "pattern": "startup", "all_containers": false } } }, "provider": { "type": "python", "module": "chaosk8s.pod.probes", "func": "read_pod_logs", "arguments": { "last": "60s", "label_selector": "app=producer", "container_name": "producer" } } } ] }, "method": [] }
0.38.2 - 2024-04-18
- Read version from package metadata
0.38.1 - 2024-04-18
- Publish sources alongside the wheel package
- Bump dependencies
0.38.0 - 2024-04-10
- Fixed the CPU stress action #161
- Bump dependencies
0.37.0 - 2024-03-22
- Improved logging of
delete_nodeto grasp corner cases - A new
verify_nodes_conditionprobe to check any condition on nodes - A new
nodes_must_be_healthyprove to check a set of node conditions against expected values
- Now,
all_nodes_must_be_ready_to_scheduleaccepts alabel_selectorto filter a subset of nodes to verify
0.36.0 - 2024-03-21
- Where to find the right values of field selectors
- Moved to PDM away from setuptools
- Moved to Trusted Publisher to publish the package to Pypi
- Removed black and isort dependencies to keep ruff
- Dropped logzero dependency
0.35.0 - 2024-03-14
- Added
field_selectorto theget_eventsprobe
0.34.1 - 2023-11-13
- Don't escape node draining too soon
0.34.0 - 2023-11-13
- Draining multiple nodes only drained a single one
- Nodes actions now return the list of node names they operated on
0.33.0 - 2023-10-29
- Probes to retrieve and verify node statuses
- Advertize support for Python 3.11 and Python 3.12
0.32.1 - 2023-10-28
- Make event probe discoverable
0.32.0 - 2023-10-28
- A new probe to list cluster events
0.31.1 - 2023-10-02
- Set target mode value in chaos mesh network actions
0.31.0 - 2023-10-02
- Target arguments to Chaos Mesh network actions
0.30.2 - 2023-10-02
- Patching Custom Resources required the appropriate header to be set as per kubernetes-client/python#1216 (comment)
0.30.1 - 2023-09-28
- All network actions in the Chaos Mesh module now takes also a target parameter
0.30.0 - 2023-09-22
- Actions:
chaosk8s.chaosmesh.stress.actions.delete_stressorchaosk8s.chaosmesh.network.actions.delete_network_fault
- Probes:
chaosk8s.chaosmesh.stress.probes.get_stressorchaosk8s.chaosmesh.stress.probes.get_stressorschaosk8s.chaosmesh.network.probes.get_network_faultschaosk8s.chaosmesh.network.probes.get_network_fault
0.29.0 - 2023-09-22
- Actions:
chaosk8s.secret.actions.create_secretchaosk8s.secret.actions.delete_secretchaosk8s.namespace.actions.create_namespacechaosk8s.namespace.actions.delete_namespacechaosk8s.daemonset.actions.create_daemon_setchaosk8s.daemonset.actions.update_daemon_setchaosk8s.daemonset.actions.delete_daemon_setchaosk8s.networking.actions.create_ingresschaosk8s.networking.actions.update_ingresschaosk8s.networking.actions.delete_ingresschaosk8s.crd.actions.apply_from_jsonchaosk8s.crd.actions.apply_from_yamlchaosk8s.chaosmesh.stress.actions.stress_cpuchaosk8s.chaosmesh.stress.actions.stress_memorychaosk8s.chaosmesh.stress.actions.delete_stressorchaosk8s.chaosmesh.network.actions.add_latencychaosk8s.chaosmesh.network.actions.corrupt_packetschaosk8s.chaosmesh.network.actions.duplicate_packetschaosk8s.chaosmesh.network.actions.reorder_packetschaosk8s.chaosmesh.network.actions.set_bandwidthchaosk8s.chaosmesh.network.actions.set_losschaosk8s.chaosmesh.network.actions.set_bandwidthchaosk8s.chaosmesh.network.actions.delete_network_fault
- Probes:
chaosk8s.secret.probes.secret_existschaosk8s.namespace.probes.namespace_existschaosk8s.daemonset.probes.daemon_set_available_and_healthychaosk8s.daemonset.probes.daemon_set_not_fully_availablechaosk8s.daemonset.probes.daemon_set_fully_availablechaosk8s.daemonset.probes.daemon_set_partially_availablechaosk8s.networking.probes.ingress_exists
- Support the
NO_PROXYenvironment variable
- Use
yaml.safe_load()inchaosk8s.deployment.actions
- Switched to ruff to lint the code
0.28.0 - 2023-06-09
- More flags in probes signature so you can choose if you prefer to raise
ActifityFailedor return a boolean.
0.27.0 - 2023-06-09
-Updated the API/v1 as per the lifecycle of Kubernetes API which states the pod eviction has been V1beta1Eviction was deprecated and removed in Kubernetes 1.22.
- Rollout deployment action
chaosk8s.deployment.actions.rollout_deployment - Flags to Pod probes so they can return a boolean on failure rather than
raising an
ActifityFailederror. The outcome is the same but the output can be misinterpreted when raising vs using a bool. Specially from a tolerance perspective.
0.26.4 - 2023-02-27
- Updated build/release to match newer Python packaging rules
0.26.3 - 2022-08-23
-Fixed the cmd splitting issue, therefore the shell commands will now parse correctly #133
- Fixed version of Kubernetes API for Eviction.
- Added new probe to check whether minimum number of pods are running
0.26.2 - 2022-03-30
- Allow passing cmd as an array for exec_in_pods #127
- Exec pods may not always return a value that can be parsed as a json object so, in that case we return the error as-is rather than failing. #131
0.26.1 - 2021-12-13
- Fixed statefulset probe by using the right properties on it #112
0.26.0 - 2021-10-20
- Added probe
deployment_partially_availablein thedeploymentmodule to return if a deployment has some of its pods ready, making the deployment at available (without requiring all pods to be healthy) #117 - Add
build-and-test,check-pr, andreleaseworkflows for GitHub Actions - Added
Makefileto abstract away common development commands
- Switched to
black,flake8, andisortfor formatting/linting instead ofpycodestyle - Applied
pyupgrade --py36-plusacross codebase - Applied new formatting libs across codebase
- Fixed issue in
replicaset.actions.delete_replica_set:'ExtensionsV1beta1Api' object has no attribute 'list_namespaced_replica_set', we now use theAppsV1ApiAPI
- Removed lots of duplicate tests which offered no different exercising of the code
- Log the path of the Kubernetes config file used, if found
- Client have logging at debug level with
KUBERNETES_DEBUG - Allow to not verify Kubernetes certificates even when using the default config or the one from a pod. This is useful when Kubernetes is deployed with a self-signed certificate.
- Passing name via
label_selectorhas now moved to using the metadata of the resource #111 - Terminating pods now return the name of the pods that were actually deleted #104
- Deprecated
chaosk8s.pod.actions.delete_podsin favor tochaosk8s.pod.actions.terminate_pods#122
0.25.1 - 2021-02-05
- Fixed regex lookup pattern to match substring in
p.metadata.nameas described in #114.
0.25.0 - 2020-11-23
- Networking package with actions to add/remove network policies
- Fix
actions.scale_deploymentto use AppsV1Api in line with the rest of the actions.
0.24.1 - 2020-10-29
service_is_initializedcan no use a name, a label_selector or both to find a matching service in a namespace. The name is not matched against labels anymore but againt field selectors. #106- declare return type of
service_is_initialized
0.24.0 - 2020-10-13
- Moved to stable API channel for deployment calls #103 as they beta channels have been deprecated for a while now.
0.23.0 - 2020-09-26
- Add namespace to all probes and actions with backward compatibility #39
- Added
statefulset_is_fully_availableandstatefulset_is_not_fully_available#86. - Add custom resource objects actions and probes
- Fix
deployment_is_not_fully_availableanddeployment_is_fully_availableto usemetadata.namefield as a name selector as newer version of K8s no longer add a name label by default #85. - Fix
deployment_is_not_fully_availableanddeployment_is_fully_availableto only uselabel_selectorif one is passed in #85.
0.22.0 - 2020-01-10
- Added function to execute remote commands in a container
- Added action to scale statefulsets #73
- Added action to create a statefulset from a json/yaml file #74
- Added action to create a service endpoint from a json/yaml file #68
- Fix
microservice_available_and_healthyto usemetadata.namefield as a name selector as newever version of K8s no longer add a name label by defult #53. - Fix
microservice_available_and_healthyto only uselabel_selectorif one is passed in #53. - Updates to
kubectlapi version to point toapps/v1instead ofapps/v1beta1#65 - Remove check Kubernetes statefulset by name and label #70
- Fix yaml load warning #75
0.21.0 - 2019-09-02
- Try to read proxy from environment variable "HTTP_PROXY" and set it appropriately if it exists
- Add the
deployment_is_fully_availableprobe to wait for a deployment to be fully available #38 - Fix calls to
delete_namespaced_*so that thebodyargument is passed a named argument #42. A follow up to #34 - Fix calls to
delete_nodesso that thebodyargument is passed a named argument #44.
0.20.0 - 2018-03-25
- Add a probe to check pods conditions PR#31
- Fix call to
delete_namespaced_podso that thebodyargument is passed a named argument #34
0.19.1 - 2018-10-08
- As part of #21, we realized that passing
Noneto some parameters of the Kubernetes client API was not the right move because, in that case, the client turns that into a"None"string which is not what we want. So I had to resort to many conditionals that make the code not as clean I'd want. Sigh!
0.18.1 - 2018-10-08
- Fix: use
Succeededinstead ofCompletedto filter successful pods created by a cronjob in theall_microservices_healthyprobe.
0.18.0 - 2018-10-08
- Codecov integration
- Renamed
FailedActivitytoActivityFailedas per chaostoolkit 0.20.0. See PR#20 - Add Ability to specify a maximum percentage of pods to be killed PR#19
- Consider
Completedpods as healthy in theall_microservices_healthyprobe. See [PR#23][23] - Support a new
grace_period_secondsparameter in theterminate_podsaction. See [PR#24][24]
0.17.0 - 2018-09-07
- List work nodes
0.16.2 - 2018-05-14
### Added
- Read version from source file without importing
0.16.1 - 2018-05-14
### Added
- Added requirements-dev.txt to MANIFEST.in so it gets packaged and distributed
0.16.0 - 2018-04-24
### Added
- Allow to pass the Kubernetes context to authenticate from by setting
the
"KUBERNETES_CONTEXT"key in the environment or the secrets object #15
0.15.0 - 2018-04-13
### Added
- a probe to count the number of pods
- actions to delete and create nodes
- actions to cordon, uncordon and drain nodes
- canot locate credentials automatically when ran from within a Pod if
you set the
CHAOSTOOLKIT_IN_POD: "true"environment variable in the Pod spec
0.14.0 - 2018-04-05
### Added
- allow to create a Kubernetes client from a Kubernetes cluster pod
0.13.0 - 2018-03-09
chaosk8s.pod.probes.pods_in_phaseto probe that all pods matching a label are in a given pod Phasechaosk8s.pod.probes.pods_not_in_phaseto probe that all pods matching a label are not in a given pod Phase
0.12.0 - 2018-02-12
- Moved the
chaosk8s.probes.read_microservice_logstochaosk8s.pod.probes.read_pod_logsfor clarity - Make name optional for
chaosk8s.pod.probes.read_pod_logsas it usually more preferred to use a label for that probe - Removed the system discovery as it wasn't used by chaostoolkit anyway
0.11.0 - 2018-01-28
- Added a pod specific set of actions
- Refactor dev/test dependencies so they are not deployed on install
0.10.0 - 2018-01-22
- activities now take a
label_selectorargument to let you adjust to your conventions when selecting resources #7
0.9.0 - 2018-01-16
### Added
- discovery mechanism
0.8.0 - 2017-12-29
### Added
read_microservices_logsprobe to fetch pod's logs
0.7.0 - 2017-12-17
- Deployment scaler action
- Updated to chaostoolkit-lib 0.8.0
0.6.0 - 2017-12-12
- Logging at DEBUG level for investigation
- Probe
deployment_is_not_fully_availableto wait until a deployment is not fully available (its desired state is different from its current state)
- Selecting on the name Label rather than Service as it's more commonly used
- Updated chaostoolkit-lib to 0.7.0 for configuration support
0.5.0 - 2017-12-06
- Updated to match chaostoolkit-lib 0.6.0 API changes
- Probes now return
Trueon success so they can be nicely used from the steady state hypothesis checks
0.4.3 - 2017-11-23
- Removing unwanted parameter
0.4.2 - 2017-11-20
- Proper verify SSL reading of the environment key
0.4.1 - 2017-11-20
### Added
- Passing secrets down to client function
0.4.0 - 2017-11-20
### Added
- Can create a client from secrets
0.3.0 - 2017-11-20
### Added
- Can now authenticate to the Kubernetes API endpoint either via a token, username/password or certificate/pkey. All of this via environment variable. By default, still looks up for ~/kube/config if it exists
0.2.0 - 2017-10-23
### Added
- Remove check Kubernetes service by name
- Do not build a universal wheel package (no Python 2 support in chaostoolkit)
0.1.1 - 2017-10-06
- Package up extra files when installed from source
0.1.0 - 2017-10-06
- Initial release