Managed VM: pull request review en deployment¶
Runbook voor reviewers en operators voor pull requests die de configuratie van managed virtual machines toevoegen of wijzigen. Het beschrijft hoe je de pull request valideert, welke instellingen een tweede blik nodig hebben, hoe je de modulepipeline draait en hoe je met fouten omgaat. De module zelf, de aanvraagvelden en de reguliere controles staan in Managed VM-module (platformkant). Het perspectief van het workload team staat in Een Managed VM pull request voorbereiden.
Scope¶
Het runbook geldt voor:
- pull requests voor de configuratie van managed VM's (nieuwe VM-deployments en wijzigingen in bestaande VM-configuraties);
- de configuratierepository van de spokes en van de Managed VM-module;
- development/test-, niet-productie- en productieomgevingen.
Het doel is een consistente en correcte configuratie en een veilige deployment van virtual machines in de spokes.
1. Voorbereiding¶
Zorg dat je toegang hebt tot de tooling van het platform (de repository, de pipelines en het ticketsysteem) en tot de repository van de juiste klant of platformomgeving.
2. Controleer de status van de pull request¶
| Controle | Actie als die 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. Is hij mislukt, vraag de aanvrager dan het te herstellen voordat de review doorgaat. |
| Alle opmerkingen zijn opgelost | Vraag de aanvrager ze op te lossen. |
| Er is een ticket gekoppeld | Koppel het, of maak de check optioneel als je proces dat toelaat. |
| Je kent de aanvrager | Die staat onder de titel. Richt je opmerkingen aan hem of haar. |
Vereiste checks hangen van het platform af
De validatiepipeline als vereiste check is niet overal beschikbaar. Waar dat niet zo is, valideer je de bestanden zelf.
3. Review de configuratie¶
3.1 Wat voor wijziging is het¶
Bepaal of de pull request een nieuwe VM-configuratie is of een wijziging van een bestaande VM: grootte, tags, retentie, eigenaren, aantal instances enzovoort. De ondersteunde wijzigingstypen staan in Wijzigingstypen die passen bij een standaardwijziging. Al het andere is geen standaardwijziging.
3.2 Bestanden en mappen¶
Het configuratiebestand:
- staat in de map van de juiste spoke;
- volgt de naamgeving van het platform voor de omgeving (bijvoorbeeld
prod,nonprodofdev); - is opgenomen in de pipelineconfiguratie.
Nieuwe mappen en bestanden moeten in de pipeline worden gerefereerd
Een spoke-map die niet in de lijst met spokes van de modulepipeline staat, wordt niet gedeployed, en de pipeline blijft groen. Controleer dat de pull request de verwijzing toevoegt.
3.3 Inhoud¶
Er is niet één veld dat je los controleert: alle variabelen moeten aanwezig en correct zijn. Vergelijk het nieuwe bestand met een bestaande, werkende configuratie, met een tool voor bestandsvergelijking, en zorg dat alle verwachte variabelen bestaan en goed gevormd zijn. Controleer deze zaken met het oog:
- de subscription-ID en de resourcegroep verwijzen naar een bestaande spoke;
- de versie van de connectivity-module is dezelfde als in bestaande deployments (bijvoorbeeld
connectivity_v1); - de instellingen voor Bastion en login zijn aanwezig;
- de eigenaren zijn gedefinieerd en zijn personen die in Entra ID bestaan;
- de tags hebben het juiste formaat en
PatchPriorityis een geldige waarde; - de gecombineerde lengte van de korte naam van de workload en de korte naam van de configuratie valt binnen de limiet (Aanvraagvelden).
3.4 Instellingen die een tweede blik nodig hebben¶
| Instelling | Controle |
|---|---|
useAccessPackages |
Mag true of false zijn. Sommige platforms gebruiken geen access packages meer en geven de voorkeur aan false. Is het true, vraag de aanvrager dan of dat bedoeld is. |
instances |
Aantal VM's. Bij een waarde boven 1 worden meerdere VM's met dezelfde configuratie aangemaakt, met de standaardnamen en een oplopend achtervoegsel. Controleer dat het aantal het gevraagde is. |
| Backup | Er moet een backupoplossing zijn gedefinieerd. De Recovery Services vault heeft de voorkeur, de Backup Vault is de oudere optie die nog wordt ondersteund. |
| Disks | De grootte van de OS-disk kiest de klant. Data disks zijn optioneel: ontbrekende data disks zijn prima tenzij het plan faalt. Wordt een data disk verwijderd, controleer dan de index (de positie in de lijst) en dat de data niet nodig is. |
| Grootte (SKU) | Een resize herstart de VM. Controleer de quota en spreek een tijdstip af. |
4. Draai de pipeline¶
4.1 Welke pipeline¶
Gebruik de pipeline Managed VM deployment. Selecteer voor de validatie van een pull request de branch van de pull request. Gebruik voor
de deployment na de merge main.
4.2 Welke stage¶
- Deselecteer alle stages.
- Zoek en selecteer de stage die bij de spoke-naam en de omgeving past (development/test, niet-productie, productie).
- Zorg dat de stage overeenkomt met de naam van het configuratiebestand.
4.3 Deploymentflow¶
- De build-fase draait het Terraform-plan. Faalt die, stuur de fout dan naar de auteur van de pull request en vraag om een correctie.
- Development/test en niet-productie deployen automatisch na de build.
- Productie wacht op goedkeuring van een tweede engineer. Lees het plan nog eens door voordat je goedkeurt.
4.4 Controleer de apply¶
Nadat de apply-stage groen is:
- Open het apply-log.
- Controleer dat de gevraagde wijziging is uitgevoerd.
- Vertrouw niet alleen op de groene stage. Is de wijziging niet zichtbaar, beschouw de deployment dan niet als geslaagd. Zoek het uit en vraag zo nodig een tweede engineer.
5. Eindreview en afsluiten¶
- Alle checks in orde: keur de pull request goed, deploy en controleer.
- Werk het ticket bij: meld dat de wijziging is gedeployed, wijs het toe aan de aanvrager en zet het op Resolved.
- Vertel de aanvrager hoe die verbinding maakt en waar de credentials staan (Verbinden met virtual machines).
6. Foutafhandeling¶
| Probleem | Actie |
|---|---|
| Het Terraform-plan faalt | Stuur de foutuitvoer naar de aanvrager en vraag om een update van de pull request. |
| De fout is onduidelijk of complex | Vraag een tweede platform engineer. |
| Er wordt niets gedeployed, de pipeline is groen | De spoke-map staat niet in de modulepipeline. Voeg hem toe. |
| De naam van de Key Vault is fout | Stel key_vault_name expliciet in (Aanvraagvelden). |