Repository navigation
Release 2.0.0 - #76
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
2.0.0
This is a release with breaking changes to resource names
and two values keys. First make a backup of your database and media files.
upgrade to wger 2.7, also have a look at the release note of the wger app:
https://github.com/wger-project/wger/releases/tag/2.7
before upgrading make sure
app.timezoneis set correctly and treat it asfixed afterwards: the 2.7 migrations convert the old workout session dates
using this zone
new wger 2.7 settings:
app.maxSessionLengthHours(default5),app.showAppStoreLinks(defaulttrue) andapp.global.useXForwardedHost(default
false)powersync sync rules updated for wger 2.7: the removed
weight_weightentrytable is gone, body weight entries are synced as measurements. Stop powersync
while the wger 2.7 database migrations run, then start it again (use
powersync.replicas, akubectl scaleis reverted byhelm upgrade):PowerSync reprocesses all buckets once with the new rules.
powersync
api.parameters.max_parameter_query_resultsraised to 10000 as aworkaround for the PSYNC_S2305 bug with large nutrition logs
new optional OAuth2/OIDC provider:
app.oauth2Provider.enabled(defaultfalse) creates the<release>-oidcsecret with a generated signing key(or
app.oauth2Provider.secret.privateKey)Breaking: resources are now prefixed with the release name
All fixed-name resources are now named
<release>-<suffix>, so severalreleases can share a namespace:
django<release>-djangomail<release>-mailjwt<release>-jwtflower<release>-flowerredis<release>-redispowersync<release>-powersyncwger-media<release>-mediawger-static<release>-staticwger-celery-beat<release>-celery-beat(the
wger-pg-initConfigMap keeps its static name — it must match theuntemplatable
postgres.extraScriptssubchart value)Upgrade notes:
Generated passwords are preserved automatically: on the first upgrade
the new secrets copy their values from the old unprefixed ones.
PVCs / your data: if your release is named
wgerthe media and staticPVC names are unchanged (
wger-mediaetc.) and nothing happens. For anyother release name, point the chart at your existing claims before
upgrading, otherwise the volumes are recreated empty:
JWT: the keygen hook creates fresh keys under
<release>-jwt, so mobileclients have to log in again once. To avoid this, pin the old secret name:
(the same opt-out works for the django, mail and flower secret names)
Redis authentication: if you enabled it, update the
secretKeyRefinyour
redis.envvalues block fromredisto<release>-redis.The old unprefixed secrets are left behind and can be deleted once the
upgrade is verified.
Breaking:
PullPolicyrenamed topullPolicyapp.global.image.PullPolicyandpowersync.image.PullPolicyare nowlowercase
pullPolicy. Installs still using the old key fail with a clearerror message instead of silently ignoring the setting.
Behavior changes
helm upgrade: the randomrollmeannotation was replaced with checksums over the values that feed the
secrets and mounted configmaps. Pods restart only when their configuration
actually changes. Exception: while
app.jwt.secret.update: trueis setwithout explicit keys, every upgrade still restarts the JWT consumers.
SECRET_KEYand the flower password are no longer regeneratedon every upgrade — user sessions now survive upgrades
celery.syncExercises,celery.syncImages,celery.syncVideos,celery.warmupExercisesCache,celery.warmupExercisesCacheAll) can now actually be set tofalse;previously
falsewas silently rendered as"True"./manage.py setup-powersync-storagein its own pod using the wger imageinstead of
kubectl exec-ing into the app pod; the pod-execServiceAccount/Role/RoleBinding were removed
running with the old config)
Other changes
<release>-powersync-compactruns the powersync service'scompactcommand daily (at 03:00) to reclaim sync bucket storage, whichself-hosted instances don't do on their own. Configure via
powersync.compact.enabled/schedule/resourcesapp.global.initImage(defaultdocker.io/busybox:1.37) andapp.jwt.keygenImage(defaultdocker.io/alpine:3.22)wger-pg-initConfigMap is only created whenpostgres.enabledis trueapp.kubernetes.io/instance,version,managed-by,helm.sh/chart) added to all chart resourcesapp.proxyCount(useapp.global.proxyCount) andpowersync.replicasWorkerREFRESH_TOKEN_LIFETIMEtemplate fallback of 2880; theeffective default stays 2880 (hours) as set in
values.yamlvalues.yamlinstead of being duplicated in thetemplates;
app.mail.port(587),app.django.existingDatabase.engine,existingSecret.dbuserKey/dbpwKey(USERDB_USER/USERDB_PASSWORD) andpowersync.configPathnow show their real defaultsno rendering changes beyond the ones listed above