Prepare the image for Peering Manager 1.11 - #48
Merged
Merged
Conversation
Peering Manager 1.11 exports its requirements with environment markers, which limits the tzdata package to Windows. Alpine ships no time zone data of its own, so Python could not resolve a single zone and every page that renders a date answered with a server error.
Unit matched only `/static/*`, so a deployment under a base path lost its stylesheets and its scripts. The container now asks Django for the base path in use, whatever file sets it, and publishes the static directory under that path.
As of 1.11 the rqworker schedules housekeeping and PeeringDB synchronisation itself, so the 2 extra services ran each task a second time. A PeeringDB synchronisation can take about 90 minutes, so an overlap starves the worker. They stay behind a profile for anyone who prefers an external scheduler.
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.
Peering Manager 1.11 needs Python 3.12 and PostgreSQL 15 or later, and it
schedules its own system jobs. This branch brings the image and the compose
stack in line with it, and fixes two problems that 1.11 exposes.
Package the time zone database. The 1.11 requirements limit the tzdata
package to Windows, and Alpine ships no zone data of its own, so every
page that renders a date answered with a server error.
Build on Alpine 3.24 and Python 3.14. That release renames the NGINX Unit
packages to freeunit and drops the unversioned PostgreSQL packages.
Serve the static files under the base path, whatever file sets it. Unit
matched only
/static/*, so a deployment under a base path lost itsstylesheets and its scripts. Closes CSS Issues when BASE_PATH is set聽#39.
Expose more settings as environment variables, among them BASE_PATH and
the settings that 1.11 introduces.
Leave housekeeping and PeeringDB synchronisation to the in-app scheduler.
The two services stay available behind the
external-schedulerprofilefor anyone who prefers an external one.
Give the migrations more time before the health check gives up, because
the upgrade moves the cached IRR data to new tables.
Verified against the published v1.11.0 image. The workflow passes, and a
compose stack serves the dashboard and every asset it references, with and
without a base path. The application test suite passes inside the image.
The
VERSIONfile is untouched, so it stays for the release commit.