Properly remap http port 80 mappings to https 443 when adding an ssl certificate
Rather than removing all port mappings, we simply remap port 80 mappings to 443. The previous behavior would remove custom port mappings for all applications and reset them on any certificate change, preventing automation from plugins such as letsencrypt. While this behavior doesn't matter for buildpack deploys - which only expose a single port on container port 5000 - Dockerfile deploys would frequently be affected by such a change, requiring a remapping of all custom ports. This commit also standardizes on the method used to source the proxy functions
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/proxy/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/proxy/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
||||
|
||||
proxy_ports_cmd() {
|
||||
|
||||
@@ -2,22 +2,15 @@
|
||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/proxy/functions"
|
||||
|
||||
proxy_ports_add_cmd() {
|
||||
declare desc="add proxy port mappings from an app"
|
||||
local cmd="proxy:add"
|
||||
local APP="$2"; verify_app_name "$APP"
|
||||
local PROXY_PORT_MAP="$(config_get "$APP" DOKKU_PROXY_PORT_MAP || true)"
|
||||
shift 2
|
||||
|
||||
local INPUT_PORTS="$*"
|
||||
if [[ -n "$INPUT_PORTS" ]]; then
|
||||
PROXY_PORT_MAP="$(merge_dedupe_list "$PROXY_PORT_MAP $INPUT_PORTS" " ")"
|
||||
config_set --no-restart "$APP" DOKKU_PROXY_PORT_MAP="$PROXY_PORT_MAP"
|
||||
else
|
||||
dokku proxy:help
|
||||
dokku_log_fail "No port mapping specified. Exiting..."
|
||||
fi
|
||||
add_proxy_ports "$APP" "$@"
|
||||
plugn trigger post-proxy-ports-update "$APP" "add"
|
||||
}
|
||||
|
||||
|
||||
@@ -1,41 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/proxy/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/proxy/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
||||
|
||||
proxy_ports_remove_cmd() {
|
||||
declare desc="remove specific proxy port mappings from an app"
|
||||
local cmd="proxy:ports-remove"
|
||||
local APP="$2"; verify_app_name "$APP"
|
||||
local PROXY_PORT_MAP="$(config_get "$APP" DOKKU_PROXY_PORT_MAP || true)"
|
||||
local RE_PORT='^[0-9]+$'
|
||||
shift 2
|
||||
|
||||
local INPUT_PORTS="$*"
|
||||
if [[ -n "$INPUT_PORTS" ]]; then
|
||||
local port
|
||||
PROXY_PORT_MAP=" $PROXY_PORT_MAP "
|
||||
for port in $INPUT_PORTS; do
|
||||
if [[ "$port" =~ $RE_PORT ]]; then
|
||||
PROXY_PORT_MAP="$(sed -r "s/[[:alnum:]]+:$port:[[:alnum:]]+//g" <<< "$PROXY_PORT_MAP")"
|
||||
else
|
||||
PROXY_PORT_MAP="$(sed -r "s/ $port / /g" <<< "$PROXY_PORT_MAP")"
|
||||
fi
|
||||
done
|
||||
PROXY_PORT_MAP="$(echo "$PROXY_PORT_MAP" | xargs)"
|
||||
PROXY_PORT_MAP="$(merge_dedupe_list "$PROXY_PORT_MAP" " ")"
|
||||
if [[ -n "$PROXY_PORT_MAP" ]]; then
|
||||
config_set --no-restart "$APP" DOKKU_PROXY_PORT_MAP="$PROXY_PORT_MAP"
|
||||
else
|
||||
config_unset --no-restart "$APP" DOKKU_PROXY_PORT_MAP
|
||||
fi
|
||||
plugn trigger post-proxy-ports-update "$APP" "remove"
|
||||
else
|
||||
if [[ -z "$INPUT_PORTS" ]]; then
|
||||
dokku_log_warn "No port mapping specified. Please supply a valid configured host port"
|
||||
list_app_proxy_ports "$APP"
|
||||
dokku_log_fail "exiting..."
|
||||
fi
|
||||
|
||||
remove_proxy_ports "$APP" "$@"
|
||||
plugn trigger post-proxy-ports-update "$APP" "remove"
|
||||
}
|
||||
|
||||
proxy_ports_remove_cmd "$@"
|
||||
|
||||
Reference in New Issue
Block a user