Donal McBreen
bf8779cef4
Merge pull request #950 from admtnnr/fix-registry-cache-options
...
builder/cache/options: fix order of build args when using registry
2024-10-23 13:59:59 +01:00
Donal McBreen
0f97e0b056
Merge pull request #1114 from alanoliveira/main
...
prevent escape '#' when generating env_file string
2024-10-23 12:35:07 +01:00
Donal McBreen
bd8c35b194
Merge pull request #1020 from igor-alexandrov/network-args
...
Allow to override network
2024-10-23 12:22:36 +01:00
Donal McBreen
35075e2e4d
Merge pull request #1136 from aidanharan/secrets-files-not-found-message
...
Updated secrets error message if secrets files do not exist
2024-10-23 11:14:41 +01:00
Donal McBreen
53dad5f54f
Merge pull request #1121 from kylerippey/adapter-cli-installation-checks
...
Raise meaningful error messages when secret adapter CLIs are not installed
2024-10-23 11:12:50 +01:00
Donal McBreen
66f6e8b576
Merge pull request #1045 from junket/allow-false-env-var-value
...
Allow false env var value
2024-10-23 11:11:43 +01:00
Donal McBreen
a3e5505bb2
Merge pull request #1117 from pardeyke/add_proxy_reboot_info
...
Added `kamal proxy reboot` to raised error message
2024-10-22 17:26:36 +01:00
Donal McBreen
fdf8ef1343
Merge pull request #1144 from basecamp/zeitwerk-2.7
...
Require zeitwerk 2.6.18
2024-10-22 15:03:45 +01:00
Donal McBreen
493c5690f1
Merge pull request #1066 from davidstosik/v2.1.1/path-space-fix
...
Support spaces in git repository path
2024-10-10 10:17:00 -04:00
Donal McBreen
5de55a22ff
Merge pull request #1088 from emmceemoore/patch-1
...
Typo fix.
2024-10-10 10:16:01 -04:00
Donal McBreen
6a7783c979
Merge pull request #1086 from basecamp/proxy-1.8.1
...
Bump proxy to version 0.8.1
2024-10-09 14:46:09 -04:00
Donal McBreen
7dc2609b77
Merge pull request #1082 from graysonchen/patch-1
...
ERROR (ArgumentError): Unknown boot_config subcommand clear
2024-10-09 14:03:07 -04:00
Donal McBreen
91df935d05
Merge pull request #1076 from basecamp/active-support-require-for-to-sentence
...
Add Active Support require for to_sentence
2024-10-08 07:46:53 -04:00
Donal McBreen
bbfcbfa94b
Merge pull request #1064 from basecamp/kamal-proxy-0.8.0
...
Update to kamal-proxy 0.8.0
2024-10-08 07:42:48 -04:00
Donal McBreen
440044b900
Merge pull request #1072 from basecamp/proxy-default-10m-logs
...
Default to keeping 10m of proxy logs
2024-10-08 07:35:38 -04:00
Donal McBreen
23898a5197
Merge pull request #1062 from basecamp/skip-proxy-flag-ssl-false
...
Skip setting the proxy flag when ssl is false
2024-10-06 18:32:45 +01:00
Donal McBreen
aa15fa532a
Merge pull request #1024 from jeromedalbert/follow-primary-role
...
Follow logs on primary role by default
2024-10-02 09:29:16 +01:00
Donal McBreen
276b469c2b
Merge pull request #1019 from nickhammond/ENV/destination
...
Set KAMAL_DESTINATION when loading config
2024-10-02 09:28:01 +01:00
Donal McBreen
c10b3fb07a
Merge pull request #908 from basecamp/ignorable-ssh-config
...
SSH: allow setting `config: false` to ignore local user `~/.ssh/config`
2024-10-02 08:28:57 +01:00
Donal McBreen
cd12f95a97
Merge pull request #1018 from basecamp/kamal-proxy-deploy-equals-in-args
...
Use `=` in kamal-proxy deploy command args
2024-10-01 15:51:43 +01:00
Donal McBreen
b4bcf35f78
Merge pull request #1000 from kpumuk/hosts
...
Allow specifying multiple hosts for kamal-proxy via an array
2024-09-30 10:26:15 -04:00
Donal McBreen
7f6095c9eb
Merge pull request #1009 from basecamp/secrets-print
...
Add `kamal secrets print` for secret debugging
2024-09-30 09:55:53 -04:00
Donal McBreen
ef1271df47
Merge pull request #1010 from basecamp/kamal-proxy-0-7-0
...
Added support for ACME `http-01` challenges
2024-09-30 09:55:34 -04:00
Donal McBreen
af992ce755
Merge pull request #996 from iximiuz/patch-1
...
Fix git --add safe.directory command in Dockerfile
2024-09-30 04:36:00 -04:00
Donal McBreen
32caf4b148
Merge pull request #995 from honzasterba/bw_nicer_error_message_on_non_field_fetch
...
[bitwarden] default fetch raises NoMethodError
2024-09-30 04:35:48 -04:00
Donal McBreen
28a02262df
Merge pull request #988 from igor-alexandrov/kamal-proxy-remove-no-target
...
Fixed kamal-proxy remove command
2024-09-30 04:18:12 -04:00
Donal McBreen
b11fb93a6c
Merge pull request #971 from igor-alexandrov/add-app-port-example
...
Added app_port example to the proxy section
2024-09-30 04:16:34 -04:00
Donal McBreen
5036f8843f
Merge pull request #986 from basecamp/rails-8-requires-ruby-3.2
...
Rails 8 doesn't support Ruby 3.1
2024-09-27 08:23:32 -04:00
Donal McBreen
ae990efd02
Merge pull request #978 from basecamp/ignore-ssl-false
...
Handle ssl: false in proxy config
2024-09-26 11:56:00 +01:00
Donal McBreen
325bf9a797
Merge pull request #975 from basecamp/kamal-proxy-0.6.0
...
Bump to latest version of kamal-proxy
2024-09-25 23:03:25 +01:00
Donal McBreen
7633fe0293
Merge pull request #974 from basecamp/proxy-boot-config
...
Proxy boot config
2024-09-25 20:28:24 +01:00
Donal McBreen
4d8387b1c9
Merge pull request #973 from eroluysal/main
...
Fix adapter names
2024-09-25 19:48:40 +01:00
Donal McBreen
ab109afc52
Merge pull request #957 from basecamp/numeric-timeouts
...
Response timeout should be a number
2024-09-20 09:50:05 +01:00
Donal McBreen
56e90906b1
Merge pull request #954 from basecamp/two-app-integration-test
...
Integration test two apps
2024-09-19 16:36:45 +01:00
Donal McBreen
85f1e14b97
Merge pull request #953 from basecamp/inherit-env-for-secrets
...
Avoid setting env via SSHKit
2024-09-19 15:18:31 +01:00
Donal McBreen
45a58f7e15
Merge pull request #952 from basecamp/app-exec-in-kamal-network
...
Run app exec in the kamal network
2024-09-19 14:46:58 +01:00
Donal McBreen
9fe1821cae
Merge pull request #951 from basecamp/proxy-config-ownership
...
Fix /home/kamal-proxy/.config/kamal-proxy ownership
2024-09-19 12:57:10 +01:00
Donal McBreen
3ec4ad2ea5
Merge pull request #949 from basecamp/role-proxy-config
...
Allow role specific proxy config
2024-09-18 18:27:36 +01:00
Donal McBreen
684f7ac148
Merge pull request #948 from basecamp/deploy-drain-timeouts
...
Simplified deploy/drain timeouts
2024-09-18 15:18:00 +01:00
Donal McBreen
600bbd77ef
Merge pull request #947 from basecamp/doc-updates
...
Update proxy and docs for Kamal 2.0/kamal-proxy 0.3.0
2024-09-18 14:45:32 +01:00
Donal McBreen
e07ac070aa
Merge pull request #945 from basecamp/kamal-2-upgrade
...
Upgrade on accessory hosts only with correct messages
2024-09-18 10:27:28 +01:00
Donal McBreen
bd54c74682
Merge pull request #944 from basecamp/single-secrets-instance
...
Ensure we don't load the secrets more than once
2024-09-17 14:33:38 +01:00
Donal McBreen
190dbd1ea3
Merge pull request #943 from basecamp/response-timeout-string
...
Need a duration string for the response timeout
2024-09-17 14:14:49 +01:00
Donal McBreen
d6eda3d741
Merge pull request #942 from basecamp/kamal-2-upgrade
...
Upgrade commands for Kamal 1.x -> 2.0
2024-09-17 13:34:00 +01:00
Donal McBreen
434490bd0c
Merge pull request #940 from basecamp/proxy
...
Replace Traefik with kamal-proxy
2024-09-17 09:47:16 +01:00
Donal McBreen
53903ddcd2
Read buffer not buffering
2024-09-16 16:44:21 +01:00
Donal McBreen
55756fa6f3
Set request and response headers
2024-09-16 16:44:21 +01:00
Donal McBreen
fe0c656de5
Split buffer requests/responses
2024-09-16 16:44:21 +01:00
Donal McBreen
418d8045d8
Add forward headers support
2024-09-16 16:44:21 +01:00
Donal McBreen
d63ff8f251
Set extra fields
2024-09-16 16:44:21 +01:00
Donal McBreen
eab717e0cf
Add kamal-proxy in experimental mode
...
The proxy can be enabled via the config:
```
proxy:
enabled: true
hosts:
- 10.0.0.1
- 10.0.0.2
```
This will enable the proxy and cause it to be run on the hosts listed
under `hosts`, after running `kamal proxy reboot`.
Enabling the proxy disables `kamal traefik` commands and replaces them
with `kamal proxy` ones. However only the marked hosts will run the
kamal-proxy container, the rest will run Traefik as before.
2024-09-16 16:44:19 +01:00
Donal McBreen
66d5e25834
Merge pull request #939 from basecamp/secrets-mutex
...
Add a mutex around loading secrets
2024-09-16 16:26:58 +01:00
Donal McBreen
876eebc7c5
Merge pull request #936 from basecamp/asset-extraction-entrypoint
...
Override the entrypoint when extracting assets
2024-09-13 17:46:43 +01:00
Donal McBreen
045aa7d167
Merge pull request #934 from basecamp/secrets-dont-exit
...
Don't exit from failed secrets commands
2024-09-11 16:27:33 +01:00
Donal McBreen
debdf00cca
Merge pull request #933 from basecamp/common-secrets
...
Add secrets-common for shared secrets
2024-09-11 14:20:01 +01:00
Donal McBreen
c9946808b1
Merge pull request #931 from basecamp/dont-git-ignore-dot-kamal-secrets
...
Don't git ignore .kamal/secrets
2024-09-11 13:26:07 +01:00
Donal McBreen
deb2a6d298
Merge pull request #930 from basecamp/hide-1password-login-error
...
Hide the 1password login error
2024-09-11 12:18:09 +01:00
Donal McBreen
63d0b5ddfa
Merge pull request #928 from basecamp/kamal-secrets-inline-aware
...
Make the secrets commands inline aware
2024-09-10 11:08:10 +01:00
Donal McBreen
5aa3d1aeb0
Merge pull request #927 from basecamp/revert-903-integration-test-insecure-registry
...
Revert "Integration test insecure registry"
2024-09-10 10:12:57 +01:00
Donal McBreen
7156c80f34
Merge pull request #924 from basecamp/secrets
...
Secrets
2024-09-09 15:13:35 +01:00
Donal McBreen and Sijawusz Pur Rahnama
b99c044327
Update lib/kamal/cli/templates/secrets
...
Co-authored-by: Sijawusz Pur Rahnama <sija@sija.pl >
2024-09-06 13:25:39 +01:00
Donal McBreen
b464c4fd4a
Include dotenv upgrade
2024-09-04 09:32:45 +01:00
Donal McBreen
56754fe40c
Lazily load secrets whenever needed
2024-09-04 09:32:45 +01:00
Donal McBreen
6a06efc9d9
Strip out env loading, envify, env push
2024-09-04 09:32:45 +01:00
Donal McBreen
5c4c33e0a8
Replace .env* with .kamal/env*
...
By default look for the env file in .kamal/env to avoid clashes with
other tools using .env.
For now we'll still load .env and issue a deprecation warning, but in
future we'll stop reading those.
2024-09-04 09:32:45 +01:00
Donal McBreen
0b5506f6f2
Merge pull request #923 from basecamp/disable-local-builder
...
Allow disabling of local builds
2024-09-03 14:53:23 +01:00
Donal McBreen
9b9e60ec7f
Merge pull request #921 from basecamp/remote-hybrid-builders-cleanup
...
Build and clean remote builders correctly
2024-09-02 15:24:28 +01:00
Donal McBreen
6adf3c117f
Merge pull request #905 from basecamp/simplify-builders-config
...
Simplify builders config
2024-08-29 09:28:51 +01:00
Donal McBreen
56268d724d
Simplify the builders configuration
...
1. Add driver as an option, defaulting to `docker-container`. For a
"native" build you can set it to `docker`
2. Set arch as a array of architectures to build for, defaulting to
`[ "amd64", "arm64" ]` unless you are using the docker driver in
which case we default to not setting a platform
3. Remote is now just a connection string for the remote builder
4. If remote is set, we only use it for non-local arches, if we are
only building for the local arch, we'll ignore it.
Examples:
On arm64, build for arm64 locally, amd64 remotely or
On amd64, build for amd64 locally, arm64 remotely:
```yaml
builder:
remote: ssh://docker@docker-builder
```
On arm64, build amd64 on remote,
On amd64 build locally:
```yaml
builder:
arch:
- amd64
remote:
host: ssh://docker@docker-builder
```
Build amd64 on local:
```yaml
builder:
arch:
- amd64
```
Use docker driver, building for local arch:
```yaml
builder:
driver: docker
```
2024-08-29 08:45:48 +01:00
Donal McBreen
cffb6c3d7e
Allow the driver to be set
2024-08-29 08:44:11 +01:00
Donal McBreen
bd1726f305
docker buildx build -> docker build
2024-08-29 08:44:11 +01:00
Donal McBreen
7ddb122a22
Get tests passing
2024-08-29 08:44:11 +01:00
Donal McBreen
98c951bbdb
Simplfy choosing a builder
2024-08-29 08:44:11 +01:00
Donal McBreen
374c117b79
Validate multiarch configuration
...
Remote and local are only allowed when multiarch is enabled.
Remote requires a host and arch, local only requires an arch.
2024-08-29 08:44:11 +01:00
Donal McBreen
d6a5cf3c78
Rip out context_hosts checks
...
The remote host is now encoded in the builder name so we don't need
to check it. We'll just do an inspect to confirm the builder exists.
2024-08-29 08:44:11 +01:00
Donal McBreen
2aeabda455
Move multiarch remote builder to hybrid builder
...
Include the host name in the builder name, so we can have one builder
per host/arch across all kamal projects.
Inherit from the remote builder. The difference in the hybrid builder
is that we create a local buildx instance and append the remote context
to it.
2024-08-29 08:44:11 +01:00
Donal McBreen
c048c097ed
Create a context for local builds
...
This ensures we use the docker-container driver and not whatever the
local default is.
2024-08-29 08:44:11 +01:00
Donal McBreen
ed148628fb
Local build doesn't need a builder
2024-08-29 08:44:11 +01:00
Donal McBreen
d48080c772
Dump native builder
...
We already ensure that buildx is installed, so let's always use it.
2024-08-29 08:44:11 +01:00
Donal McBreen
3f64338929
Move native remote to just remote
...
It's just a remote builder, that will build whichever platform is asked
for, so let's remove the "native" part.
We'll also remove the service name from the builder name, so multiple
services can share the same builder.
2024-08-29 08:44:11 +01:00
Donal McBreen
0ab838bc25
Combine multiarch and native/cache builders
...
Combine the two builders, as they are almost identical. The only
difference was whether the platforms were set.
The native cached builder wasn't using the context it created, so now
we do.
We'll set the driver to `docker-container` - it seems to be the default
but the Docker docs claim it is `docker`.
2024-08-29 08:44:11 +01:00
Donal McBreen
b7382ceeaf
Merge pull request #912 from basecamp/alias
...
Add aliases to Kamal
2024-08-29 08:43:35 +01:00
Donal McBreen
69367fbc6b
Merge pull request #917 from basecamp/v2.0-alpha
...
Switch the version on main to 2.0.0.alpha
2024-08-29 08:43:19 +01:00
Donal McBreen
e871d347d5
Merge pull request #889 from xiaohui-zhangxh/git-clone-update-submodules
...
git clone with --recurse-submodules
2024-08-26 11:20:05 +01:00
Donal McBreen
b8af719bb7
Add aliases to Kamal
...
Aliases are defined in the configuration file under the `aliases` key.
The configuration is a map of alias name to command. When we run the
command the we just do a literal replacement of the alias with the
string.
So if we have:
```yaml
aliases:
console: app exec -r console -i --reuse "rails console"
```
Then running `kamal console -r workers` will run the command
```sh
$ kamal app exec -r console -i --reuse "rails console" -r workers
```
Because of the order Thor parses the arguments, this allows us to
override the role from the alias command.
There might be cases where we need to munge the command a bit more but
that would involve getting into Thor command parsing internals,
which are complicated and possibly subject to change.
There's a chance that your aliases could conflict with future built-in
commands, but there's not likely to be many of those and if it happens
you'll get a validation error when you upgrade.
Thanks to @dhnaranjo for the idea!
2024-08-26 10:47:43 +01:00
Donal McBreen
f48987aa03
Merge pull request #903 from basecamp/integration-test-insecure-registry
...
Integration test insecure registry
2024-08-01 09:57:17 +01:00
Donal McBreen
ef051eca1b
Merge pull request #904 from galori/main
...
Fixed typo in `env.yml`: "valies" --> "values"
2024-08-01 09:57:03 +01:00
Donal McBreen
4e811372f8
Integration test insecure registry
...
The integrations tests use their own registry so avoid hitting docker
hub rate limits.
This was using a self signed certificate but instead use
`--insecure-registry` to let the docker daemon use HTTP.
2024-07-31 16:54:00 +01:00
Donal McBreen
ec4aa45852
Bump version for 1.8.1
2024-07-29 09:09:57 +01:00
Donal McBreen
5e11a64181
Merge pull request #891 from basecamp/single-pull
...
Pull once from hosts that warm registry mirrors
2024-07-22 08:18:48 +01:00
Donal McBreen
8a98949634
Merge pull request #886 from guoard/patch-2
...
Remove `--update` flag from `apk add` command
2024-07-16 15:46:37 +01:00
Donal McBreen
0eb9f48082
Merge pull request #887 from basecamp/fix-tests-with-git-config
...
Fix the tests when you have a git config email set
2024-07-16 13:08:18 +01:00
Donal McBreen
9db6fc0704
Fix the tests when you have a git config email set
...
The ran ok on CI where we fall back to `whoami`, but failed locally
where there was a git email set.
2024-07-16 12:09:05 +01:00
Donal McBreen
27fede3caa
Merge pull request #884 from basecamp/x-config
...
Add support for configuration extensions
2024-07-16 11:38:28 +01:00
Donal McBreen
29c723f7ec
Add support for configuration extensions
...
Allow blocks prefixed with `x-` in the configuration as a place to
declare reusable blocks with YAML anchors and aliases.
Borrowed from the Docker Compose configuration file format -
https://github.com/compose-spec/compose-spec/blob/main/spec.md#extension
Thanks to @ruyrocha for the suggestion.
2024-07-15 20:47:55 +01:00
Donal McBreen
fa73d722ea
Bump version for 1.8.0
2024-07-15 14:21:23 +01:00
Donal McBreen
c535e4e44f
Merge pull request #883 from basecamp/revert-840-main
...
Revert "Add x25519 gem, support Curve25519"
2024-07-15 13:56:49 +01:00
Donal McBreen
0ea07b1760
Merge pull request #878 from pagbrl/main
...
feat: Use git email as performer when available
2024-07-15 13:41:17 +01:00
Donal McBreen
03b531f179
Merge pull request #865 from basecamp/clean-envify-env
...
Ensure envify templates aren't polluted by existing env
2024-07-15 13:41:03 +01:00
Donal McBreen
d8570d1c2c
Merge pull request #847 from basecamp/remove-ruby-2.7-from-ci
...
Remove Ruby 2.7 from CI
2024-07-15 13:40:37 +01:00