From e2ed3a95b7be23e97c84a068761942a52129ee4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vitor=20Paes=20de=20Barros=20do=20Carmo?= Date: Wed, 20 Jun 2018 18:26:44 -0400 Subject: [PATCH] support node.labels at placement --- pkg/loader/compose/v3.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/loader/compose/v3.go b/pkg/loader/compose/v3.go index d49c4697..da3ed8c4 100644 --- a/pkg/loader/compose/v3.go +++ b/pkg/loader/compose/v3.go @@ -32,6 +32,7 @@ import ( "os" "fmt" + "github.com/kubernetes/kompose/pkg/kobject" "github.com/pkg/errors" log "github.com/sirupsen/logrus" @@ -330,8 +331,11 @@ func dockerComposeToKomposeMapping(composeObject *types.Config) (kobject.Kompose placement["kubernetes.io/hostname"] = p[1] } else if p[0] == "engine.labels.operatingsystem" { placement["beta.kubernetes.io/os"] = p[1] + } else if strings.HasPrefix(p[0], "node.labels.") { + label := strings.TrimPrefix(p[0], "node.labels.") + placement[label] = p[1] } else { - log.Warn(p[0], " constraints in placement is not supported, only 'node.hostname' and 'engine.labels.operatingsystem' is only supported as a constraint ") + log.Warn(p[0], " constraints in placement is not supported, only 'node.hostname', 'engine.labels.operatingsystem' and 'node.labels.xxx' (ex: node.labels.whatever == anything) is supported as a constraint ") } } serviceConfig.Placement = placement