Skip to content

Releases: grafana/k6-operator

v0.0.18

13 Nov 10:52
Compare
Choose a tag to compare

This is a relatively small release to update the default k6 runner image, as well as to release an important bug fix for Grafana Cloud k6 tests.

⚠️ In the next release, K6 CRD will be removed. Please switch to using TestRun CRD, if you have not done so already!

🐛 Bug hunting

When Grafana Cloud k6 tests entered Timeout state, k6-operator had failed to treat this is as a cause for abort of the test. This case is now treated correctly and the test run is aborted on Timeouts. PR 489.

📦 Helm

There were bugs with the values JSON schema added in previous release (Chart version 3.9.0) which did not allow to install the Chart when passing certain values. The fix was done and released as of Chart version 3.9.1. Thanks, @julian-perge, for the help! (PR 474, 484).

Manager's pod security context can now be configured via the Chart. Thanks, @gonmmarques! (PR 467).

Maintenance efforts to improve workflows around Helm are ongoing.

🪛 Maintenance

golangci-lint bumped to 1.61.0.

Full Changelog: v0.0.17...0.0.18

v0.0.17

03 Oct 11:29
Compare
Choose a tag to compare

✨ New features

This release contains the long-awaited support for IPv6. Thanks, @zzhao2010!

PrivateLoadZone test runs are now sending logs from the runners to the Cloud storage by default. These logs can then be accessed in Grafana Cloud k6 UI.

📦 Helm

Helm chart now has the schema file which allows integration with tools like Cyclops. Thanks, @petar-cvit!

Leader election of k6-operator Deployment became smarter: now it is automatically disabled by the Chart if replicas are set to 1. Thanks, @hartman17!

🐛 Bug hunting

The error on copying of the logs in initializer pod is now propagated properly. Thanks, @frittentheke!

🪛 Maintenance

Following k6 example, support for the outdated cloud output version 1 is removed.

Notable dependency updates in this release:

  • Golang to 1.22
  • controller-gen to 0.16.1
  • controller-runtime to 0.19.0

Last but not least, CI workflows for Helm chart linting and testing are fixed and properly executed on each Helm-related PR.

Full Changelog: v0.0.16...v0.0.17

v0.0.16

29 Jul 12:58
Compare
Choose a tag to compare

✨ New features

This release contains important new features for PrivateLoadZone:

  1. It is now possible to define the custom image in PrivateLoadZone. This can be useful to test with the older k6 binaries, as well with custom builds of k6. If you use a private registry and need to pass the secret to access it, imagePullSecrets can also be defined.
  2. Environment variables defined in GCk6 are now passed to PLZ test runs and can be referenced in the scripts.

The relevant PRs: 426, 429, 430.

🪛 Documentation

We made a major refactoring of documentation for the k6 Operator 🎉 Now majority of the information needed to run the k6 Operator can be accessed from Grafana k6 OSS docs over here. The link is also present in the Readme, which had been fully re-written to be more readable.

The relevant PRs: k6-docs 1559, 405. Thank you, @heitortsergent, for all the help!

Full Changelog: v0.0.15...v0.0.16

v0.0.15

05 Jul 10:10
Compare
Choose a tag to compare

✨ New features

This release contains the long-awaited support for ARM. Thanks, @audacioustux, and everyone who helped to test it!

As part of effort to improve UX, now when initializer pod fails, the stage of TestRun is set to error. Initializer failure can happen when there's a compilation issue with the script or an issue with its setup, and such failure prevents scheduling runner pods and executing the test run. Thanks, @irumaru and @JorTurFer!

VolumeClaim configuration for the spec.script has been expanded with boolean readOnly option that allows to forbid potential changes to volume's content during the test run. The default value for readOnly remains false, as before. An example. Thanks, @irumaru!

⚠️ A breaking change

Container with manager is being configured as the first container instead of the second, as before. Thanks, @TheoBrigitte!

This change can be breaking for the setups that depend on the order of containers. In such a case, the setup should be fixed to point to the correct container: manager will now be deployed as .containers[0]. If your setup does not rely on order of the containers, this change does not affect you.

📦 Helm

Helm chart has been extended with new options once again:

CI for Helm has been adjusted in this release to be executed more often, though there are still further improvements to be done.

🪛 Maintenance

Notable dependency updates in this release:

  • Golang was updated to 1.21
  • CI was updated to Go 1.21
  • k6 dep was updated to 0.52.0
  • security update: google.golang.org/protobuf from 1.31.0 to 1.33.0
  • security update: golang.org/x/net from 0.22.0 to 0.23.0
  • CI version unification
  • controller-gen to v0.14.0. Thanks, @TheoBrigitte!

Some bug fixes for CI are also included, as well as some additions and corrections for docs.

Full Changelog: v0.0.14...v0.0.15

v0.0.14

28 Mar 14:43
Compare
Choose a tag to compare

✨ New features

With the assistance of k6-core team, there's now support of options.cloud. 373. See more on this option in the latest k6 release notes.

PrivateLoadZone CR will now be registered with generated UID, 360. This improvement shall help to distinguish PLZs with the same name on different clusters.

initContainers can be additionally specified for Initializer job, unlocking a more complex logic of preparing the setup, etc. 379. Thanks, @FloGro3!

📦 Helm

We are aiming to improve release process for Helm with 372.

🪛 Maintenance

There has been some ongoing maintenance, including update of kube-rbac-proxy v0.15.0. 378.

And for PrivateLoadZone users, we now have a documentation explaining what is happening under the hood.

Full Changelog: v0.0.13...v0.0.14

v0.0.13

02 Feb 16:37
Compare
Choose a tag to compare

✨ New features

TestRun CRD continues to grow and now there's support for the following features:

There has been an initial implementation to support run-once setup and teardown: right now it is supported only for PrivateLoadZone test runs. It is still planned to support this feature for all kind of tests but perhaps with the help of native distribution in k6.

📦 Helm

Helm support is improving:

  • Addition ofimagePullSecrets, serviceAccountName bug fix and overrides via global options all at once in 363. Thanks, @marshallford!
  • All CRDs are now up-to-date. 364.

🐛 Bug hunting

Cloud output v2 became default in k6, and k6-operator is following suit: it is now turned on by default for PrivateLoadZone test runs. 356.

Handling of errors on duplicate jobs has been failing in some hard-to-repeat cases. 365, 367.

🪛 Maintenance

Dockerfiles are more precise and generalized now. 237. Thanks @dkhachyan!

k6 Golang dependency updated to v0.48. 359.

Last but not least, the first ever Troubleshooting guide has been added to internal documentation 🎉

Full Changelog: v0.0.12...v0.0.13

v0.0.13rc1

02 Jan 08:17
Compare
Choose a tag to compare
v0.0.13rc1 Pre-release
Pre-release

What's Changed

  • Bundle update for release v0.0.12 by @github-actions in #346
  • Update versions to v0.0.12 by @yorugac in #347
  • docs: update release workflow by @yorugac in #349
  • Update bug report template by @yorugac in #350
  • feat: add initializer envFrom field by @ghostx31 in #351
  • Set cloud output v2 as default for PLZ test runs by @yorugac in #356

New Contributors

Full Changelog: v0.0.12...v0.0.13rc1

v0.0.12

07 Dec 10:04
Compare
Choose a tag to compare

✨ New features

PrivateLoadZone flow has been improved by addition of k6 Cloud events in 283. As part of that work, handling of some common error scenarios has also been added, for now limited to k6 Cloud test runs (PrivateLoadZone and cloud output). This work will be further iterated on in the future.

The long-awaited removal of DNS restriction (svc.cluster.local suffix) has been implemented via switch to ClusterIP. Thanks, @CarlJi!

TestRun CRD now allows topologySpreadConstraints as part of any Job configuration. Thanks, @aslafy-z!

📦 Helm

With the help of our contributors, we continue to polish and improve our Helm chart:

🪛 Maintenance

controller-gen used to build k6-operator images was updated to v0.13.0 in 325.

There has been a lot of small improvement going on around CI workflows. As part of Hacktoberfest, @u5surf worked on adding Golang linting; thanks!

Docs improvements are relatively small but ongoing. Thanks, @aslafy-z!

Full Changelog: v0.0.11...v0.0.12

v0.0.12rc1

07 Nov 08:13
Compare
Choose a tag to compare
v0.0.12rc1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.0.11...v0.0.12rc1

v0.0.11

19 Oct 10:04
Compare
Choose a tag to compare

✨ New features

Helm support is finally here! Many thanks to @knmsk and everyone for the incredible work in #98.

At the moment, installation or upgrade of Helm chart require cloning k6-operator repo and installing from local folder ./charts. We are actively looking into publishing Helm release to Grafana repo.

Cloud output in k6-operator has been set to use a new and much improved v2 protocol by default (#272). There is a leftover decoding of v1 protocol in k6-operator, to smooth out the transition, but it will be removed in the next release.

TestRun CRD has been added as a duplicate of K6 CRD. TestRun has exactly the same interface, API and logic as K6 CRD (#286). The goal here is to improve UX of our APIs and to avoid confusion around CRDs, given our recent work on PrivateLoadZone feature and addition of PrivateLoadZone CRD.

⚠️ K6 CRD will be removed in favor of TestRun CRD in the future. Please switch to using TestRun!

⚠️ Breaking changes

Node selector is now properly defined as nodeSelector instead of nodeselector (#274). Thanks, @JorTurFer!

🐛 Bug hunting

PrivateLoadZone CRD is now deleted properly upon deletion of the resource, without leaving ghosts behind (#282).

🪛 Maintenance

Update of Golang to 1.19 and update of Golang dependencies happened in #308, including update of controller-runtime to v0.16.2.

There has been quite a bit of work happenning to improve our CI workflows. Part of it is related to Helm feature addition, but it is also a preparation to the refactoring work planned for the next releases. Thanks, @u5surf for helping with it (#313)!

Full Changelog: v0.0.10...v0.0.11