Donal McBreen
8ad6a0ed16
Add .kamal/secrets on kamal init
2024-09-06 11:54:12 +01:00
Donal McBreen
8b62e2694a
Test non-ascii secret interpolation
2024-09-05 10:01:56 +01:00
Donal McBreen
be1df4356a
fetch_from_vault -> fetch_secrets
2024-09-05 09:53:33 +01:00
Donal McBreen
8210e8e768
Drop redundant rescue
2024-09-05 09:53:18 +01:00
Donal McBreen
9b96ef2412
Shellescape command input
2024-09-05 08:37:50 +01:00
Donal McBreen
1522d94ac9
Pass secrets to pre/post deploy hooks
2024-09-04 16:24:10 +01:00
Donal McBreen
a68294c384
Remote test adapter from test_helper.rb
2024-09-04 12:57:25 +01:00
Donal McBreen
31a347c285
Move int parent comment
2024-09-04 12:52:30 +01:00
Donal McBreen
3d502ab12d
Add test adapter and interpolate secrets in integration tests
2024-09-04 12:40:27 +01:00
Donal McBreen
5226d52f8a
Interrupting parent on error
2024-09-04 12:14:47 +01:00
Donal McBreen
9deb8af4a0
Don't hide command
2024-09-04 09:32:45 +01:00
Donal McBreen
068aaa0bd0
Fix options
2024-09-04 09:32:45 +01:00
Donal McBreen
a726a86a17
Add lastpass, bitwarden adapters
2024-09-04 09:32:45 +01:00
Donal McBreen
b2e1a4d4c1
Secrets test
2024-09-04 09:32:45 +01:00
Donal McBreen
9ade79fc84
OnePassword, LastPass + Bitwarden adapters
2024-09-04 09:32:45 +01:00
Donal McBreen
79731da619
Single fetch command
2024-09-04 09:32:45 +01:00
Donal McBreen
0ae8046905
Add secret tests
2024-09-04 09:32:45 +01:00
Donal McBreen
d5ecca0fd4
Add tests
2024-09-04 09:32:45 +01:00
Donal McBreen
0c6a593554
Remove redundant test
2024-09-04 09:32:45 +01:00
Donal McBreen
3f37fea7c3
Configuration::Secrets -> Secrets
2024-09-04 09:32:45 +01:00
Donal McBreen
7daaabd4d4
One file, no destination env
2024-09-04 09:32:45 +01:00
Donal McBreen
fcdef5fa06
Set KAMAL_DESTINATION for dotenv parsing
2024-09-04 09:32:45 +01:00
Donal McBreen
5480b40ba3
Correct secret files order
2024-09-04 09:32:45 +01:00
Donal McBreen
1d0e81b00a
Eager load only CLI for faster commands
2024-09-04 09:32:45 +01:00
Donal McBreen
5910249d02
Add secrets command + 1password integration
2024-09-04 09:32:45 +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
a2549b1f60
Allow disabling of local builds
...
To disable local builds set:
```
builder:
local: false
remote: ssh://docker@docker-builder
```
2024-09-03 14:33:25 +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
e557eea79c
Build and clean remote builders correctly
...
Check that the builder and context match what we expect, and if not
remove and re-create them.
2024-09-02 15:12:19 +01:00
David Heinemeier Hansson
d7e785cd36
Merge pull request #920 from mblayman/env-docs-typos
...
Fix typos in "Environment variables" docs.
2024-09-01 14:22:15 -07:00
Matt Layman
5cda3086c4
Found a typo in the healthcheck docs.
2024-08-31 23:38:28 -04:00
Matt Layman
362f5d00f6
Fix typos in "Environment variables" docs.
2024-08-31 23:29:30 -04: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
9f0b10425c
Fix aliases tests
2024-08-29 09:16:07 +01:00
Donal McBreen
5f2384f123
Use docker info to get arch
2024-08-29 08:46:18 +01:00
Donal McBreen
eab7d3adc5
Keep buildx build, in case of old docker versions which don't default to buildkit
2024-08-29 08:45:51 +01:00
Donal McBreen
d2d0223c37
Require an arch to be set, and default to amd64 in the template
2024-08-29 08:45: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