chore(config): add stgGlobalV2.billingKusto{Name,Sku} to de-hardcode STG billing Kusto (AROSLSRE-1482)#6065
Conversation
…billing Kusto The transient Billing.StgGlobal V2 bicepparam in sdp-pipelines hardcodes the billing Kusto cluster name and SKU as literals, because the shared billing.kusto.* configRefs are also consumed by Billing.Global (which manages the shared cluster for stg/uksouth) and cannot be overridden per-env without resizing the shared cluster. Add dedicated stgGlobalV2.billingKustoName / billingKustoSku keys (empty-sentinel defaults, real values only for public/stg) so the V2 bicepparam can reference config instead of literals. SKU is Standard_E8a_v4 because the shared Standard_E8ads_v5 is not offered in uksouth, where the dedicated cluster lives. Removed with the rest of stgGlobalV2 at decommission (AROSLSRE-1202).
There was a problem hiding this comment.
Pull request overview
This PR introduces two new configuration keys under stgGlobalV2—billingKustoName and billingKustoSku—to let the STG “global V2” billing pipeline reference schema-validated config instead of hardcoded string literals, without impacting the shared billing.kusto.* settings during coexistence.
Changes:
- Added
stgGlobalV2.billingKustoNameandstgGlobalV2.billingKustoSkudefaults (empty-sentinel) and made them required in the config schema. - Set real values for these keys in the
public/stgcloud overlay. - Re-materialized rendered dev configs to include the new keys (empty-sentinel in dev outputs).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| config/config.yaml | Adds stgGlobalV2.billingKustoName / billingKustoSku defaults (empty-sentinel). |
| config/config.schema.json | Extends stgGlobalV2 schema with the two new string properties and marks them required. |
| config/config.msft.clouds-overlay.yaml | Supplies real public/stg overlay values for the dedicated billing Kusto name/SKU. |
| config/rendered/dev/dev/westus3.yaml | Materialized dev render includes new stgGlobalV2.billingKusto* keys (empty-sentinel). |
| config/rendered/dev/cspr/westus3.yaml | Materialized dev render includes new stgGlobalV2.billingKusto* keys (empty-sentinel). |
| config/rendered/dev/perf/westus3.yaml | Materialized dev render includes new stgGlobalV2.billingKusto* keys (empty-sentinel). |
| config/rendered/dev/pers/westus3.yaml | Materialized dev render includes new stgGlobalV2.billingKusto* keys (empty-sentinel). |
| config/rendered/dev/ci00/centralus.yaml | Materialized dev render includes new stgGlobalV2.billingKusto* keys (empty-sentinel). |
| config/rendered/dev/ci01/centralus.yaml | Materialized dev render includes new stgGlobalV2.billingKusto* keys (empty-sentinel). |
|
/test integration Retesting: the failure is an environmental flake unrelated to this PR's change. This PR touches only Job Scope check: |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: janboll, raelga The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Fixes AROSLSRE-1482
What
Add dedicated
stgGlobalV2.billingKustoNameandstgGlobalV2.billingKustoSkuconfig keys (empty-sentinel defaults; real values only forpublic/stg) plus their schema entries, and re-materialize.Why
The transient
Billing.StgGlobalV2 bicepparam insdp-pipelinescurrently hardcodes the billing Kusto cluster name and SKU as string literals. It has to, becausebilling.kusto.clusterName/billing.kusto.skuare shared configRefs also consumed byBilling.Global— which keeps managing the sharedarohcpHoBoprodcluster forstg/uksouthduring coexistence — so a cloud/env-scoped overlay override of those shared keys would also resize the shared cluster.Introducing distinct
stgGlobalV2.billingKusto*keys (a new key read only by the V2 param) lets the pipeline reference schema-validated, versioned config instead of literals, without touching the shared cluster.Standard_E8a_v4is used because the sharedStandard_E8ads_v5is not offered inuksouth, where the dedicated cluster lives. These keys are removed with the rest ofstgGlobalV2at cutover (AROSLSRE-1202).A follow-up
sdp-pipelinesPR will switch the bicepparam to{{ .stgGlobalV2.billingKustoName }}/{{ .stgGlobalV2.billingKustoSku }}once this merges and the pinned ARO-HCP revision is bumped. This replaces the literal-hardcoding approach in sdp-pipelines PR 16421393.Testing
cd config && make materialize— rendered dev configs updated (empty-sentinel).make verify-schema— passes.templatize configuration render --cloud public --environment stg --region uksouthconfirmsstgGlobalV2.billingKustoName=arohcpHoBostg,billingKustoSku=Standard_E8a_v4.Special notes for your reviewer
No behavior change on its own — these keys are inert until the follow-up sdp-pipelines PR consumes them, and only ever resolve to real values for
public/stg. All other clouds/envs stayempty-sentinel.