Matthew Kent
073f745677
Test for both undefined roles and missing traefik.
2023-11-11 12:57:52 -08:00
Matthew Kent
6898e8789e
Further test the override.
2023-11-10 17:17:16 -08:00
Matthew Kent
d0ac6507e7
Add test coverage.
2023-11-10 16:49:37 -08:00
Donal McBreen
97ba6b746b
Merge pull request #564 from basecamp/return-502-if-no-container
...
Return a 502 when container is down
2023-11-08 14:58:22 +00:00
Donal McBreen
9e25d8a012
Priority 2 for the main app
2023-11-08 14:12:45 +00:00
Leon
2d86d4f7cc
Add SSH port to run_over_ssh
2023-11-03 22:32:37 +01:00
Leon
792aa1dbdf
Add SSH port option
2023-11-03 22:32:37 +01:00
Donal McBreen
24a2f51641
Return a 502 when container is down
...
If the app container is down or not responding then traefik will return
a 404 response code. This is not ideal as it suggests a client rather
than a server problem.
To fix this, we'll define a catch all route that always returns a 502.
This is not ideal as this route would take priority over a shorter route
with priorty 1.
TODO: up the priority of the app route.
2023-11-03 14:20:52 +00:00
Donal McBreen
b732b2dd55
Merge pull request #547 from nickhammond/envify/trim-lines
...
Enable trim mode with ERB
2023-10-30 08:57:55 +00:00
Donal McBreen
e9269d2ee8
Merge pull request #501 from rience/optional-envify-push
...
Optionally Skip Push for "envify"
2023-10-30 08:30:21 +00:00
Donal McBreen
d2214b43b7
Merge pull request #499 from basecamp/env-only-needed-for-push
...
Remove the env check
2023-10-30 08:22:56 +00:00
Donal McBreen
370481921e
Merge pull request #498 from basecamp/app-exec-env-file
...
App exec with env file
2023-10-30 08:22:35 +00:00
Donal McBreen
aa23f26330
Merge pull request #479 from npezza93/main
...
Loosen superuser check to match docker-installs script check
2023-10-30 08:21:30 +00:00
Nick Hammond
6c36c82153
Enable trim mode with ERB
2023-10-24 17:09:05 -07:00
Krzysztof Adamski
8ca04032a1
Optionally Skip Push for "envify"
2023-10-23 14:49:39 +02:00
Donal McBreen
f6662c7a8f
Remove the env check
...
The env check is not needded anymore as all the commands rely on the
env files having already been created remotely.
The only place the env is needed is when running `kamal env push` and
that will still raise an apropriate error.
2023-09-25 15:23:01 +01:00
Donal McBreen
645f5ab72d
App exec with env file
...
When calling `kamal app exec` for new non interactive containers, run
the command per role on each server and include the role config
including the environment.
Fixes: https://github.com/basecamp/kamal/issues/492
2023-09-25 15:07:05 +01:00
Clint Miller
8dca65f48f
Fix commands/app tests
2023-09-20 08:12:27 -05:00
Nick Pezza
1a2796a7d0
Loosen superuser check to match docker-installs script check
2023-09-18 20:32:59 -04:00
Donal McBreen
0861730e0e
Run interactive commands with the correct host
...
Fixes https://github.com/basecamp/kamal/issues/430
2023-09-18 12:00:36 +01:00
dhh
e95a9b4fa2
Fix tests
2023-09-16 11:35:29 -07:00
dhh
e5886a1a8e
Merge branch 'main' into introduce-git-gateway
...
* main:
Healthcheck polling is a CLI concern
2023-09-16 11:31:48 -07:00
David Heinemeier Hansson
ec8192b160
Merge pull request #472 from basecamp/move-healthcheck-poller-to-cli
...
Healthcheck polling is a CLI concern
2023-09-16 11:31:28 -07:00
dhh
2da03a220d
Merge branch 'main' into introduce-git-gateway
...
* main:
No longer used
Fix env validation
Fix tests
Fix test
Extract Kamal::EnvFile
2023-09-16 11:31:18 -07:00
dhh
cfbfb37e23
Extract Kamal::Git as gateway for all git usage
2023-09-16 11:30:29 -07:00
dhh
59ac59d351
Healthcheck polling is a CLI concern
...
Also, it has no instance variables, so let's just have it be a module.
2023-09-16 11:19:38 -07:00
dhh
62cdf31ae2
Fix tests
2023-09-16 11:01:16 -07:00
dhh
0dcebe7d34
Fix test
2023-09-16 10:59:41 -07:00
dhh
873be0b76b
Extract Kamal::EnvFile
...
Cleaning up the Utils junk drawer.
2023-09-16 10:55:41 -07:00
dhh
3ae855ef28
Explain method better
2023-09-16 09:53:03 -07:00
dhh
880b8b267a
Fix test
2023-09-16 09:38:30 -07:00
Donal McBreen
564765862b
Add hidden file check to integration tests
2023-09-15 08:37:41 +01:00
Donal McBreen
3c12d1799c
Copy all files into asset volume
...
Adding -T to the copy command ensures that the files are copied at the
same level into the target directory whether it exists or not.
That allows us to drop the `/*` which was not picking up hidden files.
Fixes: https://github.com/basecamp/kamal/issues/465
2023-09-15 08:07:48 +01:00
Donal McBreen
60835d13a8
Merge pull request #444 from rience/custom-healthcheck-log-lines-count
...
Configurable Number of Lines in Healthcheck Log Output
2023-09-13 08:57:00 +01:00
Krzysztof Adamski
892cf0e66b
Configurable Log Lines Number in Healthcheck Log Output
2023-09-12 21:06:36 +02:00
Krzysztof Adamski
8ddc484ce6
Configurable Lines Number in Healthcheck Log Output
2023-09-12 21:04:18 +02:00
Donal McBreen
fb0aeec27e
Escape the newline in the inspect query
2023-09-12 19:10:39 +01:00
Donal McBreen
df2b76aee1
Escape newlines in docker env files
...
When env variables were passed via `-e` newlines were escaped. This
updates the env file to do the same thing.
2023-09-12 14:57:19 +01:00
Donal McBreen
70a3c7195a
Merge pull request #458 from basecamp/avoid-env-empty-file-warning
...
Fix empty file warning when uploading env files
2023-09-12 12:05:31 +01:00
Donal McBreen
c651de177f
Fix empty file warning when uploading env files
2023-09-12 11:57:28 +01:00
Donal McBreen
7b42daa9fb
Merge pull request #457 from basecamp/remove-dangling-image-filter
...
Remove the `dangling=true` filter
2023-09-12 11:21:50 +01:00
Donal McBreen
2c5ab054db
Remove the dangling=true filter
...
This has been removed from Docker Engine 24 and `docker image prune`
only deletes dangling images anyway.
Fixes https://github.com/basecamp/kamal/issues/410
2023-09-12 11:09:26 +01:00
Donal McBreen
66291a2aea
Validate the build image
...
Kamal needs images to have the service label so it can track them for
pruning. Images built by Kamal will have the label, but externally built
ones may not.
Without it images will build up over time. The worst case is an outage
if all the hosts disks fill up at the same time.
We'll add a check for the label and halt if it is not there.
2023-09-12 10:45:01 +01:00
Donal McBreen
6a3b0249fe
Connect to remote host before creating builder
...
Connecting to the remote host will make any SSH configuration issues
obvious and add the host to known hosts if that is how SSHKit is
configured.
2023-09-12 09:12:57 +01:00
Donal McBreen
ade90bc051
Use LTS version of Ubuntu for integration tests
2023-09-12 08:59:54 +01:00
Donal McBreen
daa53f5831
Merge pull request #451 from basecamp/require-destinations
...
Add a require_destination setting
2023-09-12 08:26:36 +01:00
Donal McBreen
50a4f83db6
Merge pull request #450 from basecamp/stop-stale-container-when-deploying
...
Stop stale containers when deploying
2023-09-12 08:26:16 +01:00
Donal McBreen
00cb7d99d8
Merge pull request #449 from basecamp/asset-path
...
Asset paths
2023-09-12 08:26:07 +01:00
Donal McBreen
26dcd75423
Add a require_destination setting
...
If you always want to use a destination, and have a base deploy.yml file
that doesn't specify any hosts, then if you forget to specific the
destination you will get a cryptic error.
Add a "require_destination" setting you can use to avoid this.
2023-09-11 16:57:11 +01:00
Donal McBreen
afb9b0bbe2
Stop stale containers when deploying
...
An interrupted deployment can leave older containers lying around. To
ensure they are cleaned up subsequently, stop stale containers during
deployments instead of just reporting them.
2023-09-11 14:49:06 +01:00