diff --git a/yaml/compiler/convert.go b/yaml/compiler/convert.go index a182255..245c81e 100644 --- a/yaml/compiler/convert.go +++ b/yaml/compiler/convert.go @@ -84,7 +84,14 @@ func toResourceObject(from *yaml.ResourceObject) *engine.ResourceObject { return nil } return &engine.ResourceObject{ - CPU: from.CPU, + CPU: toCPUMillis(from.CPU), Memory: int64(from.Memory), } } + +func toCPUMillis(f float64) int64 { + if f > 0 { + f *= 1000 + } + return int64(f) +} diff --git a/yaml/compiler/convert_test.go b/yaml/compiler/convert_test.go index 996503c..e15677c 100644 --- a/yaml/compiler/convert_test.go +++ b/yaml/compiler/convert_test.go @@ -136,9 +136,11 @@ func Test_toResources(t *testing.T) { Resources: &yaml.Resources{ Limits: &yaml.ResourceObject{ Memory: yaml.BytesSize(1000), + CPU: 4, }, Requests: &yaml.ResourceObject{ Memory: yaml.BytesSize(2000), + CPU: 0.1, }, }, } @@ -146,9 +148,11 @@ func Test_toResources(t *testing.T) { b = &engine.Resources{ Limits: &engine.ResourceObject{ Memory: 1000, + CPU: 4000, }, Requests: &engine.ResourceObject{ Memory: 2000, + CPU: 100, }, } if diff := cmp.Diff(a, b); diff != "" { diff --git a/yaml/pipeline.go b/yaml/pipeline.go index e4e9e6a..ab09fac 100644 --- a/yaml/pipeline.go +++ b/yaml/pipeline.go @@ -97,7 +97,7 @@ type ( // ResourceObject describes compute resource // requirements. ResourceObject struct { - CPU int64 `json:"cpu" yaml:"cpu"` + CPU float64 `json:"cpu" yaml:"cpu"` Memory BytesSize `json:"memory"` }