arm64 and kubernetes compatibility#1407
Open
mrboogiee wants to merge 110 commits intoopengisch:masterfrom
Open
arm64 and kubernetes compatibility#1407mrboogiee wants to merge 110 commits intoopengisch:masterfrom
mrboogiee wants to merge 110 commits intoopengisch:masterfrom
Conversation
- 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
Arm64 compatibility
Arm64 compatibility
k8s compatibility
Arm64 compatibility
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
Arm64 compatibility
- 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
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
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.
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