Skip to content

Latest commit

 

History

History
714 lines (424 loc) · 21.6 KB

CHANGELOG.md

File metadata and controls

714 lines (424 loc) · 21.6 KB

Changelog

0.37.0 - 2024-03-22

Added

  • 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

Changed

  • Now, all_nodes_must_be_ready_to_schedule accepts a label_selector to filter a subset of nodes to verify

0.36.0 - 2024-03-21

Added

  • Where to find the right values of field selectors

Changed

  • 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

Changed

  • Added field_selector to the get_events probe

0.34.1 - 2023-11-13

Fixed

  • Don't escape node draining too soon

0.34.0 - 2023-11-13

Fixed

  • Draining multiple nodes only drained a single one

Changed

  • Nodes actions now return the list of node names they operated on

0.33.0 - 2023-10-29

Added

  • Probes to retrieve and verify node statuses
  • Advertize support for Python 3.11 and Python 3.12

0.32.1 - 2023-10-28

Added

  • Make event probe discoverable

0.32.0 - 2023-10-28

Added

  • A new probe to list cluster events

0.31.1 - 2023-10-02

Fixed

  • Set target mode value in chaos mesh network actions

0.31.0 - 2023-10-02

Added

  • Target arguments to Chaos Mesh network actions

0.30.2 - 2023-10-02

Fixed

0.30.1 - 2023-09-28

Added

  • All network actions in the Chaos Mesh module now takes also a target parameter

0.30.0 - 2023-09-22

Added

  • 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

Added

  • 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

Fixed

  • Use yaml.safe_load() in chaosk8s.deployment.actions

Changed

  • Switched to ruff to lint the code

0.28.0 - 2023-06-09

Added

  • 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

-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.

Added

  • 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

Fixed

  • Updated build/release to match newer Python packaging rules

0.26.3 - 2022-08-23

Fixed

-Fixed the cmd splitting issue, therefore the shell commands will now parse correctly #133

  • Fixed version of Kubernetes API for Eviction.

Added

  • Added new probe to check whether minimum number of pods are running

0.26.2 - 2022-03-30

Added

  • Allow passing cmd as an array for exec_in_pods #127

Changed

  • 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

  • Fixed statefulset probe by using the right properties on it #112

0.26.0 - 2021-10-20

Added

  • Added probe deployment_partially_available in the deployment 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, and release workflows for GitHub Actions
  • Added Makefile to abstract away common development commands

Changed

  • Switched to black, flake8, and isort for formatting/linting instead of pycodestyle
  • Applied pyupgrade --py36-plus across codebase
  • Applied new formatting libs across codebase

Fixed

  • Fixed issue in replicaset.actions.delete_replica_set: 'ExtensionsV1beta1Api' object has no attribute 'list_namespaced_replica_set', we now use the AppsV1Api API

Removed

  • Removed lots of duplicate tests which offered no different exercising of the code

Changed

  • 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 to chaosk8s.pod.actions.terminate_pods #122

0.25.1 - 2021-02-05

Changed

  • Fixed regex lookup pattern to match substring in p.metadata.name as described in #114.

0.25.0 - 2020-11-23

Added

  • Networking package with actions to add/remove network policies

Changed

  • Fix actions.scale_deployment to use AppsV1Api in line with the rest of the actions.

0.24.1 - 2020-10-29

Changed

  • 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

Changed

  • 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

Added

  • Add namespace to all probes and actions with backward compatibility #39
  • Added statefulset_is_fully_available and statefulset_is_not_fully_available #86.
  • Add custom resource objects actions and probes

Changed

  • Fix deployment_is_not_fully_available and deployment_is_fully_available to use metadata.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 and deployment_is_fully_available to only use label_selector if one is passed in #85.

0.22.0 - 2020-01-10

Added

  • 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

Changed

  • Fix microservice_available_and_healthy to use metadata.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 use label_selector if one is passed in #53.
  • Updates to kubectl api version to point to apps/v1 instead of apps/v1beta1 #65
  • Remove check Kubernetes statefulset by name and label #70
  • Fix yaml load warning #75

0.21.0 - 2019-09-02

Changed

  • 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 the body argument is passed a named argument #42. A follow up to #34
  • Fix calls to delete_nodes so that the body argument is passed a named argument #44.

0.20.0 - 2018-03-25

Added

  • Add a probe to check pods conditions PR#31

Changed

  • Fix call to delete_namespaced_pod so that the body argument is passed a named argument #34

0.19.1 - 2018-10-08

Changed

  • 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

Changed

  • Fix: use Succeeded instead of Completed to filter successful pods created by a cronjob in the all_microservices_healthy probe.

0.18.0 - 2018-10-08

Added

  • Codecov integration
  • Renamed FailedActivity to ActivityFailed 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 the all_microservices_healthy probe. See [PR#23][23]
  • Support a new grace_period_seconds parameter in the terminate_pods action. See [PR#24][24]

0.17.0 - 2018-09-07

Added

  • 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

Added

  • chaosk8s.pod.probes.pods_in_phase to probe that all pods matching a label are in a given pod Phase
  • chaosk8s.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

Changed

  • Moved the chaosk8s.probes.read_microservice_logs to chaosk8s.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

  • Added a pod specific set of actions

Changed

  • Refactor dev/test dependencies so they are not deployed on install

0.10.0 - 2018-01-22

Changed

  • 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

Added

  • Deployment scaler action

Changed

  • Updated to chaostoolkit-lib 0.8.0

0.6.0 - 2017-12-12

Added

  • 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)

Changed

  • 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

Changed

  • 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

Changed

  • Removing unwanted parameter

0.4.2 - 2017-11-20

Changed

  • 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

Changed

  • Do not build a universal wheel package (no Python 2 support in chaostoolkit)

0.1.1 - 2017-10-06

Changed

  • Package up extra files when installed from source

0.1.0 - 2017-10-06

Added

  • Initial release