Skip to content

Commit b6d76e0

Browse files
committed
Implement more comprehesive automated testing framework
add inputs for testing Add validation scenarios for passwordless PostgreSQL and update action to wait for server readiness Remove demo flag from passwordless PostgreSQL deployment scenario Add scenarios for disabling App Gateway Ingress Controller and using existing AKS clusters with PostgreSQL
1 parent 61dcd4e commit b6d76e0

File tree

47 files changed

+3394
-875
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+3394
-875
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
name: Get Database parameters
2+
description: Get Database parameters
3+
4+
inputs:
5+
databaseType:
6+
description: "databaseType"
7+
required: true
8+
uamiId:
9+
description: "uamiId"
10+
required: true
11+
serverHost:
12+
description: "serverHost"
13+
required: true
14+
dbInstanceName:
15+
description: "dbInstanceName"
16+
required: true
17+
dbAdminUser:
18+
description: "dbAdminUser"
19+
required: false
20+
default: "testuser"
21+
databaseName:
22+
description: "databaseName"
23+
required: true
24+
default: "testdb"
25+
26+
outputs:
27+
enableDB:
28+
description: "enableDB"
29+
value: ${{ steps.database-parameters.outputs.enableDB }}
30+
enablePswlessConnection:
31+
description: "enablePswlessConnection"
32+
value: ${{ steps.database-parameters.outputs.enablePswlessConnection }}
33+
databaseType:
34+
description: "databaseType"
35+
value: ${{ steps.database-parameters.outputs.databaseType }}
36+
dsConnectionURL:
37+
description: "dsConnectionURL"
38+
value: ${{ steps.database-parameters.outputs.dsConnectionURL }}
39+
dbUser:
40+
description: "dbUser"
41+
value: ${{ steps.database-parameters.outputs.dbUser }}
42+
dbIdentity:
43+
description: "dbIdentity"
44+
value: ${{ steps.database-parameters.outputs.dbIdentity }}
45+
46+
runs:
47+
using: "composite"
48+
steps:
49+
- name: Set up environment variables
50+
shell: bash
51+
id: database-parameters
52+
run: |
53+
enableDB=false
54+
databaseType=sqlserver
55+
dsConnectionURL=jdbc:postgresql://contoso.postgres.database:5432/${{ inputs.databaseName }}
56+
dbUser=contosoDbUser
57+
enablePswlessConnection=false
58+
dbIdentity={}
59+
serverHost=${{ inputs.serverHost }}
60+
uamiId=${{ inputs.uamiId }}
61+
echo "databaseType: ${{ inputs.databaseType }}"
62+
echo "serverHost : $serverHost"
63+
if ${{ inputs.databaseType == 'mssqlserver' }}; then
64+
echo "Using mssqlserver database type"
65+
enableDB=true
66+
databaseType=sqlserver
67+
dsConnectionURL="jdbc:sqlserver://$serverHost:1433;database=${{ inputs.databaseName }}"
68+
dbUser=${{ inputs.dbAdminUser }}@${{ inputs.dbInstanceName }}
69+
elif ${{ inputs.databaseType == 'mssqlserver-passwordless' }}; then
70+
echo "Using mssqlserver-passwordless database type"
71+
enableDB=true
72+
enablePswlessConnection=true
73+
databaseType=sqlserver
74+
dsConnectionURL="jdbc:sqlserver://$serverHost:1433;database=${{ inputs.databaseName }}"
75+
dbUser=${{ inputs.dbAdminUser }}@${{ inputs.dbInstanceName }}
76+
dbIdentity=$(jq -n \
77+
--arg uamiId "$uamiId" \
78+
'{
79+
"type": "UserAssigned",
80+
"userAssignedIdentities": {
81+
($uamiId): {}
82+
}
83+
}'| jq -c '.')
84+
elif ${{ inputs.databaseType == 'oracle' }}; then
85+
echo "Using oracle database type"
86+
enableDB=true
87+
databaseType=oracle
88+
dsConnectionURL=jdbc:oracle:thin:@${serverHost}:1521/oratest1
89+
dbUser=${{ inputs.dbAdminUser }}
90+
elif ${{ inputs.databaseType == 'mysql(flexible)' }}; then
91+
echo "Using mysql(flexible) database type"
92+
enableDB=true
93+
databaseType=mysql
94+
dsConnectionURL=jdbc:mysql://$serverHost:3306/${{ inputs.databaseName }}?sslMode=REQUIRED
95+
dbUser=${{ inputs.dbAdminUser }}
96+
elif ${{ inputs.databaseType == 'mysql-passwordless(flexible)' }}; then
97+
echo "Using mysql-passwordless(flexible) database type"
98+
enableDB=true
99+
enablePswlessConnection=true
100+
dbUser=$(basename "$uamiId")
101+
dbIdentity=$(jq -n \
102+
--arg uamiId "$uamiId" \
103+
'{
104+
"type": "UserAssigned",
105+
"userAssignedIdentities": {
106+
($uamiId): {}
107+
}
108+
}'| jq -c '.' )
109+
databaseType=mysql
110+
dsConnectionURL=jdbc:mysql://$serverHost:3306/${{ inputs.databaseName }}
111+
elif ${{ inputs.databaseType == 'postgresql(flexible)' }}; then
112+
echo "Using postgresql(flexible) database type"
113+
enableDB=true
114+
databaseType=postgresql
115+
dsConnectionURL="jdbc:postgresql://$serverHost:5432/${{ inputs.databaseName }}"
116+
dbUser=${{ inputs.dbAdminUser }}
117+
elif ${{ inputs.databaseType == 'postgresql-passwordless(flexible)' }}; then
118+
echo "Using postgresql-passwordless(flexible) database type"
119+
enableDB=true
120+
enablePswlessConnection=true
121+
dbUser=$(basename "$uamiId")
122+
dbIdentity=$(jq -n \
123+
--arg uamiId "$uamiId" \
124+
'{
125+
"type": "UserAssigned",
126+
"userAssignedIdentities": {
127+
($uamiId): {}
128+
}
129+
}'| jq -c '.')
130+
databaseType=postgresql
131+
dsConnectionURL="jdbc:postgresql://$serverHost:5432/${{ inputs.databaseName }}"
132+
fi
133+
134+
echo "enableDB=$enableDB" >> "$GITHUB_OUTPUT"
135+
echo "enablePswlessConnection=$enablePswlessConnection" >> "$GITHUB_OUTPUT"
136+
echo "databaseType=$databaseType" >> "$GITHUB_OUTPUT"
137+
echo "dsConnectionURL=$dsConnectionURL" >> "$GITHUB_OUTPUT"
138+
echo "dbUser=$dbUser" >> "$GITHUB_OUTPUT"
139+
echo "dbIdentity=$dbIdentity" >> "$GITHUB_OUTPUT"
140+
echo "dsConnectionURL=$dsConnectionURL"
141+
echo "dbUser=$dbUser"
142+
echo "Database parameters set successfully"
143+

0 commit comments

Comments
 (0)