Skip to content

Releases: mmckechney/SqlBuildManager

Version 15.6.2

21 May 18:21
Compare
Choose a tag to compare
  • UPDATED: Specifying Batch Node Communication model as Simplified (vs. prior default of Classic) 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

14 Feb 21:47
Compare
Choose a tag to compare
  • Fixes #469
  • Fixes GitHub action container-build

Version 15.6.0

13 Dec 19:32
1e6612d
Compare
Choose a tag to compare
  • 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 or sbm-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

18 Oct 15:07
Compare
Choose a tag to compare
  • 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.

Version 15.4.1

30 Jun 19:38
5a74ac3
Compare
Choose a tag to compare
  • 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

28 Apr 17:06
Compare
Choose a tag to compare

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 run sbm batch run and it will automatically enqueue the database targets for you. You can still run sbm 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 platform
  • sbm 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 platform
  • sbm 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 of IndividualScriptResults or ConsolidatedScriptResults)
  • 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 and sbm aci deploy (and consider using new sbm 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

04 Jan 00:26
Compare
Choose a tag to compare
Version 15.0.1-beta Pre-release
Pre-release
  • 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

30 Aug 21:34
Compare
Choose a tag to compare

ADDED: Windows installer (.msi) output for SQL Build Manager windows form app

Version 14.6.0

28 Aug 01:27
Compare
Choose a tag to compare
  • ADDED: Added Kubernetes namespace isolation in sqlbuildmanager namespace when using sbm k8s run and creating yaml files via sbm k8s createyaml
  • ADDED: Added jobname based kubernetes resources to isolate independent and/or concurrent runs when using sbm k8s run
  • UPDATED: Switched pre-build image source from docker hub blueskydevus/sqlbuildmanager to GitHub container registry mmckechney/sqlbuildmanager

Version 14.5.0

04 Aug 18:37
1461262
Compare
Choose a tag to compare
  • ADDED: Simplified Kubernetes with sbm k8s run that will orchestrate the individual steps (prep, enqueue, monitor) and encapsulate all kubectl commands used to create resources
  • ADDED: Simplified Container Apps with sbm containerapp run that will orchestrate the individual steps (prep, enqueue, deploy and montitor)
  • 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 with sbm 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