- Add
countByGroup()
toTimeInstantQuery
.
- Fix tslib peer dependency conflict.
- Upgrade Nx libraries to v16.7.4.
- Upgrade to TypeScript v5.1.6.
- Add a last modified label to elasticity strategy objects in Kubernetes to ensure that an elasticity strategy controller is triggered even if the SLO Output remains unchanged. For example, an SLO may require scaling out by the same amount as last time (same SLO Output), which would normally not be considered a change by Kubernetes.
- If you are currently on Polaris v0.6.0:
- Upgrade to Nx v16.1.0.
npx nx migrate 16.1.0 # Open package.json and update all @polaris-sloc package versions to "~0.6.1" npm install
- Upgrade to Nx v16.1.0.
- If you are currently on Polaris v0.5.0 or earlier:
- Follow the Polaris v0.6.0 breaking changes instructions below, but use @nx version 16.1.0 instead of 16.0.3 and @polaris-sloc version ~0.6.1 instead of ~0.6.0.
- To enable embedding TypeScript sources into npm packages for existing library projects, please make this change to the
tsconfig.lib.json
files of your library projects.
- Fix missing TypeScript source code referenced from source maps in Polaris npm packages.
- Upgrade Nx libraries to v16.1.0.
- Upgrade to TypeScript v5.0.4.
- Upgrade to Node.js v18 - this is the minimum required version from now on.
- Change target JavaScript version to ES2020 (TypeScript tsconfig
target
property). - Remove deprecated polaris-ui project - this has been replaced with a new polaris-ui project.
- Manual change required: Upgrade to Nx v16.0.3 - this requires a manual upgrade of the Nx dependencies in existing Polaris workspaces (during this process you will also update the Polaris dependencies). Please run the following commands:
# Upgrade to latest version of Nx v14 branch. npx nx migrate 14.8.8 npm install npx nx migrate --run-migrations rm ./migrations.json # Upgrade to Nx v16.0.3 npx nx migrate 16.0.3 # IMPORTANT: Before continuing the Nx upgrade, open your package.json file and set all @polaris-sloc package versions to "~0.6.0". # Continue the Nx upgrade. npm install npx nx migrate --run-migrations rm ./migrations.json # Install the Nx webpack plugin, if not present. npm install --save-dev -E @nx/webpack@16.0.3 # Search all project.json files or the angular.json file (if present) for `"executor": "@nrwl/webpack:webpack"` and replace it with `"executor": "@nx/webpack:webpack"` # If your workspace contains webpack.config.js files, apply the source maps workaround below. # Update the Dockerfiles of your applications according to the example file linked below.
- Manual change required: A recent Nx version broke the generation of source maps for applications (see issue and workaround). Apps generated with the polaris-cli contain the workaround, but existing app projects require manually modifying the
webpack.config.js
file, if present in your project (see working webpack.config.js). - Manual change required: The changes in the structure of Nx projects and the Node.js upgrade requires changes to the Dockerfiles of existing applications. Copy this updated Dockerfile over your existing ones.
- Allow SLOs to trigger alternative elasticity strategies by setting the optional
SloOutput.elasticityStrategy
andSloOutput.staticElasticityStrategyConfig
properties.
- Upgrade Nx libraries to v16.0.3.
- Migrate to Nx project.json files and remove Angular CLI.
- Remove all Angular dependencies, except for
@angular-devkit/core
and@angular-devkit/schematics
, which are required by a dependency ofpolaris-nx
.
- Add histogram quantile support to core/raw-metrics-query and the prometheus adapter
- Lock
@openapi-contrib/json-schema-to-openapi-schema
to v2.1.1 andts-json-schema-generator
to v1.0.0 to avoid issues in YAML generation.
- Upgrade Nx libraries to v14.4.0.
- Make generated library projects buildable.
- Allow configuring the computation interval of a composed metric controller through the
COMPOSED_METRIC_COMPUTATION_INTERVAL_MS
environment variable.
- Upgrade Nx libraries to v14.0.3.
- Upgrade ts-json-schema-generator to v1.0.0.
- Ensure that the polaris-cli exists with an error code if an error occurs during execution.
- Explicitly handle invalid composed metric values in the Prometheus
ComposedMetricsManager
. - Added missing
js-yaml
v4.1.0 as a dependency of@polaris-sloc/schema-gen
. - Fix Docker build failure when not using BuildKit by upgrading to Nx v14.0.3 (see details).
- Removed the default
ServiceMonitor
selector in the3-service-monitor.yaml
files and improved the inline documentation about these selectors. - Changed the default
PROMETHEUS_HOST
in the2-slo-controller.yaml
and2-metrics-controller.yaml
files toprometheus-kube-prometheus-prometheus.monitoring.svc
to match the updated tutorial using the kube-prometheus-stack helm chart. - Upgrade the base container image for controllers to
node:14-alpine3.15
. - Upgrade Nx libraries to v13.8.8.
- Locked Nx and Polaris package versions for the
polaris-cli init
command to the ones used in that polaris-cli version to avoid problems with breaking changes in new versions.
- Fix a regression introduced by Nx v13.8.4. A refactoring of the Nx JS and Node.js generators caused the use of a removed builder for generated libraries.
- Added the following
TimeInstantQuery
operations:averageByGroup()
,minByGroup()
, andmaxByGroup()
- Added support for writing elasticity strategies in TypeScript
- Added support for ComposedMetrics
- Added support for predicted metric controllers
- Rewrote HorizontalElasticityStrategy in TypeScript and added stabilization window support
- Added VerticalElasticityStrategy
- Added Polaris CLI
- Added support for generating Custom Resource Definitions (CRDs) from TypeScript code
- Added OrchestratorGateway to allow creating clients for the underlying orchestrator
- Initial release of @polaris-sloc npm packages
- Removed Go code, because with the TypeScript CRD generator it is no longer needed
- Initial Release