Waypoint install into Nomad fails with unknown constraint

While trying to install waypoint into nomad with the following command:

waypoint install -platform=nomad -accept-tos -nomad-csi-plugin-id=aws-ebs0 -nomad-csi-volume-provider=ebs.csi.aws.com -nomad-csi-volume-capacity-max=16106127360 -nomad-csi-fs=ext4 -nomad-consul-service=true

I got an error stating:

waypoint-server 1 unplaced
Constraint did not meet topology requirement filtered 3 nodes

When I checked the job definition, the only constraint defined there is for the consul version.

Am I doing something wrong? Is there any other constraint I should take into account?

Hi @Fibrasek , the Consul version constraint could mean that the Nomad scheduler could not identify a Nomad client which detected a Consul agent. I recommend checking your Nomad clients to verify that Consul has been detected by them!

Alternatively, to run Waypoint in Nomad without the use of Consul service discovery (i.e. registering a UI and backend service in Consul for Waypoint), you can run the install command with -nomad-consul-service=false to disable it.

Also, I’m actively working on a change to support Nomad service discovery for installs/upgrades!

There’s no problem with Consul, I’m using a correct version and de Nomad clients detected Consul, it’s everything running alright.

As you can see, that constraint says basically nothing about the problem, it said that some constraint failed but not what failed, so I don’t know what the problem is :confused:

And I want to use Consul.

And even with the -nomad-consul-service=false flag, the same error happens, so it’s not Consul problem.

@Fibrasek ah, I misunderstood your commend regarding the Consul constraint! I thought you meant that Nomad was warning you that no nodes matched the Consul constraint. :slight_smile:

Regarding the actual issue here which seems to be the topology requirement, which could mean that for your CSI volume to be created, that you need the topology configuration set for the volume. This value is specific to a given CSI plugin, but here’s what that’s referring to in the Nomad documentation: topology_request Block - Volume Specification | Nomad by HashiCorp

Waypoint also supports setting that value on waypoint install with the flag -nomad-csi-topologies. Here’s an example from when I’ve set this value during an install in the past, but it will depend upon your CSI plugin setup:

waypoint install -platform=nomad -nomad-csi-volume-provider=ebs.csi.aws.com -nomad-csi-plugin-id=aws-ebs0 -nomad-csi-topologies=topology.ebs.csi.aws.com/zone=us-east-1a -nomad-runner-csi-volume-provider=ebs.csi.aws.com -accept-tos