0.39.0 - 2024-05-06
-
Added the
chaosk8s.pod.probes.should_be_found_in_logs
probe 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_node
to grasp corner cases - A new
verify_nodes_condition
probe to check any condition on nodes - A new
nodes_must_be_healthy
prove to check a set of node conditions against expected values
- Now,
all_nodes_must_be_ready_to_schedule
accepts alabel_selector
to 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_selector
to theget_events
probe
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_stressor
chaosk8s.chaosmesh.network.actions.delete_network_fault
- Probes:
chaosk8s.chaosmesh.stress.probes.get_stressor
chaosk8s.chaosmesh.stress.probes.get_stressors
chaosk8s.chaosmesh.network.probes.get_network_faults
chaosk8s.chaosmesh.network.probes.get_network_fault
0.29.0 - 2023-09-22
- Actions:
chaosk8s.secret.actions.create_secret
chaosk8s.secret.actions.delete_secret
chaosk8s.namespace.actions.create_namespace
chaosk8s.namespace.actions.delete_namespace
chaosk8s.daemonset.actions.create_daemon_set
chaosk8s.daemonset.actions.update_daemon_set
chaosk8s.daemonset.actions.delete_daemon_set
chaosk8s.networking.actions.create_ingress
chaosk8s.networking.actions.update_ingress
chaosk8s.networking.actions.delete_ingress
chaosk8s.crd.actions.apply_from_json
chaosk8s.crd.actions.apply_from_yaml
chaosk8s.chaosmesh.stress.actions.stress_cpu
chaosk8s.chaosmesh.stress.actions.stress_memory
chaosk8s.chaosmesh.stress.actions.delete_stressor
chaosk8s.chaosmesh.network.actions.add_latency
chaosk8s.chaosmesh.network.actions.corrupt_packets
chaosk8s.chaosmesh.network.actions.duplicate_packets
chaosk8s.chaosmesh.network.actions.reorder_packets
chaosk8s.chaosmesh.network.actions.set_bandwidth
chaosk8s.chaosmesh.network.actions.set_loss
chaosk8s.chaosmesh.network.actions.set_bandwidth
chaosk8s.chaosmesh.network.actions.delete_network_fault
- Probes:
chaosk8s.secret.probes.secret_exists
chaosk8s.namespace.probes.namespace_exists
chaosk8s.daemonset.probes.daemon_set_available_and_healthy
chaosk8s.daemonset.probes.daemon_set_not_fully_available
chaosk8s.daemonset.probes.daemon_set_fully_available
chaosk8s.daemonset.probes.daemon_set_partially_available
chaosk8s.networking.probes.ingress_exists
- Support the
NO_PROXY
environment 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
ActifityFailed
or 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
ActifityFailed
error. 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_available
in thedeployment
module 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
, andrelease
workflows for GitHub Actions - Added
Makefile
to abstract away common development commands
- Switched to
black
,flake8
, andisort
for formatting/linting instead ofpycodestyle
- Applied
pyupgrade --py36-plus
across 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 theAppsV1Api
API
- 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_selector
has 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_pods
in favor tochaosk8s.pod.actions.terminate_pods
#122
0.25.1 - 2021-02-05
- Fixed regex lookup pattern to match substring in
p.metadata.name
as described in #114.
0.25.0 - 2020-11-23
- Networking package with actions to add/remove network policies
- Fix
actions.scale_deployment
to use AppsV1Api in line with the rest of the actions.
0.24.1 - 2020-10-29
service_is_initialized
can 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_available
andstatefulset_is_not_fully_available
#86. - Add custom resource objects actions and probes
- Fix
deployment_is_not_fully_available
anddeployment_is_fully_available
to usemetadata.name
field as a name selector as newer version of K8s no longer add a name label by default #85. - Fix
deployment_is_not_fully_available
anddeployment_is_fully_available
to only uselabel_selector
if 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_healthy
to usemetadata.name
field as a name selector as newever version of K8s no longer add a name label by defult #53. - Fix
microservice_available_and_healthy
to only uselabel_selector
if one is passed in #53. - Updates to
kubectl
api version to point toapps/v1
instead 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_available
probe to wait for a deployment to be fully available #38 - Fix calls to
delete_namespaced_*
so that thebody
argument is passed a named argument #42. A follow up to #34 - Fix calls to
delete_nodes
so that thebody
argument 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_pod
so that thebody
argument is passed a named argument #34
0.19.1 - 2018-10-08
- As part of #21, we realized that passing
None
to 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
Succeeded
instead ofCompleted
to filter successful pods created by a cronjob in theall_microservices_healthy
probe.
0.18.0 - 2018-10-08
- Codecov integration
- Renamed
FailedActivity
toActivityFailed
as per chaostoolkit 0.20.0. See PR#20 - Add Ability to specify a maximum percentage of pods to be killed PR#19
- Consider
Completed
pods as healthy in theall_microservices_healthy
probe. See [PR#23][23] - Support a new
grace_period_seconds
parameter in theterminate_pods
action. 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_phase
to probe that all pods matching a label are in a given pod Phasechaosk8s.pod.probes.pods_not_in_phase
to 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_logs
tochaosk8s.pod.probes.read_pod_logs
for clarity - Make name optional for
chaosk8s.pod.probes.read_pod_logs
as 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_selector
argument 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_logs
probe 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_available
to 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
True
on 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