openvidu-deployment: Add "Additional Installer Flag"

master
cruizba 2025-06-13 19:19:53 +02:00
parent 5e5e404d7d
commit 237ebe1d59
4 changed files with 92 additions and 0 deletions

View File

@ -41,6 +41,13 @@ Parameters:
Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications" Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications"
Type: String Type: String
AdditionalInstallFlags:
Description: Additional optional flags to pass to the OpenVidu installer (comma-separated, e.g., "--flag1=value, --flag2").
Type: String
Default: ""
AllowedPattern: '^[A-Za-z0-9, =_.\-]*$' # Allows letters, numbers, comma, space, underscore, dot, equals, and hyphen
ConstraintDescription: Must be a comma-separated list of flags (for example, --flag=value, --bool-flag).
TurnDomainName: TurnDomainName:
Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls' Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls'
Type: String Type: String
@ -220,6 +227,10 @@ Metadata:
default: S3 bucket for application data and recordings default: S3 bucket for application data and recordings
Parameters: Parameters:
- S3AppDataBucketName - S3AppDataBucketName
- Label:
default: "(Optional) Additional Installer Flags"
Parameters:
- AdditionalInstallFlags
- Label: - Label:
default: (Optional) TURN server configuration with TLS default: (Optional) TURN server configuration with TLS
Parameters: Parameters:
@ -436,6 +447,18 @@ Resources:
"--livekit-api-secret=$LIVEKIT_API_SECRET" "--livekit-api-secret=$LIVEKIT_API_SECRET"
) )
# Include additional installer flags provided by the user
if [[ "${AdditionalInstallFlags}" != "" ]]; then
IFS=',' read -ra EXTRA_FLAGS <<< "${AdditionalInstallFlags}"
for extra_flag in "${!EXTRA_FLAGS[@]}"; do
# Trim whitespace around each flag
extra_flag="$(echo -e "${!extra_flag}" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
if [[ "$extra_flag" != "" ]]; then
COMMON_ARGS+=("$extra_flag")
fi
done
fi
# Turn with TLS # Turn with TLS
if [[ "${TurnDomainName}" != '' ]]; then if [[ "${TurnDomainName}" != '' ]]; then
LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}") LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}")

View File

@ -41,6 +41,13 @@ Parameters:
Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications" Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications"
Type: String Type: String
AdditionalInstallFlags:
Description: Additional optional flags to pass to the OpenVidu installer (comma-separated, e.g., "--flag1=value, --flag2").
Type: String
Default: ""
AllowedPattern: '^[A-Za-z0-9, =_.\-]*$' # Allows letters, numbers, comma, space, underscore, dot, equals, and hyphen
ConstraintDescription: Must be a comma-separated list of flags (for example, --flag=value, --bool-flag).
TurnDomainName: TurnDomainName:
Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls' Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls'
Type: String Type: String
@ -417,6 +424,10 @@ Metadata:
- OpenViduVPC - OpenViduVPC
- OpenViduMasterNodeSubnet - OpenViduMasterNodeSubnet
- OpenViduMediaNodeSubnets - OpenViduMediaNodeSubnets
- Label:
default: "(Optional) Additional Installer Flags"
Parameters:
- AdditionalInstallFlags
- Label: - Label:
default: (Optional) TURN server configuration with TLS default: (Optional) TURN server configuration with TLS
Parameters: Parameters:
@ -765,6 +776,18 @@ Resources:
"--livekit-api-secret=$LIVEKIT_API_SECRET" "--livekit-api-secret=$LIVEKIT_API_SECRET"
) )
# Include additional installer flags provided by the user
if [[ "${AdditionalInstallFlags}" != "" ]]; then
IFS=',' read -ra EXTRA_FLAGS <<< "${AdditionalInstallFlags}"
for extra_flag in "${!EXTRA_FLAGS[@]}"; do
# Trim whitespace around each flag
extra_flag="$(echo -e "${!extra_flag}" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
if [[ "$extra_flag" != "" ]]; then
COMMON_ARGS+=("$extra_flag")
fi
done
fi
# Turn with TLS # Turn with TLS
if [[ "${TurnDomainName}" != '' ]]; then if [[ "${TurnDomainName}" != '' ]]; then
LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}") LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}")

View File

@ -330,6 +330,13 @@ Parameters:
Type: String Type: String
Description: Name of the S3 bucket to store cluster data. If empty, a bucket will be created Description: Name of the S3 bucket to store cluster data. If empty, a bucket will be created
AdditionalInstallFlags:
Description: Additional optional flags to pass to the OpenVidu installer (comma-separated, e.g., "--flag1=value, --flag2").
Type: String
Default: ""
AllowedPattern: '^[A-Za-z0-9, =_.\-]*$' # Allows letters, numbers, comma, space, underscore, dot, equals, and hyphen
ConstraintDescription: Must be a comma-separated list of flags (for example, --flag=value, --bool-flag).
OpenViduVPC: OpenViduVPC:
Description: "Dedicated VPC for OpenVidu cluster" Description: "Dedicated VPC for OpenVidu cluster"
Type: AWS::EC2::VPC::Id Type: AWS::EC2::VPC::Id
@ -397,6 +404,10 @@ Metadata:
default: Volumes configuration default: Volumes configuration
Parameters: Parameters:
- MasterNodesDiskSize - MasterNodesDiskSize
- Label:
default: "(Optional) Additional Installer Flags"
Parameters:
- AdditionalInstallFlags
- Label: - Label:
default: (Optional) TURN server configuration with TLS default: (Optional) TURN server configuration with TLS
Parameters: Parameters:
@ -954,6 +965,18 @@ Resources:
"--livekit-api-secret=$LIVEKIT_API_SECRET" "--livekit-api-secret=$LIVEKIT_API_SECRET"
) )
# Include additional installer flags provided by the user
if [[ "${AdditionalInstallFlags}" != "" ]]; then
IFS=',' read -ra EXTRA_FLAGS <<< "${AdditionalInstallFlags}"
for extra_flag in "${!EXTRA_FLAGS[@]}"; do
# Trim whitespace around each flag
extra_flag="$(echo -e "${!extra_flag}" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
if [[ "$extra_flag" != "" ]]; then
COMMON_ARGS+=("$extra_flag")
fi
done
fi
if [[ "${!LIVEKIT_TURN_DOMAIN_NAME}" != "none" ]]; then if [[ "${!LIVEKIT_TURN_DOMAIN_NAME}" != "none" ]]; then
COMMON_ARGS+=("--turn-domain-name='${!LIVEKIT_TURN_DOMAIN_NAME}'") COMMON_ARGS+=("--turn-domain-name='${!LIVEKIT_TURN_DOMAIN_NAME}'")
fi fi

View File

@ -41,6 +41,13 @@ Parameters:
Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications" Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications"
Type: String Type: String
AdditionalInstallFlags:
Description: Additional optional flags to pass to the OpenVidu installer (comma-separated, e.g., "--flag1=value, --flag2").
Type: String
Default: ""
AllowedPattern: '^[A-Za-z0-9, =_.\-]*$' # Allows letters, numbers, comma, space, underscore, dot, equals, and hyphen
ConstraintDescription: Must be a comma-separated list of flags (for example, --flag=value, --bool-flag).
TurnDomainName: TurnDomainName:
Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls' Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls'
Type: String Type: String
@ -240,6 +247,10 @@ Metadata:
default: S3 bucket for application data and recordings default: S3 bucket for application data and recordings
Parameters: Parameters:
- S3AppDataBucketName - S3AppDataBucketName
- Label:
default: "(Optional) Additional Installer Flags"
Parameters:
- AdditionalInstallFlags
- Label: - Label:
default: (Optional) TURN server configuration with TLS default: (Optional) TURN server configuration with TLS
Parameters: Parameters:
@ -462,6 +473,18 @@ Resources:
"--livekit-api-secret=$LIVEKIT_API_SECRET" "--livekit-api-secret=$LIVEKIT_API_SECRET"
) )
# Include additional installer flags provided by the user
if [[ "${AdditionalInstallFlags}" != "" ]]; then
IFS=',' read -ra EXTRA_FLAGS <<< "${AdditionalInstallFlags}"
for extra_flag in "${!EXTRA_FLAGS[@]}"; do
# Trim whitespace around each flag
extra_flag="$(echo -e "${!extra_flag}" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
if [[ "$extra_flag" != "" ]]; then
COMMON_ARGS+=("$extra_flag")
fi
done
fi
# Turn with TLS # Turn with TLS
if [[ "${TurnDomainName}" != '' ]]; then if [[ "${TurnDomainName}" != '' ]]; then
LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}") LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}")