Drone

[Solved] Runners cannot request stage "not implemented" k8s drone server

Hello

I have tried installing drone server on k8s using latest helm chart(2.5.1) with drone image 1.6.1.
Following chart’s readme on github*com/helm/charts/tree/master/stable/drone, i use some helm values :

sourceControl.provider=github 
sourceControl.github.clientID=xxxxxxxxx
sourceControl.secret=drone-gh-secrets 
server.host=xxxxx.webrelay.io

Current k8s version is on v1.16.3 and installed on private cluster. So to get public access of drone-server i use https://webhookrelay.com/ service using its tunnel feature.
Based on similiar topic about Drone exec runner fails with “not implemented”, that clarify “not implemented” error is possible to occur when there is reverse proxy or load balancer that could be interfering and redirect POST becomes a GET request in agent and server communication.

So I try run drone runner directly on k8s using kubernetes-drone-runner after experiencing issue on docker runner and exec runner, so i can connect to the server just using k8s service (without additional reverse proxy or loadbalancer).
Here is my kubernetes runner configuration :

kubernetes drone runner deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: drone-runner
  namespace: drone-system
spec:
  ...
        env:
        - name: DRONE_DEBUG
          value: "true"
        - name: DRONE_TRACE
          value: "true"
        - name: DRONE_RPC_HOST
          value: drone-drone.drone-system.svc.cluster.local
        - name: DRONE_RPC_PROTO
          value: http
        - name: DRONE_RPC_SECRET
          valueFrom:
            secretKeyRef:
              name: drone-server-secrets
              key: clientSecret
        - name: DRONE_RPC_DUMP_HTTP
          value: "true"
        - name: DRONE_RPC_DUMP_HTTP_BODY
          value: "true"

But its still give same errors :

drone-runner log

{"kind":"pipeline","type":"kubernetes","os":"","arch":"","variant":"","kernel":""}
HTTP/1.1 500 Internal Server Error
Content-Length: 15
Cache-Control: no-cache, no-store, must-revalidate, private, max-age=0
Content-Type: text/plain; charset=utf-8
Date: Mon, 03 Feb 2020 08:05:14 GMT
Expires: Thu, 01 Jan 1970 00:00:00 UTC
Pragma: no-cache
X-Accel-Expires: 0

not implementedPOST /rpc/v2/stage HTTP/1.1
Host: drone-drone.drone-system.svc.cluster.local
User-Agent: Go-http-client/1.1
Content-Length: 83
X-Drone-Token: xxxxxxx
Accept-Encoding: gzi

drone server log

{
  "arch": "",
  "kernel": "",
  "kind": "pipeline",
  "level": "debug",
  "msg": "manager: request queue item",
  "os": "",
  "time": "2020-02-03T08:00:56Z",
  "type": "kubernetes",
  "variant": ""
}
{
  "error": "not implemented",
  "level": "warning",
  "msg": "manager: request queue item error",
  "time": "2020-02-03T08:00:56Z"
}

The charts in Helm stable are broken and are not an officially supported installation method. We recommend using gtaylor/drone-charts instead, which we plan to adopt as our official charts in the coming weeks.

1 Like

Ohh, thanks for the information. I think the one on the stable helm chart is official one :slight_smile:

Thanks @ashwilliams1 for the clarification. It works using your suggested chart. Thank you very much.
:smiley:

@ashwilliams1 when i exec helm repo add drone https://drone.github.io/charts , it looks like 404 not found. How can i do?

In my case i am using github source directly to install the charts. As the @ashwilliams1 stated that the chart will be adopted as the official one in coming weeks, so I think helm repo add drone https://drone.github.io/charts will fail until its officialy adopted. Maybe you can also try using helm install drone https://github.com/gtaylor/drone-charts/releases/download/drone-0.1.3/drone-0.1.3.tgz

1 Like

@euiko Thanks a lot , and i have resolve this problem in your help.