Commit Graph

482 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
9306011f70 fix: do not retag images unnecessarily
This change minimizes the work needed to be done when tagging images. It edits the image manifest directly only when necessary, allowing restarts of an app to avoid having an extra layer.

This also additionally allows to deploy images with ONBUILD directives without running the ONBUILD directives.

Lastly, users building docker images that run Dokku will need to use a new sudoer wrapper for the `docker-image-labeler` binary to work correctly. A reference version has been placed in the `docker` skeleton directory.

Closes #3931
Refs #4226
2021-01-24 02:09:53 -05:00
Jose Diaz-Gonzalez
c1ff3d4652 tests: add a test for application renames
Also ensure the plugin:trigger calls are issued under the dokku user
2021-01-23 20:10:16 -05:00
Jose Diaz-Gonzalez
dfc98ecc0f fix: allow underscores in vector schemes
Also unify tests for global and non-global logs:set calls
2021-01-23 19:00:33 -05:00
Jose Diaz-Gonzalez
5cac43fe55 refactor: fix computation test and remove the app-specific hsts value
The default for an app is empty, meaning it will fallback to the global value (which defaults to true). This will allow users to properly override the global value, regardless of what it is.
2021-01-23 15:49:40 -05:00
Aubrey Hewes
8cc92680c5 feat(nginx-proxy): allow disabling hsts globally and explicitly enabling it per app
https://github.com/dokku/dokku/pull/3843
2021-01-23 15:09:51 -05:00
Jose Diaz-Gonzalez
ccbe2c719a fix: correct test check 2021-01-23 13:02:37 -05:00
Jose Diaz-Gonzalez
afe1e8b33c refactor: use log:set for logs and add global support 2021-01-23 12:45:05 -05:00
Jose Diaz-Gonzalez
277e9691e1 feat: add ability to set client max body size via nginx:set
This simplifies increasing upload size by making it a property, and is backwards compatible with installations that have set that in a custom file.
2021-01-21 01:41:34 -05:00
Jose Diaz-Gonzalez
8efac2923b tests: split tests up 2021-01-21 00:22:49 -05:00
Jose Diaz-Gonzalez
0bd7613da4 tests: add test for creation of crontab file 2021-01-20 15:45:48 -05:00
Jose Diaz-Gonzalez
f7ef14d737 feat: add initial scheduled task implementation
This functionality enables users to manage a global crontab for the Dokku user that contains all scheduled tasks across all apps. Alternative schedulers can implement cron tasks as desired.
2021-01-20 14:49:48 -05:00
Jose Diaz-Gonzalez
e00e498e50 chore: remove whitespace 2021-01-20 14:49:48 -05:00
Jose Diaz-Gonzalez
2deb575961 Merge pull request #4322 from dokku/github-actions
Switch to Github Actions for CI
2021-01-20 14:26:18 -05:00
Jose Diaz-Gonzalez
a7465f9d81 tests: use github actions instead of circleci for test running 2021-01-20 14:00:07 -05:00
Jose Diaz-Gonzalez
9d55e37687 Merge pull request #4297 from dokku/git-sync
Add support for cloning/syncing from a remote repository
2021-01-20 13:36:15 -05:00
Bjorn Post
a6062d4ab4 feat: make feature more generic, also add support for setting -port and -proto values via nginx:set, refs #4339 2021-01-19 21:40:47 +01:00
Bjorn Post
ca56fa1b8b fix: revert doc deletion, revert test_helper change, refs #4339 2021-01-18 22:00:13 +01:00
Bjorn Post
7c818eda47 test: add tests for trust-x-forwarded-for, refs #4339 2021-01-18 21:59:36 +01:00
Bjorn Post
2cdfa1cae1 feat: trust proxy_add_x_forwarded_for iso resetting to remote_addr, refs #4339 2021-01-18 20:07:55 +01:00
Jose Diaz-Gonzalez
e39a5663bf fix: add error message for invalid flags
Closes #4193
2021-01-18 00:29:25 -05:00
Jose Diaz-Gonzalez
89cc896c27 fix: add error checking to plugin:update
Closes #4313
2021-01-17 22:23:04 -05:00
Jose Diaz-Gonzalez
3f25514e1a refactor: combine both clone and sync commands
Using a single command will allow users to not have to worry about the workflow they use to setup or update a given app.
2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
e3d0f693a7 tests: add tests for fetch 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
97750f8b28 chore: minor updates to tests 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
89e92749a6 tests: handle non-existent app 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
e877a996be tests: split out tests and use a slimer smoke-test-app to speed up builds 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
6bfbe0bb66 fix: create app for build test 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
d728237697 chore: split tests 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
279a706f78 feat: add tests for git:clone 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
1a66102e30 feat: add tests for allow-host and public-key commands 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
8c0380beec tests: add missing run statement 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
530066875d tests: switch to using uuidgen for unique app names
/dev/urandom doesn't work on Github Actions. Prior to moving to github actions, lets ensure tests work on CircleCI as well.
2021-01-17 15:58:59 -05:00
nisseknudsen
a3ab4d1b68 Mounting new named volume after unmounting host directory 2021-01-15 22:40:52 +01:00
Jose Diaz-Gonzalez
a57680fbbf feat: test vector commands 2021-01-07 01:54:04 -05:00
Jose Diaz-Gonzalez
f16a211b48 feat: add more tests for the logs plugin 2021-01-07 01:34:19 -05:00
Jose Diaz-Gonzalez
2eae6c25af tests: add test for logs:help 2021-01-07 00:14:43 -05:00
Jose Diaz-Gonzalez
07e7988cdf feat: add sigil templating to CHECKS files
This enables general templating capabilities, in addition to environment variable access.

Closes #3974.
2021-01-05 00:16:55 -05:00
Jose Diaz-Gonzalez
21ff68f624 fix: correct unit test 2020-12-27 15:20:32 -05:00
Jose Diaz-Gonzalez
59a81ad3be fix: cleanup apps and containers before each test
- remove all nginx configurations since they may be faulty
- move cleanup commands to helper functions
- fix a few shellcheck violations
2020-12-22 13:29:32 -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
365356eb5f fix: output is expected twice 2020-12-22 11:52:02 -05:00
Jose Diaz-Gonzalez
044cc4a618 fix: rename duplicate test 2020-12-22 01:30:16 -05:00
Jose Diaz-Gonzalez
2e4c886ab2 fix: correct app arg parsing and new test 2020-12-21 13:36:04 -05:00
Jose Diaz-Gonzalez
8240790381 fix: correct argument handling when setting the --app flag
When setting the `--app` flag, there was a special case for the config plugin. This plugin used to take the `--no-restart` flag as the first argument - and still did until this change - resulting in an invalid call to the plugin subcommands. What is worse is that this functionality carried over to all other plugins as they were rewritten in golang, and thus the issue spread without us knowing.

The fix is to support GNU flag parsing rules, which Golang does not do by default (Because Of Reasons™). Switching to `github.com/spf13/pflag` fixes this issue, and also allows positional arguments to be placed wherever, even in the middle of flags.

Closes #4255
2020-12-20 22:06:33 -05:00
Jose Diaz-Gonzalez
18492ac83c feat: add json format support to ssh-keys:list 2020-12-20 04:15:53 -05:00
Jose Diaz-Gonzalez
13dd8aa224 feat: add ability to remove an ssh key by fingerprint
- add tests for ssh-keys:remove
- upgrade sshcommand
2020-12-20 04:15:53 -05:00
Chris W Jones
112ee88fe9 Allow symbolic links for certificate and key files
This corrects an issue where if a symbolic link was given to the
`certs:add` command, an error would be thrown even though the file was
valid.

Issue: #4251
2020-12-17 15:35:52 -05:00
Jose Diaz-Gonzalez
36215828f1 feat: always initialize git repository
This fixes issues where alternative tools that don't trigger the init via sshcommand - such as git-http-backend - are not able to setup applications correctly.

Note that those apps could always manually trigger git:initialize if desired, but if the app already exists, then this should already _just work_ without that extra initialization.
2020-12-15 01:42:10 -05:00
Jose Diaz-Gonzalez
f2a3cfc0b4 tests: add unit test for label skipping 2020-12-12 16:33:39 -05:00
Jose Diaz-Gonzalez
26b95854d4 fix: properly parse releease command when there is an entrypoint
Closes #4232
2020-12-11 11:44:13 -05:00