Commit Graph

259 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
1ec71cd509 refactor: switch detected builder so first one wins
Also rename internal cnb references to pack (where possible).
2021-02-28 16:19:41 -05:00
Jose Diaz-Gonzalez
ccdbaa84f9 feat: override the exit code when verifying the app name 2021-02-28 15:18:04 -05:00
Jose Diaz-Gonzalez
7aa1334af9 feat: respect DOKKU_FAIL_EXIT_CODE value in dokku_log_fail functions 2021-02-28 15:18:04 -05:00
Jose Diaz-Gonzalez
627a6bf8a5 tests: fix issue with assert urls 2021-02-13 03:52:28 -05:00
Jose Diaz-Gonzalez
d4e832c27b tests: fix SC2145 issue 2021-02-13 02:31:24 -05:00
Jose Diaz-Gonzalez
1e915968b5 fix: correctly handle is-deployed check
Previously, checking if an app was deployed actually checked if there were any running processes. This is not only incorrect, but also fails to take into account applications that do not have running processes and are only used for one-off commands.

This fix migrates apps to the new "deployed" property which is set in core-post-deploy. The result is a slightly faster "deployed" check that is correct and allows non-scaled apps to actually work.

Closes #4398
2021-02-13 00:46:35 -05:00
Jose Diaz-Gonzalez
5614475521 refactor: reverse if statements
The shell version of IsImageHerokuishBased returns true if it is CNB for legacy reasons...
2021-02-11 06:48:38 -05:00
Jose Diaz-Gonzalez
308927adce refactor: log what stack is being used if it is modified 2021-01-23 17:40:53 -05:00
Jose Diaz-Gonzalez
9137be814c refactor: remove need for internal dokku calls
Avoid internal dokku calls will avoid potentially expensive subprocesses - in particular, user-auth will be re-invoked, which can be expensive.
2021-01-23 14:27:16 -05:00
Jose Diaz-Gonzalez
1599120c3e fix: hardcode cnb workdir to /workspace
Closes #4317
2021-01-14 08:33:26 -05:00
Jose Diaz-Gonzalez
3419f18c9f fix: correct issue where verifying an app name would bail early
Refs #4308
2021-01-09 07:40:45 -05:00
Jose Diaz-Gonzalez
b927c1b84d feat: add the pid of the dokku process to event logs 2021-01-02 05:23:12 -05:00
Jose Diaz-Gonzalez
fd162f8895 feat: add verify_app_name calls to all shell subcommands
Without this, folks could potentially run commands against invalid applications.
2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
08fdfd1e38 feat: drop internal calls to verify_app_name 2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
d7b23b84f0 fix: allow renaming old applications to new format
0.22.0 changed allowed values for app names, making it more difficult for users to fix their app names - you need to either downgrade+rename or recreate the app. The `apps:rename`  command can now rename these old applications to the new standard.

Also drop some app name verification from internal commands. Duplicate verification doesn't help much, and though it isn't excessively slow, it does prevent us from running commands against old apps that exist.

Refs #4267
2020-12-22 13:29:32 -05:00
Jose Diaz-Gonzalez
c6976499ad fix: do not delete app when the app name is invalid
Let folks call apps:destroy instead.

Refs #4129
2020-12-15 01:14:30 -05:00
Jose Diaz-Gonzalez
451abcf8f3 feat: add initial support for cloud native buildpacks
This change adds a new builder - builder-cnb - via the 'DOKKU_CNB_EXPERIMENTAL' environment variable. While support for customizing pack builds is not currently implemented and there may be other missing functionality, this initial implementation allows folks to start playing with CNB.

Future releases of Dokku will provide tighter CNB integration and eventually switch to CNB for default building, as well as allow users to better select builders needed for their applications.

All new code for CNB support should be considered experimental and subject to change as the support evolves over time.
2020-12-01 14:50:27 -05:00
Jose Diaz-Gonzalez
bde77dbf78 feat: cleanup log output for failure case
Also mark DOKKU_DISABLE_ANSI_PREFIX_REMOVAL as deprecated (it will be removed in 0.23.0 and no prefixes will be removed at that time).
2020-11-28 03:32:11 -05:00
Jose Diaz-Gonzalez
ef490f0a05 feat: retire intermediate containers after use
Rather than waiting for the next deploy, take advantage of the retire system to retire these containers immediately.

Note that since the retire process happens out of band, the containers may stick around for up to 5 minutes, after which point they will be removed.

Customization of the wait time to retire - currently 60 seconds - is up for future debate. The containers ultimately haven't been useful for debugging, so keeping them around for longer won't help in most cases, and folks can disable the dokku-retire service (or cron) if that is desired.
2020-11-22 16:57:39 -05:00
Jose Diaz-Gonzalez
696df45306 refactor: extract release_and_deploy calls to a plugin trigger
Better would be to separate the release and deploy aspects into distinct triggers - as well as have it release a specific image - but this is a good first pass.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ecc6c9e01d Merge pull request #4129 from dokku/4102-prohibit-non-dns-names
Prohibit non-dns names for apps and process types
2020-09-09 23:39:27 -04:00
Jose Diaz-Gonzalez
7e9f98b513 Merge pull request #4080 from hugopeixoto/fix/app-vhost-usage 2020-09-09 21:23:15 -04:00
Jose Diaz-Gonzalez
0f514f300e feat: prohibit non-dns names for apps and process types
This is necessary for ensuring ssl certificates can be auto-retrieved for apps, and also easing integration into schedulers that use names and process types as part of DNS records.

As well, this fixes an issue where we may potentially have invalid DNS entries when adding apps to custom networks.

Closes #4102
Closes #4114
2020-09-09 20:07:50 -04:00
Jose Diaz-Gonzalez
0351bf73b0 fix: update deprecated function name 2020-08-30 13:41:14 -04:00
Hugo Peixoto
d5b2d0d98e Stop using VHOST when listing app domains and urls 2020-07-19 16:29:35 +01:00
Roland van Laar
5f312d7347 Make make test pass on linting 2020-07-04 00:08:44 +02:00
Jose Diaz-Gonzalez
2dfb0ef3e6 fix: correct entering running containers
This functionality was broken due to a refactor of argument handling in a previous release.

In addition to the fix, all the functionality was moved to scheduler-enter, which allows scheduler plugins to implement ways of entering containers in the relevant scheduler.

Closes #3972
2020-05-12 23:06:10 -04:00
Jose Diaz-Gonzalez
46287cac0f feat: allow apps named tls
The `tls` name is no longer a reserved app name, and can be used by applications. This was previously a reserved app name due to it's use as a place for global SSL certificate files; Dokku has not supported global SSL certificates for many releases, and thus there is no need to reserve the name.
2020-05-08 23:58:06 -04:00
Jose Diaz-Gonzalez
92621a3187 Merge pull request #3966 from dokku/domains-triggers
Move domain manipulation into triggers
2020-05-06 14:21:06 -04:00
Jose Diaz-Gonzalez
61a306664f refactor: move domain manipulation into triggers
This allows other plugins to avoid understanding the underlying details of how domains might be integrated with.
2020-05-06 00:16:51 -04:00
Jose Diaz-Gonzalez
d35576302d chore: drop dokku references in logging output
This isn't super useful outside of branding. Users that rely on this information may wish to turn on event logging to trace output that way.
2020-05-05 23:39:38 -04:00
Jose Diaz-Gonzalez
38a13ecd39 feat: expose network listeners to nginx templates for all process types
This change allows users to specify a custom nginx.conf.sigil that can expose non-web process types to the outside world in addition to the web process type.

Closes #3258
2020-03-11 12:34:38 -04:00
Jose Diaz-Gonzalez
054bf26b0e chore: remove unnecessary source/import statements 2020-02-28 06:03:53 -05:00
Jose Diaz-Gonzalez
6fd4b5adb1 refactor: rewrite proxy plugin in golang 2020-02-22 06:40:24 -05:00
Jose Diaz-Gonzalez
e19b52442b fix: remove deprecated egrep calls from codebase 2020-02-17 05:59:52 -05:00
Jose Diaz-Gonzalez
d759c6c12d Merge pull request #3682 from dokku/3588-tty-default-lang
Force tty check to run with the default language
2020-02-10 05:14:24 -05:00
Jose Diaz-Gonzalez
e67b96780d refactor: unify command declaration across codebase 2020-02-10 01:40:30 -05:00
Jose Diaz-Gonzalez
1cb586b2e7 refactor: standardize command naming
This standardization makes it somewhat easier to read stacktraces as the command names are all uniform, so it will be slightly easier to scan trace output.
2020-02-09 22:41:39 -05:00
Jose Diaz-Gonzalez
385aed85b9 chore: fix log_exit call 2020-02-08 19:46:50 -05:00
Jose Diaz-Gonzalez
d39f4ce54d feat: add stderr log functions 2020-02-08 19:46:44 -05:00
Jose Diaz-Gonzalez
ca5946636f chore: move fn-in-array to common-functions
This is used by all generic `set` commands, so we should just make it globally available.
2019-12-19 02:29:22 -05:00
Michael Hobbs
972830a5f3 fix: respect DOKKU_APP_USER in is_image_herokuish_based 2019-11-19 15:07:29 -07:00
Jose Diaz-Gonzalez
35287a2d28 fix: force tty check to run with the default language
This fixes the case where the system language is non-english. See this stackexchange answer for more details: https://unix.stackexchange.com/q/87745

Closes #3588
2019-10-14 05:03:18 -04:00
Jose Diaz-Gonzalez
498bdd0491 chore: cleanup build and destroy logging output 2019-09-20 12:31:19 -04:00
Jose Diaz-Gonzalez
b4e95fe0d5 feat: add support for python3
- Use jq where possible
- Drop unused function (no usage across entire codebase nor in any github repository

Closes #3689
2019-09-19 23:33:43 -04:00
Jose Diaz-Gonzalez
798725bb54 feat: allow passing labels to one-off dokku containers
This feature is allows users to add extra label metadata to one-off containers. As this can interfere with Dokku internals if they shadow labels used by plugins, care should be taken to avoid the `com.dokku` or `org.label-schema` namespace.

Also proper name run containers so they don't get random names from docker...
2019-09-16 23:10:14 -04:00
Jose Diaz-Gonzalez
44fcea0ffa refactor: use new-style docker management commands
This PR uses the new syntax for commands introduced in Docker 1.13, making it a bit easier to understand just what a particular command is trying to do.

This also pushes the long-form syntax for docker command flags, which are also easier to understand at a glance.
2019-09-15 18:55:53 -04:00
Jose Diaz-Gonzalez
3ca6245b00 fix: use 6 X to support running under busybox
mktemp from busybox requires that all templates end with XXXXXX.
2019-08-12 18:16:16 -04:00
Jose Diaz-Gonzalez
925c6c4c28 feat: inject the dokku PID into temporary files/directories
This will allow background processes to cleanup these files if they were unable to be cleaned up during a run of the dokku binary, as is the case for files copied by the docker binary when running in docker.
2019-08-12 17:56:17 -04:00
Jose Diaz-Gonzalez
9a2c8e04a5 feat: quiet down deploys 2019-08-12 17:39:01 -04:00