Releases: grafana/k6-operator
v0.0.18
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.
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
✨ 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
✨ New features
This release contains important new features for PrivateLoadZone
:
- It is now possible to define the custom
image
inPrivateLoadZone
. 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. - 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
✨ 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:
podAnnotations
has been added. Thanks, @vr!- Container security context has been added. Thanks, @gonmmarques!
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
✨ 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
✨ New features
TestRun
CRD continues to grow and now there's support for the following features:
envFrom
for initializer. 351. Thanks, @ghostx31!containerSecurityContext
for any Pod. 345. Thanks, @llaszkie!
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 of
imagePullSecrets
,serviceAccountName
bug fix and overrides viaglobal
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
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
✨ 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:
podLabels
can be configured in Helm chart. Thanks, @MarkDPierce!replicas
for manager Deployment can be configured in Helm chart. Thanks, @josh-ferrell!installCRDs
is now also an option in Helm chart. Thanks, @illrill!- ServiceMonitor is deployed in the same namespace as the rest of resources, fixing the issue with
prometheus.enabled
option. Thanks, @edwintye!
🪛 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
What's Changed
- Bundle update for release v0.0.11 by @github-actions in #315
- CI: fixes to make Helm release work by @yorugac in #303
- Fix typo in CI by @yorugac in #316
- Fix typo in workflow by @yorugac in #317
- Updating docs and bumping Helm chart by @yorugac in #319
- CI: use main branch of helm-charts by @yorugac in #323
- ci: add golang lint and fixed. #157 by @u5surf in #320
- Update controller-gen to v0.13.0 by @yorugac in #325
- feat: use clusterip instead of DNS for service status check by @CarlJi in #288
New Contributors
Full Changelog: v0.0.11...v0.0.12rc1
v0.0.11
✨ 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 ofTestRun
CRD in the future. Please switch to usingTestRun
!
⚠️ 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