wger-project / helm-charts Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Affero General Public License v3.0
License: GNU Affero General Public License v3.0
I use arm64 for my little cluster, the bitnami chart's don't (and never will) support arm64. Also they don't use the offical image provided by the PostgreSQL and Redis, they often support arm64.
Therefore i suggest using the charts from groundhog2k
, he is using the upstream images:
I already created a branch for arm64 support in my fork, if wanted i can create a pull request:
Yours,
bbk
Hey @sedadas and @InputObject2 ,
we're adding some celery workers to the docker compose file, at the moment only to download ingredient images, later to sync data from fitbit or similar services: https://github.com/wger-project/docker/blob/feature/celery/docker-compose.yml#L76
What exactly do I need to add here so that everything works? (only celery_beat
and celery_worker
are important, celery_flower
is only a monitor tool)
Add the possibility to set the digest of the image instead of the tag to give the possibility to fix a specific version of the image used.
This gives more control upgrading the application and prevents unexpected upgrades.
Example:
image: wger/server@sha256:87a2f66ac8679e15998e54c705ffd9a325ca396b63d9860ab3f32c99380374af
Currently only tag
is supported.
To help developing and give flexibility for the upgrade procedure add a hidden feature, mounting the wger code from a persistent volume.
This gives the possibility to checkout a specific code revision.
Currently the mail configuration can be done with environment variables.
Now move all mail related settings to a new section in the values.yml
, where the password will be saved into a secret. Also it should be possible to use a existing secret.
For celery to be distributed on different nodes, the container needs to get it's a own deployment.
When app.global.image.PullPolicy
will be set to IfNotPresent
and the latest
docker image tag will be used, it will not upgrade the image when a new latest
is released.
This can be a good thing to keep it a bit more stable, but can also be a problem when one node running latest:X
and a other one latest:Y
. Keeping it on Always
has the downside that it always downloads the image when the pod is restarted, which then upgrades the app.
As wger is developed in a rolling release manner, i wonder what is best here to set.
Shall it be IfNotPresent
or Always
?
Add exclusions for .tgz files in sub-folders
When enabling persistence through the values the media and static volume mounts are not writable by the wger user.
Allow setting of ingressClassName through values.yaml
Publish the chart on the Artifact Hub:
Just a heads up @bbkz , the redis service has its own volume now (was creating an unnamed one on every startup otherwise). I'm guessing that persistent-volume-claim.yaml
and so on should be edited but I would leave the details to the professionals ๐
Review if the setup with minikube works. Consider to remove it from the Readme.md
.
I used the helm chart as described in https://github.com/sedadas/helm-charts
Everything seemed to have started up successfully:
NAME READY STATUS RESTARTS AGE
wger-app-0 1/1 Running 0 3m5s
wger-postgresql-0 1/1 Running 0 3m5s
wger-redis-master-0 1/1 Running 0 3m5s
wger-redis-replicas-0 1/1 Running 0 3m5s
wger-redis-replicas-1 1/1 Running 0 48s
wger-redis-replicas-2 0/1 Running 0 21s
but when I try to:
kubectl proxy
and visit http://localhost:8001/api/v1/namespaces/wger/services/wger-http:8000/proxy/en
I get following error:
<h1>DoesNotExist
at /en/software/features</h1>
<pre class="exception_value">Language matching query does not exist.</pre>
Request Method: | GET
-- | --
http://192.168.39.79:8443/en/software/features
3.2.11
DoesNotExist
Language matching query does not exist.
/usr/local/lib/python3.9/dist-packages/django/db/models/query.py, line 435, in get
/usr/bin/python3
3.9.5
['/home/wger/src', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/wger/.local/lib/python3.9/site-packages', '/home/wger/src', '/usr/local/lib/python3.9/dist-packages', '/usr/lib/python3/dist-packages', '/home/wger/src']
Mon, 24 Jan 2022 15:05:24 +0000
Environment:
Request Method: GET
Request URL: http://192.168.39.79:8443/en/software/features
Django Version: 3.2.11
Python Version: 3.9.5
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.staticfiles',
'django_extensions',
'storages',
'wger.config',
'wger.core',
'wger.mailer',
'wger.exercises',
'wger.gym',
'wger.manager',
'wger.nutrition',
'wger.software',
'wger.utils',
'wger.weight',
'wger.gallery',
'wger.measurements',
'captcha',
'django.contrib.sitemaps',
'easy_thumbnails',
'compressor',
'crispy_forms',
'rest_framework',
'rest_framework.authtoken',
'django_filters',
'django_bootstrap_breadcrumbs',
'corsheaders')
Installed Middleware:
('corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'wger.utils.middleware.JavascriptAJAXRedirectionMiddleware',
'wger.utils.middleware.WgerAuthenticationMiddleware',
'wger.utils.middleware.RobotsExclusionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware')
Traceback (most recent call last):
File "/home/wger/src/wger/utils/language.py", line 54, in load_language
language = Language.objects.get(short_name=used_language)
File "/usr/local/lib/python3.9/dist-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/django/db/models/query.py", line 435, in get
raise self.model.DoesNotExist(
During handling of the above exception (Language matching query does not exist.), another exception occurred:
File "/usr/local/lib/python3.9/dist-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/usr/local/lib/python3.9/dist-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/wger/src/wger/software/views.py", line 37, in features
return render(request, 'features.html', context)
File "/usr/local/lib/python3.9/dist-packages/django/shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/usr/local/lib/python3.9/dist-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/usr/local/lib/python3.9/dist-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/usr/local/lib/python3.9/dist-packages/django/template/base.py", line 168, in render
with context.bind_template(self):
File "/usr/lib/python3.9/contextlib.py", line 117, in __enter__
return next(self.gen)
File "/usr/local/lib/python3.9/dist-packages/django/template/context.py", line 244, in bind_template
updates.update(processor(self.request))
File "/home/wger/src/wger/utils/context_processor.py", line 28, in processor
language = load_language()
File "/home/wger/src/wger/utils/language.py", line 57, in load_language
language = Language.objects.get(short_name="en")
File "/usr/local/lib/python3.9/dist-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/django/db/models/query.py", line 435, in get
raise self.model.DoesNotExist(
Exception Type: DoesNotExist at /en/software/features
Exception Value: Language matching query does not exist.
The wger image now supports setting a redis password <-#.
This needs to be added to the helm chart as well.
After tzdata
is added to the latest docker image TZ
env apart from TIME_ZONE
can be added.
Readme.md
Postre and redis dependencies in the chart are outdated.
my local testing shows the helm chart works with the latest releases.
I suggest updating
When axes is enabled and as we normally run wger behind a reverse proxy, the real ip
must be provided somehow. For this to work the cluster must be setup to provide this.
But finally also axes must listen for this:
Otherwise wger will be offline.
Hello,
I installed the helm chart and was having issues logging in with a recently registered username/password.
I checked logs of postgres pod and found these logs, maybe it is related?
FATAL: role "postgres" does not exist
I have attached values yaml used
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.