All notable changes to the Architect CLI will be captured in release notes, as well as updates for upcoming breaking changes.

The full changelog can be viewed on our GitHub Repo.


April 2023

Breaking Change: Deprecation of path and port for liveness_probe

The path and port options of liveness_probe are being deprecated, and support will end on August 2023. Instead, use the command option for defining your liveness probe.

Who does this change affect?

This change affects all users who are currently using the path and port options in their liveness_probe configuration. If you are one of them, please update your configuration to use the command option before August to avoid any disruptions in your application’s health checks.

Why are we making this change?

We are making this change to favor the command option, as it provides more flexibility in defining the liveness probe command as well as fixing an issue that could potentially arise if incorrect IP Address is passed to the liveness_probe.

What do you need to do?

  1. Remove all uses of path and port for the liveness_probe in your component configs.
  2. Add command for the liveness_probe and re-register any changed components.

The liveness_probe command specified in the architect.yml file will be executed periodically to determine the health of the container. If the command exits with a status code of 0, the container is considered healthy. However, if the command exits with a non-zero status code, the container is considered unhealthy and the health check will be retried according to the number of retries if specified.

Examples

Example - if you were using path and port within your component config as shown below:

services:
  app:
    liveness_probe:
      port: 3000
      path: /

You would change this to use a command with curl or wget, depending on which is installed on your image.

services:
  app:
    liveness_probe:
      command: curl --fail localhost:3000
services:
  app:
    liveness_probe:
      command: wget --quiet --tries=1 --spider localhost:3000

February 2023

Breaking Change: Replace parameters with secrets keyword

Last year we introduced the secrets keyword and other CLI flags such as -s to replace the parameters keyword. Now it’s time to fully deprecate the use of the parameters keyword and flag(s) throughout component configs and our CLI.

Who does this change affect?

This is a breaking change that affects anyone who utilizes the parameters keyword and flag(s), both in the component configs and in Architect CLI.

Why are we making this change?

Throughout the next year we plan to make several improvements to secrets handling in the component config files. By ensuring use of the secrets keyword we ensure customers can take advantage of these improvements.

Additionally, we are committed to reducing complexity and increasing clarity by eliminating redundancies where possible.

What do you need to do?

  1. Remove all uses of the parameters keyword in your component configs, and in any scripts that issue CLI commands.
  2. Replace all uses of parameters with the secrets keyword and re-register all components.
  3. Change any architect deploy commands to use the -s flag instead of the -p flag.

Again, this is a breaking change that will take effect on or about 8 Feb, 2023.

If you have any questions or concerns feel free to reach out to us via Slack (for customers who have access to us there), or you can file a support ticket at support.architect.io or send email to support@architect.io.

Examples

Example: if you were using parameters on the top level of the component config:

parameters:
 AUTH_CLIENT_ID:
    required: true
  AUTH_CLIENT_SECRET:
    required: true

You would change this to:

secrets:
  AUTH_CLIENT_ID:
    required: true
  AUTH_CLIENT_SECRET:
    required: true

Or if your interpolation reference for an environment variable looks like

environment:
  NODE_ENV: ${{ parameters.NAME }}

then it should be changed to

environment:
  NODE_ENV: ${{ secrets.NAME }}

If you issue a command like

[...] -p key=value [...]

Or (the non shorthand version)

[...] --parameter key=value [...]

then it should be changed to

[...] -s key=value  [...]

or (the non-shorthand version):

[...] --secret key=value [...]