Donal McBreen
03cac7ae3d
Skip existing containers on accessory boot
...
When booting an accessory, check for the container first and skip boot
if it exists. This allows us to rerun `kamal setup` on hosts with
accessories without raising an error.
Fixes: https://github.com/basecamp/kamal/issues/488
2025-04-18 10:53:26 +01:00
Donal McBreen
399f1526af
Handle role filter when booting accessories
...
Filter the accessory hosts via KAMAL.accessory_hosts, which correctly
handles role and host filters.
Fixes: https://github.com/basecamp/kamal/issues/935
2025-04-18 10:20:54 +01:00
Donal McBreen
84fa30e376
Merge pull request #1501 from basecamp/accessory-only
...
Allow accessory only configurations
2025-04-18 09:58:38 +01:00
Donal McBreen
95e3edc32b
Merge pull request #1503 from basecamp/disallow-options-restart
...
Ensure that the restart policy is unless-stopped
2025-04-17 15:16:54 +01:00
Donal McBreen
ac719dc271
Merge pull request #1502 from basecamp/remove-next-container-special-case
...
Rely on semver for version checks
2025-04-17 15:16:00 +01:00
Donal McBreen
91f01ece1b
Ensure that the restart policy is unless-stopped
...
No other restart policy makes sense to don't let it be changed.
Fixes: https://github.com/basecamp/kamal/issues/749
2025-04-17 13:36:26 +01:00
Donal McBreen
521425c386
Rely on semver for version checks
2025-04-17 13:18:46 +01:00
Donal McBreen
55ec6ca0a6
Allow accessory only configurations
...
If there are accessories defined in the configuration, we'll not require
servers to be defined as well.
This allows for accessory-only configurations which allows you to run
external images with kamal-proxy for zero-downtime deployments.
We don't manage image cleanup for accessories though so the user will
need to deal with that themselves.
2025-04-17 11:40:03 +01:00
Donal McBreen
2a8d561094
Merge pull request #1497 from basecamp/maintenance-mode
...
Maintenance mode
2025-04-17 09:25:58 +01:00
Donal McBreen
354530f3b8
Maintenance mode
...
Adds support for maintenance mode to Kamal.
There are two new commands:
- `kamal app maintenance` - puts the app in maintenance mode
- `kamal app live` - puts the app back in live mode
In maintenance mode, the kamal proxy will respond to requests with a
503 status code. It will use an error page built into kamal proxy.
You can use your own error page by setting `error_pages_path` in the
configuration. This will copy any 4xx.html or 5xx.html files from that
page to a volume mounted into the proxy container.
2025-04-17 09:11:21 +01:00
Donal McBreen
26b6c072f3
Add a writable proxy volume
...
Maps in and external /home/kamal-proxy/.app-config volume that we can
use to map files to the proxy.
Can be used to store custom maintenance pages or SSL certificates.
2025-04-17 09:08:36 +01:00
Donal McBreen
3c1fbb41cb
Merge pull request #1499 from basecamp/custom-proxy-image
...
Custom proxy image
2025-04-17 09:05:27 +01:00
Donal McBreen
8ceeda6ac9
Extract proxy_default_boot_options
2025-04-17 08:47:01 +01:00
Donal McBreen
dd9048e09c
Allow version 'next'
2025-04-17 08:20:25 +01:00
Donal McBreen
bd81632439
Set DEBUG for integration test output
2025-04-16 16:54:46 +01:00
Donal McBreen
85320dbc51
Custom proxy image registry, repo and version
...
Use the --registry, --repository and --image_version options of
`kamal proxy boot_config set` to change the kamal-proxy image used.
We'll still insist that the image version is at least as high as the
minimum.
2025-04-16 16:54:46 +01:00
Donal McBreen
c9a755bde6
Extract echo_boot_config/docker_run methods
2025-04-16 14:33:15 +01:00
Donal McBreen
c3a9a3c1eb
Merge pull request #1494 from basecamp/integration-test-registry-3
...
Use registry:3 image for the integration tests
2025-04-15 11:36:01 +01:00
Donal McBreen
215fd2faed
Use registry:3 image for the integration tests
...
v3 was recently released which broke the integration tests. Update them
to use the correct config file.
Set the major version to prevent this from happening when v4 is
released.
2025-04-15 10:55:36 +01:00
Donal McBreen
ec28caa83f
Merge pull request #1476 from aliismayilov/aws-secrets-json
...
Enforce JSON output format for aws secrets manager command
2025-04-15 10:05:31 +01:00
Donal McBreen
a71ea08fb6
Merge pull request #1464 from basecamp/dependabot/bundler/bundler-bee64d1bf2
...
Bump nokogiri from 1.18.3 to 1.18.4 in the bundler group across 1 directory
2025-04-15 09:46:50 +01:00
Ali Ismayilov
0b28a54518
Enforce JSON output format for aws command
2025-04-02 18:18:03 +02:00
Donal McBreen
8fe2f92164
Merge pull request #1466 from basecamp/env-secrets-tidy
...
Tidy up the env secrets handling
2025-03-24 09:38:22 +00:00
Donal McBreen
fb95b38e73
Tidy up the env secrets handling
...
The secrets accessor was only used in the tests so remove it.
Skip the memoization, it makes things slightly harder to follow and
it's not needed.
2025-03-24 09:21:27 +00:00
Donal McBreen
3aef9303c3
Merge pull request #1465 from visini/feature/aliased-secrets-within-tags
...
Add ability to alias secrets for tags
2025-03-24 09:15:27 +00:00
Camillo Visini
c1d8ce7f70
Add ability to alias secrets for tags
...
Aliasing for secrets was introduced in #1439 , but only supported
"top-level" secrets. This adds support for aliasing/mapping secrets
for tags.
2025-03-22 12:11:48 +01:00
dependabot[bot]
eeb5c01fc5
Bump nokogiri in the bundler group across 1 directory
...
Bumps the bundler group with 1 update in the / directory: [nokogiri](https://github.com/sparklemotion/nokogiri ).
Updates `nokogiri` from 1.18.3 to 1.18.4
- [Release notes](https://github.com/sparklemotion/nokogiri/releases )
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.18.3...v1.18.4 )
---
updated-dependencies:
- dependency-name: nokogiri
dependency-type: indirect
dependency-group: bundler
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-03-21 23:59:58 +00:00
Donal McBreen
58e23f9167
Merge pull request #1459 from basecamp/xargs-proxy-options
...
Use xargs to handle spaces in proxy options
2025-03-19 09:19:12 +00:00
Donal McBreen
7fa27faaca
Use xargs to handle spaces in proxy options
...
We cat the options file, append the proxy image and then pass it
to xargs to ensure it handles spaces correctly.
Works better than using eval which can handle spaces but tries
to evaluate things like backticks.
Fixes: https://github.com/basecamp/kamal/issues/1448
2025-03-18 08:46:31 +00:00
Donal McBreen
a02826284d
Merge pull request #1454 from basecamp/proxy-disable-redirect
...
Add `ssl_redirect` option
2025-03-18 08:46:00 +00:00
Donal McBreen
4d78afaf1b
Merge pull request #1452 from basecamp/dependabot/bundler/bundler-9e375bb185
...
Bump the bundler group across 1 directory with 2 updates
2025-03-17 14:44:59 +00:00
Kevin McConnell
d4ab010b01
Add ssl_redirect proxy option
2025-03-12 11:11:14 +00:00
Kevin McConnell
3c9a3f2264
Require proxy version v0.8.7
2025-03-12 10:50:45 +00:00
dependabot[bot]
8098ed1fd1
Bump the bundler group across 1 directory with 2 updates
...
Bumps the bundler group with 2 updates in the / directory: [rack](https://github.com/rack/rack ) and [uri](https://github.com/ruby/uri ).
Updates `rack` from 3.1.10 to 3.1.12
- [Release notes](https://github.com/rack/rack/releases )
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rack/rack/compare/v3.1.10...v3.1.12 )
Updates `uri` from 1.0.2 to 1.0.3
- [Release notes](https://github.com/ruby/uri/releases )
- [Commits](https://github.com/ruby/uri/compare/v1.0.2...v1.0.3 )
---
updated-dependencies:
- dependency-name: rack
dependency-type: indirect
dependency-group: bundler
- dependency-name: uri
dependency-type: indirect
dependency-group: bundler
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-03-10 22:29:34 +00:00
Donal McBreen
0d034ec5dc
Merge pull request #1439 from matthewbjones/feature/aliased-secrets
...
Adds the ability to alias/map secrets
2025-03-10 10:06:45 +00:00
Donal McBreen
598bd65b78
Merge pull request #1449 from basecamp/kamal-proxy-drain-timeout-fix
...
Update to kamal-proxy 0.8.6
2025-03-10 10:06:14 +00:00
Donal McBreen
36f4e90a76
Update to kamal-proxy 0.8.6
...
Includes a fix for locking the proxy while draining
2025-03-07 11:33:17 +00:00
Matthew Jones
973fa1a7ff
Adds the ability to alias/map secrets
2025-03-04 07:23:26 -07:00
Donal McBreen
f87bcf5bc6
Merge pull request #1413 from basecamp/dependabot/bundler/bundler-fd41ac4d62
...
Bump rack from 3.1.8 to 3.1.10 in the bundler group across 1 directory
2025-03-03 14:49:37 +00:00
Donal McBreen
62dfa45ee6
Bump version for 2.5.3
v2.5.3
2025-02-27 10:27:27 +00:00
Donal McBreen
c13ee578df
Merge pull request #1420 from smartygus/docker-build-fix
...
Fix Docker Build under Ruby 3.4
2025-02-27 09:42:57 +00:00
Michael Smart
f01238112e
Update nokogiri to 1.18.3
...
See: https://github.com/sparklemotion/nokogiri/releases/tag/v1.18.0
- required for ruby 3.4 compatibility
- add more platforms to lockfile to support
docker build process, due to changes
in the nokogiri native gem setup where
-musl and -gnu linux platforms are no longer
interchangeable
- bundler >= 2.5.6 required according to Nokogiri release
notes, so updated to current latest version (2.6.5)
2025-02-21 13:23:08 +01:00
dependabot[bot]
32ab72089a
Bump rack from 3.1.8 to 3.1.10 in the bundler group across 1 directory
...
Bumps the bundler group with 1 update in the / directory: [rack](https://github.com/rack/rack ).
Updates `rack` from 3.1.8 to 3.1.10
- [Release notes](https://github.com/rack/rack/releases )
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rack/rack/compare/v3.1.8...v3.1.10 )
---
updated-dependencies:
- dependency-name: rack
dependency-type: indirect
dependency-group: bundler
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-12 19:26:36 +00:00
Donal McBreen
6f29d4e78b
Bump version for 2.5.2
v2.5.2
2025-02-07 15:27:30 +00:00
Donal McBreen
9d2dda0d77
Merge pull request #1402 from basecamp/fix-docker-build
...
Fix the docker build
2025-02-06 14:59:14 +00:00
Donal McBreen
b130bc0321
Fix the docker build
...
Somewhere along the way the docker build broke, it now needs yaml-dev
to be installed. Maybe the underlying image changed?
Update to 3.4-alpine while we are here.
2025-02-06 14:45:37 +00:00
Donal McBreen
28be0300b9
Bump version for 2.5.1
v2.5.1
2025-02-06 13:54:46 +00:00
Donal McBreen
3c2163ab78
Merge pull request #1401 from basecamp/avoid-docker-check-with-skipping-local
...
Only check for docker when logging in locally
2025-02-06 11:35:49 +00:00
Donal McBreen
fdf7e6927a
Only check for docker when logging in locally
...
If we are skipping a local registry login, we don't need docker
installed locally.
Fixes: https://github.com/basecamp/kamal/issues/1400
2025-02-06 11:12:56 +00:00
Donal McBreen
45197e46f6
Bump version for 2.5.0
v2.5.0
2025-02-04 11:19:44 +00:00