3.5.2 to 4.0.2

Summary

Optimization Server 4.0.2 introduces deprecations in:

Optimization Server 4.0.2 introduces breaking change in:

  • the OpenAPI specifications of Master API
  • Helm chart values file

Optimization Server 4.0.2 removes:

  • the basic authentication method

Development of applications

Library Backward compatibility Deprecations
API client Backward compatible Deprecations
Spring Boot API client Backward compatible Deprecations

Deployment of Optimization Server

Chart Backward compatibility Deprecations
dbos-volume Break changes: adjust code
dbos-secrets Break changes: adjust code
dbos-infra Break changes: adjust code
dbos Break changes: adjust code
cplex Break changes: adjust code
wod Break changes: adjust code Deprecations

Authentication

Break changes: adjust code

If you use the basic authentication, you must replace it by the Keycloak authentication. This concerns the application installation (Helm or Docker deployment) and all clients.

API client and Spring Boot API client

Deprecated methods

In DatastorageApi class, the following methods are deprecated:

public ResourceDefinition addTemporaryResource(String filename, InputStream body) throws ApiException;
public ApiResponse<ResourceDefinition> addTemporaryResourceWithHttpInfo(String filename, InputStream body) throws ApiException;

public InputStream getResourceContent(URI location) throws ApiException;
public ApiResponse<InputStream> getResourceContentWithHttpInfo(URI location) throws ApiException;

public ResourceDefinition getResourceDefinition(URI location) throws ApiException;
public ApiResponse<ResourceDefinition> getResourceDefinitionWithHttpInfo(URI location) throws ApiException;

Instead, you must use the methods:

public BlobDefinition addTemporaryBlob(String filename, InputStream body) throws ApiException;
public ApiResponse<BlobDefinition> addTemporaryBlobWithHttpInfo(String filename, InputStream body) throws ApiException;

public InputStream getBlobContent(URI location) throws ApiException;
public ApiResponse<InputStream> getBlobContentWithHttpInfo(URI location) throws ApiException;

public BlobDefinition getBlobDefinition(URI location) throws ApiException;
public ApiResponse<BlobDefinition> getBlobDefinitionWithHttpInfo(URI location) throws ApiException;

OpenAPI specifications of Master API

In the OpenAPI specifications, there are the following breaking changes:

  • operation addTemporaryResource is renamed to addTemporaryBlob
  • operation getResourceContent is renamed to getBlobContent
  • operation getResourceDefinition is renamed to getBlobDefinition
  • model ResourceDefinition is renamed to BlobDefinition

Note that at HTTP level, the path and parameters of these endpoints were not modified. You will be affected by these breaking changes only if you generate your API client and use one of these elements.

Helm charts

The values are migrated by calling the Python helper script. Make sure the output file complies with the description of the example below.

Docker registries change

In all charts, the Docker image registry dbos-registry.decisionbrain.cloud has been replaced by:

  • product-dbos-prod-docker-group.decisionbrain.cloud/infra for rabbitmq and keycloak and mongo and postgres
  • product-dbos-prod-docker-group.decisionbrain.cloud/dbos for master and web-console

This concerns image registries for Docker images and also pull secrets.

OKD target removed

The value global.target is now ignored, you can remove it from your values file. The target is always Kubernetes.

wod chart

The syntax for declaring the list of workers has changed:

3.5.2:

workers:
  - image: "..."
    defaultExecutionContext: "..."

4.0.2:

workers:
  my-worker:
    - image: "..."
      defaultExecutionContext: "..."

This allows you to override only one worker with Helm values.