Commit Graph

2133 Commits

Author SHA1 Message Date
Donal McBreen
ad21c7e984 Don't deploy on proxy reboot
It shouldn't be necessary to deploy the app on proxy reboot. When there
are multiple apps using the same proxy we'll only deploy the one we
run the reboot command from, so we don't always reboot anyway.
2025-05-15 14:45:19 +01:00
Donal McBreen
87965281a3 Default the proxy config is it is nil
Instead of checking for the proxy key, we'll set the config to {} if it
is nil in the Kamal::Configuration::Proxy initializer.

This is a bit cleaner, and maybe it will help with
https://github.com/basecamp/kamal/issues/1555 if somehow
@raw_config.key?(:proxy) is false but @raw_config.proxy is not nil.
2025-05-15 14:33:05 +01:00
Donal McBreen
dca96eafaa Merge pull request #1557 from basecamp/sort-primary-role-app-hosts-first
Ensure primary_role app hosts are sorted first
2025-05-15 10:16:21 +01:00
Donal McBreen
7b1439c3c6 Update per-role proxy docs
Clarify that proxy: true/proxy: false only belong in the role config,
not at the root level.
2025-05-15 10:14:52 +01:00
Donal McBreen
b9e5ce7ca7 Ensure primary_role app hosts are sorted first
When booting non-primary role hosts we will always wait for a primary
role host to boor first.

So when booting in groups, if there are no primary role hosts in the
first batch, then booting will stall.

Sort primary role app_hosts first to avoid this.

Fixes: https://github.com/basecamp/kamal/issues/1553
2025-05-15 09:51:40 +01:00
Donal McBreen
f62c1a50c4 Merge pull request #1554 from basecamp/pre-connect-hook-before-remote-builds
Run pre-connect hooks before building
2025-05-14 16:05:53 +01:00
Donal McBreen
2c1d6ed891 Run pre-connect hooks before building
They might be needed for remote builds or the pre-build hook.
2025-05-14 15:55:54 +01:00
Andrew Kelley
1331e7b9c7 Added path_prefix and strip_path_prefix 2025-05-13 19:31:54 -04:00
Nick Hammond
c5e5f5d7cc Merge branch 'basecamp:main' into buildpacks 2025-05-13 09:34:13 -07:00
Keita Urashima
6a573c19a6 Fix Bitwarden Secrets Manager authentication checks 2025-05-13 20:33:46 +09:00
Donal McBreen
031f55ecf7 Bump version for 2.6.0 v2.6.0 2025-05-13 09:50:52 +01:00
Donal McBreen
d98d6a3475 Merge pull request #1550 from krzysztoff1/add-singular-role
Add a singular role
2025-05-12 15:20:55 +01:00
Krzysztof Duda
78c9d610cf Add a singular role 2025-05-12 11:07:10 +02:00
Donal McBreen
4187ee2397 Merge pull request #1547 from basecamp/pin-accessories-to-tags
Pin accessories to tags
2025-05-12 08:48:52 +01:00
Nick Hammond
0ab0649d07 Merge branch 'basecamp:main' into buildpacks 2025-05-10 12:54:29 -07:00
David Heinemeier Hansson
7bfb2ed9f2 Actually test the fixture for singular 2025-05-09 21:50:07 +02:00
David Heinemeier Hansson
299c741c1b More natural api when you are just applying accessory to a single tag 2025-05-09 21:47:26 +02:00
David Heinemeier Hansson
fb82d04aaf Use #filter_map instead of #collect + #compact 2025-05-09 21:30:33 +02:00
David Heinemeier Hansson
9d5a534ef8 Refactored for clarity and style 2025-05-09 21:26:41 +02:00
David Heinemeier Hansson
5ad000a08e Unnecessary parenthesis 2025-05-09 21:16:31 +02:00
David Heinemeier Hansson
1ca2b4d394 Test with multiple host matches across roles 2025-05-09 21:15:44 +02:00
David Heinemeier Hansson
9aac51bbd0 Extract hosts for accessories by tags 2025-05-09 21:11:28 +02:00
David Heinemeier Hansson
83a5636e27 Pin accessories to tags 2025-05-09 18:14:47 +02:00
Donal McBreen
2d43f788c4 Merge pull request #1546 from basecamp/min-proxy-version-0.9.0
Set minimum proxy version to 0.9.0
2025-05-09 09:13:23 +01:00
Donal McBreen
c351c2d2de Set minimum proxy version to 0.9.0 2025-05-09 08:40:41 +01:00
Donal McBreen
0d36fc4bd0 Merge pull request #1536 from lukef/bump-ed25519
Bumping ed25519 dependency to fix compile errors
2025-05-09 08:17:44 +01:00
Peter Rullmann
d62c35e63e Add UT for new interactive behaviour
also adding helpers to simulate STDIN being tty or file
2025-05-08 20:24:50 +02:00
dependabot[bot]
9a14fbb048 Bump rack-session in the bundler group across 1 directory
Bumps the bundler group with 1 update in the / directory: [rack-session](https://github.com/rack/rack-session).


Updates `rack-session` from 2.0.0 to 2.1.1
- [Release notes](https://github.com/rack/rack-session/releases)
- [Changelog](https://github.com/rack/rack-session/blob/v2.1.1/releases.md)
- [Commits](https://github.com/rack/rack-session/compare/v2.0.0...v2.1.1)

---
updated-dependencies:
- dependency-name: rack-session
  dependency-version: 2.1.1
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 14:47:52 +00:00
Peter Rullmann
092ca425d7 Allow piping into kamal exec #1485 2025-05-08 12:41:44 +02:00
Nick Hammond
68404e2673 Merge branch 'basecamp:main' into buildpacks 2025-05-08 02:34:40 -07:00
polarctos
681439f122 Install docker-cli only for leaner image
As only the docker client is executed in the image and not the docker daemon, only the docker-cli package is needed
2025-05-07 13:43:27 +02:00
Donal McBreen
317f00281a Merge pull request #1504 from basecamp/proxy-metrics-port
Allow kamal-proxy run command options to be set
2025-05-06 13:15:47 +01:00
Donal McBreen
226e7091db Add run_command_file to proxy boot 2025-05-06 12:14:58 +01:00
Donal McBreen
e32ea2e276 Expose the metrics port 2025-05-06 12:12:37 +01:00
Donal McBreen
1ea5d0bd86 Allow kamal-proxy run command options to be set
Allow --metrics_port and --debug options to be set via the boot config.

--metrics_port support will come in kamal-proxy v0.8.8, so this option
doesn't work right now.

This will be updated before the next Kamal release though and we can add
integration tests for the metrics at that point.
2025-05-06 12:11:48 +01:00
Michael G. Noll
a1c6ac41d0 Fix: correctly parse git remote origin urls for calling Octokit 2025-05-06 09:24:09 +02:00
Luke Freeman
f5f1bab8bf bumping ed25519 dependency to fix compile errors 2025-05-05 08:29:50 -07:00
acidtib
9219b87630 remove chown for TLS certificates in proxy container 2025-04-29 19:57:41 -06:00
acidtib
1f847299c0 improve custom SSL certificate documentation 2025-04-28 13:33:03 -06:00
Donal McBreen
419a1171fa Merge pull request #1528 from rahearn/update-hooks-documentation
Update name of KAMAL_ROLES in sample hooks files
2025-04-28 08:12:25 +01:00
acidtib
a525d45b4d allow defining certificates directly within ssl hash instead of at the proxy root level 2025-04-28 00:34:24 -06:00
Ryan Ahearn
2f7feaf59d Update name of KAMAL_ROLES in sample hooks files 2025-04-26 12:17:59 -04:00
acidtib
045410368d add support for custom certificates 2025-04-26 01:03:15 -06:00
Donal McBreen
52c6191803 Merge pull request #1526 from basecamp/proxy-boot-config
Extract Kamal::Configuration::Proxy::Boot
2025-04-24 08:44:55 +01:00
Donal McBreen
b1c5c5092f Fix polynomial regexp issue 2025-04-24 08:17:02 +01:00
Donal McBreen
128294672d Extract Kamal::Configuration::Proxy::Boot
This is for boot time configuration for the kamal proxy. Config in here
doesn't not belong in Kamal::Configuration::Proxy which is for deploy
time configuration for the app itself.

Kamal apps don't contain boot time config, because multiple apps can
share a proxy and the config could conflict.
2025-04-23 16:16:12 +01:00
Donal McBreen
eb915f830e Merge pull request #1522 from basecamp/create-directories-before-mapping
Create the .kamal/proxy/apps-config directory
2025-04-22 15:29:36 +01:00
Donal McBreen
d26b3f1768 Create the .kamal/proxy/apps-config directory
Manually create it to avoid ownership issues when docker creates it
for you.
2025-04-22 15:18:54 +01:00
Donal McBreen
8789a1b10c Merge pull request #1346 from i7an/handle-parentheses
Handle parentheses in variables in commands
2025-04-22 12:02:32 +01:00
Donal McBreen
54b2c79f08 Merge pull request #1520 from basecamp/inherit-lock
Inherit locks
2025-04-22 09:31:35 +01:00