Skip to content

Commit 6b66841

Browse files
committed
e2e-test with kuttl
1 parent 0f95997 commit 6b66841

12 files changed

+119
-0
lines changed

Diff for: kuttl-test.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# code: language=yaml
2+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kudobuilder/kuttl/main/crds/testsuite-json-schema.yaml
3+
apiVersion: kuttl.dev/v1beta1
4+
kind: TestSuite
5+
startKIND: false
6+
startControlPlane: true
7+
testDirs:
8+
- tests/kuttle_e2e/
9+
timeout: 15
10+
crdDir: config/crd/bases
11+
commands:
12+
- command: ./bin/manager
13+
background: true

Diff for: tests/kuttle_e2e/basic/00-0createdb.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: db.movetokube.com/v1alpha1
2+
kind: Postgres
3+
metadata:
4+
name: basicdbcr
5+
spec:
6+
database: basicdb
7+
dropOnDelete: true
8+
masterRole: noprefix-basicdb-group
9+
schemas:
10+
- testschema

Diff for: tests/kuttle_e2e/basic/00-assert.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: db.movetokube.com/v1alpha1
2+
kind: Postgres
3+
metadata:
4+
name: basicdbcr
5+
status:
6+
dbname: pref-basicdb
7+
roles:
8+
owner: noprefix-basicdb-group
9+
reader: pref-basicdb-reader
10+
writer: pref-basicdb-writer
11+
schemas:
12+
- testschema
13+
succeeded: true

Diff for: tests/kuttle_e2e/basic/02-0createuser.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: db.movetokube.com/v1alpha1
2+
kind: PostgresUser
3+
metadata:
4+
name: basicdbuser
5+
spec:
6+
role: basicdb-user1
7+
database: basicdbcr
8+
secretName: basicdbuser-secret
9+
privileges: OWNER

Diff for: tests/kuttle_e2e/basic/02-assert.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
data:
3+
DATABASE_NAME: cHJlZi1iYXNpY2Ri
4+
# LOGIN/ROLE etc are generated
5+
kind: Secret
6+
metadata:
7+
labels:
8+
app: basicdbuser
9+
name: basicdbuser-secret-basicdbuser
10+
ownerReferences:
11+
- apiVersion: db.movetokube.com/v1alpha1
12+
blockOwnerDeletion: true
13+
controller: true
14+
kind: PostgresUser
15+
name: basicdbuser
16+
type: Opaque

Diff for: tests/kuttle_e2e/basic/03-assert.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 10
4+
commands:
5+
- script: |
6+
set -eu
7+
pgurl="$(kubectl -n "$NAMESPACE" get secrets basicdbuser-secret-basicdbuser -o 'jsonpath={.data.POSTGRES_URL}' | base64 -d)"
8+
echo "$pgurl";
9+
set -x
10+
psql "$pgurl" -tA -c 'SELECT 1;'

Diff for: tests/kuttle_e2e/basic/04-0dropdb.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
delete:
4+
# TODO: DB zuerst
5+
- apiVersion: db.movetokube.com/v1alpha1
6+
kind: PostgresUser
7+
name: basicdbuser
8+
- apiVersion: db.movetokube.com/v1alpha1
9+
kind: Postgres
10+
name: basicdbcr

Diff for: tests/kuttle_e2e/basic/04-errors.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: db.movetokube.com/v1alpha1
2+
kind: Postgres
3+
metadata:
4+
name: basicdbcr

Diff for: tests/kuttle_e2e/basic/10-0createdb.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# reapply the DB from step 00
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestStep
4+
apply:
5+
- 00-0createdb.yaml
6+
assert:
7+
- 00-assert.yaml

Diff for: tests/kuttle_e2e/basic/11-0duplicatedb.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: db.movetokube.com/v1alpha1
2+
kind: Postgres
3+
metadata:
4+
name: basicdb-duplicate
5+
spec:
6+
database: basicdb
7+
dropOnDelete: true
8+
masterRole: basicdb-newowner
9+
schemas:
10+
- testschema3

Diff for: tests/kuttle_e2e/basic/11-assert.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: db.movetokube.com/v1alpha1
2+
kind: Postgres
3+
metadata:
4+
name: basicdb-duplicate
5+
status:
6+
roles:
7+
owner: basicdb-newowner
8+
reader: pref-basicdb-reader
9+
writer: pref-basicdb-writer
10+
schemas:
11+
- testschema3
12+
succeeded: true

Diff for: tests/kuttle_e2e/basic/12-assert.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
timeout: 10
4+
commands:
5+
- script: test "$(psql -t -A -d postgres -c "SELECT datname, r.rolname FROM pg_database d JOIN pg_roles r ON d.datdba = r.oid WHERE datname='pref-basicdb'")" = "pref-basicdb|basicdb-newowner"

0 commit comments

Comments
 (0)