Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90ab3a1191 | ||
|
|
23681960bf | ||
|
|
b8b97f0cb4 | ||
|
|
70c98338b0 | ||
|
|
872ed9c540 | ||
|
|
c85770a873 | ||
|
|
facd80f5bc | ||
|
|
bc5985881a | ||
|
|
4170c0b993 | ||
|
|
ca69e6f79d | ||
|
|
ca6b3b8815 | ||
|
|
e43904641b |
12
README.md
12
README.md
@@ -203,7 +203,7 @@ DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_ADDR=172.17.0.1
|
||||
The following will be set on the linked application by default:
|
||||
|
||||
```
|
||||
REDIS_URL=redis://lolipop:SOME_PASSWORD@dokku-redis-lolipop:6379/lolipop
|
||||
REDIS_URL=redis://:SOME_PASSWORD@dokku-redis-lolipop:6379/lolipop
|
||||
```
|
||||
|
||||
The host exposed here only works internally in docker containers. If you want your container to be reachable from outside, you should use the 'expose' subcommand. Another service can be linked to your app:
|
||||
@@ -222,7 +222,7 @@ dokku redis:link lolipop playground
|
||||
This will cause `REDIS_URL` to be set as:
|
||||
|
||||
```
|
||||
redis2://lolipop:SOME_PASSWORD@dokku-redis-lolipop:6379/lolipop
|
||||
redis2://:SOME_PASSWORD@dokku-redis-lolipop:6379/lolipop
|
||||
```
|
||||
|
||||
### unlink the redis service from the app
|
||||
@@ -312,7 +312,7 @@ dokku redis:promote <service> <app>
|
||||
If you have a redis service linked to an app and try to link another redis service another link environment variable will be generated automatically:
|
||||
|
||||
```
|
||||
DOKKU_REDIS_BLUE_URL=redis://other_service:ANOTHER_PASSWORD@dokku-redis-other-service:6379/other_service
|
||||
DOKKU_REDIS_BLUE_URL=redis://:ANOTHER_PASSWORD@dokku-redis-other-service:6379/other_service
|
||||
```
|
||||
|
||||
You can promote the new service to be the primary one:
|
||||
@@ -326,9 +326,9 @@ dokku redis:promote other_service playground
|
||||
This will replace `REDIS_URL` with the url from other_service and generate another environment variable to hold the previous value if necessary. You could end up with the following for example:
|
||||
|
||||
```
|
||||
REDIS_URL=redis://other_service:ANOTHER_PASSWORD@dokku-redis-other-service:6379/other_service
|
||||
DOKKU_REDIS_BLUE_URL=redis://other_service:ANOTHER_PASSWORD@dokku-redis-other-service:6379/other_service
|
||||
DOKKU_REDIS_SILVER_URL=redis://lolipop:SOME_PASSWORD@dokku-redis-lolipop:6379/lolipop
|
||||
REDIS_URL=redis://:ANOTHER_PASSWORD@dokku-redis-other-service:6379/other_service
|
||||
DOKKU_REDIS_BLUE_URL=redis://:ANOTHER_PASSWORD@dokku-redis-other-service:6379/other_service
|
||||
DOKKU_REDIS_SILVER_URL=redis://:SOME_PASSWORD@dokku-redis-lolipop:6379/lolipop
|
||||
```
|
||||
|
||||
### start a previously stopped redis service
|
||||
|
||||
45
bin/generate
45
bin/generate
@@ -5,12 +5,20 @@ import os
|
||||
import re
|
||||
|
||||
|
||||
def compile(service, version, variable, alias, image, scheme, ports, unimplemented, dokku_version):
|
||||
def compile(service, version, variable, alias, image, scheme, ports, sponsors, unimplemented, dokku_version):
|
||||
prefix = "\n\n".join([
|
||||
header(service),
|
||||
description(service, image, version),
|
||||
])
|
||||
|
||||
if len(sponsors) > 0:
|
||||
prefix += "\n\n"
|
||||
prefix += sponsors_section(service, sponsors)
|
||||
|
||||
return (
|
||||
"\n\n".join(
|
||||
[
|
||||
header(service),
|
||||
description(service, version),
|
||||
prefix,
|
||||
requirements_section(dokku_version),
|
||||
installation_section(service, dokku_version),
|
||||
commands_section(service, variable, alias, image, scheme, ports, unimplemented),
|
||||
@@ -33,8 +41,26 @@ def header(service):
|
||||
)
|
||||
|
||||
|
||||
def description(service, version):
|
||||
return f"Official {service} plugin for dokku. Currently defaults to installing [{service} {version}](https://hub.docker.com/_/{service}/)."
|
||||
def description(service, full_image, version):
|
||||
base = "_"
|
||||
image = full_image
|
||||
if "/" in full_image:
|
||||
base = "r/" + full_image.split("/")[0]
|
||||
image = full_image.split("/")[1]
|
||||
|
||||
return f"Official {service} plugin for dokku. Currently defaults to installing [{full_image} {version}](https://hub.docker.com/{base}/{image}/)."
|
||||
|
||||
|
||||
def sponsors_section(service, sponsors):
|
||||
if len(sponsors) == 0:
|
||||
return ""
|
||||
|
||||
sponsor_data = ["## Sponsors", "", f"The {service} plugin was generously sponsored by the following:", ""]
|
||||
sponsor_data.extend([f"- [{s}](https://github.com/{s})" for s in sponsors])
|
||||
|
||||
return "\n".join(
|
||||
sponsor_data
|
||||
)
|
||||
|
||||
|
||||
def requirements_section(dokku_version):
|
||||
@@ -469,7 +495,14 @@ def main():
|
||||
if match is not None:
|
||||
unimplemented = [s.strip('"') for s in match.group(1).split(" ")]
|
||||
|
||||
text = compile(service, version, variable, alias, image, scheme, ports, unimplemented, "0.12.x+")
|
||||
sponsors = []
|
||||
with open("plugin.toml") as f:
|
||||
for line in f.readlines():
|
||||
if line.startswith("sponsors"):
|
||||
sponsors = re.search("\[([\"\w\s,_-]+)\]", line).group(1)
|
||||
sponsors = [s.strip("\"") for s in sponsors.split(",")]
|
||||
|
||||
text = compile(service, version, variable, alias, image, scheme, ports, sponsors, unimplemented, "0.12.x+")
|
||||
|
||||
base_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||
readme_file = os.path.join(base_path, "README.md")
|
||||
|
||||
@@ -188,18 +188,18 @@ service_backup() {
|
||||
dokku_log_fail "Provide AWS credentials or use the --use-iam flag"
|
||||
fi
|
||||
|
||||
TMPDIR=$(mktemp -d --tmpdir)
|
||||
trap 'rm -rf "$TMPDIR" > /dev/null' RETURN INT TERM EXIT
|
||||
BACKUP_TMPDIR=$(mktemp -d --tmpdir)
|
||||
trap 'rm -rf "$BACKUP_TMPDIR" > /dev/null' RETURN INT TERM EXIT
|
||||
|
||||
docker inspect "$ID" &>/dev/null || dokku_log_fail "Service container does not exist"
|
||||
is_container_status "$ID" "Running" || dokku_log_fail "Service container is not running"
|
||||
|
||||
(service_export "$SERVICE" >"${TMPDIR}/export")
|
||||
(service_export "$SERVICE" >"${BACKUP_TMPDIR}/export")
|
||||
|
||||
# Build parameter list for s3backup tool
|
||||
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -e BUCKET_NAME=$BUCKET_NAME"
|
||||
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -e BACKUP_NAME=${PLUGIN_COMMAND_PREFIX}-${SERVICE}"
|
||||
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -v ${TMPDIR}:/backup"
|
||||
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -v ${BACKUP_TMPDIR}:/backup"
|
||||
|
||||
if [[ -f "$SERVICE_BACKUP_ROOT/AWS_DEFAULT_REGION" ]]; then
|
||||
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -e AWS_DEFAULT_REGION=$(cat "$SERVICE_BACKUP_ROOT/AWS_DEFAULT_REGION")"
|
||||
@@ -383,7 +383,7 @@ service_info() {
|
||||
local flag key valid_flags
|
||||
|
||||
local flag_map=(
|
||||
"--config-dir: ${SERVICE_ROOT}/config"
|
||||
"--config-dir: ${SERVICE_ROOT}/${PLUGIN_CONFIG_SUFFIX}"
|
||||
"--data-dir: ${SERVICE_ROOT}/data"
|
||||
"--dsn: ${SERVICE_URL}"
|
||||
"--exposed-ports: $(service_exposed_ports "$SERVICE")"
|
||||
|
||||
1
config
1
config
@@ -21,6 +21,7 @@ export PLUGIN_SCHEME="redis"
|
||||
export PLUGIN_SERVICE="Redis"
|
||||
export PLUGIN_VARIABLE="REDIS"
|
||||
export PLUGIN_BASE_PATH="$PLUGIN_PATH"
|
||||
export PLUGIN_CONFIG_SUFFIX="config"
|
||||
if [[ -n $DOKKU_API_VERSION ]]; then
|
||||
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
||||
fi
|
||||
|
||||
12
functions
12
functions
@@ -42,13 +42,13 @@ service_create() {
|
||||
|
||||
mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory"
|
||||
mkdir -p "$SERVICE_ROOT/data" || dokku_log_fail "Unable to create service data directory"
|
||||
mkdir -p "$SERVICE_ROOT/config" || dokku_log_fail "Unable to create service config directory"
|
||||
mkdir -p "$SERVICE_ROOT/$PLUGIN_CONFIG_SUFFIX" || dokku_log_fail "Unable to create service config directory"
|
||||
touch "$LINKS_FILE"
|
||||
|
||||
if [[ -z $REDIS_CONFIG_PATH ]]; then
|
||||
curl -sSL "https://raw.githubusercontent.com/antirez/redis/${PLUGIN_IMAGE_VERSION:0:3}/redis.conf" >"$SERVICE_ROOT/config/redis.conf" || dokku_log_fail "Unable to download the default redis.conf to the config directory"
|
||||
curl -sSL "https://raw.githubusercontent.com/antirez/redis/${PLUGIN_IMAGE_VERSION:0:3}/redis.conf" >"$SERVICE_ROOT/$PLUGIN_CONFIG_SUFFIX/redis.conf" || dokku_log_fail "Unable to download the default redis.conf to the config directory"
|
||||
else
|
||||
cp "$REDIS_CONFIG_PATH" "$SERVICE_ROOT/config/redis.conf" || dokku_log_fail "Unable to copy the ${REDIS_CONFIG_PATH} to the config directory"
|
||||
cp "$REDIS_CONFIG_PATH" "$SERVICE_ROOT/$PLUGIN_CONFIG_SUFFIX/redis.conf" || dokku_log_fail "Unable to copy the ${REDIS_CONFIG_PATH} to the config directory"
|
||||
fi
|
||||
PASSWORD=$(openssl rand -hex 32)
|
||||
if [[ -n "$SERVICE_PASSWORD" ]]; then
|
||||
@@ -57,7 +57,7 @@ service_create() {
|
||||
fi
|
||||
echo "$PASSWORD" >"$SERVICE_ROOT/PASSWORD"
|
||||
chmod 640 "$SERVICE_ROOT/PASSWORD"
|
||||
sed -i.bak "s/# requirepass.*/requirepass ${PASSWORD}/" "$SERVICE_ROOT/config/redis.conf" && rm "$SERVICE_ROOT/config/redis.conf.bak"
|
||||
sed -i.bak "s/# requirepass.*/requirepass ${PASSWORD}/" "$SERVICE_ROOT/$PLUGIN_CONFIG_SUFFIX/redis.conf" && rm "$SERVICE_ROOT/$PLUGIN_CONFIG_SUFFIX/redis.conf.bak"
|
||||
|
||||
[[ -n "$SERVICE_CUSTOM_ENV" ]] && REDIS_CUSTOM_ENV="$SERVICE_CUSTOM_ENV"
|
||||
if [[ -n $REDIS_CUSTOM_ENV ]]; then
|
||||
@@ -76,7 +76,7 @@ service_create_container() {
|
||||
local SERVICE_HOST_ROOT="$PLUGIN_DATA_HOST_ROOT/$SERVICE"
|
||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||
|
||||
ID=$(docker run --name "$SERVICE_NAME" -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/config:/usr/local/etc/redis" --env-file="$SERVICE_ROOT/ENV" -d --restart always --label dokku=service --label dokku.service=redis "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" redis-server /usr/local/etc/redis/redis.conf --bind 0.0.0.0)
|
||||
ID=$(docker run --name "$SERVICE_NAME" -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/$PLUGIN_CONFIG_SUFFIX:/usr/local/etc/redis" --env-file="$SERVICE_ROOT/ENV" -d --restart always --label dokku=service --label dokku.service=redis "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" redis-server /usr/local/etc/redis/redis.conf --bind 0.0.0.0)
|
||||
echo "$ID" >"$SERVICE_ROOT/ID"
|
||||
|
||||
dokku_log_verbose_quiet "Waiting for container to be ready"
|
||||
@@ -155,5 +155,5 @@ service_url() {
|
||||
local SERVICE="$1"
|
||||
local PASSWORD="$(service_password "$SERVICE")"
|
||||
local SERVICE_DNS_HOSTNAME="$(service_dns_hostname "$SERVICE")"
|
||||
echo "$PLUGIN_SCHEME://$SERVICE:$PASSWORD@$SERVICE_DNS_HOSTNAME:${PLUGIN_DATASTORE_PORTS[0]}"
|
||||
echo "$PLUGIN_SCHEME://:$PASSWORD@$SERVICE_DNS_HOSTNAME:${PLUGIN_DATASTORE_PORTS[0]}"
|
||||
}
|
||||
|
||||
@@ -76,10 +76,10 @@ fn-help-contents() {
|
||||
|
||||
fn-help-contents-subcommand() {
|
||||
declare SUBCOMMAND="$1" FULL_OUTPUT="$2"
|
||||
local TMPDIR=$(mktemp -d --tmpdir)
|
||||
local UNCLEAN_FILE="${TMPDIR}/cmd-unclean" CLEAN_FILE="${TMPDIR}/cmd-clean"
|
||||
local HELP_TMPDIR=$(mktemp -d --tmpdir)
|
||||
local UNCLEAN_FILE="${HELP_TMPDIR}/cmd-unclean" CLEAN_FILE="${HELP_TMPDIR}/cmd-clean"
|
||||
local BOLD CMD_OUTPUT CYAN EXAMPLE LIGHT_GRAY NORMAL
|
||||
trap 'rm -rf "$TMPDIR" > /dev/null' RETURN INT TERM EXIT
|
||||
trap 'rm -rf "$HELP_TMPDIR" > /dev/null' RETURN INT TERM EXIT
|
||||
|
||||
rm -rf "$UNCLEAN_FILE" "$CLEAN_FILE"
|
||||
cat "$SUBCOMMAND_ROOT/$SUBCOMMAND" >"$UNCLEAN_FILE"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku redis service plugin"
|
||||
version = "1.12.5"
|
||||
version = "1.13.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -45,7 +45,7 @@ service-destroy-cmd() {
|
||||
service_container_rm "$SERVICE"
|
||||
|
||||
dokku_log_verbose_quiet "Removing data"
|
||||
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/config:/config" "$PLUGIN_BUSYBOX_IMAGE" chmod 777 -R /config /data
|
||||
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/$PLUGIN_CONFIG_SUFFIX:/config" "$PLUGIN_BUSYBOX_IMAGE" chmod 777 -R /config /data
|
||||
rm -rf "$SERVICE_ROOT"
|
||||
|
||||
dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE"
|
||||
|
||||
@@ -23,7 +23,7 @@ service-link-cmd() {
|
||||
#E
|
||||
#E the following will be set on the linked application by default:
|
||||
#E
|
||||
#E ${PLUGIN_DEFAULT_ALIAS}_URL=${PLUGIN_SCHEME}://lolipop:SOME_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-lolipop:${PLUGIN_DATASTORE_PORTS[0]}/lolipop
|
||||
#E ${PLUGIN_DEFAULT_ALIAS}_URL=${PLUGIN_SCHEME}://:SOME_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-lolipop:${PLUGIN_DATASTORE_PORTS[0]}/lolipop
|
||||
#E
|
||||
#E the host exposed here only works internally in docker containers.
|
||||
#E if you want your container to be reachable from outside, you should
|
||||
@@ -37,7 +37,7 @@ service-link-cmd() {
|
||||
#E dokku $PLUGIN_COMMAND_PREFIX:link lolipop playground
|
||||
#E this will cause ${PLUGIN_DEFAULT_ALIAS}_URL to be set as:
|
||||
#E
|
||||
#E ${PLUGIN_SCHEME}2://lolipop:SOME_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-lolipop:${PLUGIN_DATASTORE_PORTS[0]}/lolipop
|
||||
#E ${PLUGIN_SCHEME}2://:SOME_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-lolipop:${PLUGIN_DATASTORE_PORTS[0]}/lolipop
|
||||
#A service, service to run command against
|
||||
#A app, app to run command against
|
||||
#F -a|--alias "BLUE_DATABASE", an alternative alias to use for linking to an app via environment variable
|
||||
|
||||
@@ -9,7 +9,7 @@ service-promote-cmd() {
|
||||
#E if you have a $PLUGIN_COMMAND_PREFIX service linked to an app and try to link another $PLUGIN_COMMAND_PREFIX service
|
||||
#E another link environment variable will be generated automatically:
|
||||
#E
|
||||
#E DOKKU_${PLUGIN_DEFAULT_ALIAS}_BLUE_URL=${PLUGIN_SCHEME}://other_service:ANOTHER_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-other-service:${PLUGIN_DATASTORE_PORTS[0]}/other_service
|
||||
#E DOKKU_${PLUGIN_DEFAULT_ALIAS}_BLUE_URL=${PLUGIN_SCHEME}://:ANOTHER_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-other-service:${PLUGIN_DATASTORE_PORTS[0]}/other_service
|
||||
#E
|
||||
#E you can promote the new service to be the primary one
|
||||
#E > NOTE: this will restart your app
|
||||
@@ -18,9 +18,9 @@ service-promote-cmd() {
|
||||
#E another environment variable to hold the previous value if necessary.
|
||||
#E you could end up with the following for example:
|
||||
#E
|
||||
#E ${PLUGIN_DEFAULT_ALIAS}_URL=${PLUGIN_SCHEME}://other_service:ANOTHER_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-other-service:${PLUGIN_DATASTORE_PORTS[0]}/other_service
|
||||
#E DOKKU_${PLUGIN_DEFAULT_ALIAS}_BLUE_URL=${PLUGIN_SCHEME}://other_service:ANOTHER_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-other-service:${PLUGIN_DATASTORE_PORTS[0]}/other_service
|
||||
#E DOKKU_${PLUGIN_DEFAULT_ALIAS}_SILVER_URL=${PLUGIN_SCHEME}://lolipop:SOME_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-lolipop:${PLUGIN_DATASTORE_PORTS[0]}/lolipop
|
||||
#E ${PLUGIN_DEFAULT_ALIAS}_URL=${PLUGIN_SCHEME}://:ANOTHER_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-other-service:${PLUGIN_DATASTORE_PORTS[0]}/other_service
|
||||
#E DOKKU_${PLUGIN_DEFAULT_ALIAS}_BLUE_URL=${PLUGIN_SCHEME}://:ANOTHER_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-other-service:${PLUGIN_DATASTORE_PORTS[0]}/other_service
|
||||
#E DOKKU_${PLUGIN_DEFAULT_ALIAS}_SILVER_URL=${PLUGIN_SCHEME}://:SOME_PASSWORD@dokku-${PLUGIN_COMMAND_PREFIX}-lolipop:${PLUGIN_DATASTORE_PORTS[0]}/lolipop
|
||||
#A service, service to run command against
|
||||
#A app, app to run command against
|
||||
declare desc="promote service <service> as ${PLUGIN_DEFAULT_ALIAS}_URL in <app>"
|
||||
|
||||
@@ -22,21 +22,21 @@ teardown() {
|
||||
@test "($PLUGIN_COMMAND_PREFIX:info) success" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:info" l
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
assert_contains "${lines[*]}" "redis://l:$password@dokku-redis-l:6379"
|
||||
assert_contains "${lines[*]}" "redis://:$password@dokku-redis-l:6379"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:info) replaces underscores by dash in hostname" {
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:create" test_with_underscores
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:info" test_with_underscores
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/test_with_underscores/PASSWORD")"
|
||||
assert_contains "${lines[*]}" "redis://test_with_underscores:$password@dokku-redis-test-with-underscores:6379"
|
||||
assert_contains "${lines[*]}" "redis://:$password@dokku-redis-test-with-underscores:6379"
|
||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" test_with_underscores
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:info) success with flag" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:info" l --dsn
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
assert_output "redis://l:$password@dokku-redis-l:6379"
|
||||
assert_output "redis://:$password@dokku-redis-l:6379"
|
||||
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:info" l --config-dir
|
||||
assert_success
|
||||
|
||||
@@ -63,7 +63,7 @@ teardown() {
|
||||
echo "status: $status"
|
||||
url=$(dokku config:get my_app REDIS_URL)
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
assert_contains "$url" "redis://l:$password@dokku-redis-l:6379"
|
||||
assert_contains "$url" "redis://:$password@dokku-redis-l:6379"
|
||||
assert_success
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:unlink" l my_app
|
||||
}
|
||||
@@ -96,7 +96,7 @@ teardown() {
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:link" l my_app
|
||||
url=$(dokku config:get my_app REDIS_URL)
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
assert_contains "$url" "redis2://l:$password@dokku-redis-l:6379"
|
||||
assert_contains "$url" "redis2://:$password@dokku-redis-l:6379"
|
||||
assert_success
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:unlink" l my_app
|
||||
}
|
||||
@@ -113,7 +113,7 @@ teardown() {
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:link" l my_app --alias "ALIAS"
|
||||
url=$(dokku config:get my_app ALIAS_URL)
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
assert_contains "$url" "redis://l:$password@dokku-redis-l:6379"
|
||||
assert_contains "$url" "redis://:$password@dokku-redis-l:6379"
|
||||
assert_success
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:unlink" l my_app
|
||||
}
|
||||
|
||||
@@ -40,15 +40,15 @@ teardown() {
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:promote) changes REDIS_URL" {
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
dokku config:set my_app "REDIS_URL=redis://u:p@host:6379/db" "DOKKU_REDIS_BLUE_URL=redis://l:$password@dokku-redis-l:6379"
|
||||
dokku config:set my_app "REDIS_URL=redis://:p@host:6379/db" "DOKKU_REDIS_BLUE_URL=redis://:$password@dokku-redis-l:6379"
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
||||
url=$(dokku config:get my_app REDIS_URL)
|
||||
assert_equal "$url" "redis://l:$password@dokku-redis-l:6379"
|
||||
assert_equal "$url" "redis://:$password@dokku-redis-l:6379"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:promote) creates new config url when needed" {
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
dokku config:set my_app "REDIS_URL=redis://u:p@host:6379/db" "DOKKU_REDIS_BLUE_URL=redis://l:$password@dokku-redis-l:6379"
|
||||
dokku config:set my_app "REDIS_URL=redis://:p@host:6379/db" "DOKKU_REDIS_BLUE_URL=redis://:$password@dokku-redis-l:6379"
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
||||
run dokku config my_app
|
||||
assert_contains "${lines[*]}" "DOKKU_REDIS_"
|
||||
@@ -56,8 +56,8 @@ teardown() {
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:promote) uses REDIS_DATABASE_SCHEME variable" {
|
||||
password="$(sudo cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
||||
dokku config:set my_app "REDIS_DATABASE_SCHEME=redis2" "REDIS_URL=redis://u:p@host:6379" "DOKKU_REDIS_BLUE_URL=redis2://l:$password@dokku-redis-l:6379"
|
||||
dokku config:set my_app "REDIS_DATABASE_SCHEME=redis2" "REDIS_URL=redis://:p@host:6379" "DOKKU_REDIS_BLUE_URL=redis2://:$password@dokku-redis-l:6379"
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
||||
url=$(dokku config:get my_app REDIS_URL)
|
||||
assert_equal "$url" "redis2://l:$password@dokku-redis-l:6379"
|
||||
assert_equal "$url" "redis2://:$password@dokku-redis-l:6379"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user