• Tim Gross's avatar
    volumes: return better error messages for unsupported task drivers (#8030) · 8860b72b
    Tim Gross authored
    When an allocation runs for a task driver that can't support volume mounts,
    the mounting will fail in a way that can be hard to understand. With host
    volumes this usually means failing silently, whereas with CSI the operator
    gets inscrutable internals exposed in the `nomad alloc status`.
    
    This changeset adds a MountConfig field to the task driver Capabilities
    response. We validate this when the `csi_hook` or `volume_hook` fires and
    return a user-friendly error.
    
    Note that we don't currently have a way to get driver capabilities up to the
    server, except through attributes. Validating this when the user initially
    submits the jobspec would be even better than what we're doing here (and could
    be useful for all our other capabilities), but that's out of scope for this
    changeset.
    
    Also note that the MountConfig enum starts with "supports all" in order to
    support community plugins in a backwards compatible way, rather than...
    8860b72b