Skip to content

Commit e29c77b

Browse files
committed
add kuttl tests
1 parent dd353ae commit e29c77b

14 files changed

+279
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/sh
2+
3+
set -x
4+
5+
galera="$1"
6+
dbname="$2"
7+
username="$3"
8+
password="$4"
9+
10+
11+
found=0
12+
not_found=1
13+
14+
if [ "$5" = "--reverse" ];then
15+
# sometimes we want to check that a user does not exist
16+
found=1
17+
not_found=0
18+
fi
19+
20+
found_username=$(oc rsh -n ${NAMESPACE} -c galera ${galera} /bin/sh -c 'mysql -uroot -p${DB_ROOT_PASSWORD} -Nse "select user from mysql.user"' | grep -o -w ${username})
21+
22+
# username was not found, exit
23+
if [ -z "$found_username" ]; then
24+
exit $not_found
25+
fi
26+
27+
# username was found. if we wanted it to be found, then check the login also.
28+
if [ "$found" = "0" ]; then
29+
oc rsh -n ${NAMESPACE} -c galera ${galera} /bin/sh -c "mysql -u${username} -p${password} -Nse 'select database();' ${dbname}" || exit -1
30+
fi
31+
32+
exit $found
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#
2+
# Check for:
3+
#
4+
# - 1 MariaDB CR
5+
# - 1 Pod for MariaDB CR
6+
#
7+
8+
apiVersion: mariadb.openstack.org/v1beta1
9+
kind: Galera
10+
metadata:
11+
name: openstack
12+
spec:
13+
replicas: 1
14+
secret: osp-secret
15+
storageRequest: 500M
16+
status:
17+
bootstrapped: true
18+
conditions:
19+
- message: Setup complete
20+
reason: Ready
21+
status: "True"
22+
type: Ready
23+
- message: Deployment completed
24+
reason: Ready
25+
status: "True"
26+
type: DeploymentReady
27+
- message: Exposing service completed
28+
reason: Ready
29+
status: "True"
30+
type: ExposeServiceReady
31+
- message: RoleBinding created
32+
reason: Ready
33+
status: "True"
34+
type: RoleBindingReady
35+
- message: Role created
36+
reason: Ready
37+
status: "True"
38+
type: RoleReady
39+
- message: ServiceAccount created
40+
reason: Ready
41+
status: "True"
42+
type: ServiceAccountReady
43+
- message: Service config create completed
44+
reason: Ready
45+
status: "True"
46+
type: ServiceConfigReady
47+
---
48+
apiVersion: apps/v1
49+
kind: StatefulSet
50+
metadata:
51+
name: openstack-galera
52+
spec:
53+
replicas: 1
54+
selector:
55+
matchLabels:
56+
app: galera
57+
cr: galera-openstack
58+
galera/name: openstack
59+
serviceName: openstack-galera
60+
template:
61+
metadata:
62+
labels:
63+
app: galera
64+
cr: galera-openstack
65+
galera/name: openstack
66+
spec:
67+
containers:
68+
- command:
69+
- /usr/bin/dumb-init
70+
- --
71+
- /usr/local/bin/kolla_start
72+
name: galera
73+
ports:
74+
- containerPort: 3306
75+
name: mysql
76+
protocol: TCP
77+
- containerPort: 4567
78+
name: galera
79+
protocol: TCP
80+
serviceAccount: galera-openstack
81+
serviceAccountName: galera-openstack
82+
status:
83+
availableReplicas: 1
84+
readyReplicas: 1
85+
replicas: 1
86+
---
87+
apiVersion: v1
88+
kind: Pod
89+
metadata:
90+
name: openstack-galera-0
91+
---
92+
apiVersion: v1
93+
kind: Service
94+
metadata:
95+
name: openstack-galera
96+
spec:
97+
ports:
98+
- name: mysql
99+
port: 3306
100+
protocol: TCP
101+
targetPort: 3306
102+
selector:
103+
app: galera
104+
cr: galera-openstack
105+
---
106+
apiVersion: v1
107+
kind: Endpoints
108+
metadata:
109+
name: openstack-galera
110+
---
111+
apiVersion: v1
112+
kind: ConfigMap
113+
metadata:
114+
name: openstack-config-data
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: mariadb.openstack.org/v1beta1
2+
kind: Galera
3+
metadata:
4+
name: openstack
5+
spec:
6+
secret: osp-secret
7+
storageClass: local-storage
8+
storageRequest: 500M
9+
replicas: 1
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
apiVersion: batch/v1
3+
kind: Job
4+
metadata:
5+
name: kuttldb-accounttest-db-create
6+
status:
7+
succeeded: 1
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: mariadb.openstack.org/v1beta1
2+
kind: MariaDBDatabase
3+
metadata:
4+
name: kuttldb-accounttest
5+
labels:
6+
dbName: openstack
7+
spec:
8+
secret: osp-secret
9+
name: kuttldb_accounttest
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
apiVersion: mariadb.openstack.org/v1beta1
3+
kind: MariaDBAccount
4+
metadata:
5+
labels:
6+
mariaDBDatabaseName: kuttldb-accounttest
7+
name: kuttldb-some-db-account
8+
status:
9+
conditions:
10+
# message: 'MariaDBAccount secret is missing or incomplete: Secret $NAMESPACE/some-db-secret not found'
11+
- reason: SecretMissing
12+
severity: Info
13+
status: "False"
14+
type: Ready
15+
# message: 'MariaDBAccount secret is missing or incomplete: Secret $NAMESPACE/some-db-secret not found'
16+
- reason: SecretMissing
17+
severity: Info
18+
status: "False"
19+
type: MariaDBAccountReady
20+
- message: MariaDBDatabase ready
21+
reason: Ready
22+
status: "True"
23+
type: MariaDBDatabaseReady
24+
- message: MariaDB / Galera server ready
25+
reason: Ready
26+
status: "True"
27+
type: MariaDBServerReady
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: mariadb.openstack.org/v1beta1
2+
kind: MariaDBAccount
3+
metadata:
4+
labels:
5+
mariaDBDatabaseName: kuttldb-accounttest
6+
name: kuttldb-some-db-account
7+
spec:
8+
userName: someuser
9+
secret: some-db-secret
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
apiVersion: mariadb.openstack.org/v1beta1
3+
kind: MariaDBAccount
4+
metadata:
5+
labels:
6+
mariaDBDatabaseName: kuttldb-accounttest
7+
name: kuttldb-some-db-account
8+
status:
9+
conditions:
10+
- message: Setup complete
11+
reason: Ready
12+
status: "True"
13+
type: Ready
14+
- message: MariaDBAccount creation complete
15+
reason: Ready
16+
status: "True"
17+
type: MariaDBAccountReady
18+
- message: MariaDBDatabase ready
19+
reason: Ready
20+
status: "True"
21+
type: MariaDBDatabaseReady
22+
- message: MariaDB / Galera server ready
23+
reason: Ready
24+
status: "True"
25+
type: MariaDBServerReady
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
data:
3+
DatabasePassword: ZGJzZWNyZXQx
4+
kind: Secret
5+
metadata:
6+
name: some-db-secret
7+
type: Opaque
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
commands:
5+
- script: |
6+
${MARIADB_KUTTL_DIR:-tests/kuttl/tests}/../common/scripts/check_db_account.sh openstack-galera-0 kuttldb_accounttest someuser dbsecret1
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: |
5+
oc delete -n $NAMESPACE mariadbaccounts/kuttldb-some-db-account
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
commands:
5+
- script: |
6+
${MARIADB_KUTTL_DIR:-tests/kuttl/tests}/../common/scripts/check_db_account.sh openstack-galera-0 kuttldb_accounttest someuser dbsecret1 --reverse
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: kuttl.dev/v1beta
2+
kind: TestStep
3+
delete:
4+
- apiVersion: mariadb.openstack.org/v1beta1
5+
kind: Galera
6+
name: openstack
7+
- apiVersion: mariadb.openstack.org/v1beta1
8+
kind: MariaDBDatabase
9+
name: kuttldb-accounttest
10+
- apiVersion: mariadb.openstack.org/v1beta1
11+
kind: MariaDBAccount
12+
name: kuttldb-some-db-account
13+
- apiVersion: v1
14+
kind: Secret
15+
name: some-db-secret
16+
commands:
17+
- script: |
18+
oc delete -n $NAMESPACE pvc mysql-db-openstack-galera-0
19+
for i in `oc get pv | awk '/'$NAMESPACE'\/mysql-db-openstack-galera/ {print $1}'`; do oc patch pv $i -p '{"spec":{"claimRef": null}}'; done

tests/kuttl/tests/database_create/04-teardown.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ delete:
66
name: openstack
77
- apiVersion: mariadb.openstack.org/v1beta1
88
kind: MariaDBDatabase
9+
name: kuttldb-latin1
10+
- apiVersion: mariadb.openstack.org/v1beta1
11+
kind: MariaDBDatabase
12+
name: kuttldb-utf8
913
commands:
1014
- script: |
1115
oc delete -n $NAMESPACE pvc mysql-db-openstack-galera-0

0 commit comments

Comments
 (0)