Setting up on OpenShift


#1

I wrote a DC for deploying Drone 1rc5 onto OpenShift.
While the logs state, that it is starting to listen on port 80, when I do a netstat -al in the pod, there is no single entry listed.
Sadly, since the sourcecode of 1rc5 is still not online, there is currently no way of building a debug variant. I currently would expect, that drone is not properly handling errors when setting up the socket listeners.
Would appreciate any idea how to further analyze the problem.


#2

I think right now there is not enough detail for me to fully grasp the problem you are experiencing. Can you describe the issue in greater detail, including expected vs actual behavior, steps to reproduce, server logs and kubernetes job logs, your server configuration?

edit: after re-reading it sounds like the issue is that you cannot reach the server at port 80? Am I understanding this correctly?

I currently would expect, that drone is not properly handling errors when setting up the socket listeners.

I do not believe this is the root cause. Drone returns a fatal error if there is a failure to open the socket. Such an error would be unlikely, however, since Drone is running inside a container with isolated networking.


#3

Sorry, yes I can get into detail a bit more.
In my dc I have a liveness probe, which attempts a http get on / (shamelessly plugged from the helm chart). The liveness probe always fails.
The logs report, serving on 80. As a result I assume, that in the pod, there is an open listening socket on port 80. Thus I tested with netstat. Since there is no such port shown, I can only assume that opening the socket failed.


#4

I can’t speak to the helm chart (that is separately maintained) but I can say the official Docker container is configured so that the server listens on :80 using DRONE_SERVER_PORT=:80. This value should never be changed, so I would make sure the helm chart does not change it. Also you should be able to enable DRONE_LOGS_DEBUG=true in which case Drone will print out details like this:

{
  "acme": false,
  "host": "localhost:80",
  "level": "info",
  "msg": "main: starting the http server",
  "port": ":80",
  "proto": "http",
  "time": "2019-02-08T04:17:30-08:00",
  "url": "http://localhost:80"
}

#5

All I get is:

{"kind":"trial","level":"debug","msg":"main: license loaded","time":"2019-02-08T15:21:40Z"}
{"level":"info","msg":"main: kubernetes runtime enabled","time":"2019-02-08T15:21:40Z"}
{"level":"info","msg":"main: local build runner disabled","time":"2019-02-08T15:21:40Z"}
{"interval":1800000000000,"level":"info","msg":"main: cron schedule enabled","time":"2019-02-08T15:21:40Z"}
{"acme":false,"host":"localhost","level":"info","msg":"main: starting the http server","port":":80","proto":"http","time":"2019-02-08T15:21:40Z","url":"http://localhost "}

#6

These logs indicate drone is running on port 80. Unfortunately I cannot say why the server is not available for you. We have not had any other reports of such issues, and we have a pretty large pool of installations. Once the source is published next week perhaps it will help you to troubleshoot.