Skip to content

Comments

arm64 and kubernetes compatibility#1407

Open
mrboogiee wants to merge 110 commits intoopengisch:masterfrom
mrboogiee:master
Open

arm64 and kubernetes compatibility#1407
mrboogiee wants to merge 110 commits intoopengisch:masterfrom
mrboogiee:master

Conversation

@mrboogiee
Copy link

I tried to get things running on my arm64 kubernetes cluster and had to solve several things. The changes posted are mostly the result of having Claude Sonnet try and fix the issues one at a time (had to try working with it sometime...). As far as I can see things now work on my k8s environment. If I run into other things I will keep you posted.

I will also take some time to cleanup the changes in my fork of the helm chart repository to see if I can give that one a push with some cleaned up code but that will happen at a later moment in time

suricactus and others added 30 commits October 15, 2025 13:45
- Use Ubuntu's QGIS packages for ARM64 (QGIS.org doesn't provide ARM64 builds)
- Keep official QGIS repository for AMD64 with version pinning
- Create architecture-aware LD_PRELOAD setup script
- Add fallback logic for QGIS package installation
- Add libgdal-dev to both builder and base stages
- Set GDAL_CONFIG environment variable to help package builds
- Ensure fiona and other geospatial packages can build on ARM64
- Add g++ to both builder and base stages
- Add python3-dev to base stage for complete build environment
- Required for compiling fiona package C++ extensions on ARM64
- Clean up YAML formatting in GitHub workflows
- Improve indentation and consistency in docker-compose override
- Remove trailing whitespace in Dockerfile comments
- No functional changes, only formatting improvements
worker backend not working properly yet
…s backend detection

- Added QFIELDCLOUD_WORKER_BACKEND setting to Django settings.py
- This allows the worker_wrapper factory to detect kubernetes backend
- Fixes worker crashes when using Kubernetes backend for QGIS processing
- Enables image builds when pull requests are created/updated
- Allows testing with PR-specific image tags before merging to master
- Improves CI/CD workflow for feature branch development
Add pull_request trigger to build_and_push workflow
- Enable Docker Hub push for pull requests targeting master branch
- Force latest tag creation for PRs to master
- This ensures latest worker-wrapper images are available during development
Fix Docker Hub latest tag for pull requests to master
- Initialize Kubernetes client once and reuse it across calls
- Prevents config reloading on every cancel_orphaned_k8s_workers() call
- Resolves authentication failures caused by frequent client initialization
- Improves performance by eliminating redundant config loading
Rakanhf and others added 30 commits November 27, 2025 16:23
We should never make dicts or lists as default.

Also added some typing.
This field doesn't belong on the `Plan` model, since it doesn't make sense for
the always free / community "no-op" plans.

It is therefore moved to an internal app where it belongs, and dropped from
the `Plan` model.

Co-authored-by: Thanassis Drivas <thanasisdrivas@gmail.com>
Sometimes QFieldCloud projects get negative values in `Project.file_storage_bytes`. This is obviously wrong
After digging deep we decided to use `recompute_storage=True` when saving the `Project` model, since It won't have a big impact on speed or resources
This bumps the postgis image that is used in .env.example to 17-3.5-alpine.
QFieldCloud Version added to the admin panel, to show the users the current version

- Add `SENTRY_RELEASE` in settings.py with a default value of "dev".
- Created a new template tag to retrieve the QFieldCloud version for use in templates.
- Override a new base.html template for admin with footer information including version details. [Source Code](https://github.com/farridav/django-jazzmin/blob/main/jazzmin/templates/admin/base.html)
client_max_body_size, proxy_connect_timeout, proxy_read_timeout and
proxy_send_timeout are now set via ENV variables.
Example dotenv is updated accordingly.
Docker compose file supplies the variables and sets defaults to what
they were before in nginx default.conf.template.
…O fix:

This uses django-auditlog from git, pinned to a commit that contains a fix we
need to prevent a bug during SSO login.

See jazzband/django-auditlog#784

This change also adds `git` as a dependency to the app Dockerfile, since it's
now needed during `pip install`.

Once the next version of django-auditlog is released (e.g. 3.3.1), this should
be reverted back to a regular version, and `git` should be removed from the
Dockerfile again.
This sets the new auditlog setting AUDITLOG_LOGENTRY_MODEL to its default
value of "auditlog.LogEntry" in settings.

This is necessary because on current master of `django-auditlog` this new
setting was added a couple weeks ago. And depending on the exact loading
order in INSTALLED_APPS, Django might trigger module autodiscovery from
django.contrib.admin *before* auditlog has had a chance to initialize this
setting with its default value.

This could potentially be avoided by changing the position of `auditlog` in
INSTALLED_APPS, but that seems like a much riskier change. Explicitly adding
this setting with its default value to our configuration makes it independent
of the exact loading order, and seems safer to me.
- Add libgdal-dev to both builder and base stages
- Set GDAL_CONFIG environment variable to help package builds
- Ensure fiona and other geospatial packages can build on ARM64
- Add g++ to both builder and base stages
- Add python3-dev to base stage for complete build environment
- Required for compiling fiona package C++ extensions on ARM64
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants