Fully support service namespacing and revision tagging
Summary
This release add support and requirement for service namespaces and service revision tags. This allows services to be versioned and provides a more familiar format for service IDs that's, for example, similar to Docker image names (e.g. octue/example-service:latest
). Full validation of service IDs comes as part of this.
The new octue deploy create-push-subscription
has also been added as requested by users and will be accompanied by a GitHub action in another repository.
Contents (#529)
IMPORTANT: There are 4 breaking changes.
New features
- 💥 BREAKING CHANGE: Add support for and require revision tags for services
- 💥 BREAKING CHANGE: Validate service IDs before creating or questioning services
- Add ability to set service namespace, name, and revision tag by environment variable
- Add
octue deploy create-push-subscription
CLI command
Enhancements
- 💥 BREAKING CHANGE: Require services to have a namespace and replace use of
organisation
withnamespace
in service configurations - 💥 BREAKING CHANGE: Remove
namespace
parameter fromTopic
andSubscription
and applyoctue.services
Pub/Sub namespace to all topic/subscription paths - Remove application of
octue.services
Pub/Sub namespace fromService
- Use a
coolname
revision tag to allow a service revision with a non-unique SRUID to start as a unique service revision when using theoctue start
CLI command - Set the
Service.id
attribute to the user-friendly SRUID instead of the Pub/Sub-friendly SRUID - Return SRUID from
DataflowDeployer.deploy
Fixes
- Handle inability to find/load version compatibility data file
- Use latest Apache Beam base image in Dataflow
Dockerfile
- Fix some log and error messages
Operations
- Speed up and simplify
release
workflow - Use new Octue GitHub actions in workflows
- Improve installation process in main
Dockerfile
- Use latest commit message checker
Dependencies
- Update Dataflow
setup.py
file
Refactoring
- Rename
OCTUE_NAMESPACE
toOCTUE_SERVICES_NAMESPACE
- Remove cool-naming of services when instantiated without
id
and simplify thename
argument
Upgrade instructions
💥 Add support for and require revision tags for services
The ServiceConfiguration.service_id
attribute and the SERVICE_ID
environment variable have been removed.
-
ServiceConfiguration
: Useoctue.cloud.service_id.create_service_id
to create IDs fromServiceConfiguration.namespace
andServiceConfiguration.name
-
SERVICE_ID
environment variable: Use the newOCTUE_SERVICE_NAMESPACE
,OCTUE_SERVICE_NAME
, andOCTUE_SERVICE_REVISION_TAG
environment variables.
💥 Validate service IDs before creating or questioning services
Update your services' namespaces, names, and revision tags to follow the requirements set out in the Creating services
doc.
💥 Require services to have a namespace and replace use of organisation with namespace in service configurations
Provide the namespace
key in the service configuration (the octue.yaml
file). If you were using the organisation
key before, the namespace
key now replaces it. Examples of a namespace
are your organisation's name or your GitHub username.
💥 Remove namespace parameter from Topic and Subscription and apply octue.services Pub/Sub namespace to all topic/subscription paths
The octue.services
namespace is now mandatory and applied automatically in topic and subscription paths. Please stop providing the namespace
argument if you were providing it before.