Connectivity issue when adding a crow agent

Hi,

I’m trying to run my own crow a gent. I went to ci.codefloe.com > Agents > Add agent, created an agent and got the token.

On my machine, I’m running the container like this

docker run \
	-ti \
	--rm \
	-v /var/run/docker.sock:/var/run/docker.sock \
	-e CROW_SERVER=ci.codefloe.com \
	-e CROW_GRPC_ADDR=grpc.ci.codefloe.com \
	-e CROW_AGENT_SECRET=<token> \
	codefloe.com/crowci/crow-agent:v5.11 \
		--log-level debug

This fails because it tries to dial the connection over ipv6 even though I have no ipv6 connectivity.

Log rotation disabled (LOG_FILE not configured or set to stdout/stderr)
6:51AM INF src/shared/logger/logger.go:102 > log level: debug
6:51AM INF src/cmd/agent/core/config.go:45 > no agent config found at '/etc/crow/agent.conf', starting with default settings
6:51AM INF src/cmd/agent/core/agent.go:106 > shutdown of whole agent
6:51AM DBG src/agent/rpc/client_grpc.go:143 > agent shutdown signal sent to all gRPC operations
6:51AM INF src/cmd/agent/core/agent.go:117 > agent shutting down, workflows will be preserved for adoption
6:51AM FTL src/cmd/agent/core/run.go:52 > error running agent error="agent could not auth: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing: dial tcp [2a01:4f8:c010:8702::1]:443: connect: network is unreachable\""

If I inject the resolved ipv4 addresses into the container’s hosts with --add-host ci.codefloe.com:91.99.4.105 –add-host grpc.ci.codefloe.com:91.99.4.105, I get a different failure.

Log rotation disabled (LOG_FILE not configured or set to stdout/stderr)
6:53AM INF src/shared/logger/logger.go:102 > log level: debug
6:53AM INF src/cmd/agent/core/config.go:45 > no agent config found at '/etc/crow/agent.conf', starting with default settings
6:53AM INF src/cmd/agent/core/agent.go:106 > shutdown of whole agent
6:53AM DBG src/agent/rpc/client_grpc.go:143 > agent shutdown signal sent to all gRPC operations
6:53AM INF src/cmd/agent/core/agent.go:117 > agent shutting down, workflows will be preserved for adoption
6:53AM FTL src/cmd/agent/core/run.go:52 > error running agent error="agent could not auth: rpc error: code = Unavailable desc = connection error: desc = \"error reading server preface: EOF\""

Am I missing something or is ipv6 connectivity really required?

Since you’re connecting through the public route, you need CROW_GRPC_SECURE=true so GRPC speaks with TLS support.

Additionally, don’t set CROW_GRPC_ADDR but CROW_SERVER=grpc.ci.codefloe.com instead.

That was it, thank you. I also opened codefloe/docs#17 to update the docs based on this