Adds logging with structlog.
Structlog is configured to generate key-value log strings in test/development and JSON-formatted strings in production.
@log_route decorator creates a new logger and binds metadata about a request, such as a unique request ID, method and path.
It also logs the response latency and status when the route returns.
The auth decorators bind the username once the user is known.
In this version we’ve dropped the
nginx-ssl-proxy pod that we’ve used thus far and adopted the standard Kubernetes Ingress resources for TLS termination instead.
This means that the Keeper service is now a NodePort-type service.
The advantage of using Ingress is that we can rely on Google to maintain that resource and ensure that the TLS-terminating proxy is updated with new security patches.
- Migrate to setuptools-based packaging.
LTD Keeper is now
pip install‘d into the Docker image at build time using the local sdist distribution (there are no plans to put LTD Keeper itself on PyPI).
- Use setuptools_scm to automatically establish the application version based on the Git tag.
- Automate the creation of the Docker image in Travis CI.
The image is tagged with the branch or tag name.
The build for the
masterbranch is labeled as
- Build and testing are coordinated with a brand new Makefile.
Added the explicit idea of tracking modes to edition resources.
This determines whether or not an edition is updated with a new build.
The mode is set with the
mode field of the
The default tracking mode (
git_refs) is to update if a build resource has the right git ref (a tag or branch name).
lsst_doc tracking mode allows an edition to watch for builds with git refs formatted as
v<Major>.<Minor> and always publish the newest such tag.
This supports the revised LSST DM document release procedure: https://developer.lsst.io/v/DM-11952/docs/change-controlled-docs.html
Removed some technical debt and drift in the Kubernetes deployment templates.
Support non-DM JIRA ticket types (such as
tickets/LCR-N) when auto-slugifying.
Upload directory redirect objects to S3 that tell Fastly to redirect a browser from a directory path to the
Fastly API interactions.
Minimum viable API with Edition, Build, and Product routes.
Interaction with AWS S3 and Route53 with product provisioning and build uploads.