Review van spoke-pull requests¶
Runbook voor reviewers voor pull requests die een spoke-bestand aanmaken of wijzigen. Gebruik het samen met de algemene controles van Pull request review. De velden en hun betekenis staan in de Spoke JSON-referentie.
1. Controleer de status van de pull request¶
| Controle | Actie als het faalt |
|---|---|
| De pull request is geen draft | Reageer op het ticket: de aanvrager moet hem eerst afmaken. |
| De vereiste checks zijn geslaagd | Zet de pipeline opnieuw in de wachtrij als het resultaat is verlopen. Als hij faalde, reageer op het ticket en wacht op een fix. |
| Alle comments zijn afgehandeld | Reageer op het ticket en wacht. |
| Er is een ticket gekoppeld | Koppel het, of maak de controle optioneel als het platform het niet nodig heeft. |
Vereiste checks hangen af van het platform
Of de validatiepipeline een vereiste check is op de spoke-repository hangt af van het platform. Waar die er niet is, draai je de config tests zelf (De tests lokaal draaien).
Draait je platform een validatiepipeline op spoke-bestanden, dan controleert die de geldigheid van de JSON, het schema, het private link-subnet en de bestandsnaam tegen de omgeving (Spoke-bestanden valideren). Hij vervangt de onderstaande controles niet.
Stuur de pull request terug zoals beschreven in Pull request review.
2. Review elk bestand¶
Doe dit voor elk bestand in de pull request. Open de Files-weergave.
2.1 Bestandsnaam (nieuwe spokes, en als een naam is gewijzigd)¶
De bestandsnaam volgt de conventie van je platform, eindigt op .json en is uniek binnen alle submappen van spokes/.
Veel platformen gebruiken een patroon als canvas_<workload>_<environment>.json. Sommige coderen ook productie en
niet-productie in de naam (canvas_prod_..., canvas_nonprod_...). Het bestand moet in een submap staan.
2.2 Subscription¶
azureSubscriptionId moet bij een nieuwe spoke zijn ingevuld en een bestaande subscription zijn. Is hij leeg, dan moet de
subscription eerst worden aangemaakt via het proces van je organisatie
(Nieuwe spoke). Zet de ID in het bestand en commit hem naar de
branch.
2.3 Bestaande spokes¶
workloadShortName en environment van een bestaande spoke zijn ongewijzigd. Een wijziging maakt een nieuwe state key
en een tweede spoke aan (Spoke wijzigen).
2.4 Storage account en Key Vault (nieuwe spoke, of als de configuratie is gewijzigd)¶
| Controle | Als het niet is zoals verwacht |
|---|---|
Storage account: EnablePublicAccess is false en CreatePrivateEndpoint is true |
Vraag de aanvrager of dat de bedoeling is. |
Storage account: infrastructure_encryption_enabled is true |
Vraag of dat de bedoeling is. |
Storage account: allow_nested_items_to_be_public is false |
Vraag of dat de bedoeling is. |
Key Vault: enablepublicaccess is false en createprivateendpoint is true |
Vraag of dat de bedoeling is. |
2.5 Adresruimtes (nieuwe spoke, of als adressen zijn gewijzigd)¶
- Er is precies één
resourceconfiguration.network-item voor elke regio intargetRegions.primaryentargetRegions.additional. - Elke subnetprefix (
subnets[*].addressPrefix) ligt binnen de adresruimte van het bijbehorende netwerk (addressPrefix). - De subnets overlappen elkaar niet. Gebruik een subnetcalculator om zeker te zijn.
- Het bereik overlapt niet met een ander bereik van het IP-plan en is daar vastgelegd. De code controleert overlap niet.
2.6 Subnets (bij een update)¶
- Elk netwerk heeft een subnet met
isprivatelinksubnetoptrue. Eén is de conventie. - Delegaties zijn namen uit de lijst van het schema. Service endpoints zijn zoals gevraagd.
2.7 Network security groups¶
Elke network security group die een subnet noemt in linkednetworksecuritygroupname moet ook bestaan in de lijst
networksecuritygroups van hetzelfde netwerk. Zo niet, vraag de aanvrager om hem toe te voegen. Een bestaande NSG-regel
behoudt zijn prioriteit (Spoke wijzigen).
2.8 Identiteit en tags¶
- De groepen in
adInfo.ProductTeamGroupNamesbestaan in Entra ID. PIMGroupConfigheeft per rol een geldige modus (nopim,self-approve,approval).- De tags bevatten
owner,department,workload,pii,costcentreenenvironment. - De management group (
managementGroupId) past bij het gebruikstype: productiedata, persoonsgegevens en blootstelling aan internet.
3. Eindreview¶
- Zet auto-complete aan als dat nog niet is gedaan, met resolve work item after merging uit en delete source branch aan.
- Alle controles in orde: keur de pull request goed en deploy (Spoke-deployment).
- Er klopt iets niet: geef duidelijke feedback en vraag om wijzigingen.
2.9 Extensies (bij een wijziging)¶
- Een extensie staat alleen op
enabledals de gedeelde service bestaat inshared_servicesen de workload hem nodig heeft (Spoke extensions). - Het plan na de wijziging toont de roltoewijzingen en groepen van de extensie, en geen deletes.