--- # yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json suite: persistence volumeclaimtemplates templates: - common.yaml values: - ../_values/controllers_main_default_container.yaml tests: - it: default should pass set: controllers.main: type: statefulset asserts: - documentIndex: &StatefulSetDoc 0 isKind: of: StatefulSet - documentIndex: *StatefulSetDoc notExists: path: spec.volumeClaimTemplates - it: volumeClaimTemplates should pass set: controllers.main: type: statefulset statefulset: volumeClaimTemplates: - name: "storage" size: "10Gi" accessMode: "ReadWriteOnce" asserts: - documentIndex: &StatefulSetDoc 0 isKind: of: StatefulSet - documentIndex: *StatefulSetDoc equal: path: spec.volumeClaimTemplates[0] value: metadata: name: storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi - it: volumeClaimTemplates with dataSource should pass set: controllers.main: type: statefulset statefulset: volumeClaimTemplates: - name: "storage" size: "10Gi" accessMode: "ReadWriteOnce" dataSource: apiGroup: snapshot.storage.k8s.io kind: VolumeSnapshot name: MySnapshot asserts: - documentIndex: &StatefulSetDoc 0 isKind: of: StatefulSet - documentIndex: *StatefulSetDoc equal: path: spec.volumeClaimTemplates[0].spec.dataSource value: apiGroup: snapshot.storage.k8s.io kind: VolumeSnapshot name: MySnapshot - it: volumeClaimTemplates with templated dataSource name should pass set: controllers.main: type: statefulset statefulset: volumeClaimTemplates: - name: "storage" size: "10Gi" accessMode: "ReadWriteOnce" dataSource: apiGroup: snapshot.storage.k8s.io kind: VolumeSnapshot name: "{{ .Release.Name }}-config" asserts: - documentIndex: &StatefulSetDoc 0 isKind: of: StatefulSet - documentIndex: *StatefulSetDoc equal: path: spec.volumeClaimTemplates[0].spec.dataSource.name value: RELEASE-NAME-config