Docker 放置约束测试空白/任何标签

Chr*_*cke 7 docker docker-compose

向 docker 节点添加标签是合法且有记录的语法:

docker node update node_x --label-add "label"
Run Code Online (Sandbox Code Playgroud)

这将添加一个标签,当查询时,该标签将显示为空字符串:

$ docker node inspect docker-desktop --format '{{json .Spec.Labels}}'
{"label":""}
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有有效的方法来制定此标签可以满足的放置​​约束。

对该问题的另一种看法是需要检查标签是否为非空白值。

例如,我可能想给两个节点一个标签:

docker node update node_x --label-add "fruit=apple"
docker node update node_y --label-add "fruit=orange"
Run Code Online (Sandbox Code Playgroud)

但是,作为放置约束,我尝试检查空白标签是否存在,但失败了。同样,虽然我可以检查节点是否是(或不是)特定的水果,但我无法成功测试它是否是[任何]水果。

version: "3.9"
services:
  test:
    image: alpine
    deploy:
      placement:
        constraints:
        - node.labels.label # == or != expected
        - node.labels.label=="" # "" unexpected / '' unexpected.
        - node.labels.fruit!="" # "" unexpected / '' unexpected.
Run Code Online (Sandbox Code Playgroud)

那么,我是不是错过了什么?有没有某种方法可以检查标签是否已设置,而不检查特定值。有什么方法可以检查已设置但为空白值的标签吗?