hashicorp / nomad

Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.
https://www.nomadproject.io/
Other
14.6k stars 1.92k forks source link

Solaris Support? #5650

Open axisofentropy opened 5 years ago

axisofentropy commented 5 years ago

Any chance of Solaris support? I see Vault and Consul have Solaris builds. But I can't even build Nomad myself from their documentation.

Nomad version

Any

Operating system and Environment details

Solaris / Illumos / SmartOS

Reproduction steps

[root@nomad-2 ~/go/src/github.com/hashicorp/nomad]# make bootstrap
GNUmakefile:22: *** Building Nomad is currently only supported on Darwin and Linux..  Stop.
schmichael commented 5 years ago

Unfortunately we have no plans to support more OSes at this time. That being said we're accumulating quite the backlog of community interest in alternative OSes, architectures (eg #2517), and environment (eg #5535), so we're trying to figure out how to better support "unofficial" builds.

If you're interested in helping Nomad build on Solaris could you try commenting out the OS check in the makefile and rerunning it? I would imagine we don't properly tag Solaris in some of our platform dependent code, but it's worth a shot!

Also Nomad should build using go get github.com/hashicorp/nomad or go build -o nomad-$(git rev-parse --short=0 HEAD). Some optimizations provided by generated files as well as the UI are disabled when not using the makefile, but it will produce a fully functional Nomad binary.

Smithx10 commented 5 years ago

@schmichael and @axisofentropy, I am currently leading this effort within the Illumos community to at least start with a Nomad Plugin to support using running Nomad Agents in the GZ of SmartOS machine. This is a contiuation of the work done by @sean- and @jen20.

See the following issues for more context: Adding an Illumos build tag in golang. https://github.com/golang/go/issues/20603#issuecomment-482726593 This was merged and will be in the next GoLang Release.

Adding the proper plumbing for fingerprinting Illumos / SmartOS using gopsutil. https://github.com/shirou/gopsutil/pull/378 I forked this PR and tested in a SmartOS native Zone, and the GZ and the code works thanks to work done by Sean and James. This should be merged when the Illumos tag comes in.

At that point using the Nomad Plugins tooling we should be able to add a SmartOS task driver, and a more generic plugin for other illumos distros that don't support vmadm currently.. I believe @cneira would probably hvae some interest in this project.

Hope that brings everyone up to speed.

cneira commented 5 years ago

@Smithx10 That's a great coincidence, as yesterday I was browsing the lxc driver plugin to create one for Illumos, thanks for letting me know.

Smithx10 commented 5 years ago

@cneira My pleasure. Also just to document the the ideas for adding this plugin, I'll start posting High lights from our irc discussions (irc.freenode.net #illumos) here so that others from the Hashicorp community can stay in the loop.

We discovered there was active work on a Zone Library written in go here... https://git.wegmueller.it/Illumos/go-zone

This would definitely be useful.

axisofentropy commented 5 years ago

I'm just looking to compile the binary on Solaris. Were you able to do that Smith10x?

Smithx10 commented 5 years ago

@axisofentropy but you will need to fork, and implement the changes under the Solaris Tag from this PR. https://github.com/shirou/gopsutil/pull/378. At that point you'll be able to use a few Task Drivers like Java, and Raw Exec I think.

axisofentropy commented 5 years ago

Ok what if I only need sever stuff not client?

On Tue, May 7, 2019, 18:14 Smithx10 notifications@github.com wrote:

@axisofentropy https://github.com/axisofentropy but you will need to fork, and implement the changes under the Solaris Tag from this PR. shirou/gopsutil#378 https://github.com/shirou/gopsutil/pull/378. At that point you'll be able to use a few Task Drivers like Java, and Raw Exec I think.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hashicorp/nomad/issues/5650#issuecomment-490287828, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAQGC5XJZOOKO73GE62G6DPUIENZANCNFSM4HKWQN3Q .

Smithx10 commented 5 years ago

That is for the server.

shantanugadgil commented 4 years ago

Having not only Solaris, but all OSes which Consul supports would be a big win. Solaris (x64) and FreeBSD (x86_64) support for the clients with java/raw_exec would be great, I think!