361 lines
9.7 KiB
YAML
361 lines
9.7 KiB
YAML
suite: persistence validation test
|
|
templates:
|
|
- common.yaml
|
|
release:
|
|
name: test-release-name
|
|
namespace: test-release-namespace
|
|
tests:
|
|
- it: should fail with annotations not a dict
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
annotations: not-a-dict
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [annotations] to be a dictionary, but got [string]
|
|
|
|
- it: should fail with labels not a dict
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
labels: not-a-dict
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [labels] to be a dictionary, but got [string]
|
|
|
|
- it: should fail with pod targetSelector not a map
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
targetSelector: not-a-map
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [targetSelector] to be [dict], but got [string]
|
|
|
|
- it: should fail with invalid type
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: not-a-type
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [type] to be one of [pvc, vct, emptyDir, nfs, iscsi, hostPath, secret, configmap, device, projected], but got [not-a-type]
|
|
|
|
- it: should fail with invalid accessMode
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
accessModes:
|
|
- not-an-access-mode
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: PVC - Expected [accessModes] entry to be one of [ReadWriteOnce, ReadOnlyMany, ReadWriteMany, ReadWriteOncePod], but got [not-an-access-mode]
|
|
|
|
- it: should fail with non-existent configmap
|
|
set:
|
|
configmap:
|
|
my-configmap:
|
|
enabled: true
|
|
data:
|
|
foo: bar
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: configmap
|
|
mountPath: /mnt/volume1
|
|
objectName: my-non-existent-configmap
|
|
workload:
|
|
main:
|
|
enabled: true
|
|
podSpec:
|
|
containers:
|
|
main:
|
|
enabled: true
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected configmap [my-non-existent-configmap] defined in [objectName] to exist
|
|
|
|
- it: should fail with non-existent secret
|
|
set:
|
|
secret:
|
|
my-secret:
|
|
enabled: true
|
|
data:
|
|
foo: bar
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: secret
|
|
mountPath: /mnt/volume1
|
|
objectName: my-non-existent-secret
|
|
workload:
|
|
main:
|
|
enabled: true
|
|
podSpec:
|
|
containers:
|
|
main:
|
|
enabled: true
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected secret [my-non-existent-secret] defined in [objectName] to exist
|
|
|
|
- it: should fail with namespace longer than 63 characters
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
namespace: my-extra-super-duper-long-name-that-is-longer-than-63-characters
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistent Volume Claim - Namespace [my-extra-super-duper-long-name-that-is-longer-than-63-characters] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters.
|
|
|
|
- it: should fail without server on pvc static nfs
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: nfs
|
|
share: /someshare
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: NFS CSI - Expected [server] to be non-empty
|
|
|
|
- it: should fail without share on pvc static nfs
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: nfs
|
|
server: someserver
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: NFS CSI - Expected [share] to be non-empty
|
|
|
|
- it: should fail without server on pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: someshare
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Expected [server] to be non-empty
|
|
|
|
- it: should fail without share on pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
server: someserver
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Expected [share] to be non-empty
|
|
|
|
- it: should fail without username pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: someshare
|
|
server: someserver
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Expected [username] to be non-empty
|
|
|
|
- it: should fail without password on pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: someshare
|
|
server: someserver
|
|
username: someuser
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Expected [password] to be non-empty
|
|
|
|
- it: should fail with server starting with // on pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: someshare
|
|
server: //someserver
|
|
username: someuser
|
|
password: someuserpoassword
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Did not expect [server] to start with [//]
|
|
|
|
- it: should fail with share starting with / on pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: /someshare
|
|
server: someserver
|
|
username: someuser
|
|
password: someuserpoassword
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Did not expect [share] to start with [/]
|
|
|
|
- it: should fail without share starting with / on pvc static nfs
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: nfs
|
|
share: someshare
|
|
server: someserver
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: NFS CSI - Expected [share] to start with [/]
|
|
|
|
- it: should fail with empty key on mountOptions in pvc static nfs
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: nfs
|
|
share: /someshare
|
|
server: someserver
|
|
mountOptions:
|
|
- key: ""
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: NFS CSI - Expected key in [mountOptions] to be non-empty
|
|
|
|
- it: should fail with empty key on mountOptions in pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: someshare
|
|
server: someserver
|
|
username: someuser
|
|
password: someuserpoassword
|
|
mountOptions:
|
|
- key: ""
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Expected key in [mountOptions] to be non-empty
|
|
|
|
- it: should fail with item in mountOptions not a map in pvc static smb
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: smb
|
|
share: someshare
|
|
server: someserver
|
|
username: someuser
|
|
password: someuserpoassword
|
|
mountOptions:
|
|
- not-a-map
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: SMB CSI - Expected [mountOption] item to be a dict, but got [string]
|
|
|
|
- it: should fail with item in mountOptions not a map in pvc static nfs
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: nfs
|
|
share: /someshare
|
|
server: someserver
|
|
mountOptions:
|
|
- not-a-map
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: NFS CSI - Expected [mountOption] item to be a dict, but got [string]
|
|
|
|
- it: should fail with invalid static mode
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
static:
|
|
mode: not-a-mode
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [static.mode] to be one of [disabled, smb, nfs, custom], but got [not-a-mode]
|
|
|
|
- it: should fail with missing name in dataSource
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
dataSource:
|
|
kind: PersistentVolumeClaim
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [dataSource.name] to be non-empty
|
|
|
|
- it: should fail with missing kind in dataSource
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
dataSource:
|
|
name: some name
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [dataSource.kind] to be non-empty
|
|
|
|
- it: should fail with invalid kind in dataSource
|
|
set:
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: pvc
|
|
dataSource:
|
|
name: some name
|
|
kind: invalid
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [dataSource.kind] to be one of [VolumeSnapshot, PersistentVolumeClaim], but got [invalid]
|