The same pipeline running on docker runner will set all envs to failure DRONE_BUILD_STATUS, DRONE_STAGE_STATUS …
on Kubernetes runner: DRONE_BUILD_STATUS=success
This is a documented limitation of the beta Kubernetes runner [1]
Unlike docker pipelines, the pipeline status is passed to steps by file as opposed to environment variable. Existing plugins may not be compatible with kubernetes pipelines and will need to be patched accordingly. See how we patched the Slack plugin.
This is because we create a pod for each pipeline, and each step in the pipeline is a container in that pod. We cannot update container environment variables once the pod is created, which means we cannot update the environment variables to reflect changes in status. The live status is therefore available via the filesystem (updated via the downward api) at /run/drone/env
Failures are sent. The code for updating the build status and the stage status can be found here, and this code is shared by the docker runner and the kubernetes runner. There is no difference in runtime behavior, other than kubernetes writing the updated variables to /run/drone/env (the underlying code can be found here).
I ran a quick test and can see the file is being updated with the expected status. Is it possible your cluster is slow to update the file?