Support for runner on AIX
Status update: 2024-09-10
I am not including this feature on the roadmap as the tooling we use to build the runner doesn't support AIX. Therefore, before I consider including this on the roadmap, we need a mechanism to include building for AIX that we can reliably maintain and support.
Description
We have a fairly significant AIX footprint, and building packages for AIX is a very tedious, manual process at this point -- which means it often doesn't get done at all.
I'd like to support running the GitLab Runner directly on AIX, as opposed to via the ssh executor, which is...questionable (see #4866)
Proposal
I'm working on building and packaging the GitLab Runner for AIX. From chatting with some of the GitLab support folks at GitLab Commit, they suggested I open an issue on this repository to discuss my work and maybe get some insight.
As it stands now, AIX doesn't have much in the way for Docker support, so I'm shying away from the Docker and k8s executors on AIX. For my first pass, I just naively removed all references to those modules/packages. I'm now running into issues with syscall incompatibilities, which may require support in the upstream syscall
package -- or patching around it:
/net_home/bschafer/go/pkg/mod/github.com/kr/pty@v1.1.1/ioctl.go:8:29: undefined: syscall.SYS_IOCTL
At this point, I'm not looking for assistance per se, I'm more looking to document that I'm working on it and hopefully get some feedback or tips on how best to make this acceptable.
Feasibility analysis (revised 2023-03-28)
-
Go supports AIX 7.2+
👍🏾 -
The Runner binary doesn’t build today due to dependencies not catering for AIX.
👎🏽 - github.com/denisbrodbeck/machineid@v1.0.1/id.go:29:13: undefined: machineID
- github.com/hashicorp/go-sockaddr@v1.0.2/route_info.go:14:10: undefined: routeInfo
- /docker/docker@v23.0.1+incompatible/client/client.go:128:35: undefined: DefaultDockerHost
- Docker has fixed their client, but the fix is only available in master. The other dependencies we could see if we can submit PRs for.