docs.coopcloud.tech/docs/abra/upgrade.md

91 lines
6.1 KiB
Markdown
Raw Normal View History

2022-01-27 09:27:23 +00:00
---
title: Upgrade
---
2022-02-04 12:19:49 +00:00
## Release channels
### Stable
2022-01-27 09:27:23 +00:00
```
abra upgrade
```
2022-02-04 12:19:49 +00:00
### Release candidate
2022-01-27 09:27:23 +00:00
```
abra upgrade --rc
```
2022-02-04 12:19:49 +00:00
## Migration guides
2023-02-02 09:03:51 +00:00
### `0.6.x-beta` -> `0.7.x-beta`
> **ALERTA, ALERTA**: this is currently only available via the release
> candidate channel, using `abra upgrade --rc`. There has been a lot of churn
> and we're being cautious about releasing this one. Please help us test! We're
2023-02-10 11:48:09 +00:00
> currently on `0.7.0-rc2-beta`.
2023-02-02 09:03:51 +00:00
2023-02-10 13:46:01 +00:00
- `kadabra`, the app auto-updater is available for general alpha testing! See [these docs](https://docs.coopcloud.tech/operators/tutorial/#automatic-upgrades) for how to get started. Binaries can be found [here](https://git.coopcloud.tech/coop-cloud/abra/releases/tag/0.7.0-rc2-beta).
2023-02-02 09:03:51 +00:00
- **ALERTA, ALERTA**, security related issue: all `$domain.env` env vars are now exposed to the deployment via the `app` service container. Each `FOO=BAR` is exported within the context of the container. If you have any privately committed secrets in your `.env` files, please migrate them to the `secrets: ...` configuration in the recipe. This change was made to facilitate tooling which can support auto-upgrading of apps in a deployment.
- `abra` can no longer install Docker, initialise swarm mode and the proxy network. It will check if a Docker install exists and is in swarm mode or not and error out accordingly. We leave the provisioning to tools that are designed for that and reduce the command-line surface that we have to maintain going forward.
2023-02-10 13:49:05 +00:00
- `abra server add <host> <args>` 👉 `abra server add <host>`. We have finally removed the custom SSH handling code and now solely rely on invoke `/usr/bin/ssh` directly and reading from the `~/.ssh/config`. The `<host>` argument should correspond to a `Host <host>` entry in your `~/.ssh/config` or in an `Include <file>` statement (hosts are retrieved via `ssh -G <host>`). This means "how does `abra` interact with SSH is 1) do you have an `~/.ssh/config` entry for `<host>` 2) can you `ssh <host>` successfully? 3) there is no 3. It's an easier mental model and also the way `abra-bash` works, hence, less weird obscure errors. `<host>` being public a domain name is still required.
2023-02-02 09:03:51 +00:00
2023-02-10 13:49:05 +00:00
- `abra` no longer tries to do the TOFU host key verification prompt. We follow the praxis of the Docker CLI and just give up when host keys are not validated. We leave it to folks to SSH in and verify themselves.
2023-02-02 09:03:51 +00:00
- On the way to [`kadabra`](https://git.coopcloud.tech/coop-cloud/abra/pulls/268), several changes regarding labelling deployments have been merged in this release. This will allow tooling to understand a deployment without having the context of a `~/.abra/...` configuration. This will pave the way for server-side tooling, like `kadabra` which can help operators with different kinds of maintenance tasks.
- Welcome `abra recipe fetch`, which helps retrieve a recipe repository to your local work-station.
- Also say hello to `abra app services <domain>`, which lists the in-deployment service names and corresponding image, e.g. `foo_example_com`.
- Digests have been removed from the catalogue generation.
- Backup files generated by `abra` have a much more human-friendly format.
- Linting for domains is disabled when no `DOMAIN=...` is discovered in the `$odmain.env` file.
2023-02-17 09:46:25 +00:00
- You can now pass `--since` to `abra app logs` to filter by time.
- `abra app undeploy --prune` and `abra server prune` are now available for `docker system prune`-like behaviour when cleaning up state on the server.
- `abra server rm` now has server name auto-completion.
2022-12-13 15:34:16 +00:00
### `0.5.x-beta` -> `0.6.x-beta`
- Using `{{ .Domain }}` in recipe `.envrc.sample` files went away because it
was portable enough. We revert to replacing e.g `gitea.example.com` with the
domain. See
[`8fad34e`](https://git.coopcloud.tech/coop-cloud/abra/commit/8fad34e) for
more.
- If your `abra.sh` scripts depend on `/bin/sh` and `/bin/bash` is available in
the container then `/bin/bash` will be used from now on. `/bin/sh` is only
now used if `/bin/bash` is not available. See
[`7f745ff`](https://git.coopcloud.tech/coop-cloud/abra/commit/7f745ff) for
more.
2022-05-03 15:21:07 +00:00
### `v0.4.x` -> `v0.5.x`
- The only breaking change was making `abra` understand that the JSON dump for the recipes listing lives on [recipes.coopcloud.tech/recipes.json](https://recipes.coopcloud.tech) instead of [recipes.coopcloud.tech](https://recipes.coopcloud.tech).
2022-02-04 12:19:49 +00:00
### `v0.3.x` -> `v0.4.x`
Make sure to back up your `~/.abra/servers` configurations first for safety.
2022-03-13 22:29:27 +00:00
- Please run `mv ~/.abra/apps ~/.abra/recipes`.
2022-02-04 12:19:49 +00:00
- "app name" as a concept went away, `abra` now uses the domain name of an app as the identifier. However, we don't expect to see breaking behaviour if you have `.env` files like `~/.abra/servers/foo.com/mycoolapp.env` and you still want to run `abra app ps mycoolapp`. `abra` still reads the filename to figure out the identifier. When running `abra app new <recipe>`, `abra` will now take the domain name as the name of the `.env` file.
2022-03-13 22:29:27 +00:00
2022-02-04 12:19:49 +00:00
- `abra` has a new SSH implementation which enforces SSH host key checking. You may run into connection issues as a result of this code churn, please see [this entry](/abra/trouble/#ssh-connection-issues) for help navigating a fix.
2022-03-13 22:29:27 +00:00
2022-04-19 12:49:20 +00:00
- CLI flag/args handling has been made more flexible. We're working within the constraints of an upstream library issue but have hopefully made it easier to mange passing flags to commands with `abra`. See [this troubleshooting entry](/abra/trouble/#command-line-flag-handling-is-weird) for the full review.
2022-03-13 22:29:27 +00:00
- A number of short style flags have been re-mapped and/or added. This is again related to an issue with the upstream CLI library which sometimes understands short style flags as long style flags. E.g. `--ch` instead of `-ch` for `--chaos`. As a concrete example, `--ch` is now `-C` on `abra app deploy`.
2022-04-19 12:46:45 +00:00
- `abra app backup` & `abra app restore` are ready for alpha-testing! See [this entry](https://docs.coopcloud.tech/maintainers/handbook/#how-do-i-configure-backuprestore) and [that entry](https://docs.coopcloud.tech/operators/handbook/#how-do-i-backuprestore-my-app) for more.
- `abra server add --traefik` went away, it was too unreliable & hard to maintain.