Merge branch 'dokku:master' into master

This commit is contained in:
BK
2022-05-15 14:18:18 -07:00
committed by GitHub
16 changed files with 60 additions and 17 deletions

View File

@@ -74,6 +74,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO # TODO
``` ```
### `app-list`
- Description: Lists all apps in available to the currently logged in user. Optionally disables filtering by user if the first argument is `false`.
- Invoked by:
- Arguments: `$FILTER`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `app-json-process-deploy-parallelism` ### `app-json-process-deploy-parallelism`
- Description: Decides the parallelism to use when deploying a given process type. The default is 1 process entry at a type. - Description: Decides the parallelism to use when deploying a given process type. The default is 1 process entry at a type.

6
plugins/20_events/app-list Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
[[ ! "$DOKKU_EVENTS" ]] || dokku_log_plugn_trigger_call "$(basename "$0")" "$@"

View File

@@ -9,7 +9,7 @@ migrate_checks_vars_0_5_0() {
local GLOBAL_SKIP_ALL_CHECKS=$(config_get --global DOKKU_SKIP_ALL_CHECKS || true) local GLOBAL_SKIP_ALL_CHECKS=$(config_get --global DOKKU_SKIP_ALL_CHECKS || true)
local GLOBAL_SKIP_DEFAULT_CHECKS=$(config_get --global DOKKU_SKIP_DEFAULT_CHECKS || true) local GLOBAL_SKIP_DEFAULT_CHECKS=$(config_get --global DOKKU_SKIP_DEFAULT_CHECKS || true)
for app in $(dokku_apps); do for app in $(dokku_apps "false"); do
local APP_SKIP_ALL_CHECKS=$(config_get "$app" DOKKU_SKIP_ALL_CHECKS || true) local APP_SKIP_ALL_CHECKS=$(config_get "$app" DOKKU_SKIP_ALL_CHECKS || true)
local APP_SKIP_DEFAULT_CHECKS=$(config_get "$app" DOKKU_SKIP_DEFAULT_CHECKS || true) local APP_SKIP_DEFAULT_CHECKS=$(config_get "$app" DOKKU_SKIP_DEFAULT_CHECKS || true)
@@ -35,7 +35,7 @@ migrate_checks_vars_0_5_0() {
migrate_checks_vars_0_6_0() { migrate_checks_vars_0_6_0() {
declare desc="migrates CHECKS config variables from 0.5.x to support fully-disabled zero-downtime checks" declare desc="migrates CHECKS config variables from 0.5.x to support fully-disabled zero-downtime checks"
for app in $(dokku_apps); do for app in $(dokku_apps "false"); do
local APP_DOKKU_CHECKS_ENABLED=$(config_get "$app" DOKKU_CHECKS_ENABLED || true) local APP_DOKKU_CHECKS_ENABLED=$(config_get "$app" DOKKU_CHECKS_ENABLED || true)
if [[ $APP_DOKKU_CHECKS_ENABLED ]]; then if [[ $APP_DOKKU_CHECKS_ENABLED ]]; then
dokku_log_info1 "Migrating zero downtime env variables to 0.6.x. The following variables will be migrated" dokku_log_info1 "Migrating zero downtime env variables to 0.6.x. The following variables will be migrated"

View File

@@ -245,6 +245,16 @@ func GetRunningImageTag(appName string, imageTag string) (string, error) {
// DokkuApps returns a list of all local apps // DokkuApps returns a list of all local apps
func DokkuApps() ([]string, error) { func DokkuApps() ([]string, error) {
apps, err := UnfilteredDokkuApps()
if err != nil {
return apps, err
}
return filterApps(apps)
}
// UnfilteredDokkuApps returns an unfiltered list of all local apps
func UnfilteredDokkuApps() ([]string, error) {
apps := []string{} apps := []string{}
dokkuRoot := MustGetEnv("DOKKU_ROOT") dokkuRoot := MustGetEnv("DOKKU_ROOT")
files, err := ioutil.ReadDir(dokkuRoot) files, err := ioutil.ReadDir(dokkuRoot)
@@ -267,7 +277,7 @@ func DokkuApps() ([]string, error) {
return apps, fmt.Errorf("You haven't deployed any applications yet") return apps, fmt.Errorf("You haven't deployed any applications yet")
} }
return filterApps(apps) return apps, nil
} }
// GetAppImageName returns image identifier for a given app, tag tuple. validate if tag is presented // GetAppImageName returns image identifier for a given app, tag tuple. validate if tag is presented

View File

@@ -17,7 +17,8 @@ has_tty() {
dokku_apps() { dokku_apps() {
declare desc="prints list of all local apps" declare desc="prints list of all local apps"
local INSTALLED_APPS="$(plugn trigger app-list)" declare FILTER="$1"
local INSTALLED_APPS="$(plugn trigger app-list "$FILTER")"
if [[ -z "$INSTALLED_APPS" ]]; then if [[ -z "$INSTALLED_APPS" ]]; then
dokku_log_fail "You haven't deployed any applications yet" dokku_log_fail "You haven't deployed any applications yet"
fi fi

View File

@@ -18,7 +18,12 @@ func main() {
var err error var err error
switch trigger { switch trigger {
case "app-list": case "app-list":
err = common.TriggerAppList() filtered := flag.Arg(0)
if filtered == "" {
filtered = "true"
}
filter := common.ToBool(filtered)
err = common.TriggerAppList(filter)
case "core-post-deploy": case "core-post-deploy":
appName := flag.Arg(0) appName := flag.Arg(0)
err = common.TriggerCorePostDeploy(appName) err = common.TriggerCorePostDeploy(appName)

View File

@@ -6,8 +6,14 @@ import (
) )
// TriggerAppList outputs each app name to stdout on a newline // TriggerAppList outputs each app name to stdout on a newline
func TriggerAppList() error { func TriggerAppList(filtered bool) error {
apps, _ := DokkuApps() var apps []string
if filtered {
apps, _ = DokkuApps()
} else {
apps, _ = UnfilteredDokkuApps()
}
for _, app := range apps { for _, app := range apps {
Log(app) Log(app)
} }
@@ -30,7 +36,7 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the common plugin: %s", err.Error()) return fmt.Errorf("Unable to install the common plugin: %s", err.Error())
} }
apps, err := DokkuApps() apps, err := UnfilteredDokkuApps()
if err != nil { if err != nil {
return nil return nil
} }

View File

@@ -99,7 +99,7 @@ func deleteCrontab() error {
} }
func writeCronEntries() error { func writeCronEntries() error {
apps, _ := common.DokkuApps() apps, _ := common.UnfilteredDokkuApps()
commands := []templateCommand{} commands := []templateCommand{}
for _, appName := range apps { for _, appName := range apps {
scheduler := common.GetAppScheduler(appName) scheduler := common.GetAppScheduler(appName)

View File

@@ -8,7 +8,7 @@ trigger-domains-install() {
declare trigger="install" declare trigger="install"
shopt -s nullglob shopt -s nullglob
for app in $(dokku_apps); do for app in $(dokku_apps "false"); do
domains_setup "$app" domains_setup "$app"
done done
} }

View File

@@ -26,7 +26,7 @@ migrate_git_vars_0_12_0() {
DOKKU_QUIET_OUTPUT=1 config_unset --global DOKKU_DEPLOY_BRANCH || true DOKKU_QUIET_OUTPUT=1 config_unset --global DOKKU_DEPLOY_BRANCH || true
fi fi
for app in $(dokku_apps); do for app in $(dokku_apps "false"); do
DOKKU_DEPLOY_BRANCH=$(config_get "$app" DOKKU_DEPLOY_BRANCH || true) DOKKU_DEPLOY_BRANCH=$(config_get "$app" DOKKU_DEPLOY_BRANCH || true)
if [[ -n "$DOKKU_DEPLOY_BRANCH" ]]; then if [[ -n "$DOKKU_DEPLOY_BRANCH" ]]; then
fn-plugin-property-write "git" "$app" "deploy-branch" "$DOKKU_DEPLOY_BRANCH" fn-plugin-property-write "git" "$app" "deploy-branch" "$DOKKU_DEPLOY_BRANCH"

View File

@@ -157,7 +157,7 @@ func sinkValueToConfig(appName string, sinkValue string) (vectorSink, error) {
} }
func writeVectorConfig() error { func writeVectorConfig() error {
apps, _ := common.DokkuApps() apps, _ := common.UnfilteredDokkuApps()
data := vectorConfig{ data := vectorConfig{
Sources: map[string]vectorSource{}, Sources: map[string]vectorSource{},
Sinks: map[string]vectorSink{}, Sinks: map[string]vectorSink{},

View File

@@ -33,7 +33,7 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the network plugin: %s", err.Error()) return fmt.Errorf("Unable to install the network plugin: %s", err.Error())
} }
apps, err := common.DokkuApps() apps, err := common.UnfilteredDokkuApps()
if err != nil { if err != nil {
return nil return nil
} }

View File

@@ -109,7 +109,7 @@ validate_nginx() {
verify_app_name "$APP" verify_app_name "$APP"
nginx_vhosts_validate_single_func "$APP" "$FLAG" nginx_vhosts_validate_single_func "$APP" "$FLAG"
else else
for app in $(dokku_apps); do for app in $(dokku_apps "false"); do
nginx_vhosts_validate_single_func "$app" "$FLAG" nginx_vhosts_validate_single_func "$app" "$FLAG"
done done
fi fi

View File

@@ -95,7 +95,7 @@ trigger-nginx-vhosts-install() {
[[ -f /etc/logrotate.d/nginx ]] && sed -i -e 's/invoke-rc.d/service/g' /etc/logrotate.d/nginx [[ -f /etc/logrotate.d/nginx ]] && sed -i -e 's/invoke-rc.d/service/g' /etc/logrotate.d/nginx
# @TODO: Remove this after a few versions # @TODO: Remove this after a few versions
for app in $(dokku_apps); do for app in $(dokku_apps "false"); do
nginx_port="$(config_get "$app" DOKKU_NGINX_PORT || true)" nginx_port="$(config_get "$app" DOKKU_NGINX_PORT || true)"
nginx_ssl_port="$(config_get "$app" DOKKU_NGINX_SSL_PORT || true)" nginx_ssl_port="$(config_get "$app" DOKKU_NGINX_SSL_PORT || true)"
if [[ -n "$nginx_port" ]] || [[ -n "$nginx_ssl_port" ]]; then if [[ -n "$nginx_port" ]] || [[ -n "$nginx_ssl_port" ]]; then

View File

@@ -74,7 +74,7 @@ func TriggerInstall() error {
return err return err
} }
apps, err := common.DokkuApps() apps, err := common.UnfilteredDokkuApps()
if err != nil { if err != nil {
return nil return nil
} }

View File

@@ -31,7 +31,7 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the scheduler plugin: %s", err.Error()) return fmt.Errorf("Unable to install the scheduler plugin: %s", err.Error())
} }
apps, err := common.DokkuApps() apps, err := common.UnfilteredDokkuApps()
if err != nil { if err != nil {
return nil return nil
} }