← Back to Changelog

13th September 2021

Dynamic Runtime Configuration for Jobs, Improvements to API, Addons and Templates

Today we are excited to announce dynamic runtime configuration for Jobs on Northflank. It is now possible to configure environment variables and container image arguments for unique invocations of your job runs.

  • Every invocation spawns a container with its own resources (current maximum 2 vCPU & 4 GB RAM)
  • Unlimited execution time billed by the second of execution - pay for a powerful and limitless elastic compute only when you need it
  • Optionally configure job retry limit and max execution time

Deploy a diverse range of workloads to Northflank with the ability to choose the most suitable runtime environment to get the best capability, cost and performance for your workload:

  • Services: sustained runtime with elastic compute required to serve requests continuously
  • Jobs: on-demand runtime with elastic compute to process background tasks as required

Example use cases

  • Trigger a game server for a matchmade game
  • Convert batch media files to different formats
  • Generate and send PDFs to your users with configuration set via environment variables
  • Calculate statistics and process complex data from databases

This feature is now supported in the Northflank API and CLI.

await apiClient.start.job.run({
  parameters: {
    projectId: "billing",
    jobId: "invoice-collection",
  },
  data: {
    runtimeEnvironment: {
      CUSTOMER_ID: "WhoR8gCYEF",
      CUSTOMER_EMAIL: "jane-doe@acme.corp",
    },
    deployment: {
      docker: {
        cmd: "node invoice.js $CUSTOMER_ID $CUSTOMER_EMAIL",
      },
    },
  },
});

API

  • Added an example JS client code for Assign service to subdomain endpoint
  • Added an API endpoint to abort builds
  • Improved accessibility of the Northflank API Documentation
  • Fixed an issue where description was required in the Create project endpoint
  • Fixed an issue with Assign service to subdomain endpoint not updating the service if a certificate hasn’t been issued
  • Fixed Get health checks endpoint not returning any data even if health checks were configured

Addons

  • UI now displays a clearer warning for addons where an upgrade is recommended and addons that have an upgrade available
  • Updated databases connection strings to work with Compass and and support both TLS/SSL query parameters with their enabled/disabled state
  • Fixed an issue where backups wouldn’t work correctly for MongoDB with configured security rules

Template repositories

  • Updated Rust template repository to bind to 0.0.0.0 so that the webserver is bound to both the etho and loopback device rather than only 127.0.0.1
  • Improved auto port detection when template repositories are used
  • Fixed an issue where GitHub wouldn’t create new repositories in some edge cases
  • Fixed an issue where GitLab repositories would create as internal despite public being selected

Other features & fixes

  • Aborted job runs now display an explicit status saying Aborted rather than Failed
  • Updated build identifiers to be the human-readable name across the UI and API for easier team collaboration when referencing builds
  • Updated Northflank GitHub actions so the link for View deployment takes you to your Northflank dashboard if there is no public service endpoint
  • Improved VCS error handling to display more informative messages to the user
  • Removed Auto DevOps on self-hosted GitLab instances so they don’t run default CI steps with GitLab runners
  • Fixed an issue where build type (Dockerfile / Buildpack) would appear as unselected on existing services
  • Fixed issues with environment diff editor showing local changes incorrectly and not displaying a warning when a team member made changes

Share this article with your network