Releases: mmckechney/SqlBuildManager
Releases · mmckechney/SqlBuildManager
Version 15.6.2
- UPDATED: Specifying Batch Node Communication model as
Simplified
(vs. prior default ofClassic
) as classic is getting retired in 2026 - FIXED: GitHub Issue #501 - DeleteBatchPool settingsfile setting not honored for batch run commands / logging issue with --deletebatchpool override
- FIXED: GitHub Issue #513 - PreStage incorrectly reports batch node readiness if quota has been reached
Version 15.6.1
- Fixes #469
- Fixes GitHub action container-build
Version 15.6.0
- UPDATED: Now targets .NET 8.0
- UPDATED: Simplified data object classes and regenerated typed DataSet classes
- UPDATED: Docker base set to .NET Runtime 8.0 and .NET SDK to 8.0
- REMOVED: Removed fall back Settings File Key generation from machine value. Now must be provided via
--settingsfilekey
argument orsbm-settingsfilekey
Environment variable - ADDED:
--settingsfilekey
is no longer required when a Key Vault Name is provided. This will bypass any settings file decryption and only retrieve the secrets directly from Key Vault
Version 15.5.0
- NEW: For muti-database target builds, you can now specify custom concurrency tag. Previously, the only concurrency differentitor was by SQL Server Name. Please see the docs on Concurrency and Database targeting options to understand how to use this new feature.
- UPDATED: DACPAC creation timeouts now set to the value of
--defaultscripttimeout
. Previously, it was using the default settings. - UPDATED: If a script package is failing after retries due to a timeout, the build will now immediately fail. The prior behavior was to create a custom DACPAC (if configured) and continue trying the build. This was just delaying the inevitable failure and wasting time
- UPDATED: (from v15.4.2) Converted Batch Node Pool creation to the new
Azure.ResourceManager.Batch
SDK.- NOTE: This may require you to add batch specific NSG rules if you deploy into a subnet. See network.bicep's
nsgBatchResource
resource to see the rules that are needed.
- NOTE: This may require you to add batch specific NSG rules if you deploy into a subnet. See network.bicep's
Version 15.4.1
- FIXED: Corrected bug #386 -
sbm batch *
were not properly handling the--authtype ManagedIdentity
argument () - FIXED: Corrected bug #387 - The path for the
--targetdacpac
was not getting trimmed to just the file name when getting sent to the Batch nodes - UPDATED Including Managed Identity client ID as SQL connection user ID property when using
--authtype ManagedIdentity
argument - UPDATED: Added ability for
sbm utility override
to accept--settingsfile
,--settingsfilekey
and identity arguments - UPDATED: Changed
sbm dacpac
command to accept--settingsfile
,--settingsfilekey
and identity arguments (previously only accepted SQL authentication via--username
and--password
) - UPDATED: Changed the test environment creation from az CLI commands to Bicep templates/modules
- UPDATED: Modified/refactored internal handling of Manged Identity Client ID
- ADDED: New EventHub logging type of
ScriptErrors
which will event out any script error messages that occur during execution - UPDATED: Optional feature to have Eventhub monitoring to attempt to create a custom consumer group to avoid any event read conflicts. The running identity must have "Event Hub Owner" RBAC priviledges and there are also two new arguments
--ehrg
/--eventhubresourcegroup
and--ehsub
/--eventhubsubscriptionid
which would need to be provided. If these are not all met, it will continue to use the existing $Default. The custom consumer group will be deleted after run is complete. - UPDATED:
sbm utility eventhub
now accepts a--jobname=all
to query all events,--timeout
in seconds for how long to continue to monitor after the last event is received and--eventhubresourcegroup
/--ehrg
,--eventhubsubscriptionid
/--ehsub
,--storageaccountname
and--storageaccountkey
arguments to support the new optional feature to create a custom consumer group. The storage account is used for the consumer check pointing
Version 15.3.0
Consolidated updates in Version 15+
NEW: Removing beta
tag as the new AKS Workload Identity implementation is now GA. This replaces of AAD Pod Identity and is a breaking change from any previous Kubernetes deployments. To understand how to configure your cluster, review the steps in the create_aks_cluster.ps1 script.
New & Updated Commands:
- Eliminated the need for
sbm batch enqueue
. You can now runsbm batch run
and it will automatically enqueue the database targets for you. You can still runsbm batch enqueue
first if desired sbm utilty override
command to generate an override cfg file from a SQL script file.sbm k8s query
command to run a query across your database fleet using Kubernetes as a compute platformsbm aci run
command to orchrstrate full ACI process (prep, enqueue, deploy and monitor commands)sbm aci query
command to run a query across your database fleet using ACI as a compute platformsbm batch query
command now fully supports reading messages from Service Bus as well as using Managed Identity
New Options:
--tenantid
option to provide Azure AD Tenant ID for deployments. This will be necessary if local ID has access to multiple tenants and the target tenant is not the default--batchresourcegroup
(--batchrg
) argument to specify the resource group for the Batch account. (If not provided, will be infered from Identity resource group)--podcount
for Kubernetes deployments to specify the number of pods to deploy per job--vnetresourcegroup
(--vnetrg
) argument to specify the resource group for the VNET. (If not provided, will be infered from compute resource group)--eventhublogging
controls how to log script results and if to emit verbose message events. Add multiple flags to combine settings. Values:EssentialOnly
,IndividualScriptResults
,ConsolidatedScriptResults
,VerboseMessages
New Configuration:
- Changed Sample/Test environment to use VNET connections between databases and compute platforms
- SQL Server private VNET connections only, with local firewall rules and excluding "Azure Services"
- VNET integration for Azure Container Apps
- VNET integration for Azure Container Instances
- VNET integration for Batch Nodes
- AKS cluster creation now has Azure RBAC enabled
Bug Fixes & Improvements:
- EventHub logging now also includes the script results for each script run against the databases as an option. (
--eventhublogging
options ofIndividualScriptResults
orConsolidatedScriptResults
) - Renewing Service Bus message lease every 30 seconds until the build is complete for the target database
- Fixed regression in Batch processing from generated settings files
- Code refactoring for consistency and ease of maintenance
- Corrected bug where Batch execution wasn't properly consolidating certain log files
- BREAKING CHANGE: Changed ACI deployment to use SDK vs custom ARM templates. Review new command arguments for
sbm aci prep
andsbm aci deploy
(and consider using newsbm aci run
command)
Platform updates:
- Application now targets .NET 7
- Docker base images updated to .NET Runtime 7.0.5 and .NET SDK to 7.0.203
- General code cleanup and switch from System.Data.SqlClient for Microsoft.Data.SqlClient
Version 15.0.1-beta
- NEW: With v15+ the Kubernetes implementation is switching from using AAD Pod Identity to Workload Identity (preview). Because Workload Identity is in Public Preview, v15 will remain in beta until the feature goes GA. This is a breaking change from any previous Kubernetes deployments. To understand how to configure your cluster, review the steps in the create_aks_cluster.ps1 script.
- UPDATED: Application now targets .NET 7
- ADDED: Option to provide Azure AD Tenant ID for deployments. This will be necessary if local ID has access to multiple tenants and the target tenant is not the default
- FIXED: Regression in Batch processing from generated settings files.
Version 14.6.1
ADDED: Windows installer (.msi) output for SQL Build Manager windows form app
Version 14.6.0
- ADDED: Added Kubernetes namespace isolation in
sqlbuildmanager
namespace when usingsbm k8s run
and creating yaml files viasbm k8s createyaml
- ADDED: Added
jobname
based kubernetes resources to isolate independent and/or concurrent runs when usingsbm k8s run
- UPDATED: Switched pre-build image source from docker hub blueskydevus/sqlbuildmanager to GitHub container registry mmckechney/sqlbuildmanager
Version 14.5.0
- ADDED: Simplified Kubernetes with
sbm k8s run
that will orchestrate the individual steps (prep
,enqueue
,monitor
) and encapsulate allkubectl
commands used to create resources - ADDED: Simplified Container Apps with
sbm containerapp run
that will orchestrate the individual steps (prep
,enqueue
,deploy
andmontitor
) - UPDATED:
sbm k8s savesettings
will now create a json file instead of yaml files. All other subcommands will also take--settingsfile
and--settingsfilekey
values to be more in sync with the other execution types. You can still generate YAML files dynamically withsbm k8s creatyaml
if you want to - UPDATED: Overhaul of template scripts used to create sample and integration test resources and settings files to unify prefix resource names