CDS Release Notes
Abstract
This document provides the release notes for the 1.11.0 and 1.10.0 releases of the Controller Design Studio (CDS).
Version 1.11.0
Summary
CDS 1.11.0 moves the blueprintsprocessor database from MariaDB to PostgreSQL,
rebases the Java images on eclipse-temurin with Java 21, extends tracing
and logging across the services, and adds read access to resolved resources,
configuration snapshots and data dictionary editing to the CDS Designer UI.
It also adds end-to-end integration tests for the blueprintsprocessor inbound
and southbound interfaces.
Release Data
Project |
CCSDK-CDS |
Docker images |
See Docker Containers section |
Release designation |
1.11.0 |
New features
PostgreSQL database (breaking change) — The blueprintsprocessor now uses PostgreSQL as its database; MariaDB is no longer supported as the CDS database. Existing installations must migrate their data, see Upgrading from a MariaDB-based release. The
processor-dbresource source and database connections defined in a CBA can target PostgreSQL with the newpostgres-dbconnection type, and can still target MariaDB. (Jira CCSDK-4219)Configurable gRPC message size — The maximum inbound message size of the blueprintsprocessor gRPC server can be set with
blueprintsprocessor.grpcMaxInboundMessageSize(default 4 MiB). (Jira CCSDK-4141)Configurable JSON parsing limits — The Jackson stream read constraints (maximum string length, nesting depth, document length and others) can be overridden with the
jackson.stream-read-constraints.*properties. The configuration guide documents these limits and their defaults. (Jira CCSDK-4141, CCSDK-4223)ed25519 SSH keys — The SSH connections of the netconf and CLI executors support the ed25519 key format. (Jira CCSDK-4203)
OpenAPI description at runtime — The blueprintsprocessor serves its REST API description as OpenAPI 3 at
/v3/api-docsand the Swagger UI at/swagger-ui.html, generated by springdoc-openapi instead of springfox, which did not work with Spring Boot 3. The API reference files in the documentation are OpenAPI 3 as well, in JSON and YAML. (Jira CCSDK-4224, CCSDK-4243)ONAP headers on outbound REST calls — Outbound REST calls of the blueprintsprocessor now carry
X-ONAP-RequestID,X-ONAP-InvocationIDandX-ONAP-PartnerName, so called components can correlate their logs with the CDS request. Each call is logged with its status and duration, and failed calls are logged with the exception. (Jira CCSDK-4227)Tracing through the Python executors — The gRPC servers of command-executor and py-executor are instrumented, so traces started in the blueprintsprocessor continue into the Python services. (Jira CCSDK-4228)
JSON console logging — Setting
CDS_LOG_FORMAT=jsonswitches the console output of the blueprintsprocessor and sdclistener to JSON, with every MDC entry (request ID, invocation ID, trace and span ID) as a field. Plain text stays the default. (Jira CCSDK-4230)Deployment status from sdclistener — The sdclistener reports
DEPLOY_OKorDEPLOY_ERRORfor each CSAR to SDC, based on the blueprint upload, and follows a download or storage failure withCOMPONENT_DONE_ERROR. (Jira CCSDK-4255)
CDS Designer UI improvements
Added a Resolutions page that shows the resolved values and rendered template of a resource resolution, and the running and candidate configuration snapshots of a resource. (Jira CCSDK-4249)
Data dictionary entries can be opened, edited and deleted. (Jira CCSDK-4250)
Added a lifecycle action bar (Edit, Import DD, Enrich, Publish) to the package creation screen, including bulk import of data dictionary definitions. (Jira CCSDK-4205)
Publish always sends the package as it is shown: any change after Enrich needs a new Enrich, and Enrich needs at least one template. (Jira CCSDK-4252)
Blueprint processor errors are shown as readable messages.
Added a warning banner for unmapped variables on the Template & Mapping tab.
Reworded the guided tour steps and re-enabled the steps that were commented out. (Jira CCSDK-4204)
Fixed accessibility issues: keyboard focus indicators, text contrast, reflow at 320 px, page landmarks and headings, a skip link and keyboard operable menus. (Jira CCSDK-4235, CCSDK-4246)
CVE and dependency updates
The blueprintsprocessor and sdclistener images are now based on
eclipse-temurin:21-jre-alpineinstead ofonap/ccsdk-alpine-j21-imageandonap/ccsdk-alpine-j17-image, and both run on Java 21. The images no longer contain sudo, bash, git, nodejs, npm, python3, mysql-client, graphviz, rsync and the other packages the CCSDK base images added, which none of the CDS code uses. CBAs whose Kotlin scripts start these programs need them added to a derived image. (Jira CCSDK-4256)The command-executor and py-executor images install the current Debian security updates at build time, because their
python:3.7-slimbase image is no longer rebuilt. (Jira CCSDK-4257)Upgraded Netty to 4.1.137.Final, gRPC to 1.82.1, Jetty to 12.0.33, Spring Framework to 6.2.17, Spring Security to 6.5.9, Micrometer to 1.15.10, Jackson to 2.20.1, Jinjava to 2.8.3 and Guava to 33.5.0-jre.
Replaced
hazelcast-all5.0-BETA-1 withhazelcast5.4.0.Replaced springfox 3.0.0 with springdoc-openapi 2.8.13 and upgraded commons-lang3 to 3.18.0. (Jira CCSDK-4243)
Updated to the Rabat ONAP parent POMs (3.3.2). (Jira CCSDK-4203)
Updated the sdclistener to sdc-distribution-client 2.3.0 and both Java images to OpenTelemetry Java agent 2.26.1. (Jira CCSDK-4214, CCSDK-4244)
Bug fixes
When the blueprintsprocessor refreshes a stale local CBA copy during workflow execution, it now also clears the compiled script cache of that CBA, so the updated scripts are used.
Unresolved expressions in Jinja templates are kept as they are after the Jinjava upgrade.
Fixed null pointer exceptions and unchecked delete results reported by SonarQube.
Fixed the cds-ui designer client lock file so
npm ciworks again. (Jira CCSDK-4218)/api/v1/combinedHealthand/api/v1/combinedMetricsno longer block a reactor thread, which could make the whole blueprintsprocessor REST API hang. Credentials for the health API that cannot be decrypted are logged as an error, and wrong basic auth credentials on the REST API return 401 instead of 500. (Jira CCSDK-4241)Two CBA enrichments running at the same time no longer read each other’s resource mapping files, which failed with
503 IO_FILE_INTERRUPT. (Jira CCSDK-4247)DELETE /api/v1/resourcesandDELETE /api/v1/templatewithoutlastNfailed with 409 or 500; they now delete all matching rows. Removing a blueprint also removes its empty deploy directory. (Jira CCSDK-4242)A
CDS_LOG_FORMATvalue other thanjsonortextno longer drops all console output. The cds-ui server no longer logs request headers, includingAuthorization, cookies and query strings. (Jira CCSDK-4244)The cds-ui server starts again: the proto files it loads at runtime are packaged in
blueprint-protoagain. (Jira CCSDK-4232)The designer client no longer logs a script error on every page, and the script editor no longer requests missing ace modes. (Jira CCSDK-4245)
The committed API reference is valid JSON and includes the
POST /api/v1/model-typeandGET/DELETE /api/v1/templateoperations. (Jira CCSDK-4224)
Upgrade notes
The CDS database is PostgreSQL. The OOM
cdschart no longer deploys the CDS MariaDB, and the data is not migrated automatically, see Upgrading from a MariaDB-based release.The credentials used by the health API (
endpoints.user.nameandendpoints.user.password) are now encrypted with AES/GCM instead of AES/CBC. Values encrypted for 1.10.0 or earlier no longer decrypt and must be re-encrypted.blueprintsprocessor.db.hibernateDialectis optional. When it is not set, Hibernate detects the dialect from the database connection.The blueprintsprocessor and sdclistener images ship OpenTelemetry Java agent 2.26.1, which reads its configuration file from
OTEL_CONFIG_FILEand logs a deprecation warning forOTEL_EXPERIMENTAL_CONFIG_FILE.
Known Issues
The cds-ui server always deploys and executes blueprints through the REST API of the blueprintsprocessor; its gRPC option is disabled.
Deliverables
Software Deliverables
Docker Containers
The following table lists the docker containers comprising the CDS 1.11.0 release. Each of these is available on the ONAP nexus3 site (https://nexus3.onap.org) and can be downloaded with the following command:
docker pull nexus3.onap.org:10001/{image-name}:{version}
Image name |
Description |
Version |
|---|---|---|
onap/ccsdk-blueprintsprocessor |
Blueprint processor runtime |
1.11.0 |
onap/ccsdk-commandexecutor |
Command executor |
1.11.0 |
onap/ccsdk-py-executor |
Python script executor |
1.11.0 |
onap/ccsdk-sdclistener |
SDC distribution listener |
1.11.0 |
onap/ccsdk-cds-ui-server |
CDS Designer UI server |
1.11.0 |
Maven Artifacts
The CDS 1.11.0 maven artifacts are published under the
org.onap.ccsdk.cds group in the ONAP Nexus releases repository
(https://nexus.onap.org/content/repositories/releases/org/onap/ccsdk/cds/).
Documentation Deliverables
Documented the PostgreSQL database configuration and the upgrade path from MariaDB.
Documented the blueprintsprocessor runtime limit properties.
Added a YAML version of the API reference.
Refreshed the README.
Test Results
Added end-to-end integration tests that run the blueprintsprocessor against PostgreSQL and drive resource resolution and persistence over REST, gRPC and Kafka, and the NETCONF southbound. (Jira CCSDK-4233)
sdclistener distribution is tested through the real SDC distribution client, and its unit test coverage is recorded. (Jira CCSDK-4216, CCSDK-4229)
Version 1.10.0
Summary
The CDS 1.10.0 release adds OpenTelemetry instrumentation across all services, improves CBA lifecycle management in the blueprintsprocessor, and delivers extensive CDS Designer UI enhancements and bug fixes.
Release Data
Project |
CCSDK-CDS |
Docker images |
|
Release designation |
1.10.0 |
New features
OpenTelemetry instrumentation — Added OpenTelemetry (OTel) Java agent for Java/Kotlin services (blueprintsprocessor, sdclistener) and Python instrumentation for py-executor and command-executor. Tracing configuration is provided through the Helm chart. (Jira CCSDK-4150)
CBA lifecycle management improvements — The blueprintsprocessor now manages and updates the local CBA copy during workflow execution, prevents workflow execution when a CBA is absent from the database, cleans up stale local copies, and creates an ID file for deployed blueprints. (Jira CCSDK-4141)
REST client response header capture — Added support for capturing response headers in
WebClientResponsewithin theRestClientimplementation. (Jira CCSDK-4141)Workflow execution page — Added a new workflow execution page to the CDS Designer UI.
Deployed tab — Added a dedicated deployed-packages tab to the CDS Designer UI.
CDS Designer UI improvements
Designer mode improvements (two iterations) including better layout and interaction patterns.
Fixed view-function-source button in designer mode.
Supported saving blueprints without workflows.
Made package description optional during package creation.
Disabled the deploy button until all required fields are populated.
Fixed inability to save blueprints.
Fixed the download button in resource dictionary creation.
Prevented saving a dictionary entry with insufficient data.
Fixed the broken resource dictionary page.
Fixed actions-pane responsivity issues.
Fixed screen-reader and colour-contrast accessibility issues.
Fixed TypeScript build errors.
Added README files for each cds-ui sub-project.
Bug fixes
Fixed tracing configuration for py-executor.
Fixed conflicting Maven dependencies.
Fixed Spring Boot migration issues in the blueprintsprocessor parent POM.
Re-enabled previously disabled tests.
Known Issues
There are no known outstanding issues for CDS 1.10.0.
Deliverables
Software Deliverables
Docker Containers
The following table lists the docker containers comprising the CDS 1.10.0 release. Each of these is available on the ONAP nexus3 site (https://nexus3.onap.org) and can be downloaded with the following command:
docker pull nexus3.onap.org:10001/{image-name}:{version}
Image name |
Description |
Version |
|---|---|---|
onap/ccsdk-blueprintsprocessor |
Blueprint processor runtime |
1.10.0 |
onap/ccsdk-commandexecutor |
Command executor |
1.10.0 |
onap/ccsdk-py-executor |
Python script executor |
1.10.0 |
onap/ccsdk-sdclistener |
SDC distribution listener |
1.10.0 |
onap/ccsdk-cds-ui-server |
CDS Designer UI server |
1.10.0 |
Documentation Deliverables
Replaced
blockdiag/seqdiagdiagrams with Mermaid.Modernised the Sphinx docs build configuration.
Fixed broken image links in the CDS designer guide.
Removed the broken
sphinxcontrib-swaggerdocmodule.
Build and Dependency Management
Consolidated Maven dependency versions at the CDS aggregator POM level.
Cleaned up unused and duplicate dependencies.
Improved Python dependency management for py-executor and command-executor.
Adjusted the
artifactIdin the root POM for SonarQube reporting.Added Dependabot configuration for automated dependency updates.
Test Results
Added Playwright end-to-end tests for cds-ui.
Increased py-executor unit-test coverage.
Increased command-executor unit-test coverage.
Known Limitations, Issues and Workarounds
System Limitations
No system limitations noted.
Known Vulnerabilities
Any known vulnerabilities for ONAP are tracked in the ONAP Jira.
Workarounds
Not applicable.
Security Notes
Known Security Issues
There are no known outstanding security issues related to CDS 1.11.0.
References
For more information on the ONAP CDS project, please see: