Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
971446129a | ||
|
|
734c6190b0 | ||
|
|
9778d2f7de | ||
|
|
c1b7936f29 | ||
|
|
622519eb9d | ||
|
|
9725b9547d | ||
|
|
07d157e236 | ||
|
|
41388718a1 | ||
|
|
e3d30f51b3 | ||
|
|
3150f35d07 | ||
|
|
50792d0b2c | ||
|
|
2e612a4f0d | ||
|
|
fea00997b5 |
@@ -18,7 +18,7 @@ main() {
|
|||||||
# built in the Dockerfile
|
# built in the Dockerfile
|
||||||
PLUGIN_NAME="$(source /tmp/.env && echo "$PLUGIN_NAME")"
|
PLUGIN_NAME="$(source /tmp/.env && echo "$PLUGIN_NAME")"
|
||||||
PLUGIN_VARIABLE="$(source /tmp/.env && echo "$PLUGIN_VARIABLE")"
|
PLUGIN_VARIABLE="$(source /tmp/.env && echo "$PLUGIN_VARIABLE")"
|
||||||
echo "export ${PLUGIN_VARIABLE}_HOST_ROOT=${SERVICE_HOST_ROOT}/$PLUGIN_NAME" > /etc/default/dokku
|
echo "export ${PLUGIN_VARIABLE}_HOST_ROOT=${SERVICE_HOST_ROOT}/$PLUGIN_NAME" >/etc/default/dokku
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
FROM mysql:8.0.29
|
FROM mysql:8.0.31
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ auth_service_filter() {
|
|||||||
|
|
||||||
# this plugin trigger exists in the core `20_events` plugin
|
# this plugin trigger exists in the core `20_events` plugin
|
||||||
if [[ "$user_auth_count" == 1 ]] && [[ -f "$PLUGIN_PATH"/enabled/20_events/user-auth-service ]]; then
|
if [[ "$user_auth_count" == 1 ]] && [[ -f "$PLUGIN_PATH"/enabled/20_events/user-auth-service ]]; then
|
||||||
# echo out all the services since there is no valid plugin trigger
|
# echo out all the services since there is no valid plugin trigger
|
||||||
for SERVICE in "${SERVICES[@]}"; do
|
for SERVICE in "${SERVICES[@]}"; do
|
||||||
[[ -n "$SERVICE" ]] && echo "$SERVICE"
|
[[ -n "$SERVICE" ]] && echo "$SERVICE"
|
||||||
done
|
done
|
||||||
@@ -48,27 +48,36 @@ auth_service_filter() {
|
|||||||
export SSH_USER=${SSH_USER:=$USER}
|
export SSH_USER=${SSH_USER:=$USER}
|
||||||
export SSH_NAME=${NAME:="default"}
|
export SSH_NAME=${NAME:="default"}
|
||||||
# the output of this trigger should be all the services a user has access to
|
# the output of this trigger should be all the services a user has access to
|
||||||
plugn trigger user-auth-service "$SSH_USER" "$SSH_NAME" "${SERVICES[@]}"
|
plugn trigger user-auth-service "$SSH_USER" "$SSH_NAME" "$PLUGIN_COMMAND_PREFIX" "${SERVICES[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
fn-services-list() {
|
fn-services-list() {
|
||||||
declare desc="prints a filtered list of all local apps"
|
declare desc="prints a filtered list of all local apps"
|
||||||
declare FILTER="$1"
|
declare FILTER="$1"
|
||||||
local detected_services filtered_services services
|
local services=()
|
||||||
|
|
||||||
|
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
||||||
|
for f in *; do
|
||||||
|
[[ -d $f ]] || continue
|
||||||
|
services+=("$f")
|
||||||
|
done
|
||||||
|
popd &>/dev/null || pushd "/tmp" >/dev/null
|
||||||
|
|
||||||
|
if [[ "${#services[@]}" -eq 0 ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
local detected_services=("$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)")
|
|
||||||
if [[ "$FILTER" == "false" ]]; then
|
if [[ "$FILTER" == "false" ]]; then
|
||||||
for service in "${detected_services[@]}"; do
|
for service in "${services[@]}"; do
|
||||||
if [[ -n "$service" ]]; then
|
if [[ -n "$service" ]]; then
|
||||||
echo "$service"
|
echo "$service"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
filtered_services="$(auth_service_filter "${detected_services[@]}" 2>/dev/null)"
|
for service in $(auth_service_filter "${services[@]}" 2>/dev/null); do
|
||||||
for service in "$filtered_services"; do
|
if [[ -n "$service" ]]; then
|
||||||
if [[ -n "$service" ]]; then
|
|
||||||
echo "$service"
|
echo "$service"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -94,7 +103,7 @@ get_database_name() {
|
|||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
|
|
||||||
if [[ ! -f "$SERVICE_ROOT/DATABASE_NAME" ]]; then
|
if [[ ! -f "$SERVICE_ROOT/DATABASE_NAME" ]]; then
|
||||||
echo "$SERVICE" > "$SERVICE_ROOT/DATABASE_NAME"
|
echo "$SERVICE" >"$SERVICE_ROOT/DATABASE_NAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat "$SERVICE_ROOT/DATABASE_NAME"
|
cat "$SERVICE_ROOT/DATABASE_NAME"
|
||||||
@@ -237,8 +246,7 @@ service_app_links() {
|
|||||||
declare APP="$1"
|
declare APP="$1"
|
||||||
local LINKED_APP SERVICE SERVICE_ROOT
|
local LINKED_APP SERVICE SERVICE_ROOT
|
||||||
|
|
||||||
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
for SERVICE in $(fn-services-list true); do
|
||||||
for SERVICE in $(fn-services-list); do
|
|
||||||
[[ -n "$SERVICE" ]] || continue
|
[[ -n "$SERVICE" ]] || continue
|
||||||
|
|
||||||
SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
@@ -309,7 +317,6 @@ service_commit_config() {
|
|||||||
local CONFIG_VARIABLE="${PLUGIN_VARIABLE}_CONFIG_OPTIONS"
|
local CONFIG_VARIABLE="${PLUGIN_VARIABLE}_CONFIG_OPTIONS"
|
||||||
local ENV_VARIABLE="${PLUGIN_VARIABLE}_CUSTOM_ENV"
|
local ENV_VARIABLE="${PLUGIN_VARIABLE}_CUSTOM_ENV"
|
||||||
|
|
||||||
|
|
||||||
custom_env="${!ENV_VARIABLE}"
|
custom_env="${!ENV_VARIABLE}"
|
||||||
[[ -n "$SERVICE_CUSTOM_ENV" ]] && custom_env="$SERVICE_CUSTOM_ENV"
|
[[ -n "$SERVICE_CUSTOM_ENV" ]] && custom_env="$SERVICE_CUSTOM_ENV"
|
||||||
if [[ -n $custom_env ]]; then
|
if [[ -n $custom_env ]]; then
|
||||||
@@ -637,7 +644,7 @@ service_links() {
|
|||||||
service_list() {
|
service_list() {
|
||||||
declare desc="list all services and their status"
|
declare desc="list all services and their status"
|
||||||
|
|
||||||
services=("$(fn-services-list true)")
|
mapfile -t services < <(fn-services-list true)
|
||||||
if [[ "${#services[@]}" -eq 0 ]] || [[ -z "$services" ]]; then
|
if [[ "${#services[@]}" -eq 0 ]] || [[ -z "$services" ]]; then
|
||||||
dokku_log_warn "There are no $PLUGIN_SERVICE services"
|
dokku_log_warn "There are no $PLUGIN_SERVICE services"
|
||||||
return
|
return
|
||||||
@@ -645,7 +652,7 @@ service_list() {
|
|||||||
|
|
||||||
dokku_log_info2_quiet "$PLUGIN_SERVICE services"
|
dokku_log_info2_quiet "$PLUGIN_SERVICE services"
|
||||||
for service in "${services[@]}"; do
|
for service in "${services[@]}"; do
|
||||||
echo "$service"
|
echo "${service}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -981,5 +988,5 @@ write_database_name() {
|
|||||||
|
|
||||||
# some datastores do not like special characters in database names
|
# some datastores do not like special characters in database names
|
||||||
# so we need to normalize them out
|
# so we need to normalize them out
|
||||||
echo "$SERVICE" | tr .- _ > "$SERVICE_ROOT/DATABASE_NAME"
|
echo "$SERVICE" | tr .- _ >"$SERVICE_ROOT/DATABASE_NAME"
|
||||||
}
|
}
|
||||||
|
|||||||
8
config
8
config
@@ -27,9 +27,9 @@ if [[ -n $DOKKU_API_VERSION ]]; then
|
|||||||
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PLUGIN_BUSYBOX_IMAGE="busybox:1.31.1-uclibc"
|
export PLUGIN_BUSYBOX_IMAGE="busybox:1.34.1-uclibc"
|
||||||
export PLUGIN_AMBASSADOR_IMAGE="dokku/ambassador:0.3.3"
|
export PLUGIN_AMBASSADOR_IMAGE="dokku/ambassador:0.5.0"
|
||||||
export PLUGIN_S3BACKUP_IMAGE="dokku/s3backup:0.10.3"
|
export PLUGIN_S3BACKUP_IMAGE="dokku/s3backup:0.14.0"
|
||||||
export PLUGIN_WAIT_IMAGE="dokku/wait:0.4.3"
|
export PLUGIN_WAIT_IMAGE="dokku/wait:0.6.0"
|
||||||
|
|
||||||
export MYSQL_CONFIG_OPTIONS=${MYSQL_CONFIG_OPTIONS:=""}
|
export MYSQL_CONFIG_OPTIONS=${MYSQL_CONFIG_OPTIONS:=""}
|
||||||
|
|||||||
4
install
4
install
@@ -50,8 +50,8 @@ EOL
|
|||||||
if [[ ! -f "$SERVICE_ROOT/IMAGE" ]] || [[ ! -f "$SERVICE_ROOT/IMAGE_VERSION" ]]; then
|
if [[ ! -f "$SERVICE_ROOT/IMAGE" ]] || [[ ! -f "$SERVICE_ROOT/IMAGE_VERSION" ]]; then
|
||||||
local image="$(service_version "$SERVICE")"
|
local image="$(service_version "$SERVICE")"
|
||||||
if [[ "$image" == *":"* ]]; then
|
if [[ "$image" == *":"* ]]; then
|
||||||
echo "${image%:*}" > "$SERVICE_ROOT/IMAGE"
|
echo "${image%:*}" >"$SERVICE_ROOT/IMAGE"
|
||||||
echo "${image##*:}" > "$SERVICE_ROOT/IMAGE_VERSION"
|
echo "${image##*:}" >"$SERVICE_ROOT/IMAGE_VERSION"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[plugin]
|
[plugin]
|
||||||
description = "dokku mysql service plugin"
|
description = "dokku mysql service plugin"
|
||||||
version = "1.21.0"
|
version = "1.24.0"
|
||||||
[plugin.config]
|
[plugin.config]
|
||||||
|
|||||||
20
service-list
Executable file
20
service-list
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
||||||
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common-functions"
|
||||||
|
set -eo pipefail
|
||||||
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
|
plugin-service-list() {
|
||||||
|
declare desc="allows listing all services for use by other dokku plugins"
|
||||||
|
declare SERVICE_TYPE="$1"
|
||||||
|
|
||||||
|
if [[ -n "$SERVICE_TYPE" ]] && [[ "$SERVICE_TYPE" != "$PLUGIN_COMMAND_PREFIX" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
for service in $(fn-services-list false); do
|
||||||
|
echo "$PLUGIN_COMMAND_PREFIX:$service"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin-service-list "$@"
|
||||||
@@ -19,8 +19,8 @@ service-enter-cmd() {
|
|||||||
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
|
|
||||||
dokku_log_info1_quiet "Filesystem changes may not persist after container restarts"
|
|
||||||
verify_service_name "$SERVICE"
|
verify_service_name "$SERVICE"
|
||||||
|
dokku_log_info1_quiet "Filesystem changes may not persist after container restarts"
|
||||||
service_enter "$SERVICE" "${@:2}"
|
service_enter "$SERVICE" "${@:2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ teardown() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:hook:pre-delete) removes app from links file when destroying app" {
|
@test "($PLUGIN_COMMAND_PREFIX:hook:pre-delete) removes app from links file when destroying app" {
|
||||||
[[ -n $(< "$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
[[ -n $(<"$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||||
dokku --force apps:destroy my-app
|
dokku --force apps:destroy my-app
|
||||||
[[ -z $(< "$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
[[ -z $(<"$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ teardown() {
|
|||||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service already exists" {
|
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service already exists" {
|
||||||
dokku "$PLUGIN_COMMAND_PREFIX:create" new_service
|
dokku "$PLUGIN_COMMAND_PREFIX:create" new_service
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
||||||
assert_contains "${lines[*]}" "service new_service already exists"
|
assert_contains "${lines[*]}" "Invalid service name new_service"
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|
||||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" new_service
|
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" new_service
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ teardown() {
|
|||||||
if [[ -n "$GITHUB_WORKFLOW" ]]; then
|
if [[ -n "$GITHUB_WORKFLOW" ]]; then
|
||||||
skip "No tty is available on Github Actions"
|
skip "No tty is available on Github Actions"
|
||||||
fi
|
fi
|
||||||
export SSH_TTY=`tty`
|
export SSH_TTY=$(tty)
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ teardown() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:import) success" {
|
@test "($PLUGIN_COMMAND_PREFIX:import) success" {
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:import" l < "/tmp/fake.sql"
|
run dokku "$PLUGIN_COMMAND_PREFIX:import" l <"/tmp/fake.sql"
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ teardown() {
|
|||||||
dokku --force apps:destroy my-app
|
dokku --force apps:destroy my-app
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:link) error when there are no arguments" {
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when there are no arguments" {
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:link"
|
run dokku "$PLUGIN_COMMAND_PREFIX:link"
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
|
|||||||
@@ -23,4 +23,3 @@ teardown() {
|
|||||||
run dokku "$PLUGIN_COMMAND_PREFIX:restart" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:restart" l
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,4 +23,3 @@ teardown() {
|
|||||||
run dokku "$PLUGIN_COMMAND_PREFIX:start" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:start" l
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,4 +23,3 @@ teardown() {
|
|||||||
run dokku "$PLUGIN_COMMAND_PREFIX:stop" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:stop" l
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,4 +25,3 @@ teardown() {
|
|||||||
[[ ! -f $PLUGIN_DATA_ROOT/PORT ]]
|
[[ ! -f $PLUGIN_DATA_ROOT/PORT ]]
|
||||||
assert_contains "${lines[*]}" "Service l unexposed"
|
assert_contains "${lines[*]}" "Service l unexposed"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user