Skip to content

Commit fb180ee

Browse files
committed
Input cleanup in deploy-certificate.sh
This brings deploy-certificate.sh up to parity with the input validation changes made in deploy-config.sh. Adds some more input validation for certificate parameters.
1 parent 079d072 commit fb180ee

File tree

2 files changed

+72
-162
lines changed

2 files changed

+72
-162
lines changed

src/deploy-certificate.sh

Lines changed: 72 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
#!/bin/bash
2-
set -euo pipefail
2+
set -eo pipefail
33
IFS=$'\n\t'
44

55
for i in "$@"
66
do
77
case $i in
8-
--subscription_id=*)
8+
--subscription-id=*)
99
subscription_id="${i#*=}"
1010
shift
1111
;;
12-
--resource_group_name=*)
12+
--resource-group-name=*)
1313
resource_group_name="${i#*=}"
1414
shift
1515
;;
16-
--nginx_deployment_name=*)
16+
--nginx-deployment-name=*)
1717
nginx_deployment_name="${i#*=}"
1818
shift
1919
;;
20+
;;
2021
--certificates=*)
2122
certificates="${i#*=}"
2223
shift
@@ -26,35 +27,47 @@ case $i in
2627
shift
2728
;;
2829
*)
29-
echo "Not matched option '${i#*=}' passed in."
30+
echo "Unknown option '${i}' passed in."
3031
exit 1
3132
;;
3233
esac
3334
done
3435

35-
if [[ ! -v subscription_id ]];
36-
then
37-
echo "Please set 'subscription-id' ..."
38-
exit 1
36+
# Validate Required Parameters
37+
missing_params=()
38+
if [ -z "$subscription_id" ]; then
39+
missing_params+=("subscription-id")
3940
fi
40-
if [[ ! -v resource_group_name ]];
41-
then
42-
echo "Please set 'resource-group-name' ..."
43-
exit 1
41+
if [ -z "$resource_group_name" ]; then
42+
missing_params+=("resource-group-name")
4443
fi
45-
if [[ ! -v nginx_deployment_name ]];
46-
then
47-
echo "Please set 'nginx-deployment-name' ..."
48-
exit 1
44+
if [ -z "$nginx_deployment_name" ]; then
45+
missing_params+=("nginx-deployment-name")
4946
fi
50-
if [[ ! -v certificates ]];
51-
then
52-
echo "Please set 'nginx-certificates' ..."
47+
if [ -z "$certificates" ]; then
48+
missing_params+=("certificates")
49+
fi
50+
51+
# Check and print if any required params are missing
52+
if [ ${#missing_params[@]} -gt 0 ]; then
53+
echo "Error: Missing required variables in the workflow:"
54+
echo "${missing_params[*]}"
5355
exit 1
5456
fi
5557

58+
# Synchronize the NGINX certificates to the NGINXaaS for Azure deployment.
59+
60+
echo "Synchronizing NGINX certificates"
61+
echo "Subscription ID: $subscription_id"
62+
echo "Resource group name: $resource_group_name"
63+
echo "NGINXaaS for Azure deployment name: $nginx_deployment_name"
64+
echo ""
65+
5666
az account set -s "$subscription_id" --verbose
5767

68+
echo "Installing the az nginx extension if not already installed."
69+
az extension add --name nginx --allow-preview true
70+
5871
count=$(echo "$certificates" | jq '. | length')
5972
for (( i=0; i<count; i++ ));
6073
do
@@ -63,67 +76,52 @@ do
6376
nginx_key_file=$(echo "$certificates" | jq -r '.['"$i"'].keyVirtualPath')
6477
keyvault_secret=$(echo "$certificates" | jq -r '.['"$i"'].keyvaultSecret')
6578

66-
do_nginx_arm_deployment=1
67-
err_msg=" "
68-
if [ -z "$nginx_cert_name" ] || [ "$nginx_cert_name" = "null" ]
69-
then
70-
err_msg+="nginx_cert_name is empty;"
71-
do_nginx_arm_deployment=0
79+
# Validate certificate parameters
80+
missing_cert_params=()
81+
if [ -z "$nginx_cert_name" ] || [ "$nginx_cert_name" = "null" ]; then
82+
missing_cert_params+=("certificateName")
7283
fi
73-
if [ -z "$nginx_cert_file" ] || [ "$nginx_cert_file" = "null" ]
74-
then
75-
err_msg+="nginx_cert_file is empty;"
76-
do_nginx_arm_deployment=0
84+
if [ -z "$nginx_cert_file" ] || [ "$nginx_cert_file" = "null" ]; then
85+
missing_cert_params+=("certificateVirtualPath")
7786
fi
78-
if [ -z "$nginx_key_file" ] || [ "$nginx_key_file" = "null" ]
79-
then
80-
err_msg+="nginx_key_file is empty;"
81-
do_nginx_arm_deployment=0
87+
if [ -z "$nginx_key_file" ] || [ "$nginx_key_file" = "null" ]; then
88+
missing_cert_params+=("keyVirtualPath")
8289
fi
83-
if [ -z "$keyvault_secret" ] || [ "$keyvault_secret" = "null" ]
84-
then
85-
err_msg+="keyvault_secret is empty;"
86-
do_nginx_arm_deployment=0
90+
if [ -z "$keyvault_secret" ] || [ "$keyvault_secret" = "null" ]; then
91+
missing_cert_params+=("keyvaultSecret")
8792
fi
8893

89-
echo "Synchronizing NGINX certificate"
90-
echo "Subscription ID: $subscription_id"
91-
echo "Resource group name: $resource_group_name"
92-
echo "NGINXaaS for Azure deployment name: $nginx_deployment_name"
93-
echo ""
94-
echo "NGINXaaS for Azure cert name: $nginx_cert_name"
95-
echo "NGINXaaS for Azure cert file location: $nginx_cert_file"
96-
echo "NGINXaaS for Azure key file location: $nginx_key_file"
94+
if [ ${#missing_cert_params[@]} -gt 0 ]; then
95+
echo "Skipping certificate $i deployment due to missing parameters:"
96+
echo "${missing_cert_params[*]}"
97+
echo ""
98+
continue
99+
fi
100+
101+
echo "Processing certificate: $nginx_cert_name"
102+
echo "Certificate file location: $nginx_cert_file"
103+
echo "Key file location: $nginx_key_file"
97104
echo ""
98105

99-
echo "Installing the az nginx extension if not already installed."
100-
az extension add --name nginx --allow-preview true
106+
az_cmd=(
107+
"az"
108+
"nginx"
109+
"deployment"
110+
"certificate"
111+
"create"
112+
"--resource-group" "$resource_group_name"
113+
"--certificate-name" "$nginx_cert_name"
114+
"--deployment-name" "$nginx_deployment_name"
115+
"--certificate-path" "$nginx_cert_file"
116+
"--key-path" "$nginx_key_file"
117+
"--key-vault-secret-id" "$keyvault_secret"
118+
"--verbose"
119+
)
101120

102-
if [ $do_nginx_arm_deployment -eq 1 ]
103-
then
104-
az_cmd=(
105-
"az"
106-
"nginx"
107-
"deployment"
108-
"certificate"
109-
"create"
110-
"--resource-group" "$resource_group_name"
111-
"--certificate-name" "$nginx_cert_name"
112-
"--deployment-name" "$nginx_deployment_name"
113-
"--certificate-path" "$nginx_cert_file"
114-
"--key-path" "$nginx_key_file"
115-
"--key-vault-secret-id" "$keyvault_secret"
116-
"--verbose"
117-
)
118-
if [[ "$debug" == true ]]; then
119-
az_cmd+=("--debug")
120-
echo "${az_cmd[@]}"
121-
fi
122-
set +e
123-
"${az_cmd[@]}"
124-
set -e
125-
else
126-
echo "Skipping JSON object $i cert deployment with error:$err_msg"
127-
echo ""
121+
if [[ "$debug" == true ]]; then
122+
az_cmd+=("--debug")
123+
echo "${az_cmd[@]}"
128124
fi
125+
126+
"${az_cmd[@]}"
129127
done

src/deploy.sh

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)