grafana/k6-chaos

Merge k6-chaos and xk6-chaos

Closed this issue · 2 comments

Presently there are two separate efforts for bringing native chaos engineering capabilities to k6: k6-chaos and xk6-chaos. Their main differences is thatxk6-chaos is a k6 extension while k6-chaos is a set of wrappers around other extensions (notably xk6-kubernetes). Besides this, both projects aims the same objective and similar API idea: functions for introducing disruptions in the running applications (and more specifically, Kubernetes applications).

The existence of these two efforts has several inconveniences. The most obvious is the dispersion of efforts between the two projects. Also, the confusion of potential contributors on which project to focus.

Therefore, the suggestion is to merge both projects underxk6-chaos. The rationale of using xk6-chaos

  • Consistency with other existing tools also developed as extensions.
  • Improved contributor experience. Extensions are developed in golang and has a more robust tooling, including testing.
  • Consistency in the development of the chaos functionalities. As the chaos functions mature, it is to be expected that more sophisticated component such as agents and controllers would be required (see for example #12) and golang would become a prominent development language. Implementing also the chaos api in golang would bring a more consistent development experience.
  • Allow and independent evolution of the chaos functionalities. While wrapping other extensions for implementing chaos functionalities may be a good short-term strategy for PoC, it creates an unnecessary coupling with other extensions. This may lead to bloating other extensions with functionalities which sole use case is disrupting applications (for example, starting ephemeral containers in a pod added to xk6-kubernetes).

Implementing chaos functions as an extension should not imply re-implementing already existing functionalities in other extensions and in particular, xk6-kubernetes. Therefore, a strategy must be devised for reusing code.

sniku commented

This makes a lot of sense to me. I'm voting +1 to merge the two repositories.

The functionality in k6-chaos has bee implemented in xk6-chaos.