Commit Graph

691 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
1467aaea74 tests: fix issue where networks weren't being torn down during testing
Due to how the variable was assigned, there were cases where the network was specified twice with a := as a delimiter. This would result in no network being removed.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
5717e71755 tests: use an alternative curl request to ensure requests go to the local nginx
The alternative is to rely on DNS and /etc/hosts rules, which isn't quite great because it requires modifying the system.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
4bc3de5540 feat: write auto-detected port mappings during a deploy
During an app build, we now auto-detect ports based on the source code. This is usually http:80:5000, with Dockerfile-based deploys having their ports extracted from the docker image or Dockerfile. Additionally, we add an https:443 mapping for any detected http:80 mapping when there is an ssl certificate, and all http port mappings are transformed to https mappings for Dockerfile-based deploys.

While the ports aren't currently consumed, a future refactor will provide the ability to fallback to the new detected ports when there is no user-specified port mapping.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
f842869c3d refactor: move the proxy port map from config to property
Also remove all direct references to DOKKU_PROXY_PORT_MAP from outside of ports.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
977b4567f8 refactor: simplify ports-configure codebase
This makes it slightly easier to reason about, at the cost of being slower.

Also ignore failure to remove image as this was flaky.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
94f4d1325c feat: export environment variables during dockerfile builds for use with value-less --build-arg flags
Exposing all config values will allow users to skip setting environment variables twice - once as a docker option and once as an env var. Docker will automatically pull the value from the environment if none is set for the --build-arg flag.

Users will still be required to specify each desired env var via --build-arg as otherwise docker builds will complain about unused build arguments.

Re-implements #5978 (lost in a rebase)
Closes #5903
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
11d9ed6724 tests: use ports:report to get the list of port mappings 2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
515994c8d3 feat: add the ability to execute a cron task on the fly
Closes #4904
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
798a413096 feat: re-add apps and config cli aliases
This better follows Heroku's output and is more useful to users. The subcommands will be treated as the primary, documented versions, while the aliases are there for convenience.

Closes #5362
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
820883e60c feat: add json format output to cron:list command
This makes it easier to parse output in a machine-readable format - such as when interacting with cron tasks via jq for writing tests.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
eb6f85f083 feat: skip scaled processes that are missing in the Procfile
This allows folks to deploy apps that don't have a web process without needing to scale that process down before/after the first deploy. Note that the formations key in the app.json or a manual scale of other processes will be necessary to start anything non-web.

Closes #5700
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
64f0f2674d refactor: move all port management code to standalone ports plugin
This change makes interacting with port mappings more clear - folks might previously set the port mapping to the proxy type or vice-versa.

The existing proxy:ports* commands still exist but will show a deprecation warning for a single minor release.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
ef25a9b0d8 refactor: standardize on shorthand for redirecting all output to /dev/null
The shorthand is more prevalent in this codebase, and is something that bash supports, so we should just use the same thing everywhere.

Note that we do not use shorthand redirect in Makefile as shell parsing is a bit different in Make and the shorthand redirect doesn't seem to be properly supported, causing CI errors.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
dac566e75e refactor: move all shellcheck disable definitions to .shellcheckrc file
This makes standard use of shellcheck work without needing to provide extra configuration anywhere.

Also remove use of inline 'shellcheck disable' calls that are already defined in the .shellcheckrc and don't need to be set inline.
2023-08-05 10:58:57 -04:00
Jose Diaz-Gonzalez
60b343470b feat: add support for specifying multiple networks on a given app
Closes #5314
2023-08-05 10:58:46 -04:00
Jose Diaz-Gonzalez
40b20e0c08 refactor: move herokuish app cache from the filesystem into a docker volume
This simplifies cache referencing and also paves the way for removing more from the app git directory.

Refs #1558
2023-08-05 10:35:54 -04:00
Alexey Kharchenko
687c90844d Add test for dokku traefik:show-config 2023-07-17 18:14:47 +05:30
Jose Diaz-Gonzalez
02a89d01f9 fix: respect dashboard disabling properties in traefik
Closes #5855
2023-05-28 15:01:01 -04:00
Jose Diaz-Gonzalez
9f3879b225 chore: update the image being used for the test 2023-05-28 05:38:02 -04:00
Jose Diaz-Gonzalez
8faa338bd4 fix: ensure users can push from an image-deploy repository and respect deploy-branch
Previously, we created this weird bare repo that didn't do set all the normal git config. This change switches to cloning the local temp directory, fixing the `receive.denyCurrentBranch` property that blocked pushing to this weird bare repo after calling git:from-image or git:from-archive.

Additionally, since we now use a git clone, we set the default branch correctly, ensuring git pushes later on that branch work as expected (and not on master if it was customized prior to app creation).

Closes #5601
Closes #5662
2023-05-28 03:10:45 -04:00
Jose Diaz-Gonzalez
3322287009 tests: update linuxserver image used in tests to one that is compatible with arm64 2023-05-25 02:02:21 -04:00
josegonzalez
2cd028e577 tests: add test for default _ domain usage 2023-05-13 13:57:27 -04:00
Jose Diaz-Gonzalez
03da8462f7 fix: support pack-based images that do not have a Procfile
If no Procfile is set, we'll leave the entrypoint alone, resulting in the default launcher for the web process (or whatever pack decided was default) executing.

Closes #5753
2023-04-27 20:15:27 -04:00
Jose Diaz-Gonzalez
0eccfe8ba4 tests: add test ensuring the build-dir property is supported 2023-02-14 03:08:02 -05:00
Jose Diaz-Gonzalez
f84a650849 chore: remove deprecated nginx commands 2023-02-12 13:20:45 -05:00
Jose Diaz-Gonzalez
4ae64b23c6 fix: update test to get the correct label for testing if ssl redirects are working properly 2023-02-11 20:55:20 -05:00
Jose Diaz-Gonzalez
cbd3c43176 feat: add letsencrypt support to haproxy plugin 2023-02-11 06:22:02 -05:00
Jose Diaz-Gonzalez
35c6d61a04 feat: test all compose-based proxy implementations with a dockerfile app
This allows the tests to run on arm systems.
2023-02-11 06:09:50 -05:00
Jose Diaz-Gonzalez
c14154e5f7 feat: add a test for log levels 2023-02-11 06:09:50 -05:00
Jose Diaz-Gonzalez
212389980e feat: add initial tests for haproxy plugin 2023-02-11 06:09:50 -05:00
josegonzalez
a2baf37cd9 Merge pull request #5604 from dokku/faster-nginx-rebuild
Trigger nginx proxy rebuild early to avoid downtime if deploying large numbers of processes
2023-01-23 16:13:31 -05:00
josegonzalez
9d9b880f59 fix: correct counts 2023-01-23 14:36:37 -05:00
josegonzalez
69c1fe8027 fix: update counts 2023-01-23 12:22:09 -05:00
Jose Diaz-Gonzalez
594adf5366 tests: update count to 2 to handle the fact that now the nginx config is built twice 2023-01-21 16:44:21 -05:00
Jose Diaz-Gonzalez
4e98e17c4f fix: use correct image.tar name 2023-01-21 16:19:52 -05:00
Jose Diaz-Gonzalez
7cb1a20dc6 fix: correct image references and also use a non-existent image in each case
This ensures we are actually testing the image load portion vs just doing a reference to an existing image.
2023-01-21 14:40:49 -05:00
Jose Diaz-Gonzalez
d333c16347 feat: add ability to deploy images generated via docker save with git:load-image
Closes #4559
2023-01-21 14:05:31 -05:00
josegonzalez
83f0b47323 fix: search for correct string 2023-01-20 23:48:02 -05:00
Jose Diaz-Gonzalez
21947837c3 fix: use correct path within the ssl tarballs
Also add a command to help automate the generation of the certificates in the future.
2023-01-16 01:50:52 -05:00
Jose Diaz-Gonzalez
fab0890997 fix: use updated ssl crt/key pairs
The commands to generate these in the future are as follows:

openssl x509 -text -in server.crt

openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout server.key -out server.crt -subj '/CN=dokku.me' -days 3650

openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout server.key -out server.crt -subj '/CN=*.dokku.me' -days 3650

openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout server.key -out server.crt -subj '/CN=test.dokku.me' -days 3650 -addext 'subjectAltName = DNS:www.test.dokku.me, DNS:www.test.app.dokku.me'
2023-01-16 01:39:59 -05:00
Jose Diaz-Gonzalez
e103d9b11b chore: suppress warnings about default branch 2023-01-16 01:39:59 -05:00
Jose Diaz-Gonzalez
5dcc1cb13c refactor: remove support for DOKKU_SCALE file
It has been replaced by the 'formations' key within the 'app.json' file format.
2023-01-15 23:53:03 -05:00
josegonzalez
fa34f89901 Merge pull request #5560 from dokku/drop-spdy
Drop SPDY support from nginx plugin
2023-01-15 11:43:32 -05:00
Jose Diaz-Gonzalez
a4136f4719 fix: correct tests and handle a few edge cases in remote command usage 2023-01-14 19:49:14 -05:00
Jose Diaz-Gonzalez
9d380e5654 fix: correct test naming 2023-01-14 17:53:33 -05:00
Jose Diaz-Gonzalez
0653a2b0bf feat: add support for customizing the remote in use for all commands sent via the official client
Closes #5564
2023-01-14 17:53:33 -05:00
Jose Diaz-Gonzalez
eeb2e69044 fix: only create the test app if it doesn't exist for tls tests 2023-01-11 00:55:47 -05:00
Jose Diaz-Gonzalez
93279b884a tests: create the app before extracting tls data during tests 2023-01-10 02:09:33 -05:00
Jose Diaz-Gonzalez
05c6cecc14 tests: use run to invoke functions in tests 2023-01-10 02:09:22 -05:00
Jose Diaz-Gonzalez
ca1ab188fe chore: drop SPDY
This hasn't been supported by browsers in quite a while and nginx will set a warning as of Ubuntu 20.04 when the header is referenced.
2022-12-29 01:59:54 -05:00