v0.7.0 - Friday, 6 August, 2021

πŸ“˜

Next release: v0.8.0 - Friday 20 August, 2021

To track our progress, take a look at our roadmap!

Slack Notifications

Slack notifications have arrived! You can set up the integration by navigating to Integrations > Slack, and clicking + Install Application. By default, these notifications will alert you when a new deployment of your application occurs, and will inform you if the deployment failed. This functionality will continue to be extended throughout the next release to notify on fatal application-level errors. Read the full documentation here.

Metrics Tab Updates and Autoscaling Visualization

We've added several new metrics graphs and features to make autoscaling thresholds more visible and to view how your application is autoscaling over time:

  • If autoscaling is enabled, the CPU and memory usage graphs will now show how close your usage is to the threshold where autoscaling is triggered
  • We've increased the granularity of the one hour view to 1 second, an improvement over the previous 15 seconds
  • Metrics are now persistent, so that when a new version of the application is created, the old metrics will still be visible.

UI Improvements

We've modified our UI to show applications and jobs in a larger window, which will make them easier to navigate.

Source Visibility and Versioning

We've made several improvements that provide better visibility for seeing which Git commit (for those deploying from Github) or image tag (for those deploying from Docker) a certain revision of your application used. We've also added the ability to view which replicas are being added or terminated when a new version of your application is being deployed.

Template Upgrade Notes + Add-On Upgrades

Porter will now display upgrade notes when a new template upgrade is available, and it is now possible to upgrade add-ons that have been deployed through Porter!

CLI updates

We've made a few additions to the CLI!

  • porter run [application] -- [command]: this command will now create a new, ephemeral container that isn't serving production traffic, with the configuration copied from an existing pod. If you wish to connect to a running pod, use the --existing_pod flag.
  • porter logs [application]: this command will let you download logs from an existing pod, and optionally stream them with the -f or --follow flag.

We've also made the CLI much more usable for new users, and fixed several smaller issues: see other improvements.

Cluster Architecture Updates

All newly provisioned EKS, GKE, and DOKS clusters will use the exact same architecture, which will make autoscaling more stable across all three providers, and will make it easier to install Kubernetes/Helm manifests without additional configuration. Here are the list of changes:

  • Critical workloads will run on nodes with the label porter.run/system=true, while all application workloads will run on nodes with the label porter.run/autoscaling=enabled.
  • All clusters will contain 2 nodes with label porter.run/system=true, and the nodes with porter.run/autoscaling=enabled will scale from 1 to 10 machines.
  • All machines will now be 2 vCPUs and 4 GB RAM by default.
  • Prometheus is now installed by default on all clusters.
  • NGINX now runs in high-availability mode on all clusters.

Environment Groups can be Renamed

Thanks @anukul for the PR!

It is now possible to rename an environment group. To rename the group, click on the environment group in the Env groups tab, go to Settings, and enter a new name:

Github Actions Refactoring

Github actions files that get written to the Github repository are much simpler to read, and the steps are much easier to integrate into existing workflows. The action now calls a single step (after installing Porter) to deploy your application:

- name: Update Porter App
      id: update_porter
      timeout-minutes: 20
      run: porter update --app from-gin
      env:
        PORTER_CLUSTER: <cluster-id>
        PORTER_HOST: https://dashboard.getporter.dev
        PORTER_PROJECT: <project-id>
        PORTER_TOKEN: ${{ secrets.PORTER_TOKEN_<project-id> }}

The command porter update --app [application] can also be called from your local computer with the flag --source github, which will perform the exact same action, so that you can trigger new deploys from your local workstation.

Application and Add-On Template Updates

  • We've added Node Local DNS Cache as a supported add-on. This add-on can be installed to reduce DNS lookup times and the amount of DNS lookup errors by caching the response from the DNS server.
  • Web application: we've added a readiness probe interval option, which allows users to set the time interval between readiness probes.
  • Datadog add-on: we've added the option to toggle on APM, logs, and dogstatsd

Contributing/Developing Updates

Other Improvements

  • Fix loading status sometimes stuck on Loading
  • CLI improvements:
    • Calling porter update on hello-porter deployments will now successfully update the image
    • When a path to the dockerfile is set, and --method is not explicitly set, the build method will now automatically be set to docker
    • Cluster ID is set automatically when project ID is set after login
    • porter auth login: prevent throwing a non-fatal error trace, distinguish between user vs project tokens when logging in with the --token flag, and fix WSL browser issues.
    • Fixed migration script issues on porter server start