Commit Graph

360 Commits

Author SHA1 Message Date
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
decentral1se c7062e0494
fix: initial subcmd completion
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
Broken by migration to v1 API.
2022-01-20 11:42:04 +01:00
decentral1se 13e582349c
fix: correctly override with ~/.ssh/config if failing to connect
continuous-integration/drone/push Build is passing Details
2022-01-19 13:28:57 +01:00
decentral1se b9ec41647b
fix: when upgrading, skip over bad tags, don't error out
continuous-integration/drone/push Build is passing Details
2022-01-19 10:40:55 +01:00
decentral1se f9a2c1d58f
refactor: put StripTagMeta into formatter package
Avoid circular import.
2022-01-19 10:40:14 +01:00
decentral1se 0e688f1407
refactor!: migrate to urfave/cli v1
continuous-integration/drone/push Build is passing Details
Better flexible flags handling.
2022-01-18 14:38:20 +01:00
decentral1se 7733637767
fix: ensure catalogue cloned for catalogue reliant commands
continuous-integration/drone/push Build is passing Details
2022-01-18 11:19:33 +01:00
decentral1se fc2d83d203
fix: better error message for missing server 2022-01-17 22:04:11 +01:00
decentral1se d7cf11b876
fix: further fixes for gracefully handling missing tag
continuous-integration/drone/push Build is passing Details
Follows 1b37d2d5f5.
2022-01-05 17:58:15 +01:00
decentral1se 74dfb12fd6
refactor: centralise tag meta stripping 2022-01-05 17:32:33 +01:00
decentral1se 66d5453248
docs: recommend more helper commands for deploy timeout 2022-01-03 16:33:28 +01:00
decentral1se ba9abcb0d7
fix: increase converge timeout 2022-01-03 16:33:18 +01:00
decentral1se 7a0d18ceb6
fix: show unknown insteaf of empty for missing version
continuous-integration/drone/push Build is passing Details
2022-01-01 17:23:21 +01:00
decentral1se 8992050409
docs: dont metion git explicitly in user messages 2022-01-01 17:23:04 +01:00
decentral1se abd094387f
fix: use scale for restarting
The other approach wasn't working. Duplicating containers on restart.
You'd end up with 2 containers per restart...
2022-01-01 17:22:35 +01:00
decentral1se a556ca625b
fix: handle StackName / Name correctly 2022-01-01 17:22:19 +01:00
decentral1se 1b7836009f
test: spec out check tests [ci skip] 2021-12-31 17:19:30 +01:00
decentral1se eb3509ab3f
refactor: drop uneccessary structs
continuous-integration/drone/push Build is passing Details
2021-12-31 17:12:09 +01:00
decentral1se ce96269be0
fix: more fixed for dry mode, this time tested :)
Follows 299276c383.
2021-12-31 13:37:03 +01:00
decentral1se 866cdd1f29
feat: service name in ps output
continuous-integration/drone/push Build is passing Details
2021-12-31 12:59:31 +01:00
decentral1se 95d385c420
fix: GetService & handling missing services 2021-12-31 12:49:31 +01:00
decentral1se 930ff68bb2
refactor: drop unused function
continuous-integration/drone/push Build is passing Details
2021-12-30 00:42:37 +01:00
decentral1se 62441acf03
refactor: use SmallSHA 2021-12-30 00:41:21 +01:00
decentral1se 5cacd09a04
refactor: remove old/non-urgen/resolved FIXMEs 2021-12-28 01:35:40 +01:00
decentral1se 6a98024a2b
refactor: drop old/upstream TODOs 2021-12-28 01:31:50 +01:00
decentral1se f5d2d3adf6
refactor: formatter gets own package 2021-12-28 01:24:23 +01:00
decentral1se 0aa37fcee8
refactor!: simplifying publish logic
continuous-integration/drone/push Build is passing Details
2021-12-27 19:56:27 +01:00
decentral1se eb1b6be4c5
fix: auto-config ssh urls and push to them
continuous-integration/drone/push Build is passing Details
2021-12-27 18:06:56 +01:00
decentral1se b98397144a
fix: wording 2021-12-27 18:06:46 +01:00
decentral1se 4c186678b8
fix: clone https url by default
Catalogue package had to be merged into the recipe package due to too
many circular import errors. Also, use https url for cloning, assume
folks don't have ssh setup by default (the whole reason for the
refactor).
2021-12-27 16:45:56 +01:00
decentral1se c13f438580
refactor: remove old code 2021-12-27 04:03:53 +01:00
decentral1se 9c281d8608
fix: flags for logging in
continuous-integration/drone/push Build is passing Details
2021-12-27 03:27:05 +01:00
decentral1se c5a74e9f6b
fix: template env files too
continuous-integration/drone/push Build is passing Details
2021-12-26 04:38:34 +01:00
decentral1se cdc08ae95a
fix: much hacking, maybe fixed catalogue generation
continuous-integration/drone/push Build is passing Details
2021-12-26 04:02:40 +01:00
decentral1se 3f35510507
fix: runtime caching for catalogue generation 2021-12-26 04:01:02 +01:00
decentral1se b0834925a3
fix: log in correctly
See #139.
2021-12-26 03:44:29 +01:00
decentral1se 17340a79da
refactor: more local var 2021-12-26 00:14:48 +01:00
decentral1se 779c810521
refactor: less quotes, less verbose 2021-12-26 00:14:32 +01:00
decentral1se 9a1cf258a5
fix: check published version properly
Resulted in a refactor to a new lint package.
2021-12-26 00:00:19 +01:00
decentral1se ba8138079f
fix: use one function for up-to-date checks 2021-12-25 23:45:52 +01:00
decentral1se 8735a8f0ea
feat: lint before deploy/upgrade/rollback
See coop-cloud/organising#254.
2021-12-25 23:35:45 +01:00
decentral1se a84a5bc320
feat: more robust linting
See coop-cloud/organising#254.
2021-12-25 23:22:50 +01:00
decentral1se e2c3bc35c3
fix: handle missing label 2021-12-25 17:02:47 +01:00
decentral1se 6937bfbb0d
fix: if no remotes, skip on 2021-12-25 16:56:21 +01:00
decentral1se 4283f130a2
refactor: apps -> recipes 2021-12-25 14:04:07 +01:00
decentral1se 3b5354b2a5
refactor: less quotes
continuous-integration/drone/push Build is passing Details
2021-12-25 02:03:09 +01:00
decentral1se 14400d4ed8
fix: sync recipes from remotes
continuous-integration/drone/push Build is passing Details
2021-12-24 16:06:29 +01:00
decentral1se dddf84d92b
fix: avoid default value for idf
We could default to ~/.ssh/id_rsa but if that doesn't exist, then we'll
just be confusing people in the logs. Best is to just rely on the
ssh-agent which overrides this anyway. We will document this.

See coop-cloud/organising#277
2021-12-24 15:39:44 +01:00
decentral1se fefb042716
fix: shorter timeout on deploy
continuous-integration/drone/push Build is passing Details
2021-12-24 02:26:02 +01:00
decentral1se ab8db8df64
feat: deploy --no-converge-checks & finish app errors 2021-12-24 02:23:46 +01:00
decentral1se e839f100df
fix: move that back, still wrong but less wrong 2021-12-24 01:32:42 +01:00
decentral1se 41a757b7ed
fix: only show when success is for sure 2021-12-24 00:44:50 +01:00
decentral1se 4b4298caf1
fix: better wording 2021-12-24 00:44:49 +01:00
decentral1se 8e8c241fdf
refactor: less quotes 2021-12-24 00:44:49 +01:00
decentral1se 9b8ff1ddcd
fix: get branch is now more robust 2021-12-24 00:44:44 +01:00
decentral1se fc29ca6fce
refactor: less quotes 2021-12-24 00:25:45 +01:00
decentral1se 014d32112e
fix: ensure tags & commits are pushed
continuous-integration/drone/push Build is passing Details
2021-12-23 02:24:43 +01:00
decentral1se a7894cbda9
fix: better explanation 2021-12-23 02:10:57 +01:00
decentral1se 0362928840
fix!: parse ttl correctly 2021-12-23 01:41:12 +01:00
decentral1se 7a5aa1b005
test: make them work again
continuous-integration/drone/push Build is passing Details
2021-12-23 01:06:56 +01:00
decentral1se a07e71f7df
fix: grand ssh, provisioning, perms refactor
continuous-integration/drone/push Build is failing Details
See coop-cloud/organising#280.
See coop-cloud/organising#273.
2021-12-22 20:08:15 +01:00
decentral1se ec7223146b
docs: better timeout error 2021-12-21 23:48:32 +01:00
decentral1se fa45264ea0
refactor: the grand recipe release refactor 2021-12-21 19:25:44 +01:00
decentral1se 2b1cc9f6dd
docs: less quotes, more clarity on init 2021-12-21 02:28:14 +01:00
decentral1se fc3742212c
fix: more reliable syncing 2021-12-21 01:48:37 +01:00
decentral1se fccbd7c7d7
chore: style lines 2021-12-21 01:48:21 +01:00
decentral1se ae9e66c319
docs: less quotes, different quotes 2021-12-20 01:05:51 +01:00
decentral1se 8d499c0810
fix: find local only apps 2021-12-20 00:50:09 +01:00
decentral1se 0a903f041f
refactor: less quotes 2021-12-20 00:49:36 +01:00
decentral1se bf82bc9c7f
feat: add dryflag, implement push for catalogue generate 2021-12-19 23:59:40 +01:00
decentral1se 5113db1612
refactor: centralise git commit machinery 2021-12-19 23:51:03 +01:00
decentral1se 88d4984248
docs: wording 2021-12-19 23:29:05 +01:00
decentral1se 4c66e44b3a
fix: use new recipes.json path 2021-12-19 23:17:46 +01:00
decentral1se 033bad3d10
fix: handle empty image meta 2021-12-19 23:14:43 +01:00
decentral1se a750344653
refactor: better wording 2021-12-19 23:14:29 +01:00
decentral1se f5caf5587a
refactor: fix log style and add recipe context 2021-12-19 23:08:03 +01:00
decentral1se fdc9e8b5fd
refactor: improved log messages and less quotes 2021-12-19 23:02:58 +01:00
decentral1se 75edcabb23
fix: show progress on meta reading 2021-12-19 22:57:38 +01:00
decentral1se fa0a63c11d
refactor: ensure type, drop comment 2021-12-19 22:45:08 +01:00
decentral1se 3d3eefb2fe
fix: bail out definitely on that error
See coop-cloud/organising#278.
2021-12-19 22:44:19 +01:00
decentral1se b8e2d1de67
refactor: move function into web package 2021-12-19 15:57:00 +01:00
decentral1se 3b7a8e6498
docs: add missing docstrings 2021-12-19 15:56:59 +01:00
decentral1se 8215bb455b
fix: warn if secrets still exist
continuous-integration/drone/push Build is passing Details
2021-12-13 12:29:26 +01:00
decentral1se d087a60e09
Revert "fix: dont throw away changes"
continuous-integration/drone/push Build is passing Details
This reverts commit dd0f328a65.

Part of coop-cloud/organising#282.
2021-12-12 02:04:13 +01:00
decentral1se 48e16c414c
fix: use correct error format
continuous-integration/drone/push Build is passing Details
2021-12-12 01:56:43 +01:00
decentral1se f3e55e5023
fix: support registry login details
continuous-integration/drone/push Build is passing Details
2021-12-12 01:52:28 +01:00
decentral1se ae6adace50
refactor: autocomplete package
continuous-integration/drone/push Build is passing Details
2021-12-12 00:17:39 +01:00
decentral1se 32dcddb631
fix: select containers if we find multiple 2021-12-12 00:04:37 +01:00
decentral1se 3dbd343600
fix: dont double append root path
continuous-integration/drone/push Build is passing Details
2021-12-11 20:24:38 +01:00
decentral1se 8393f4b134
fix: log discovered paths 2021-12-11 20:24:29 +01:00
decentral1se 8e56607cc9
fix: use default 2021-12-11 20:13:55 +01:00
decentral1se 85a543afac
fix: maybe more robust gitignore checks
continuous-integration/drone/push Build is passing Details
2021-12-11 20:11:59 +01:00
decentral1se 665396b679
fix: join path correctly
continuous-integration/drone/push Build is passing Details
2021-12-11 20:01:30 +01:00
decentral1se 870c561fee
Revert "Revert "fix: include ignored files""
This reverts commit 9be78bc5fa.

Attempting to fix this once again.
2021-12-11 19:53:35 +01:00
decentral1se 3fb43ffa2c
Revert "fix: match exact on filtering" [ci skip]
This reverts commit 2bc2f8630b.

This breaks other stuff. Reverting!
2021-12-09 14:12:16 +01:00
decentral1se 2bc2f8630b
fix: match exact on filtering
continuous-integration/drone/push Build is passing Details
2021-12-06 01:26:04 +01:00
decentral1se 2db5378418
fix: dont add .git dirs
Closes coop-cloud/organising#276.
2021-12-05 01:30:23 +01:00
decentral1se 7d8f3f1fab
fix: less loose permissions, less +x
Closes coop-cloud/organising#283.
2021-12-05 01:18:31 +01:00
knoflook 9be78bc5fa
Revert "fix: include ignored files"
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
This reverts commit aea5cc69c3.
2021-12-03 11:39:56 +01:00
decentral1se 962f566228
fix: go on with missing tag
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#264.
2021-11-26 21:34:21 +01:00
decentral1se 748d607ddc
fix: better converge output
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#263.
2021-11-26 21:24:15 +01:00