1
1
# This file is now been transferred to a new repository.
2
- # https://github.com/Azure-Samples/java-aks-keyvault-tls/blob/gb-workflow /.github/workflows/deployapp.yml
2
+ # https://github.com/Azure-Samples/java-aks-keyvault-tls/blob/0.9-preview /.github/workflows/deployapp.yml
3
3
# Retarget any workflows to use the it instead of this one.
4
+ # eg. uses: azure-samples/java-aks-keyvault-tls/.github/workflows/[email protected]
4
5
5
6
on :
6
7
workflow_call :
39
40
# - certmanager-staging
40
41
# - certmanager-production
41
42
# - appgw-selfsigned
42
- HELMAPPURI :
43
- default : " https://github.com/Azure-Samples/java-aks-keyvault-tls/raw/ main/openjdk-demo-3.5.0.tgz "
43
+ MINIHELMBRANCH :
44
+ default : " main"
44
45
required : false
45
46
type : string
46
- FORCEHELMCLEANINSTALL :
47
- description : ' If App is already installed, remove explicitly before install'
48
- type : boolean
49
- default : false
47
+ CERTMANAGERVERSION :
48
+ default : " v1.5.3"
50
49
required : false
50
+ type : string
51
51
UNINSTALLAFTERVERIFY :
52
- description : ' Uninstall app after tests'
52
+ description : ' Uninstall app after tests [yes|no] '
53
53
type : boolean
54
54
default : true
55
55
required : false
@@ -162,8 +162,19 @@ jobs:
162
162
run : |
163
163
az network dns record-set list -g $DNSRG -z $DNSDOMAIN --query "[?name=='$RECORDNAME'][{type:type,fqdn:fqdn,aRecords:aRecords,txtRecords:txtRecords}]"
164
164
165
- - name : Force helm uninstall of existing application
166
- if : inputs.FORCEHELMCLEANINSTALL == true
165
+ - name : Grab some Helm charts to install
166
+ run : |
167
+ BRANCH='${{ inputs.MINIHELMBRANCH }}'
168
+ echo "$BRANCH"
169
+
170
+ if [ -z "$BRANCH" ]
171
+ then
172
+ BRANCH='main'
173
+ fi
174
+
175
+ git clone -b $BRANCH https://github.com/Gordonby/minihelm.git helmcharts
176
+
177
+ - name : Check if App Helm Chart already installed
167
178
env :
168
179
APPNAME : " ${{ inputs.APPNAME }}"
169
180
run : |
@@ -178,8 +189,27 @@ jobs:
178
189
sleep 1m
179
190
fi
180
191
192
+ - name : Install Cert Manager
193
+ if : startsWith(inputs.FRONTENDCERTTYPE, 'certmanager' )
194
+ env :
195
+ MANIFESTTESTURL : " https://github.com/jetstack/cert-manager/releases/download/${{ inputs.CERTMANAGERVERSION }}/cert-manager.yaml"
196
+ run : |
197
+ kubectl apply -f $MANIFESTTESTURL
198
+ sleep 1m
199
+
200
+ - name : Install Cert Manager ClusterIssuer
201
+ if : startsWith(inputs.FRONTENDCERTTYPE, 'certmanager' )
202
+ env :
203
+
204
+ run : |
205
+ echo "Email Address for Lets Encrypt: $EMAILAD"
206
+ helm upgrade --install smokecertissuer ./helmcharts/samples/certmanagerissuer --set email=$EMAILAD
207
+ sleep 1m
208
+
181
209
- name : Verify Cert Manager ClusterIssuer
182
210
if : startsWith(inputs.FRONTENDCERTTYPE, 'certmanager' )
211
+ env :
212
+
183
213
run : |
184
214
case "${{ inputs.FRONTENDCERTTYPE }}" in
185
215
"certmanager-staging") CERTSOURCE="letsEncrypt"; LEISSUER="letsencrypt-staging" ;;
@@ -188,13 +218,46 @@ jobs:
188
218
189
219
kubectl describe clusterissuer $LEISSUER
190
220
221
+ - name : Add a azure-config secret for use with externaldns
222
+ env :
223
+ DNSRESOURCEGROUP : " ${{ inputs.DNSRG }}"
224
+ RG : " ${{ inputs.RG }}"
225
+ AKSNAME : " ${{ inputs.AKSNAME }}"
226
+ run : |
227
+ echo "AKS $AKSNAME"
228
+ echo $DNSRESOURCEGROUP
229
+
230
+ KubeletId=$(az aks show -n $AKSNAME -g $RG --query "identityProfile.kubeletidentity.clientId" -o tsv)
231
+ TenantId=$(az account show --query tenantId -o tsv)
232
+ SubscriptionId=$(az account show --query id -o tsv)
233
+
234
+ JSONSECRETPATH="azure.json"
235
+ cat<<EOF>$JSONSECRETPATH
236
+ {
237
+ "userAssignedIdentityID": "$KubeletId",
238
+ "tenantId": "$TenantId",
239
+ "useManagedIdentityExtension": true,
240
+ "subscriptionId": "$SubscriptionId",
241
+ "resourceGroup": "$DNSRESOURCEGROUP"
242
+ }
243
+ EOF
244
+
245
+ kubectl create secret generic azure-config-file --dry-run=client -o yaml --from-file=azure.json | kubectl apply -f -
246
+
247
+ - name : Add external dns config
248
+ env :
249
+ DOMAINFILTER : " ${{ inputs.DNSDOMAIN }}"
250
+ run : |
251
+ echo $DOMAINFILTER
252
+ helm upgrade --install externaldns ./helmcharts/samples/externaldns --set externaldns.domainfilter="$DOMAINFILTER"
253
+
191
254
- name : Install the Java sample app
192
255
env :
193
256
NAMESP : " default"
194
257
APPNAME : " ${{ inputs.APPNAME }}" # Using backend cert common name
195
258
DOMAINSUFFIX : " ${{ inputs.DNSDOMAIN }}"
196
259
FRONTENDCERTNAME : " ${{ inputs.APPNAME }}-fe"
197
- HELMAPPURI : " ${{ inputs.HELMAPPURI }} "
260
+
198
261
run : |
199
262
# REF: https://github.com/khowling/e2e-tls-java-aks
200
263
@@ -218,8 +281,8 @@ jobs:
218
281
export CSISECRET_CLIENTID=$(az aks show -g $RG --name $AKSNAME --query addonProfiles.azureKeyvaultSecretsProvider.identity.clientId -o tsv)
219
282
echo $CSISECRET_CLIENTID
220
283
221
- helm upgrade --install $APPNAME $HELMAPPURI --set nameOverride="${APPNAME}",frontendCertificateSource="${CERTSOURCE}",csisecrets.vaultname="${KVNAMELOWER}",csisecrets.tenantId="${KVTENANT}",csisecrets.clientId="${CSISECRET_CLIENTID}",dnsname="${DNSNAME}",appgw.frontendCertificateName="${APPNAME}-fe",appgw.rootCertificateName="${APPNAME}",letsEncrypt.issuer="${LEISSUER}",letsEncrypt.secretname="${APPNAME}-tls" --dry-run
222
- helm upgrade --install $APPNAME $HELMAPPURI --set nameOverride="${APPNAME}",frontendCertificateSource="${CERTSOURCE}",csisecrets.vaultname="${KVNAMELOWER}",csisecrets.tenantId="${KVTENANT}",csisecrets.clientId="${CSISECRET_CLIENTID}",dnsname="${DNSNAME}",appgw.frontendCertificateName="${APPNAME}-fe",appgw.rootCertificateName="${APPNAME}",letsEncrypt.issuer="${LEISSUER},letsEncrypt.secretname="${APPNAME}-tls""
284
+ helm upgrade --install $APPNAME ./helmcharts/samples/javatlsappv3 --set nameOverride="${APPNAME}",frontendCertificateSource="${CERTSOURCE}",csisecrets.vaultname="${KVNAMELOWER}",csisecrets.tenantId="${KVTENANT}",csisecrets.clientId="${CSISECRET_CLIENTID}",dnsname="${DNSNAME}",appgw.frontendCertificateName="${APPNAME}-fe",appgw.rootCertificateName="${APPNAME}",letsEncrypt.issuer="${LEISSUER}",letsEncrypt.secretname="${APPNAME}-tls" --dry-run
285
+ helm upgrade --install $APPNAME ./helmcharts/samples/javatlsappv3 --set nameOverride="${APPNAME}",frontendCertificateSource="${CERTSOURCE}",csisecrets.vaultname="${KVNAMELOWER}",csisecrets.tenantId="${KVTENANT}",csisecrets.clientId="${CSISECRET_CLIENTID}",dnsname="${DNSNAME}",appgw.frontendCertificateName="${APPNAME}-fe",appgw.rootCertificateName="${APPNAME}",letsEncrypt.issuer="${LEISSUER},letsEncrypt.secretname="${APPNAME}-tls""
223
286
224
287
- name : Wait for External DNS config
225
288
env :
@@ -258,7 +321,7 @@ jobs:
258
321
SECRETNAME : " ${{ inputs.APPNAME }}-tls"
259
322
run : |
260
323
counter=1
261
- while [ $counter -le 15 ]
324
+ while [ $counter -le 10 ]
262
325
do
263
326
kubectl get po
264
327
0 commit comments