1.9
Major Additions
Universal Configuration Store
The Configuration Store is a tool that enables the various configurations for a project to be centrally defined and managed. It then provides a standardized way of accessing them, allowing the environment specific configurations to be dynamically provided to the their respective resources within the project at runtime. See the official documentation for more details on leveraging the configuration store.
aiSSEMBLE Infrastructure Helm Chart
The aiSSEMBLE Infrastructure Helm Chart contains the necessary infrastructure for deploying your project within a single umbrella chart. This chart includes support for Argo CD, Jenkins, and Nginx Ingress. See the chart README for more details.
Spark Infrastructure v2 Helm Chart
The following Helm charts have been migrated to the v2 structure and combined into a single spark-infrastructure
chart. To migrate your Helm charts to use the v2 pattern, follow the instructions in the technical documentation.
- Spark Infrastructure
- Hive Metastore Service
- Hive Metastore Database
With this new chart, the aissemble-hive-mysql
image is no longer being used. As a result, the image is deprecated and will not be updated or maintained moving forward. If you choose to remain on an older version of the Spark Infrastructure charts, you can continue to use the 1.8
version of the aissemble-hive-mysql
image. However, we recommend upgrading to the new v2 spark-infrastructure chart to take full advantage of future fixes and improvements.
Helm Chart Updates
MLFlow Helm Chart parent version upgraded from 0.2.1
to 1.4.22
. This includes an update to use the community docker image bitnami/mlflow:2.15.1-debian-12-r0
instead of the deprecated boozallen/aissemble-mlflow:1.7.0
image. This new image updates the MLFlow version from 2.3.1
to 2.15.1
.
Airflow Helm Chart parent version upgraded from 1.10.0
to 1.15.0
. This includes an update to use the community docker image apache/airflow:2.9.3
instead of the deprecated boozallen/aissemble-airflow:1.7.0
image. This new image updates the Airflow version from 2.6.2
to 2.9.3
.
Kafka Helm Chart updated to use the community docker image bitnami/kafka:3.5.1-debian-11-r1
instead of the deprecated boozallen/aissemble-kafka:1.7.0
. This new image remains on the same Kafka version 3.5.1
.
ArgoCD Deployment Branch
Resolved issue when deploying with ArgoCD where apps would fail to utilize the current deploy job branch parameter. Now ArgoCD deployments will use the correct deploy branch when performing test deployments on branches other than the default dev
.
Breaking Changes
There are no breaking changes in the 1.9 release.
Known Issues
There are no known issues with the 1.9 release.
Known Vulnerabilities
Date identified |
Vulnerability | Severity | Package | Affected versions |
CVE | Fixed in |
---|
Recommended Kubernetes Version
aiSSEMBLE recommends any consumer be on a minimum Kubernetes version of 1.30
due to security findings in 1.29
. For more information on Kubernetes current security findings, view their CVE feed. If using AWS EKS, please follow AWS documentation on upgrading your clusters and node groups.
How to Upgrade
The following steps will upgrade your project to 1.9
. These instructions consist of multiple phases:
- Automatic Upgrades - no manual action required
- Precondition Steps - needed in all situations
- Conditional Steps (e.g., Python steps, Java steps, if you use Metadata, etc)
- Final Steps - needed in all situations
Automatic Upgrades
To reduce burden of upgrading aiSSEMBLE, the Baton project is used to automate the migration of some files to the new version. These migrations run automatically when you build your project, and are included by default when you update the build-parent
version in your root POM. Below is a description of all of the Baton migrations that are included with this version of aiSSEMBLE.
Migration Name | Description |
---|---|
upgrade-tiltfile-aissemble-version-migration | Updates the aiSSEMBLE version within your project's Tiltfile |
upgrade-v2-chart-files-aissemble-version-migration | Updates the Helm chart dependencies within your project's deployment resources (<YOUR_PROJECT>-deploy/src/main/resources/apps/ ) to use the latest version of the aiSSEMBLE |
upgrade-v1-chart-files-aissemble-version-migration | Updates the docker image tags within your project's deployment resources (<YOUR_PROJECT>-deploy/src/main/resources/apps/ ) to use the latest version of the aiSSEMBLE |
ml-flow-dockerfile-migration | Updates the MLFlow's Dockerfile to use the bitnami/mlflow image as a base instead of the deprecated boozallen/aissemble-mlflow image |
airflow-dockerfile-migration | Updates the Airflow's Dockerfile to use the bitnami/airflow image as a base instead of the deprecated boozallen/aissemble-airflow image |
update-data-access-thrift-endpoint-migration | For projects using the default data-access thrift endpoint, updates to the new endpoint associated with v2 spark-infrastructure |
argocd-value-file-sync-policy-configuration-migration | Updates the ArgoCD values files (<YOUR_PROJECT>-deploy/src/main/resources/ ) to include the syncPolicy values to enable the Configuration Store to deploy first on your cluster. |
argocd-template-sync-policy-configuration-migration | Updates the ArgoCD template files (<YOUR_PROJECT>-deploy/src/main/resources/templates/ ) to include the syncPolicy helm function to enable the Configuration Store to deploy first on your cluster. |
To deactivate any of these migrations, add the following configuration to the baton-maven-plugin
within your root pom.xml
:
<plugin>
<groupId>org.technologybrewery.baton</groupId>
<artifactId>baton-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.boozallen.aissemble</groupId>
<artifactId>foundation-upgrade</artifactId>
<version>${version.aissemble}</version>
</dependency>
</dependencies>
+ <configuration>
+ <deactivateMigrations>
+ <deactivateMigration>NAME_OF_MIGRATION</deactivateMigration>
+ <deactivateMigration>NAME_OF_MIGRATION</deactivateMigration>
+ </deactivateMigrations>
+ </configuration>
</plugin>
Precondition Steps - Required for All Projects
Beginning the Upgrade
To start your aiSSEMBLE upgrade, update your project's pom.xml to use the 1.9.4
version of the build-parent:
<parent>
<groupId>com.boozallen.aissemble</groupId>
<artifactId>build-parent</artifactId>
<version>1.9.4</version>
</parent>
Conditional Steps
For Projects with Data Delivery Pipelines
It is strongly recommended that projects migrate from the old Spark infrastructure charts to the new Spark Infrastructure umbrella chart. The previous charts are now deprecated and will not receive any updates in future releases. To migrate to the new chart follow the upgrade instructions outlined on the Path to Production > Containers page in the technical documentation. Because this change is more significant than previous Helm chart migrations, it is highly recommended you familiarize yourself with the chart-specific instructions in the spark-infrastructure-chart README fully before beginning the process.
Final Steps - Required for All Projects
Finalizing the Upgrade
- Run
./mvnw org.technologybrewery.baton:baton-maven-plugin:baton-migrate
to apply the automatic migrations - Run
./mvnw clean install
and resolve any manual actions that are suggested- NOTE: This will update any aiSSEMBLE dependencies in 'pyproject.toml' files automatically
- Repeat the previous step until all manual actions are resolved
What's Changed
What's Changed
- #238 aiSSEMBLE 1.8 post-release cleanup by @csun-cpointe in #260
- #238 post release minor fix by @csun-cpointe in #261
- #258 update policy-decision-point to package service into zip instead of uber-jar by @jaebchoi in #262
- #252 Create helm chart with necessary infrastructure for deploying a project by @carter-cundiff in #265
- #252 Run dry run on test namespace to prevent clashes with existing deployments by @carter-cundiff in #268
- #252 CI fix to skip CRD and ClusterRole creating for argoCD to prevent clash with existing deployment by @carter-cundiff in #269
- Zip pipeline-invocation-service dependency jars by @J-Clingerman in #271
- #259 Universal Config enable PVC config storage by @cwoods-cpointe in #272
- 248 Fix GitHub Actions build so integration tests succeed by @aaron-gary in #274
- Grant spark-operator write access for the required apigroup by @J-Clingerman in #277
- #266 config store property value injection by @csun-cpointe in #278
- #226 Replace aissemble-mflow docker image with community docker image. by @habibimoiz in #279
- #226 Replace aissemble-mflow docker image with community docker image (continued) by @habibimoiz in #280
- #281 Update helm chart README's to correctly reference OCI charts in the install command by @carter-cundiff in #282
- #287 Update release notes to include recommended k8s version by @cwoods-cpointe in #289
- #286 🐛 fix overzealous Dockerfile migration that was removing ARGs … by @d-ryan-ashcraft in #290
- #270 Adjust prune workflow by @chang-annie in #296
- #270-2 Fix to remove empty values from release_values by @chang-annie in #297
- Cherry pick spark operator v2 migration commit from 1.8.1-patch-release branch by @carter-cundiff in #301
- #284 Update hive metastore service to use 1.7.0 image only due to 1.8 incompatibilities by @carter-cundiff in #304
- enable argocd sync wave deployment for configuration store by @csun-cpointe in #308
- #295 - Adding archetype tests to github build actions by @JeffreyRoss in #312
- #227 - Replacing aissemble-airflow docker image with community airflow docker image. by @habibimoiz in #314
- Cherry pick #306 PR to dev by @carter-cundiff in #316
- #313 baton migration for argocd template changes by @csun-cpointe in #317
- #157 finalize v2 spark infrastructure by @cwoods-cpointe in #321
- 285 GitHub actions deploy artifacts by @aaron-gary in #319
- 305 - Adding logic to automatically generate spark application file s… by @JeffreyRoss in #325
- [#320] fix fabric8 archetype and mda templates by @ewilkins-csi in #327
- #3 Added aiSSEMBLE GitHub Action release job by @jacksondelametter in #332
- 285 - prevent workflow from running on push by @aaron-gary in #335
- #310 enable quarkus flexible configuration by @csun-cpointe in #336
- #322 Set config store to be included by default by @carter-cundiff in #329
- #322 Fix hyperlinks within config store antora docs by @carter-cundiff in #340
- [#330] deprecate hive mysql image by @ewilkins-csi in #341
- [#330] fix parent pom reference by @ewilkins-csi in #342
- #328 - Adding unit testing around pipeline file store configuration by @JeffreyRoss in #339
- #338 Feature: Update ghcr.io prune workflow to leverage regex solution by @cpointe-ibllanos in #347
- #350 Update argoCD to use deploy branch parameter for target revision by @carter-cundiff in #352
- #228 - Replace aissemble-kafka 1.7.0 references with community docker image by @habibimoiz in #348
- #147 BUG: Fix Delete Model Training API in aiSSEMBLE by @jaebchoi in #362
New Contributors
- @JeffreyRoss made their first contribution in #312
Full Changelog: aissemble-root-1.8.0...aissemble-root-1.9.1