docs: shuffle resolutions

This commit is contained in:
2024-08-31 09:32:57 +02:00
parent 0513293ee0
commit d1cbd6ae34
4 changed files with 29 additions and 2 deletions

View File

@ -1,75 +0,0 @@
---
title: "Resolution 013"
---
!!! note
This resolution has been amended! The main change was to remove automatic
git synchronisation; please see [the file
history](https://git.coopcloud.tech/coop-cloud/docs.coopcloud.tech/commits/branch/main/docs/federation/resolutions/in-progress/013.md) for a full run-down.
- Budget 007: Operator sync
- Date: 2024-01-??
- Deadline: 2024-01-XX
- Size: Large
### Summary
As highlighted in several tickets (e.g. [`#434`](https://git.coopcloud.tech/coop-cloud/organising/issues/434), [`#467`](https://git.coopcloud.tech/coop-cloud/organising/issues/467)), several operators working together on the same server routinely run into deployment instability. This is due to the fact that we do not store the deployment version of the apps.
With this proposal, we would like to address the synchronisation of app deployment versions. This is being called "Operator sync". What follows is the design proposal which has already received feedback from operators on [this pad](https://pad.riseup.net/p/IebZQkpe3OOpYyVT8f1j-keep).
### Details (Budget 007)
We add support a config file (`$ABRA_DIR/config.yml`) which has these defaults:
We also add a `abra config` command which has the following shape:
```
🌻 ./abra config -h
NAME:
abra config - Manage system-wide Abra configuration
USAGE:
abra config command [command options]
COMMANDS:
generate, g Generate default configuration
OPTIONS:
--help, -h show help
```
If there is no `$ABRA_DIR/config.yml` or `sync: false`, nothing changes. When `sync: true`, *only* the `abra app deploy / upgrade / rollback` commands have new behaviour.
There is also a new command `abra app sync <domain>` which triggers a synchronisation.
When `abra app deploy/upgrade/rollback/sync` is run, here's what we do:
* Read the `OPERATOR_SYNC_VERSION` env var as the version to deploy / upgrade from / rollback from
* upgrade: if deployed version does not match `OPERATOR_SYNC_VERSION`, warn before overview
* rollback: same as above!
* Run the deployment
* if successful, record a new `OPERATOR_SYNC_VERSION`
* if unsuccessful, do not record a `OPERATOR_SYNC_VERSION` and ask operator to resolve
If `--chaos` is passed, we use the short commit hash instead of the version label.
Here's an example of the `OPERATOR_SYNC_VERSION` env var:
```
# in ~/.abra/servers/example.com/matrix.example.com.env
TYPE=matrix-synapse
OPERATOR_SYNC_VERSION=4.0.0+v1.93.0 # managed by Abra
```
Operator documentation will also be provided.
**Budget amount**: 200 EUR (10 hrs * 20 EUR/hr)
**Who will implement this**: (someone?)
**When will the money be spent**: Before mid-February 2024
**What is the money for**: Implementing the first steps of operator sync.

View File

@ -1,57 +0,0 @@
---
title: "Resolution 021"
---
- Topic: Budget 011: Migrate to Cobra
- Date: 22-07-2024
- Deadline: 31-07-2024
- Size: Large
### Summary
Migrate away from our current command-line dependency so `abra` usage is more predictable. The goal is to maintain feature parity with no breaking changes. The main advantage that we will get is robust and flexible handling of flags/arguments which don't depend on forcing a specific order (see [`#581`](https://git.coopcloud.tech/coop-cloud/organising/issues/581)). There are other bonuses such as built-in support for auto-completion, better handling of example usage, improved support for global flags (`--debug`) and manpage support.
### Details (Budget 011)
#### The problem
The current help output of `abra app deploy` is as follows:
`abra app deploy [command options] <domain> [<version>]`
However, it is possible to do both of the following:
```
abra app deploy --chaos example.org # "before" style
abra app deploy example.org --chaos # "after" style
```
However, `abra app cmd` is broken if you try to use the "after" style:
```
abra app cmd <domain> <function> --local -- <args>
```
This results in `<recipe> doesn't have a --local function` which is a bug in the `abra` code. It tries to read the position of the arguments but `--local` is included as an argument. The bug in `abra` is due to a bug in `urfave/cli` - "after" style options appear as arguments 😱
The only way to use `abra app cmd` right now is using the "before" style:
```
abra app cmd --local <domain> <function> -- <args>
```
This means that some commands allow both "after" and "before" style and some only allow "before" style. This is a source of confusion, raised issues and frustration.
#### The solution
[Several](https://git.coopcloud.tech/coop-cloud/abra/pulls/404) [attempts](https://git.coopcloud.tech/coop-cloud/abra/pulls/435) have been made to upgrade `urfave/cli` to fix this behaviour. However, as it turns out, it is **highly unlikely** that they will fix this upstream: [`urfave/cli#1950`](https://github.com/urfave/cli/issues/1950) [`urfave/cli#1928`](https://github.com/urfave/cli/pull/1928) (and even this proposal does not really include the desired robust flexible handling we need).
`@decentral1se` has done a spike to confirm that [`cobra`](https://cobra.dev) handles flexible handling of arguments/flags. Those reading this proposal and wishing to try it out for themselves can take [Hugo](https://gohugo.io/) for a spin (it uses `cobra` as the underlying command-line library).
This tool is well maintained and used by several large projects such as Hugo and Kubernetes. The library matches all functionality we require.
#### Budget
`@decentral1se` can carry out this work.
Proposed budget of 15 hrs: `15 hrs * 20 = 300 EUR`

View File

@ -0,0 +1,27 @@
---
title: "Resolution 022"
---
- Topic: Ammar joins the Co-op Cloud Federation
- Date: 31-08-24
- Deadline: 14-09-2024
- Size: Large
### Summary
> @ammaratef45:matrix.org
[@ammaratef45](https://git.coopcloud.tech/ammaratef45) is a software engineer and has:
- Used Co-op Cloud for self-hosting libre apps.
- Advocated for self hosting in his community in Seattle.
- Participated in [https://matrix.to/#/#coopcloud-tech:autonomic.zone](our community) chats.
- Some small contributions/fixes/bug reports for some Co-op Cloud stuff.
- Published an abra recipe for photo prism.
### Details
I, Ammar Hussein, believe in the vision of Co-op Cloud and been invested in the
success of similar initiatives. I would love the opportunity to fomrmally
become a member of the federation and happy to contribute membership dues.
[Be Water](https://bewater.contact) is happy to vouch.