Drone-kube-runner deprecation and container engines issues

It seems drone-kube-runner has been deprecated 15 days ago, I noticed because when redeploying the Helm chart, it does not exist anymore. However, the README left in the repository says it has been replaced by drone-runner-docker, which has a chart to be deployed on Kubernetes as well.

However, it seems to rely to on Docker as the container engine, which the majority of Kubernetes clusters do not use anymore. My question is, is it compatible with containerd as the container engine, as the original drone-kube-runner? Or is Drone been limited to Docker as the container engine? Is there a place where this has been discussed publicly?

Hello @gruber

The drone-runner-docker chart runs the drone docker runner and dind (docker-in-docker) as a sidecar charts/values.yaml at master · drone/charts · GitHub

So the runner does not depend on docker running at the host level.

Let me know if you have any more questions.

1 Like

Has the .drone.yml syntax changed as well, as in, I have to use the type: docker instead of type: kubernetes? Would things like tolerations work on the Docker “type” syntax?

Also, thank you for the quick reply. I have already replaced my old instance of drone-kube-runner with the newer version.

Correct, type would have to be changed to docker.

The capabilities at the .drone.yml level that are in the kubernetes runner would not be available for the docker runner. I expect you could get similar behavior by customizing your drone-runner-docker helm values charts/values.yaml at master · drone/charts · GitHub

Steps will no longer run as pods, the will run as containers within the drone-runner-docker pod(s). Hopefully that makes sense.

Why is the kubernetes-runner deprecated? With the Docker runner there is no possibility to use Kubernetes secrets (see below yaml) in the pipeline right? This is really bad news :frowning:

---
kind: secret
name: github_ssh_key
get:
  path: github-ssh-keys
  name: id_rsa

---
kind: pipeline
type: kubernetes
name: upgrade

  - name: push kubernetes manifest
    image: appleboy/drone-git-push
    settings:
      remote_name: "git@github.com:${DRONE_REPO}"
      branch: ${DRONE_BRANCH}
      ssh_key:
        from_secret: github_ssh_key

Hi @coen17st there were few challenges with Kuberntes-runner:

  1. Current .drone.yml was designed to best suit for docker and it was hard to map those concepts to Kubernetes.
  2. Many users had issues with creating per-pipeline namespaces.

You can further details over here

You can see this docs to understand how you can use Kubernetes secrets in docker runner.

Hope this helps.

Thanks!

Hi, I’m a newcomer to k8s and drone. Can you help me to have a look when I encounter this problem? I think it should be your discussion. I want to use runner in the k8s environment.