[solved] Empty Drone runner plafrom and os

Hi,

Trying to integrate drone and drone runner in a raspberry pi based kubernetes cluster.

Why is my runner not reporting linux as os and arm as plafrom ?

See :

Pod infromations :

node-1:~ $ kubectl describe pod drone-runner-6f55bdb5d6-5jwc7 -n drone
Name: drone-runner-6f55bdb5d6-5jwc7
Namespace: drone
Priority: 0
Node: node-3/192.168.254.253
Start Time: Sun, 19 Apr 2020 14:21:43 +0100
Labels: app=drone-runner
pod-template-hash=6f55bdb5d6
Annotations:
Status: Running
IP: 10.244.1.5
IPs:
IP: 10.244.1.5
Controlled By: ReplicaSet/drone-runner-6f55bdb5d6
Containers:
runner:
Container ID: docker[colon slash slash]7b6b49583770a3ee62d473da5f9efe066cefeb296d4435bd9b73687d2749ea27
Image: drone/drone-runner-kube:linux-arm
Image ID: docker-pullable://drone/[email protected]:986dd8bbdf0f519dd43d3190633386408ec71455512be3160aeb9056584c92ca
Port: 3000/TCP
Host Port: 0/TCP
State: Running
Started: Sun, 19 Apr 2020 14:21:44 +0100
Ready: True
Restart Count: 0
Environment:
DRONE_RPC_HOST: drone.drone.svc.cluster.local
DRONE_RPC_PROTO: http
DRONE_RPC_DUMP_HTTP: true
DRONE_RPC_DUMP_HTTP_BODY: true
DRONE_RPC_SECRET: gA176XNsoYU5pXTaU2NJvOhWzuJiv2Y8rU1Qf2vZ/wV4dm5YZPW/uudzY78/iTYL
DRONE_NAMESPACE_DEFAULT: drone
DRONE_RUNNER_NAME: kube-runner1
DRONE_TRACE: true
DRONE_UI_DISABLED: false
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-k6bbg (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-k6bbg:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-k6bbg
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message


Normal Scheduled 22m default-scheduler Successfully assigned drone/drone-runner-6f55bdb5d6-5jwc7 to node-3
Normal Pulled 22m kubelet, node-3 Container image “drone/drone-runner-kube:linux-arm” already present on machine
Normal Created 22m kubelet, node-3 Created container runner
Normal Started 22m kubelet, node-3 Started container runner
[email protected]:~ $

node-1:~ $ kubectl logs drone-runner-6f55bdb5d6-5jwc7 -n drone | head -100
time=“2020-04-19T13:21:45Z” level=info msg=“starting the server” addr=":3000"
POST /rpc/v2/ping HTTP/1.1
Host: drone.drone.svc.cluster.local
User-Agent: Go-http-client/1.1
Content-Length: 0
X-Drone-Token: gA176XNsoYU5pXTaU2NJvOhWzuJiv2Y8rU1Qf2vZ/wV4dm5YZPW/uudzY78/iTYL
Accept-Encoding: gzip

HTTP/1.1 200 OK
Content-Length: 0
Cache-Control: no-cache, no-store, must-revalidate, private, max-age=0
Date: Sun, 19 Apr 2020 13:21:45 GMT
Expires: Thu, 01 Jan 1970 00:00:00 UTC
Pragma: no-cache
X-Accel-Expires: 0

time=“2020-04-19T13:21:45Z” level=info msg=“successfully pinged the remote server”
time=“2020-04-19T13:21:45Z” level=info msg=“polling the remote server” capacity=100 endpoint=“http[colon slash slash]drone.drone.svc.cluster.local” kind=pipeline type=kubernetes
time=“2020-04-19T13:21:45Z” level=debug msg=“request stage from remote server” thread=1
POST /rpc/v2/stage HTTP/1.1
Host: drone.drone.svc.cluster.local
User-Agent: Go-http-client/1.1
Content-Length: 83
X-Drone-Token: gA176XNsoYU5pXTaU2NJvOhWzuJiv2Y8rU1Qf2vZ/wV4dm5YZPW/uudzY78/iTYL
Accept-Encoding: gzip

{“kind”:“pipeline”,“type”:“kubernetes”,“os”:"",“arch”:"",“variant”:"",“kernel”:""}
time=“2020-04-19T13:21:45Z” level=debug msg=“request stage from remote server” thread=50

The os and architecture are used by the docker runner and the exec runner, which are platform-specific. The kubernetes runner, ssh runner and digitalocean runner are platform-agnostic (they process pipelines for all os and architectures) and will therefore have empty os and arch filters. So this is completely normal.

Thanks, my question is answered !