Ga naar inhoud

Hub-config

De hubconfiguratie beschrijft één platformomgeving (canary of prod): de regio's, subscriptions, het netwerk, de firewall, policies en monitoring.

Structuur

Bestand / map Layer Bevat
<env-folder>/mcp.json alle State backends, job runners, DevOps-organisatie, spoke-defaults. Zie mcp.json.
<env-folder>/global.auto.tfvars alle primary_region, active_regions, active_regions_names, scaffold_environment, scaffold_environment_short_name, scaffold_company_short_name, scaffold_subscriptions (management, connectivity, identity)
<region>/global.auto.tfvars alle scaffold_location, scaffold_location_short_name
<region>/foundation.auto.tfvars foundation Management group-structuur, action group-ontvangers, paden naar custom policies, DDoS plan, Network Manager
<region>/connectivity.auto.tfvars connectivity Virtual hub, firewall en policy, gateways, DNS, Bastion, paden voor App Gateway en WAF, hub 24/7
<region>/firewall.auto.tfvars firewall Paden naar rule collection groups en IP groups, naming flags
<region>/identity.auto.tfvars identity Identity VNet
<region>/management.auto.tfvars management Log Analytics, Key Vault, Automation, Sentinel, management VNet
<region>/postdeployment.auto.tfvars postdeployment Paden naar policy assignments/exemptions, Defender, AMBA alerting_management_groups, security contact
<region>/firewall_rule_configuration/*.json firewall Rule collection groups (schema firewallschema.json)
<region>/ip_groups/*.json firewall IP groups
<region>/application_gateways/*.json connectivity App Gateway-definities (schema appgwschema.json)
<region>/web_application_firewall_policies/*.json connectivity WAF policies (schema wafpolicyschema.json)
policies/definitions/, policies/set_definitions/ foundation Custom policy definitions en initiatives
policies/policy_assignments/0{1..4}_*/ postdeployment Assignments op management group-, subscription-, resource group- en resource-scope
policies/policy_exemptions/0{1..4}_*/ postdeployment Exemptions op dezelfde vier scopes

Bestanden die niet op .json eindigen worden door elke loader genegeerd. Om een bestand uit te schakelen zonder het te verwijderen, hernoem je het naar <name>.json.ignore. (De referentierepository gebruikt .jason voor voorbeeld-exemptions.)

TFVARS-overzicht: wat staat waar

Je wilt wijzigen… Bestand Variabelen (voorbeelden)
Regio's global.auto.tfvars primary_region, active_regions, active_regions_names; zie Een regio toevoegen
Namen global.auto.tfvars scaffold_company_short_name, scaffold_environment(_short_name); per resource overwrite_*
Management groups <primary>/foundation.auto.tfvars management_group_organization_id, management_group_structure, mgmtgrp_structure_under_customer_area_*
Wie platformalerts ontvangt <primary>/foundation.auto.tfvars monitor_action_group_general_email_receiver, …_xpirit_email_receiver, …_webhook_receiver
Een hubfeature aan/uit <region>/<layer>.auto.tfvars zie de naslag over feature flags
Adresranges van de hub <region>/connectivity.auto.tfvars virtual_hub_address_prefix, hub VNet-subnets, virtual_network_dns_servers
Tags op hubresources <region>/<layer>.auto.tfvars *_tags, zie Hub-tags
Alert initiatives <primary>/postdeployment.auto.tfvars alerting_management_groups
Defender-contact postdeployment.auto.tfvars security_contact_email

Referentieconfiguratie (XDEV)

xms-cloud-platform-config is de XDEV-tenant: één regio (gwc, Germany West Central), company short name xdev, canary en prod, Azure DevOps-organisatie Xebia-Dev en twee spokes onder prod/spokes/data_platform/. Deze pint release/v4.11.

Inhoud van de JSON-bestanden

De velden van elk JSON-type worden beschreven in het runbook dat ze wijzigt:

Hub-config wijzigen

flowchart LR
    b[Branch] --> e[Edit tfvars / JSON] --> t["Validate<br/>(config tests)"] --> pr["PR + review"]
    pr --> ci["CI: hub run in Plan"] --> cd1["CD: apply canary"] --> v[Verify] --> cd2["CD: apply prod"] --> m[Merge]
  1. Maak een branch in de configuratierepository.
  2. Bewerk alleen de bestanden die het runbook noemt.
  3. Draai de config tests lokaal (optioneel).
  4. Open een pull request; een tweede engineer reviewt.
  5. Draai hub vanaf de branch in Plan- of ApproveModifications-modus. Lees de plan van elke layer.
  6. Pas toe op canary, verifieer, en daarna prod.
  7. Merge, zodat main beschrijft wat er is gedeployed.

Volledige procedure: Veilig een wijziging doorvoeren.