Added feature for placement key in v3

it will map `engine.labels.operatingsystem` to `beta.kubernetes.io/os` and
`node.hostname` to `kubernetes.io/hostname` and all other constraints will not be supported.
This commit is contained in:
Suraj Narwade
2017-10-06 12:22:14 +05:30
parent f42450b2e8
commit 35198cca12
11 changed files with 480 additions and 2 deletions
+14
View File
@@ -294,6 +294,20 @@ func dockerComposeToKomposeMapping(composeObject *types.Config) (kobject.Kompose
serviceConfig.Replicas = int(*composeServiceConfig.Deploy.Replicas)
}
// placement:
placement := make(map[string]string)
for _, j := range composeServiceConfig.Deploy.Placement.Constraints {
p := strings.Split(j, " == ")
if p[0] == "node.hostname" {
placement["kubernetes.io/hostname"] = p[1]
} else if p[0] == "engine.labels.operatingsystem" {
placement["beta.kubernetes.io/os"] = 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 ")
}
}
serviceConfig.Placement = placement
// TODO: Build is not yet supported, see:
// https://github.com/docker/cli/blob/master/cli/compose/types/types.go#L9
// We will have to *manually* add this / parse.