An operator for running distributed k6 tests.
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!
We are aiming to improve release process for Helm with 372.
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: https://github.com/grafana/k6-operator/compare/v0.0.13...v0.0.14
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 support is improving:
imagePullSecrets
, serviceAccountName
bug fix and overrides via global
options all at once in 363. Thanks, @marshallford!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.
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 :tada:
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.12...v0.0.13
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.12...v0.0.13rc1
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!
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!prometheus.enabled
option. Thanks, @edwintye!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: https://github.com/grafana/k6-operator/compare/v0.0.11...v0.0.12
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.11...v0.0.12rc1
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.
:warning:
K6
CRD will be removed in favor ofTestRun
CRD in the future. Please switch to usingTestRun
!
Node selector is now properly defined as nodeSelector
instead of nodeselector
(#274). Thanks, @JorTurFer!
PrivateLoadZone
CRD is now deleted properly upon deletion of the resource, without leaving ghosts behind (#282).
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: https://github.com/grafana/k6-operator/compare/v0.0.10...v0.0.11
K6
CRD is going to be deprecated in favor of TestRun
CRD. The behaviour of both should be identical for now, but it is strongly recommended to switch to TestRun
CRD in your workflows as K6
CRD will be removed in the future.
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.11rc2...v0.0.11rc3
Helm chart is included starting this RC :tada:
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.11rc1...v0.0.11rc2
This RC contains a breaking change with rename of the field in K6 API: from nodeselector
to nodeSelector
in https://github.com/grafana/k6-operator/pull/274. It is part of improvement of k6-operator UX as well as preparation before Helm chart addition and rename of K6 CRD itself.
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.10...v0.0.11rc1
As was mentioned in v0.0.10rc3, since PR #247 all images are built as part of k6-operator Github package.
The old images and releases continue to be available as part of operator package. But it is highly recommended to re-deploy with the new, k6-operator package image, in order to receive the latest updates and releases.
Watch namespaces are now configurable. Thanks, @dkhachyan!
Readiness and liveness probes can be configured as part of K6 spec, since #230. Thanks, @0xF0D0!
Cloud output in k6-operator is now more performant thanks to metrics aggregation options, added in #229. Additionally, default name of test runs in cloud output has become consistent with other k6 Cloud test runs in #248.
The long-awaited init containers are supported by k6-operator now :tada: Thanks to @ivanape and @andrei-trandafir! PR #184 and #249. See examples here and here.
A new CRD named PrivateLoadZone
has been added in #238 and #239. It is a feature for k6 Cloud users as well as a new type of test run in k6-operator.
Last but not least, k6-operator has been equipped with bundle.yaml
to support a simpler method of installation with kubectl apply
in #257. See the relevant docs for details.
A bug with nonexistent folder was fixed in #243. Thanks, @vukor!
There was also a couple of important fixes of operator-sdk auto generation, in #217. Thanks, @dkhachyan!
Dependency updates in this release:
Our docs has been seeing more improvements too:
On a related note, our guide for distributed tests has landed in official k6 Docs!
Full Changelog: https://github.com/grafana/k6-operator/compare/v0.0.9...v0.0.10