298 lines
8.6 KiB
YAML
298 lines
8.6 KiB
YAML
suite: pod iscsi volume test
|
|
templates:
|
|
- common.yaml
|
|
release:
|
|
name: test-release-name
|
|
namespace: test-release-namespace
|
|
tests:
|
|
- it: should pass with iscsi volume
|
|
set:
|
|
some_lun: 0
|
|
some_iqn: some-iqn
|
|
some_targetPortal: some-targetPortal
|
|
some_fsType: ext4
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
iscsi-vol:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: "{{ .Values.some_fsType }}"
|
|
targetPortal: "{{ .Values.some_targetPortal }}"
|
|
iqn: "{{ .Values.some_iqn }}"
|
|
lun: "{{ .Values.some_lun }}"
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
contains:
|
|
path: spec.template.spec.volumes
|
|
content:
|
|
name: iscsi-vol
|
|
iscsi:
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
lun: 0
|
|
fsType: ext4
|
|
chapAuthDiscovery: false
|
|
chapAuthSession: false
|
|
|
|
- it: should pass with iscsi volume with extra options
|
|
set:
|
|
some_lun: 99999999999
|
|
some_iqn: some-iqn
|
|
some_targetPortal: some-targetPortal
|
|
some_fsType: ext4
|
|
some_initiatorName: some-initiatorName
|
|
some_interface: some-interface
|
|
some_portals:
|
|
- some-targetPortal
|
|
- some-targetPortal2
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
iscsi-vol:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: "{{ .Values.some_fsType }}"
|
|
targetPortal: "{{ .Values.some_targetPortal }}"
|
|
iqn: "{{ .Values.some_iqn }}"
|
|
lun: "{{ .Values.some_lun }}"
|
|
initiatorName: "{{ .Values.some_initiatorName }}"
|
|
iscsiInterface: "{{ .Values.some_interface }}"
|
|
portals:
|
|
- "{{ index .Values.some_portals 0 }}"
|
|
- "{{ index .Values.some_portals 1 }}"
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
contains:
|
|
path: spec.template.spec.volumes
|
|
content:
|
|
name: iscsi-vol
|
|
iscsi:
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
lun: 99999999999
|
|
fsType: ext4
|
|
initiatorName: some-initiatorName
|
|
iscsiInterface: some-interface
|
|
portals:
|
|
- some-targetPortal
|
|
- some-targetPortal2
|
|
chapAuthDiscovery: false
|
|
chapAuthSession: false
|
|
|
|
- it: should pass with iscsi volume with chap auth
|
|
set:
|
|
username: some-username
|
|
password: some-password
|
|
workload:
|
|
workload-name1:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
iscsi-vol:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: ext4
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
lun: 0
|
|
authSession:
|
|
username: "{{ .Values.username }}"
|
|
password: "{{ .Values.password }}"
|
|
usernameInitiator: '{{ printf "%s%s" .Values.username "Initiator" }}'
|
|
passwordInitiator: '{{ printf "%s%s" .Values.password "Initiator" }}'
|
|
iscsi-vol2:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: ext4
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
lun: 0
|
|
authDiscovery:
|
|
username: "{{ .Values.username }}"
|
|
password: "{{ .Values.password }}"
|
|
usernameInitiator: '{{ printf "%s%s" .Values.username "Initiator" }}'
|
|
passwordInitiator: '{{ printf "%s%s" .Values.password "Initiator" }}'
|
|
asserts:
|
|
- documentIndex: &deploymentDoc 0
|
|
isKind:
|
|
of: Deployment
|
|
- documentIndex: *deploymentDoc
|
|
contains:
|
|
path: spec.template.spec.volumes
|
|
content:
|
|
name: iscsi-vol
|
|
iscsi:
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
lun: 0
|
|
fsType: ext4
|
|
chapAuthDiscovery: false
|
|
chapAuthSession: true
|
|
secretRef:
|
|
name: test-release-name-common-test-iscsi-vol
|
|
- documentIndex: *deploymentDoc
|
|
contains:
|
|
path: spec.template.spec.volumes
|
|
content:
|
|
name: iscsi-vol2
|
|
iscsi:
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
lun: 0
|
|
fsType: ext4
|
|
chapAuthDiscovery: true
|
|
chapAuthSession: false
|
|
secretRef:
|
|
name: test-release-name-common-test-iscsi-vol2
|
|
- documentIndex: &secretDoc 1
|
|
isKind:
|
|
of: Secret
|
|
- documentIndex: *secretDoc
|
|
equal:
|
|
path: metadata.name
|
|
value: test-release-name-common-test-iscsi-vol
|
|
- documentIndex: *secretDoc
|
|
equal:
|
|
path: type
|
|
value: kubernetes.io/iscsi-chap
|
|
- documentIndex: *secretDoc
|
|
equal:
|
|
path: stringData
|
|
value:
|
|
node.session.auth.username: some-username
|
|
node.session.auth.password: some-password
|
|
node.session.auth.username_in: some-usernameInitiator
|
|
node.session.auth.password_in: some-passwordInitiator
|
|
- documentIndex: &secretDoc 2
|
|
isKind:
|
|
of: Secret
|
|
- documentIndex: *secretDoc
|
|
equal:
|
|
path: metadata.name
|
|
value: test-release-name-common-test-iscsi-vol2
|
|
- documentIndex: *secretDoc
|
|
equal:
|
|
path: type
|
|
value: kubernetes.io/iscsi-chap
|
|
- documentIndex: *secretDoc
|
|
equal:
|
|
path: stringData
|
|
value:
|
|
discovery.sendtargets.auth.username: some-username
|
|
discovery.sendtargets.auth.password: some-password
|
|
discovery.sendtargets.auth.username_in: some-usernameInitiator
|
|
discovery.sendtargets.auth.password_in: some-passwordInitiator
|
|
|
|
# Failures
|
|
- it: should fail without iscsi object in iscsi volume
|
|
set:
|
|
workload:
|
|
some-workload:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: iscsi
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected non-empty [iscsi] object on [iscsi] type
|
|
|
|
- it: should fail with invalid fsType in iscsi
|
|
set:
|
|
workload:
|
|
some-workload:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: some-fsType
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected [fsType] on [iscsi] type to be one of [ext4, xfs, ntfs], but got [some-fsType]
|
|
|
|
- it: should fail without targetPortal in iscsi
|
|
set:
|
|
workload:
|
|
some-workload:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: ext4
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected non-empty [targetPortal] on [iscsi] type
|
|
|
|
- it: should fail without iqn in iscsi
|
|
set:
|
|
workload:
|
|
some-workload:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: ext4
|
|
targetPortal: some-targetPortal
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected non-empty [iqn] on [iscsi] type
|
|
|
|
- it: should fail without lun in iscsi
|
|
set:
|
|
workload:
|
|
some-workload:
|
|
enabled: true
|
|
primary: true
|
|
type: Deployment
|
|
podSpec: {}
|
|
persistence:
|
|
volume1:
|
|
enabled: true
|
|
type: iscsi
|
|
iscsi:
|
|
fsType: ext4
|
|
targetPortal: some-targetPortal
|
|
iqn: some-iqn
|
|
asserts:
|
|
- failedTemplate:
|
|
errorMessage: Persistence - Expected non-empty [lun] on [iscsi] type
|