diff --git a/openvidu-deployment/community/singlenode/aws/cf-openvidu-singlenode.yaml b/openvidu-deployment/community/singlenode/aws/cf-openvidu-singlenode.yaml index 012e7099..46ea005a 100644 --- a/openvidu-deployment/community/singlenode/aws/cf-openvidu-singlenode.yaml +++ b/openvidu-deployment/community/singlenode/aws/cf-openvidu-singlenode.yaml @@ -41,6 +41,13 @@ Parameters: Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications" 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: Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls' Type: String @@ -220,6 +227,10 @@ Metadata: default: S3 bucket for application data and recordings Parameters: - S3AppDataBucketName + - Label: + default: "(Optional) Additional Installer Flags" + Parameters: + - AdditionalInstallFlags - Label: default: (Optional) TURN server configuration with TLS Parameters: @@ -436,6 +447,18 @@ Resources: "--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 if [[ "${TurnDomainName}" != '' ]]; then LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}") diff --git a/openvidu-deployment/pro/elastic/aws/cf-openvidu-elastic.yaml b/openvidu-deployment/pro/elastic/aws/cf-openvidu-elastic.yaml index 596ce54d..d35757b5 100644 --- a/openvidu-deployment/pro/elastic/aws/cf-openvidu-elastic.yaml +++ b/openvidu-deployment/pro/elastic/aws/cf-openvidu-elastic.yaml @@ -41,6 +41,13 @@ Parameters: Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications" 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: Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls' Type: String @@ -417,6 +424,10 @@ Metadata: - OpenViduVPC - OpenViduMasterNodeSubnet - OpenViduMediaNodeSubnets + - Label: + default: "(Optional) Additional Installer Flags" + Parameters: + - AdditionalInstallFlags - Label: default: (Optional) TURN server configuration with TLS Parameters: @@ -765,6 +776,18 @@ Resources: "--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 if [[ "${TurnDomainName}" != '' ]]; then LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}") diff --git a/openvidu-deployment/pro/ha/aws/cf-openvidu-ha.yaml b/openvidu-deployment/pro/ha/aws/cf-openvidu-ha.yaml index 34ef55c8..1ca6c57a 100644 --- a/openvidu-deployment/pro/ha/aws/cf-openvidu-ha.yaml +++ b/openvidu-deployment/pro/ha/aws/cf-openvidu-ha.yaml @@ -330,6 +330,13 @@ Parameters: Type: String 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: Description: "Dedicated VPC for OpenVidu cluster" Type: AWS::EC2::VPC::Id @@ -397,6 +404,10 @@ Metadata: default: Volumes configuration Parameters: - MasterNodesDiskSize + - Label: + default: "(Optional) Additional Installer Flags" + Parameters: + - AdditionalInstallFlags - Label: default: (Optional) TURN server configuration with TLS Parameters: @@ -954,6 +965,18 @@ Resources: "--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 COMMON_ARGS+=("--turn-domain-name='${!LIVEKIT_TURN_DOMAIN_NAME}'") fi diff --git a/openvidu-deployment/pro/singlenode/aws/cf-openvidu-singlenode.yaml b/openvidu-deployment/pro/singlenode/aws/cf-openvidu-singlenode.yaml index e7afa79d..52347233 100644 --- a/openvidu-deployment/pro/singlenode/aws/cf-openvidu-singlenode.yaml +++ b/openvidu-deployment/pro/singlenode/aws/cf-openvidu-singlenode.yaml @@ -41,6 +41,13 @@ Parameters: Description: "If certificate type is 'letsencrypt', this email will be used for Let's Encrypt notifications" 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: Description: '(Optional) Domain name for the TURN server with TLS. Only needed if your users are behind restrictive firewalls' Type: String @@ -240,6 +247,10 @@ Metadata: default: S3 bucket for application data and recordings Parameters: - S3AppDataBucketName + - Label: + default: "(Optional) Additional Installer Flags" + Parameters: + - AdditionalInstallFlags - Label: default: (Optional) TURN server configuration with TLS Parameters: @@ -462,6 +473,18 @@ Resources: "--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 if [[ "${TurnDomainName}" != '' ]]; then LIVEKIT_TURN_DOMAIN_NAME=$(/usr/local/bin/store_secret.sh save LIVEKIT_TURN_DOMAIN_NAME "${TurnDomainName}")