Skip to content

Commit

Permalink
test: Create forced folder deletion e2e test
Browse files Browse the repository at this point in the history
  • Loading branch information
Baarsgaard committed Oct 25, 2024
1 parent 9673263 commit 0a09ccf
Showing 1 changed file with 130 additions and 0 deletions.
130 changes: 130 additions & 0 deletions tests/e2e/force_delete_folder/chainsaw-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata:
name: force-delete-folders
spec:
bindings:
- name: USER
value: root
- name: PASS
value: secret
steps:
- name: Create Grafana with testdata resources
try:
- apply:
file: ../testdata-resources.yaml

- assert:
resource:
apiVersion: v1
kind: Pod
metadata:
(contains(name, 'testdata-deployment')): true

- wait:
apiVersion: v1
kind: Pod
timeout: 1m
for:
condition:
name: Ready
value: 'true'

- assert:
resource:
apiVersion: grafana.integreatly.org/v1beta1
kind: Grafana
metadata:
name: testdata
status:
stage: complete
stageStatus: success

- assert:
resource:
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaFolder
metadata:
name: testdata
status:
conditions:
- reason: ApplySuccessful
status: "True"
type: FolderSynchronized

- assert:
resource:
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaAlertRuleGroup
metadata:
name: testdata
status:
conditions:
- reason: ApplySuccessful
status: "True"
type: AlertGroupSynchronized

- name: Ensure folder exists in Grafana
try:
- apply: &curlJob
resource:
apiVersion: batch/v1
kind: Job
metadata:
name: folder-curl
spec:
backoffLimit: 1
template:
spec:
restartPolicy: Never
containers:
- name: curl
image: alpine/curl:latest
command: ["ash", "-c"]
args:
- |
curl --fail --silent --show-error \
-u ${BASIC_USER}:${BASIC_PASS} \
"http://testdata-service.${NS}.svc:3000/api/folders/testdata-uid"
env:
- name: BASIC_USER
value: ($USER)
- name: BASIC_PASS
value: ($PASS)
- name: NS
value: ($namespace)
- assert:
resource:
apiVersion: batch/v1
kind: Job
metadata:
name: folder-curl
status:
(conditions[?type == 'Complete']):
- status: "True"
- delete:
ref:
apiVersion: batch/v1
kind: Job
name: folder-curl

- name: Delete Folder and verify it's removed in Grafana
try:
- delete:
ref:
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaFolder
name: testdata

- apply: *curlJob

- assert:
resource:
apiVersion: batch/v1
kind: Job
metadata:
name: folder-curl
status:
(conditions[?type == 'Failed']):
- status: "True"

0 comments on commit 0a09ccf

Please sign in to comment.