mirror of
https://github.com/truenas/charts.git
synced 2026-04-14 02:30:53 +08:00
* Set nvidia caps to void when no gpu is passed * add tests to init containers too * Additionally add `render` group when gpu is added * Correctly handle "0" gpu * handle fsGroup 0 properly * fix gh highlight * Correct nvidia variable and add additional check for runtime * cast both sides of the comparison * fix externalinterfaces nesting * Add dnsConfig missing docs
1037 lines
28 KiB
YAML
1037 lines
28 KiB
YAML
suite: container resources test
|
|
templates:
|
|
- common.yaml
|
|
tests:
|
|
- it: should create the resources correctly
|
|
set:
|
|
image: &image
|
|
repository: nginx
|
|
tag: 1.19.0
|
|
pullPolicy: IfNotPresent
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: &probes
|
|
liveness:
|
|
enabled: false
|
|
readiness:
|
|
enabled: false
|
|
startup:
|
|
enabled: false
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should override the default limits
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 4Gi
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 4Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should override the default limits.cpu
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 2000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should override the default limits.memory
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
limits:
|
|
memory: 4Gi
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 4Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should not render limits.cpu
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
limits:
|
|
cpu: 0
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should not render limits.memory
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
limits:
|
|
memory: 0
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should override the default requests
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
requests:
|
|
cpu: 200m
|
|
memory: 1Gi
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 200m
|
|
memory: 1Gi
|
|
|
|
- it: should override the default requests.cpu
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
requests:
|
|
cpu: 200m
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 200m
|
|
memory: 50Mi
|
|
|
|
- it: should override the default requests.memory
|
|
set:
|
|
image: *image
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
resources:
|
|
requests:
|
|
memory: 1Gi
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 1Gi
|
|
|
|
- it: should assign GPU on the primary pod/container
|
|
set:
|
|
image: *image
|
|
scaleGPU:
|
|
- gpu:
|
|
nvidia.com/gpu: 1
|
|
global:
|
|
ixChartContext:
|
|
addNvidiaRuntimeClass: true
|
|
nvidiaRuntimeClassName: nvidia
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
container-name2:
|
|
enabled: true
|
|
primary: false
|
|
imageSelector: image
|
|
probes: *probes
|
|
workload-name2:
|
|
enabled: true
|
|
primary: false
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
equal:
|
|
path: spec.template.spec.runtimeClassName
|
|
value: nvidia
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[1]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: &otherDeploymentDoc 1
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *otherDeploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *otherDeploymentDoc
|
|
isNull:
|
|
path: spec.template.spec.runtimeClassName
|
|
- documentIndex: *otherDeploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should assign GPU on the selected pod/container
|
|
set:
|
|
image: *image
|
|
global:
|
|
ixChartContext:
|
|
addNvidiaRuntimeClass: true
|
|
nvidiaRuntimeClassName: nvidia
|
|
scaleGPU:
|
|
- gpu:
|
|
nvidia.com/gpu: 1
|
|
targetSelector:
|
|
workload-name2:
|
|
- container-name1
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
container-name2:
|
|
enabled: true
|
|
primary: false
|
|
imageSelector: image
|
|
probes: *probes
|
|
workload-name2:
|
|
enabled: true
|
|
primary: false
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
isNull:
|
|
path: spec.template.spec.runtimeClassName
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[1]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: &otherDeploymentDoc 1
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *otherDeploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *otherDeploymentDoc
|
|
equal:
|
|
path: spec.template.spec.runtimeClassName
|
|
value: nvidia
|
|
- documentIndex: *otherDeploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should assign GPU on the selected pods/containers
|
|
set:
|
|
image: *image
|
|
global:
|
|
ixChartContext:
|
|
addNvidiaRuntimeClass: true
|
|
nvidiaRuntimeClassName: nvidia
|
|
scaleGPU:
|
|
- gpu:
|
|
nvidia.com/gpu: 1
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name1
|
|
- container-name2
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
container-name2:
|
|
enabled: true
|
|
primary: false
|
|
imageSelector: image
|
|
probes: *probes
|
|
workload-name2:
|
|
enabled: true
|
|
primary: false
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
equal:
|
|
path: spec.template.spec.runtimeClassName
|
|
value: nvidia
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[1]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: &otherDeploymentDoc 1
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *otherDeploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *otherDeploymentDoc
|
|
isNull:
|
|
path: spec.template.spec.runtimeClassName
|
|
- documentIndex: *otherDeploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should assign GPU on the selected pod/container with multiple GPUs
|
|
set:
|
|
image: *image
|
|
global:
|
|
ixChartContext:
|
|
addNvidiaRuntimeClass: true
|
|
nvidiaRuntimeClassName: nvidia
|
|
scaleGPU:
|
|
- gpu:
|
|
nvidia.com/gpu: 1
|
|
amd.com/gpu: 0
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name1
|
|
- container-name2
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
container-name2:
|
|
enabled: true
|
|
primary: false
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
equal:
|
|
path: spec.template.spec.runtimeClassName
|
|
value: nvidia
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[1]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
- it: should assign multiple GPU on the selected pod/container with multiple selected GPUs
|
|
set:
|
|
image: *image
|
|
global:
|
|
ixChartContext:
|
|
addNvidiaRuntimeClass: true
|
|
nvidiaRuntimeClassName: nvidia
|
|
scaleGPU:
|
|
- gpu:
|
|
nvidia.com/gpu: 1
|
|
amd.com/gpu: 0
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name1
|
|
- gpu:
|
|
nvidia.com/gpu: 0
|
|
amd.com/gpu: 1
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name2
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
container-name2:
|
|
enabled: true
|
|
primary: false
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
isAPIVersion:
|
|
of: apps/v1
|
|
- documentIndex: *deploymentDoc
|
|
equal:
|
|
path: spec.template.spec.runtimeClassName
|
|
value: nvidia
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[0]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
nvidia.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
- documentIndex: *deploymentDoc
|
|
isSubset:
|
|
path: spec.template.spec.containers[1]
|
|
content:
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
amd.com/gpu: "1"
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
|
|
# Failures
|
|
- it: should fail with empty requests
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty <resources.requests>
|
|
|
|
- it: should fail with empty requests.cpu
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
cpu: ""
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty <resources.requests.cpu>
|
|
|
|
- it: should fail with empty requests.memory
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: ""
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty <resources.requests.memory>
|
|
|
|
- it: should fail with invalid format in requests.cpu
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
cpu: 10MB
|
|
memory: 50Mi
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected <resources.requests.cpu> to have one of the following formats [(Plain Integer - eg. 1), (Float - eg. 0.5), (Milicpu - eg. 500m)], but got [10MB]
|
|
|
|
- it: should fail with invalid format in limits.cpu
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 10MB
|
|
memory: 8Gi
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected <resources.limits.cpu> to have one of the following formats [(Plain Integer - eg. 1), (Float - eg. 0.5), (Milicpu - eg. 500m)], but got [10MB]
|
|
|
|
- it: should fail with invalid format in requests.memory
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50MB
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected <resources.requests.memory> to have one of the following formats [(Suffixed with E/P/T/G/M/K - eg. 1G), (Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi), (Plain Integer in bytes - eg. 1024), (Exponent - eg. 134e6)], but got [50MB]
|
|
|
|
- it: should fail with invalid format in limits.memory
|
|
set:
|
|
image: *image
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8GB
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected <resources.limits.memory> to have one of the following formats [(Suffixed with E/P/T/G/M/K - eg. 1G), (Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi), (Plain Integer in bytes - eg. 1024), (Exponent - eg. 134e6)], but got [8GB]
|
|
|
|
- it: should fail with empty gpu in defined entry
|
|
set:
|
|
image: *image
|
|
scaleGPU:
|
|
- gpu:
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name1
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty <scaleGPU.gpu>
|
|
|
|
- it: should fail with empty list under workload in targetSelector
|
|
set:
|
|
image: *image
|
|
scaleGPU:
|
|
- gpu:
|
|
key: value
|
|
targetSelector:
|
|
workload-name1: []
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty list under pod in <scaleGPU.targetSelector>
|
|
|
|
- it: should fail with empty value in gpu
|
|
set:
|
|
image: *image
|
|
scaleGPU:
|
|
- gpu:
|
|
key: ""
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name1
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty <scaleGPU> <value>
|
|
|
|
- it: should fail with no value in gpu
|
|
set:
|
|
image: *image
|
|
scaleGPU:
|
|
- gpu:
|
|
key:
|
|
targetSelector:
|
|
workload-name1:
|
|
- container-name1
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec:
|
|
containers:
|
|
container-name1:
|
|
enabled: true
|
|
primary: true
|
|
imageSelector: image
|
|
probes: *probes
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Container - Expected non-empty <scaleGPU> <value>
|