Hello
, I am new to k6 and I recently tried installing k8s operator to my EKS cluster. I know this is still in experimental phase but wanted to report my experience on the same.
So at one point I wanted to try patching my k6 kind rather than deleting k6 and deploying it again (after completion). As a result it fails everytime I does this. Initially I thought this to be an issue with my syntax, but it doesn’t looks to be. I wonder if this has something to do with the json-patch library which we are using in https://github.com/grafana/k6-operator
Sharing error code below
kubectl patch k6 k6-sample -p '{"spec": {"parallelism": 3 }}' --type=json
Error from server (BadRequest): json: cannot unmarshal object into Go value of type jsonpatch.Patch
It will be helpful if someone can guide.
NOTE: my kubectl version is latest. So that might not be an issue here
Thanks
Hi @JinoArch, welcome to the forum 
This is an interesting error: I think it’s due to --type=json
requiring a JSON Patch, not a JSON Merge Patch – they use different format. Instead, the following command should work:
kubectl patch k6 k6-sample -p '{"spec": {"parallelism": 3 }}' --type=merge
Docs for reference.
A word of caution though. I think the applicability of patching k6 kind in this way is rather limited. It may depend on your particular use case of course but, e.g. changing parallelism from 2 to 3 can result in controller being stuck in a bad state and not being able to finish the test run. To make a restart you need to update status and that can be tricky too, due to this k8s issue.
Hope that helps!
Thanks @olha, 
The command did updated k6 but as you mentioned it looks like I need to update status to restart the flow. Presently, after patching its acts numb
Status:
Stage: started
So that does means if I need to re-run k6 kind again, I need to clear the resources in the same namespace and deploy it again? or find a workaround on updating the status? Please correct me if I am getting it wrong. Thanks
Yes, to restart it’s either a delete
and apply
for the resource or some working way to update the status with Kubernetes API.