Commit Graph

360 Commits

Author SHA1 Message Date
decentral1se 60c0e55e3d fix: don't specify refs when pulling tags
continuous-integration/drone/push Build is failing Details
See coop-cloud/organising#477
2023-08-13 12:07:37 +00:00
Rich M 2db172ea5a Further changes to messages.
continuous-integration/drone/push Build is passing Details
2023-08-04 19:22:48 +00:00
Richard M 2077658f6a Attempt to replace the deploy completed message. 2023-08-04 19:22:48 +00:00
Richard M 502e26b534 Change message when starting to poll for deployment status. 2023-08-04 19:22:48 +00:00
Rich M e22b692ada Add os hook for interrupt signal while waiting for service to converge. 2023-08-04 19:22:48 +00:00
decentral1se 5ae73f700e
Merge branch 'fix-deploy-no-catalogue'
continuous-integration/drone/push Build was killed Details
2023-08-02 10:48:54 +02:00
decentral1se ebf5d82c56
fix: failover if no recipe meta available
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-08-02 00:48:27 +02:00
decentral1se 23f5745cb8
fix: skip recipe clone / up to date sync for some commands
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
Continues work of 3dc5662821.
2023-08-01 21:19:20 +02:00
decentral1se 1e110f1375
docs: wording [ci skip] 2023-07-26 09:58:30 +02:00
decentral1se 3dc5662821
fix: improved offline support
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#471.
2023-07-26 08:16:07 +02:00
decentral1se ab64eb2e8d
fix: only use git to update local catalogue
See coop-cloud/organising#321.
2023-07-25 21:13:04 +02:00
decentral1se 4f22228aab
feat: lint for lightweight tags
See coop-cloud/organising#433
2023-07-25 20:38:29 +02:00
decentral1se 949510d4c3 revert: always clone latest recipe changes
continuous-integration/drone/push Build is failing Details
This change was about trying to optimise for offline scenarios but
caused a lot of issues for the online case. It needs to be thought
through again.

See coop-cloud/organising#471.

Closes coop-cloud/organising#432.
2023-07-25 15:05:01 +00:00
decentral1se 0582147874
fix: better error message for missing local tag
Aiming to help the following scenario better:

coop-cloud/organising#444 (comment)
2023-07-25 15:07:29 +02:00
Richard M a7ce71d6cf Fix formatting.
continuous-integration/drone/push Build is passing Details
2023-07-15 08:15:46 +00:00
Richard M 43ecf35449 Change CommonOptions (deprecated) to ClientOptions and remove unneeded parameters. 2023-07-15 08:15:46 +00:00
Richard M 4d2a1065d2 Replace types.volume with new volume type 2023-07-15 08:15:46 +00:00
decentral1se 497ecf476a
docs: wording [ci skip] 2023-06-12 00:09:52 +02:00
moritz 049da94629 fix(version): semver version ordering (!293)
continuous-integration/drone/push Build is passing Details
Solves coop-cloud/organising#427

This fix sorts the recipe versions at the catalogue generation and the versions that are received from the catalogue.

Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #293
2023-04-26 06:38:15 +00:00
moritz 31ec322c55 feat(deploy): set timeout via label (!290)
continuous-integration/drone/push Build is passing Details
Solves coop-cloud/organising#437

A timeout can be specified globally for a recipe using this label:
`coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}`. This sets the default timeout to 120s. An app specific timeout can be set using the env `TIMEOUT`.

Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #290
2023-04-14 14:44:18 +00:00
Moritz edff63b446 Revert "review: change label autoupdate -> auto-update"
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
This reverts commit 74baa76f5ee5e5dd7b71b1f14be97cc40dfc611b.
2023-03-07 13:24:46 +01:00
Moritz cb33edaac3 review: change label autoupdate -> auto-update 2023-03-07 13:24:46 +01:00
Moritz e9879e2226 review: label convention chaos_version -> chaos-version 2023-03-07 13:24:46 +01:00
Moritz d120299929 feat(list): show autoupdate state 2023-03-07 13:24:46 +01:00
Moritz 3753357ef8 feat(list): show chaos status and chaos version 2023-03-07 13:24:46 +01:00
Moritz 611430aab2 Set chaos version label for each deployed or upgraded app 2023-03-07 13:24:46 +01:00
decentral1se d62c4e3400
refactor: improved logging on pruning
continuous-integration/drone/push Build is passing Details
2023-02-19 10:28:18 +01:00
decentral1se 9754c1b2d1
feat: server auto-complete on remove sub-command
continuous-integration/drone/push Build is passing Details
2023-02-17 10:10:48 +01:00
decentral1se 312b93e794
fix: no gitops on recipe for "app new"
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#408
2023-02-15 00:49:22 +01:00
decentral1se 992e675921
refactor: use passed down conf to decide 2023-02-15 00:35:33 +01:00
decentral1se e4b4084dfd
fix: stream logs without hitting git.coopcloud.tech
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
Medium-sized options refactor in here too!

See coop-cloud/organising#292.
2023-02-13 16:46:43 +01:00
decentral1se ff58646cfc
fix: better error message when network gone 2023-02-13 12:33:00 +01:00
decentral1se eec6469ba1
fix: Change error message to reflect RECIPE -> TYPE
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
Closes coop-cloud/organising#409
2023-02-12 16:40:48 +01:00
decentral1se e94f947d20
fix: don't create clients twice per server
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#407
2023-02-12 00:02:59 +01:00
decentral1se cccbe4a2ec
fix: typo [ci skip] 2023-02-11 23:53:42 +01:00
decentral1se f53cfb6c36
fix: better error message when missing context [ci skip] 2023-02-11 23:49:01 +01:00
moritz e76ed771df feat: kadabra, the app auto-updater (!268)
continuous-integration/drone/push Build is passing Details
coop-cloud/organising#236

Autoupdater `kadabra` is ready for testing.
It should run on the server, check for available minor/patch updates and automatically upgrade the apps.

Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #268
2023-02-08 18:53:04 +00:00
decentral1se f28af5e42f
fix: use correctly formatted comments
continuous-integration/drone/push Build is passing Details
2023-02-08 11:28:38 +01:00
decentral1se fdf4854b0c
fix: unbork comments
continuous-integration/drone/push Build is failing Details
Was breaking the build but not anymore!
2023-02-08 11:20:30 +01:00
decentral1se fadafda0b8
fix: make test suite work again 2023-02-08 11:11:39 +01:00
decentral1se c03cf76702
chore: gofmt import statements
continuous-integration/drone/push Build was killed Details
2023-02-08 10:56:39 +01:00
decentral1se 29fa607190
fix: restrict pulling to specific branch
continuous-integration/drone/push Build is failing Details
2023-02-02 21:12:50 +01:00
decentral1se 7c541ffdfa
fix: better error handling in EnsureUpToDate 2023-02-02 21:12:24 +01:00
decentral1se 7ccc4b4c08
fix: woops, remove that print statement
continuous-integration/drone/push Build is failing Details
2023-02-02 21:00:31 +01:00
decentral1se ef4df35995
fix: don't check twice (called in EnsureUpToDate)
continuous-integration/drone/push Build is failing Details
2023-02-02 20:59:04 +01:00
decentral1se 71a9155042
fix: specify refs when fetching tags
See coop-cloud/organising#397
2023-02-02 20:58:38 +01:00
decentral1se 2a88491d7c
fix: catch errors here too
continuous-integration/drone/push Build is failing Details
See #266
2023-02-02 20:26:19 +01:00
decentral1se bf79552204
fix: improve permission denied message
continuous-integration/drone/push Build is failing Details
2023-02-02 20:07:45 +01:00
decentral1se 7c1a97be72 refactor!: consolidate SSH handling
continuous-integration/drone/push Build is failing Details
Closes coop-cloud/organising#389.
Closes coop-cloud/organising#341.
Closes coop-cloud/organising#326.
Closes coop-cloud/organising#380.
Closes coop-cloud/organising#360.
2023-02-02 08:37:14 +00:00
Moritz 76717531bd resolve PR: include the service info in the log message
continuous-integration/drone/push Build is failing Details
2023-01-31 16:15:11 +01:00
Moritz 6774893412 add env ENABLE_AUTO_UPDATE as label to enable/disable the auto update process
continuous-integration/drone/pr Build was killed Details
2023-01-31 16:12:02 +01:00
moritz ebb86391af add a label to signal that a deploy is a chaos deploy (!265)
continuous-integration/drone/push Build is failing Details
Resolves coop-cloud/organising#390 by adding the following label `coop-cloud.${STACK_NAME}.chaos=true` (according to the version label).
This is required for the auto updater coop-cloud/organising#236 (comment)

Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #265
2023-01-31 15:06:35 +00:00
moritz 50db39424c add a label to signal that a deploy is connected with a recipe (!264)
continuous-integration/drone/push Build is failing Details
Resolves coop-cloud/organising#391 by adding the following label `coop-cloud.${STACK_NAME}.recipe=${RECIPE}` (according to the version label).
This is required for the auto updater coop-cloud/organising#236 (comment)

Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #264
2023-01-31 14:35:43 +00:00
moritz ca1ea32c46 Expose all env vars to `app` container. (!263)
continuous-integration/drone/push Build is failing Details
Resolves coop-cloud/organising#393 and is required for the auto updater coop-cloud/organising#236 (comment)

Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #263
2023-01-31 14:13:43 +00:00
Moritz 32851d4d99 fix: always fetch all repository tags
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-01-31 11:52:15 +01:00
decentral1se c47aa49373
fix: improved missing context message
continuous-integration/drone/push Build is failing Details
2023-01-24 10:48:53 +01:00
decentral1se b089109c94
fix: more robust docker context problem handling
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
See coop-cloud/organising#325
See coop-cloud/organising#340
2023-01-23 14:56:34 +01:00
decentral1se 27e0708ac7
fix: don't delete server dir on cleanup if not empty
Part of coop-cloud/organising#325.
2023-01-23 13:56:27 +01:00
decentral1se 521570224b
Merge branch 'filter-servers-by-recipe'
continuous-integration/drone/push Build is failing Details
2023-01-23 09:33:31 +01:00
decentral1se 54646650c7 fix!: disable traefik linting when DOMAIN isn't present
continuous-integration/drone/push Build is failing Details
Also reformats the linting output to be more readable.

Closes coop-cloud/organising#319.
2023-01-23 08:31:00 +00:00
decentral1se 903aac9d7a
feat: recipe fetch command
continuous-integration/drone/pr Build was killed Details
continuous-integration/drone/push Build was killed Details
Also may have rooted out another go-git cloning bug 🙄

Closes coop-cloud/organising#365
2023-01-23 09:26:53 +01:00
decentral1se 49865c6a97 feat: app services command
continuous-integration/drone/push Build was killed Details
Closes coop-cloud/organising#372
2023-01-23 08:25:17 +00:00
decentral1se a694c8c20e
feat: filter server by recipe
Closes coop-cloud/organising#363
2023-01-23 00:54:22 +01:00
decentral1se 32de2ee5de
fix: ensure catalogue is clean/up-to-date
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
Closes coop-cloud/organising#367
2023-01-22 17:52:36 +01:00
decentral1se 6fe5aed408
fix!: remove digest handling
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
Closes coop-cloud/organising#379
2023-01-22 08:54:13 +01:00
decentral1se 03041b88d0
chore: gofmt
continuous-integration/drone/push Build is failing Details
2023-01-21 23:26:23 +01:00
3wc 4f055096e9 chore: fix Drone build, ignore auto-recipes-catalogue-json
continuous-integration/drone/push Build is failing Details
2023-01-15 18:16:53 -08:00
3wc 1403eac72c fix: parse "Status" field during `catalogue generate` 2023-01-15 17:10:45 -08:00
Cassowary a6e23938eb Add tests to jsontable.
- Test major functionality of jsontable
- Fix bug discovered in testing.
2023-01-15 17:10:36 -08:00
Cassowary cae0d9ef79 Introduce a JSON output table mechanic
- Create JSONTable as a proxy/extension to tablewriter which can also output JSON.
- Implement machine readable output for `server list` and `recipe list`
2023-01-12 21:15:14 +00:00
3wc b204b289d1 fix: disable progress bar with machine-readable output
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-12-16 10:20:51 -08:00
moritz e788ac21f6 fix: keep abra working if recipe catalogue is offline (!235)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Moritz <moritz.m@local-it.org>
Reviewed-on: #235
2022-12-13 14:42:45 +00:00
3wc a21d431541 fix: don't panic() 😅
continuous-integration/drone/push Build is passing Details
2022-11-24 17:33:59 +00:00
3wc 8fad34e430 fix: switch back to replacing <recipe>.example.com
Fixes #355
2022-11-24 17:33:59 +00:00
decentral1se 14187449a5
fix: fork passgen
continuous-integration/drone/push Build is passing Details
See coop-cloud/organising#358
2022-11-14 15:18:54 +01:00
decentral1se e41caa891d
fix: dont check ip on server when it is local
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#334.
2022-08-14 22:20:17 +02:00
decentral1se 42a6818ff4
fix: app cmd parsing, usage & tests
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
Note: the integration tests don't work due to ValidateApp still
attempting to validate the host key for the test app which doesn't
exist. This will be fixed in a future commit.
2022-08-14 16:18:58 +02:00
Franz Heinzmann (Frando) 8458e61d17
fix: branch checking logic
See https://github.com/go-git/go-git/issues/518 for why this is needed.
2022-08-11 17:49:22 +02:00
decentral1se 49f79dbd45
fix!: new catalogue URL
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-05-03 17:08:52 +02:00
decentral1se cbd924060f
fix: better local changes message
continuous-integration/drone/push Build is passing Details
2022-04-19 10:29:05 +02:00
decentral1se b27acb2f61
feat: backup/restore [ci skip]
continuous-integration/drone/pr Build is passing Details
See coop-cloud/organising#30.
2022-04-03 18:24:09 +02:00
decentral1se 323f4467c8
fix: filtering requires case-by-case handling
continuous-integration/drone/pr Build was killed Details
continuous-integration/drone/push Build was killed Details
See https://github.com/moby/moby/issues/32985.
2022-03-30 16:25:38 +02:00
decentral1se 6aa23a76a1 fix: more precise filtering
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#305.
2022-03-27 19:30:36 +00:00
decentral1se 338360096c
feat: pass domain to new app envs
continuous-integration/drone/push Build is passing Details
See coop-cloud/organising#304.
2022-03-27 21:06:48 +02:00
knoflook f432bfdd23
fix: warn when no repo on git
continuous-integration/drone/push Build is failing Details
2022-03-18 10:13:24 +01:00
decentral1se c66695d55e
fix: return err not logrus + new lines 2022-03-12 17:02:04 +01:00
decentral1se 262009701e
fix: guard against concurrent write errors 2022-03-12 16:59:45 +01:00
decentral1se d3e127e5c8
fix: retain backwards compat with TYPE/RECIPE change
continuous-integration/drone/push Build is passing Details
2022-03-11 19:37:50 +01:00
decentral1se e9cfb076c6
fix: strip length modifiers
continuous-integration/drone/push Build is passing Details
See coop-cloud/organising#297.
2022-03-11 16:40:10 +01:00
decentral1se b295958c17 fix: handle all container registries
See coop-cloud/organising#258

This fixes also how we read the digest of the image. I think it was
wrong before. Some registries restrict reading this info and we now just
default to "unknown" for that case.

This also appears to bring a wave of new dependencies due to the generic
handling logic of containers/... package. The abra binary is now 1mb
larger.

The catalogue generation is now slower unfortunately. But it is more
robust.

The generic logic looks in ~/.docker/config.json for log in details, so
you don't have to pass those in manually on the CLI anymore. We just
read those defaults. You can "docker login" to get credentials setup in
that file. Since most folks won't generate the catalogue, this seems
fine for now.
2022-02-21 08:46:30 +00:00
decentral1se 2fbdcfb958
refactor: try the meta for default branch too
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
Sometimes the Branch(...) call gets confused with state in the
repository. Its more robust to use the default value we get from gitea.

See coop-cloud/organising#299.
2022-02-20 18:07:49 +01:00
decentral1se 09ac74d205
fix: check out default branch from tags
continuous-integration/drone/push Build is passing Details
Also fix error handling to match function signatures.
2022-02-18 11:17:43 +01:00
decentral1se e056d8dc44
fix: de-dupe dns resolver logging, more concise [ci skip] 2022-02-14 18:06:06 +01:00
decentral1se 6b2a0011af
fix: remove dupe logging on catalogue reading [ci skip] 2022-02-14 17:37:25 +01:00
decentral1se 46fca7cfa7
docs: less ambig wording [ci skip] 2022-02-14 17:35:42 +01:00
decentral1se 82d560a946
fix: prompt for input on app cp
continuous-integration/drone/push Build is passing Details
2022-02-14 17:10:53 +01:00
decentral1se 0557284461 fix: use new repo name
continuous-integration/drone/push Build is passing Details
2022-02-09 08:58:51 +00:00
decentral1se bfeda40e34
fix: catch more ssh failure modes with help
continuous-integration/drone/push Build is passing Details
2022-02-03 13:43:11 +01:00
decentral1se 58e98f490d
refactor!: type -> recipes
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is passing Details
2022-01-27 12:06:32 +01:00
decentral1se a23124aede feat: auto strip domain names to avoid runtime limits
continuous-integration/drone/push Build is passing Details
2022-01-27 10:33:21 +00:00