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
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
Luke Freeman
f5f1bab8bf
bumping ed25519 dependency to fix compile errors
2025-05-05 08:29:50 -07: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
Ryan Ahearn
2f7feaf59d
Update name of KAMAL_ROLES in sample hooks files
2025-04-26 12:17:59 -04: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
Donal McBreen
d464707c32
Merge pull request #1518 from basecamp/dependabot/bundler/bundler-8bcbabbe88
...
Bump nokogiri from 1.18.4 to 1.18.8 in the bundler group across 1 directory
2025-04-22 09:01:50 +01:00
Donal McBreen
f5ff612846
Merge pull request #1519 from basecamp/escape-audit-line
...
Escape the audit line
2025-04-22 09:00:49 +01:00
Donal McBreen
04568dea2f
Inherit locks
...
We'll set the KAMAL_LOCK environment when calling run hooks. If set to
true we have the lock and the hook will not need to acquire it again if
it runs kamal commands.
Fixes: https://github.com/basecamp/kamal/issues/1517
2025-04-22 09:00:22 +01:00
Donal McBreen
63f65d60c6
Escape the audit line
...
Makes it compatible with zsh.
2025-04-22 08:26:51 +01:00
dependabot[bot]
5145289625
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.4 to 1.18.8
- [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.4...v1.18.8 )
---
updated-dependencies:
- dependency-name: nokogiri
dependency-version: 1.18.8
dependency-type: indirect
dependency-group: bundler
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-04-22 04:53:20 +00:00
Donal McBreen
aa57462c1b
Merge pull request #1470 from pdl/chore/initialise-gh-status-checks-inside-begin
...
chore: put github status checks inside block
2025-04-21 16:27:08 +01:00
Donal McBreen
d0c9af20d8
Merge pull request #1405 from mike-weiner/fix-1399-fail-exec-without-cmd
...
Raise an error to the user if the exec command parsed is blank
2025-04-21 16:16:06 +01:00
Donal McBreen
f898fb8cb7
Merge pull request #1515 from basecamp/build-green-output
...
Redirect buildx build output to stdout
2025-04-21 10:48:22 +01:00
Donal McBreen
400fbcea1f
Merge pull request #1514 from basecamp/hook-kamal-roles
...
Add KAMAL_ROLES to hook env variables
2025-04-21 10:22:57 +01:00
Donal McBreen
93d1bd1369
Redirect buildx build output to stdout
...
Docker buildx build outputs the build logs to stderr by default.
SSHKit displays stderr logs in red, which can suggest that an error has
occurred.
Redirect the output to stdout, so it shows in green. If there is an
error, the output will be repeated in red anyway.
Fixes: https://github.com/basecamp/kamal/issues/1356
2025-04-21 10:19:36 +01:00
Donal McBreen
f768fab481
Add KAMAL_ROLES to hook env variables
...
And add an integration test to check the env vars are set.
2025-04-21 09:45:23 +01:00
Donal McBreen
02c3b947c3
Merge pull request #1511 from basecamp/docker-login-before-exec
...
Docker login if exec might pull image
2025-04-18 15:44:22 +01:00
Donal McBreen
7a63cacb09
Docker login if exec might pull image
...
The `app exec` and `accessory exec` commands will run `docker run` if
they are not set to reuse existing containers. This might need to pull
an image so let's make sure we are logged in before running the command.
Fixes: https://github.com/basecamp/kamal/issues/1163
2025-04-18 14:47:59 +01:00
Donal McBreen
cd9d01b016
Merge pull request #1510 from basecamp/pre-connect-exec-commands
...
Run pre-connect hooks before ssh commands
2025-04-18 14:46:56 +01:00
Donal McBreen
48f5eeff09
Merge pull request #1509 from basecamp/disallow-proxy-boolean-at-root
...
Don't allow booleans for root proxy config
2025-04-18 14:46:44 +01:00
Donal McBreen
bf64d9a0f5
Run pre-connect hooks before ssh commands
...
We hook into the SSHKit `on` method to run the pre-connect hook before
the first SSH command. This doesn't work for interactive exec commands
where ssh is called directly.
Fixes: https://github.com/basecamp/kamal/issues/1157
2025-04-18 14:30:52 +01:00
Donal McBreen
8d5ed62d30
Don't allow booleans for root proxy config
...
Setting it to a false or true doesn't affect the config so shouldn't be
allowed. true/false are for role level configurations.
Fixes: https://github.com/basecamp/kamal/issues/1120
2025-04-18 14:25:29 +01:00
Donal McBreen
58d5c7fb15
Merge pull request #1508 from basecamp/app-hosts
...
Add KAMAL.app_hosts
2025-04-18 13:26:10 +01:00
Donal McBreen
e4e39c31e3
Add KAMAL.app_hosts
...
KAMAL.hosts includes accessory and apps hosts. Add KAMAL.app_hosts which
does not include accessory only hosts and use it for app specific
commands.
Fixes:
- https://github.com/basecamp/kamal/issues/1059
- https://github.com/basecamp/kamal/issues/1148
2025-04-18 13:15:50 +01:00
Donal McBreen
5c71f2ba5a
Merge pull request #1507 from basecamp/fix-accessory-setup
...
Fix accessory setup
2025-04-18 11:16:52 +01:00
Donal McBreen
05f04f4c10
Merge pull request #1506 from basecamp/registry-login-on-push-and-pull
...
Move docker login into build command
2025-04-18 10:56:14 +01:00
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
098c937bab
Move docker login into build command
...
We only need to run the docker login commands for pushing and pulling
images.
So let's move the logins into those commands. This ensures we are logged
in when calling `kamal build` commands directly.
Fixes: https://github.com/basecamp/kamal/issues/919
2025-04-18 09:57:02 +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