0.46.1 - Release Highlights
- The dependency on assertj-core has been upgraded from 3.25.3 to 3.27.7 to remove a security vulnerability.
- The dependency on byte-buddy has subsequently been upgraded from 1.15.10 to 1.18.3.
includeCursor query parameter has been marked as deprecated in the Galasa Service's GET /ras/runs REST API endpoint as cursor-based pagination is now enabled by default. This query parameter should be removed from requests to this endpoint.rsa-sha2-256 and rsa-sha2-512. See #2461.@ZosProgram annotation are uppercase and no longer than 8 characters. If a name is not uppercase or exceeds eight characters, the z/OS Program Manager rejects it and raises a ZosProgramManagerException with an actionable error message.priority modifier associated with them that can affect the order in which tests submitted by users are scheduled. Tests submitted by users with higher priority modifiers can be scheduled before tests that were submitted by users with lower priority modifiers. See #2176.User priorities can be updated using the new --priority flag in the galasactl users set command. See the command reference.
Administrators can now set a user to associate with a batch of test runs when they are submitted, which may or may not be the same as the requestor. This allows admins who run batches of tests in an automation tool or workflow where the requestor is a functional ID/bot account, to also associate a user with the test runs, so these runs can be queried by the user later.
--user flag on the galasactl runs submit command. See the command reference.Runs can now be queried by user in the galasactl runs get command with the --user flag. This will return any runs where the user or requestor matches the value passed in with the --user flag. See the command reference.
Added galasactl tags commands to the Galasa CLI tool that can be used to create, read, update, and delete test tags as resources on the Galasa service. See the command reference for more details.
priority modifier that can affect the order in which tests submitted to a Galasa service are scheduled. Test submitted with tags that have higher priority modifiers will be scheduled before tests that have no tags or tags with lower priority modifiers. Tags can also be assigned a description which can be used to provide more information about the tag.
galasactl runs submit local commands can now be supplied with one or more --methods flags to run a selection of test methods locally from a Galasa test class that is provided with the --class flag. See the command reference for more details.
framework.resource.management.local.queued.timeout CPS property to the desired amount of time in seconds.galasactl runs cleanup local command which runs resource management providers (Java classes implementing Galasa's IResourceManagementProvider interface) to clean up resources. See the new command syntax.If your Kubernetes cluster is at version 1.34, we recommend upgrading to Galasa 0.44.0 to avoid issues with scheduling test pods onto the cluster.
The Galasa service Helm chart's eventStreamsSecretName value is now optional and a value is no longer provided by default.
The image used by Galasa in init containers, which contains the kubectl tool has been replaced.
bitnami/kubectl image was used by default to make some pods wait for others to start, to avoid an error storm which would happen if all the pods started up at the same time. This enforces an ordering of pods starting up which matches their dependencies.bitnami images were withdrawn, so the default value in the helm values.yaml file was switched to use a different image containing the same tool: kubectlImage: "rancher/kubectl:v1.33.5"Previous releases are also effected, so administrators of older installs of the Galasa service will also need to make this change and update their helm install.
Added log4j2Properties and log4jJsonTemplatesConfigMapName configuration settings in the Galasa service Helm chart to allow users to configure Log4j in their Galasa service. See the Installing an Ecosystem using Helm documentation for detailed instructions on how to do this.
Added a configuration setting couchdb.documentRevisionLimit in the Galasa Helm chart to control the maximum number of document revisions that should be stored in the CouchDB service. See #2439.
Deprecated the callback_url query parameter in the Galasa REST API's GET /auth endpoint in favour of a new base64_callback_url query parameter, which takes a Base64URL-encoded URL that the API will redirect back to after authenticating. See #2416.
Added a configuration setting certificatesConfigMapName in the Galasa service Helm chart to allow users to supply public certificates for Galasa service pods to use. See the Installing an Ecosystem using Helm documentation for detailed instructions on how to do this.
Galasa no longer supports Java 11. Galasa tests must be run with a Java version 17 JDK.
The 3270 manager's ITerminal interface has a new toJsonString() method that allows tests to convert the current 3270 terminal screen into JSON format.
The VTP manager has been removed from the available Galasa managers as the IBM Z Virtual Test Platform offering has been discontinued. See #2460.
The Galasa service now creates a test run record in the Result Archive Store when each run is submitted, rather than when the test is scheduled to execute, so more test runs will appear in the 'queued' state awaiting execution now. This also allows observability of submitted runs which were cancelled prior to being scheduled, which was not previously possible.
The Galasa service has been made more efficient by reducing the amount of data being exchanged between internal components and avoiding the exchange of large messages travelling over the gRPC protocol. See #2312.
Upgrades are handled better: The Galasa Helm chart creates the _users database in CouchDB if it doesn't already exist. This is a required database for CouchDB that should be created as default to prevent errors when the Result Archive Store is started. This is needed because latest version of CouchDB needs this database, and it may not have existed before.
The Galasa service is more robust when failures occur: A deployed Galasa service will now only attempt to launch tests in a new Kubernetes pod if the ETCD and RAS services are working. Were either of the ETCD or RAS services to fail, the errors would not be compounded by launching more tests which would all fail anyway.
Cancelling test runs which have not already finished is handled better: Running tests are given an opportunity to notice they have been cancelled, and to exit cleanly after releasing any resources they hold. Queued test runs are marked as cancelled immediately.#2317.
Java API enhancement: Updates have been made to the @TestResultProvider annotation. The @TestResultProvider can now provide a list of ITestMethodResults to the test which each include the method name, if the method passed, if the method failed, and the exception thrown to cause the failure, if available. This can be used by tests themselves to determine actions to take based on each method's result. See issue #2343.
The start and end line number in the run log pertaining to a particular method are now available in the test structure. This can be used to navigate the run log and identify which sections of the run log are about which methods. See issue #2214.
z/OS telnet 3270 server certificates can now be verified if the CPS property zos.image.[TAG].telnet.tls.verify is set to true. See issue #2296.
Galasa users without internet access can continue to read the Galasa documentation offline. The Galasa zipped distribution, isolated.zip, now contains a docs.tar file that when untarred becomes a Docker image. This Docker image can then be run to access the Galasa documentation site from a local web server.
log4j-core dependency upgraded from 2.24.1 to 2.25.1 to remediate a Critical vulnerability.
The Galasa documentation site now complies with EEC regulations, providing a privacy statement and standard cookie consent banner.
Cancel a run group using the Group ID. See the new command syntax
For developers of Galasa: Easier development of the Web user interface
Added a configuration setting kubeLaunchIntervalMillisecs in the Galasa Helm chart to control the time between launching of successive test runs, to space out launches more evenly so that Kubernetes is not as stressed.
Various defects, fixes, version uplifts
Make contributing code easier:
galasa repository.
This simplifies the build process for the Galasa documentation and makes changes on a git fork easier to build and verify.
It also facilitates closer integration between the javadoc, REST interface, CLI syntax and the rest of the material.New look for the Galasa web site:
Streams Service:
Resource Management:
Tagging of test run results:
Kubernetes CPU and Memory resources:
Miscellaneous:
Managers vetoing method execution changes:
anyReasonTestMethodShouldBeIgnored are no longer asked whether the test method should be ignored before running the @Before and @After methods. If the test method is ignored, then the @Before and @After methods are also ignored.Tests can find out if the test has failed yet:
3270 Manager can now process SSCP-LU-DATA:
@ContinueOnTestFailure annotations:
Make contributing code easier:
Nameculture:
Galasa Service Changes:
A submission ID is generated for each test run submitted. A new field has been added to the test structures passed over the REST interface. Client programs can use the submission ID to query test runs from the Results Archive Store (RAS).
Each user now has a role, which dictates what that user can do. See the documentation on Role Based Access Control (RBAC) for more details.
The Helm chart can configure specific users to be owners of the system, such that these users are immutable administrators of the system. Configuring owners is used to set up a system with some initial administrators, and to recover a system that no longer has any functioning administrators.
Completed test pods now count when calculating the maximum number of pods that Galasa creates. Use the Helm chart parameter max_engines to configure the maximum number of pods.
When tests complete, the pod for the test disappears quicker than in previous releases, to free up resources on the cluster. Instead of up to 5 minutes, completed pods are cleaned up within 2-4 seconds.
It is now possible to configure the Galasa service to use an etcd server that is external to the Galasa namespace, for Dynamic Status Store traffic. This option is not recommended but may be useful for allowing testcase developers to use the same resource pools as the rest of the Galasa service.
Framework and Manager changes:
The Web User interface changes:
Everyone logged-in to the Galasa service can see the list of users on the system, and their roles.
Administrators on the Galasa service can delete the tokens of other users, change their role, or delete their entire user record.
Command-line tool (galasactl) changes:
--overridefile option.
These files are combined into a single collection of properties, with warning messages generated in the logs if any property keys clash.Development process, infrastructure, and contributing:
Improvements to the build process and instructions you use to fork the code, and build your own Galasa binaries in your own GitHub organisation.
Added experimental instructions describing how to install the Galasa Service into Minikube. Minikube can be used when developing contributions to Galasa, but is not suitable as a useable run time platform.
Various other component version upgrades and bug fixes.
Forks and fork builds are now supported making it easier to contribute to Galasa!
All Galasa components now use a common version number.
CPS property names can now include the '@' character.
The galasactl runs get command supports a new --group option to query test runs by the group ID they were launched with.
Gherkin now respects the framework.continue.on.test.failure flag so it doesn't need to exit a feature when the first scenario fails.
This release also includes instability fixes, and dependency updates.
CLI updates:
You can get, set and delete secrets from the credentials store using the galasactl secrets command. Secrets support base64 encoding to handle special characters.
Managing Ecosystem encryption keys describes how to use galasactl secrets get and galasactl resources apply to replace the encryption key being used to encrypt credentials in the Galasa Ecosystem's credentials store.
Users can now be deleted with the galasactl users delete command.
Web UI updates:
A new settings page has been added to the web UI to manage access tokens.
Recent login activity is now available on the profile page.
This release also includes bug fixes, security updates, and other dependency updates.