Zum Inhalt

Hub-Config

Die Hub-Konfiguration beschreibt ein Plattform-Environment (canary oder prod): seine Regionen, subscriptions, Netzwerk, firewall, Policies und das Monitoring.

Aufbau

Datei / Ordner Layer Enthält
<env-folder>/mcp.json all State-Backends, Job-runner, DevOps-Organisation, Spoke-Standardwerte. Siehe mcp.json.
<env-folder>/global.auto.tfvars all 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 all scaffold_location, scaffold_location_short_name
<region>/foundation.auto.tfvars foundation Struktur der management groups, Empfänger der action group, Pfade zu eigenen Policies, DDoS-Plan, Network Manager
<region>/connectivity.auto.tfvars connectivity Virtual hub, firewall und Policy, Gateways, DNS, Bastion, Pfade für App Gateway und WAF, hub 24/7
<region>/firewall.auto.tfvars firewall Pfade für rule collection groups und 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 Pfade für Policy-Zuweisungen/-Ausnahmen, 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-Definitionen (Schema appgwschema.json)
<region>/web_application_firewall_policies/*.json connectivity WAF-Policies (Schema wafpolicyschema.json)
policies/definitions/, policies/set_definitions/ foundation Eigene Policy-Definitionen und initiatives
policies/policy_assignments/0{1..4}_*/ postdeployment Zuweisungen auf Ebene management group, subscription, resource group, Ressource
policies/policy_exemptions/0{1..4}_*/ postdeployment Ausnahmen auf denselben vier Ebenen

Dateien, die nicht auf .json enden, werden von jedem Loader ignoriert. Um eine Datei zu deaktivieren, ohne sie zu löschen, benenne sie in <name>.json.ignore um. (Das Referenz-Repository verwendet .jason für Beispiel-Ausnahmen.)

TFVARS-Übersicht: was gehört wohin

Du willst ändern… Datei Variablen (Beispiele)
Regionen global.auto.tfvars primary_region, active_regions, active_regions_names — siehe Region hinzufügen
Namen global.auto.tfvars scaffold_company_short_name, scaffold_environment(_short_name); pro Ressource overwrite_*
Management groups <primary>/foundation.auto.tfvars management_group_organization_id, management_group_structure, mgmtgrp_structure_under_customer_area_*
Wer Plattform-Alerts erhält <primary>/foundation.auto.tfvars monitor_action_group_general_email_receiver, …_xpirit_email_receiver, …_webhook_receiver
Ein Hub-Feature an/aus <region>/<layer>.auto.tfvars siehe die Referenz der feature flags
Hub-Adressbereiche <region>/connectivity.auto.tfvars virtual_hub_address_prefix, Hub-VNet-Subnetze, virtual_network_dns_servers
Tags auf Hub-Ressourcen <region>/<layer>.auto.tfvars *_tags, siehe Hub-Tags
Alert-initiatives <primary>/postdeployment.auto.tfvars alerting_management_groups
Defender-Kontakt postdeployment.auto.tfvars security_contact_email

Referenzkonfiguration (XDEV)

xms-cloud-platform-config ist der XDEV-Tenant: eine Region (gwc, Germany West Central), Company Short Name xdev, canary und prod, Azure DevOps-Organisation Xebia-Dev und zwei Spokes unter prod/spokes/data_platform/. Es pinnt release/v4.11.

Inhalt der JSON-Dateien

Die Felder jedes JSON-Typs sind im Runbook beschrieben, das sie ändert:

So änderst du die Hub-Config

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. Erstelle einen Branch im Konfigurations-Repository.
  2. Bearbeite nur die Dateien, die das Runbook nennt.
  3. Führe die Config-Tests lokal aus (optional).
  4. Öffne einen pull request; ein zweiter Engineer führt das Review durch.
  5. Führe hub vom Branch im Modus Plan oder ApproveModifications aus. Lies den Plan jedes layers.
  6. Wende auf canary an, verifiziere, dann prod.
  7. Führe den Merge durch, damit main beschreibt, was deployt ist.

Vollständiges Vorgehen: Änderungen sicher durchführen.