906 Commits

Author SHA1 Message Date
T. R. Bernstein 95cbc62ef1 Use local docker registry to push and pull app images 2025-08-29 16:55:50 +02:00
Mike Dalessio 8e470ed051 Builder::Remote.inspect_builder requires both checks to pass
Previously, if either of the builder or the remote context were in a
bad state, the build would proceed anyway and fail.
2025-07-17 15:41:38 -04:00
Donal McBreen 6e517665e8 OnePassword adapter refactor
- fix rubocop offenses
- extract fields_map
- no early return
- include fields in error message
2025-06-17 11:37:30 +01:00
Donal McBreen 4b0afdf42b Merge pull request #1567 from capripot/add_all_fields_one_password_retrieval
feat: Add allowing retrieving all fields for an item
2025-06-17 11:22:10 +01:00
Donal McBreen ccbcbbc8c5 Custom certs per role
- Upload the cert with `sshkit.upload!`
- Use the role name to create a directory for each role's certs
- Add an integration test for the custom certs
2025-06-17 10:26:57 +01:00
Donal McBreen 8a7260d1e9 Merge pull request #1531 from acidtib/feat/custom-ssl
feat: Add support for custom certificates
2025-06-17 09:25:15 +01:00
Donal McBreen 52e06c1351 Merge pull request #1570 from nickcoyne/bws-secrets
Request Bitwarden Secrets Manager secrets as JSON
2025-06-16 10:59:53 +01:00
Donal McBreen 9bcc953cd6 Stub bws project list correctly 2025-06-16 10:58:57 +01:00
Donal McBreen e2015b47f9 Merge pull request #1422 from acidtib/feat/secrets-add-passbolt-adapter
feat(secrets): add Passbolt adapter
2025-06-16 09:14:07 +01:00
Donal McBreen 23f2bf71f9 Fix rubocop whitespace issues 2025-06-16 09:00:04 +01:00
Donal McBreen 054a85d3c0 Merge pull request #916 from nickhammond/buildpacks
Add pack option to the builder options for cloud native buildpacks
2025-06-16 08:57:27 +01:00
Donal McBreen a201a6ca68 Merge pull request #1544 from prullmann/kamal-exec-piping
Allow piping into kamal exec #1485
2025-06-16 07:52:03 +01:00
Nick Hammond 1d88281fee Validate that destination, role, and service are not set as labels on roles and accessories 2025-06-09 19:08:20 -07:00
Nick Coyne a004232ffc Request secrets as json 2025-06-02 09:06:05 +12:00
Nick Hammond 487aa306c9 Merge branch 'basecamp:main' into buildpacks 2025-05-23 10:59:05 -07:00
capripot cbf94fa7f5 feat: Add allowing retrieving all fields for an item
With 1Password, there is a way to retrieve all fields
of a given item directly without having to enumerate them.

Allowing this when passing no arguments for secrets fetch
command.
2025-05-22 22:21:51 -07:00
Donal McBreen b387df0e4f KAMAL_HOST env var mop-up
- Ensure tests pass
- Switch from -e to --env everywhere
- Check KAMAL_HOST env var in integration tests
2025-05-20 14:10:50 +01:00
Dainel Vera 99f763d742 Merge branch 'main' into feat/custom-ssl 2025-05-19 15:38:33 -06:00
Nick Hammond 4bd1f0536c Merge branch 'basecamp:main' into buildpacks 2025-05-16 15:21:49 -07:00
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 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 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
Nick Hammond c5e5f5d7cc Merge branch 'basecamp:main' into buildpacks 2025-05-13 09:34:13 -07:00
Krzysztof Duda 78c9d610cf Add a singular role 2025-05-12 11:07:10 +02: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 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 c351c2d2de Set minimum proxy version to 0.9.0 2025-05-09 08:40:41 +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
Nick Hammond 68404e2673 Merge branch 'basecamp:main' into buildpacks 2025-05-08 02:34:40 -07: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
acidtib 9219b87630 remove chown for TLS certificates in proxy container 2025-04-29 19:57:41 -06: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
acidtib 045410368d add support for custom certificates 2025-04-26 01:03:15 -06: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 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 54b2c79f08 Merge pull request #1520 from basecamp/inherit-lock
Inherit locks
2025-04-22 09:31:35 +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
Nick Hammond 045da87219 Merge branch 'basecamp:main' into buildpacks 2025-04-21 09:33:40 -07: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