Skip to content

Releases: mostafa/xk6-kafka

v0.17.0

21 Feb 16:40
fc71c8b
Compare
Choose a tag to compare

This release contains the following changes:

  1. AWS IAM SASL mechanism is added for authenticating against AWS MSK, thanks to @gokceyalcin for the initial PR.
  2. k6 is updated to v0.43.0 and the rest of the dependencies are also updated to their latest versions.
  3. Time constants are exported to JS.
  4. Add a few more FAQ to README for autocompletion in IDEs and usage of time constants.

What's Changed

  • Add AWS IAM SASL mechanism for authenticating against AWS MSK by @mostafa in #193

Full Changelog: v0.16.1...v0.17.0

v0.16.1

23 Jan 13:26
005db43
Compare
Choose a tag to compare

This release contains some changes and fixes:

  1. The ReaderConfig is updated with new parameters.
  2. The Reader now validates all the consumer-group-specific parameters.
  3. A new script, test_consumer_group.js is added for reading from a consumer group using a groupID and other parameters.
  4. JS API docs are updated accordingly.
  5. The description of emitted metrics and their type are added to the README.
  6. k6 is bumped to v0.42.0 and other dependencies are updated.

What's Changed

  • Add readBatchTimeout to ReaderConfig by @mostafa in #188
  • Fix ReaderConfig's default values and a few other fixes by @mostafa in #189

Full Changelog: v0.16.0...v0.16.1

v0.16.0

22 Nov 10:57
9b2a826
Compare
Choose a tag to compare

What's Changed

  • Change dot to underscore in metrics separator to be compatible with Prometheus metrics by @rgordill in #177
  • Lint scripts, configs and docs by @mostafa in #178
  • Update dependencies to latest version by @mostafa in #179

New Contributors

Full Changelog: v0.15.1...v0.16.0

v0.15.1

14 Nov 16:13
0811422
Compare
Choose a tag to compare

This release fixes a bug reported by @SameeranB in #174 that caused k6 internal gRPC module to fail when the Kafka extension is imported.

What's Changed

  • Fix gRPC and Kafka module interoperability by removing the field mapper by @mostafa in 0811422

Full Changelog: v0.15.0...v0.15.1

v0.15.0

03 Nov 13:56
f3c80c6
Compare
Choose a tag to compare

k6 v0.41.0 was released yesterday! 🎉
Since I am working for the same company, I usually update the extension as soon as I get the information about the release and changes, and this one is no exception. In this release I upgraded k6 to version 0.41.0 as a dependency. There were breaking changes to the metrics API, which I fixed. I also updated all the other dependencies and fixed two minor issues that was failing the tests.

What's Changed

Full Changelog: v0.14.2...v0.15.0

v0.14.2

19 Oct 19:09
e066e68
Compare
Choose a tag to compare

In this release an issue is fixed that was reported in #150 and #166. The issue was that mutual TLS (mTLS), aka. two-way TLS, was enforced when configuring TLS via the TLSConfig object, but sometimes the users needed to have normal one-way TLS, for example in Schema Registry config. Now the TLSConfig object can be used in three different ways:

  1. Enabling TLS to just use system certificates:
const tlsConfig = {
    enableTls: true,
    insecureSkipTlsVerify: false,
    minVersion: TLS_1_2,
};
  1. Enabling one-way TLS using a custom server certificate:
const tlsConfig = {
    enableTls: true,
    insecureSkipTlsVerify: false,
    minVersion: TLS_1_2,
    serverCaPem: "/path/to/your/server-ca.pem",
};
  1. Enabling two-way mTLS using a custom server certificate and client certificate and key files:
const tlsConfig = {
    enableTls: true,
    insecureSkipTlsVerify: false,
    minVersion: TLS_1_2,
    serverCaPem: "/path/to/your/server-ca.pem",
    clientCertPem: "/path/to/your/client-cert.pem",
    clientKeyPem: "/path/to/your/client-key.pem",
};

What's Changed

Full Changelog: v0.14.1...v0.14.2

v0.14.1

09 Sep 22:15
c3591b2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.0...v0.14.1

v0.14.0

14 Aug 20:25
f66ef7b
Compare
Choose a tag to compare

In this release, I put a lot of effort into exporting the Schema Registry class to the JS API and changed the (de)serialization to make it explicit so that the users can (de)serialize their data manually. The following is what went into this release:

  • The significant refactorings of the extensions (#44) are finished.

  • Much like the last few releases, this one contains breaking changes to the JS API and how it (de)serializes data (#50, #53, #54, and #55). The usage of schemaRegistry.serialize and schemaRegistry.deserialize can be seen in the example scripts.

    import { SchemaRegistry } from "k6/x/kafka";
    
    const schemaRegistry = SchemaRegistry({ url: "...", basicAuth: {...}, tls: {...} });
    
    schemaRegistry.getSchema({ version: 0, subject: "..." }); // 0 means latest schema
    schemaRegistry.createSchema({ version: 0, subject: "...", schema: "...", schemaType: "AVRO" });
    schemaRegistry.getSubjectName({ element: "...", topic: "...", schema: "...", subjectNameStrategy: "..." });
    // You can pass a string, byte array, and JSON objects as data. Regardless of the data, the schemaType must also be passed.
    // For schemaless data, like string, only the data and the schemaType (SCHEMA_TYPE_STRING) should be passed.
    schemaRegistry.serialize({ schema: "...", data: "...", schemaType: SCHEMA_TYPE_AVRO });
    schemaRegistry.deserialize({ schema: "...", data: "...", schemaType: SCHEMA_TYPE_AVRO });
  • The JS API docs now reside in the api-docs directory.

  • The data can now be passed to consume or produce as a string, byte array, or JSON (#116) format (without stringification). However, the schemaType should be set. And in the case of JSONSchema and Avro, the schema should also be set.

  • The test and the build CI pipelines are also fixed.

  • All the test scripts run on the test CI pipeline now, except the scripts/test_sasl_auth.js (#48 and f2bd747).

  • The SBOMs are generated for both the source code and the Docker image (#78) and will be stored on the release page (#152).

  • The Docker image is now signed by the cosign, and the signature is verified and stored on Docker Hub (#155, 052f73f, 4fb3c33, e94e20b, 9949398, ec861bc, and f66ef7b).

  • The purpose of this extension is not to load-test the Schema Registry. Thus, the schema is cached now by the extension, effectively bypassing the schema caching in the srclient library (that can also be enabled, though), as raised by @oscar067 in #146 and his initial fix in #147 (#151).

What's Changed

Full Changelog: v0.13.1...v0.14.0

v0.13.1

04 Aug 17:53
91cf77c
Compare
Choose a tag to compare

I released this patched version to fix two bugs reported by the awesome users of this extension:

Full Changelog: v0.13.0...v0.13.1

v0.13.0

14 Jul 12:57
47cdfe5
Compare
Choose a tag to compare

This release is a bugfix release and includes mostly cosmetic changes to the Go codebase that were reported by various linters via golangci-lint. I fixed the CI to use the golangci-lint-action and created a configuration file to enable all linters, including gosec, except a few. All constructors and functions are now unexported and you can access them via either of these classes: Writer, Reader or Connection.

I addressed these issues:

Also, @thmshmm was kind enough to fix a bug in #129 that I introduced in the byte array serializer. 🙏

What's Changed

Full Changelog: v0.12.0...v0.13.0