Puncte:0

Cum scriu un șablon Terraform care poate fi întreținut

drapel cn

pentru compania mea, am fost însărcinat să creez o configurație standard și un șablon pentru un cluster Kubernetes (EKS) în Terraform care poate fi implementat folosind GitLab CI/CD. Implementarea și configurarea au fost făcute de ceva vreme, dar m-am luptat cu partea șablonului.

Iată sarcina mea: creați un proiect/repo șablon cu configurație pe care altcineva o poate copia și edita.

Cu toate acestea, trebuie să-mi pot actualiza configurația pentru a se potrivi versiunilor sau noilor funcții în viitor și apoi trebuie să-mi cloneze/copie/să îmbine șablonul înapoi în configurația lor fără a-și suprascrie configurația specifică.

I-am cerut sfaturi unuia dintre dezvoltatorii mai seniori și mi-a recomandat să creez un fel de fișier de configurare (cum ar fi un fișier .tfvars pentru Terraform) în care poate intra configurația specifică, apoi îmi pot abstra șablonul și îl pot actualiza. fără a afecta configurația în viitor. Acest lucru ar funcționa la suprafață și deocamdată, dar pe măsură ce se adaugă funcții și apar solicitări mai specifice pentru mine, acest lucru ar deveni din ce în ce mai de neîntreținut în viitor, se pare.
O altă opțiune ar fi utilizarea modulelor Terraform, dar acest lucru suferă de același posibil efect secundar de a deveni o mizerie de neîntreținut mai târziu.

Așadar, sunt o pierdere aici.Acest lucru nu pare foarte ușor de întreținut pentru mine sau ei în viitor. Cel mai important, atunci când are loc o actualizare majoră a versiunii pentru șablonul meu, configurația lor se va întrerupe cu siguranță fără o modalitate de a remedia asta fără multă muncă manuală. Vreau să lucrez mai mult acum, astfel încât să poată fi întreținut în viitor cu cât mai puțină muncă, dar se pare că nu găsesc o soluție bună.

Așadar, întrebarea mea pentru voi toți devine: Cum creez în mod corespunzător un șablon de cluster Terraform Kubernetes care poate fi întreținut pe care îl pot actualiza cu cât mai puțin efort posibil în viitor?

Puncte:1
drapel ph

Modulele Terraform sunt mecanismul destinat pentru încapsularea unui set de declarații într-o formă reutilizabilă.

Ați menționat că preocuparea dvs. principală este că funcțiile adăugate mai târziu pot face ca modulul să devină o „mizerie de neîntreținut”. Aceasta este o problemă tipică de proiectare pe care trebuie să o rezolve întreținerii oricărui cod reutilizabil: pentru fiecare caracteristică nouă pe care cineva o solicită, va trebui fie să găsiți o modalitate de a o integra în designul existent, fie să declarați că această caracteristică nu este în domeniu și să oferiți o soluție separată la această problemă, cum ar fi un alt modul destinat să fie utilizat alături de primul.

Nu poate exista un răspuns universal la problema întreținerii continue a codului partajat, fie că este în Terraform sau altfel, ci secțiunea de documentație Terraform Compoziția modulului descrie câteva modele pentru împărțirea problemelor în părți mai mici care pot fi combinate împreună în moduri diferite.

Acesta este un mod obișnuit prin care autorii modulelor evită problema de care vă îngrijorați că un singur modul crește pentru a include mult mai mult decât a fost conceput inițial pentru a include: în schimb, puteți oferi utilizatorilor mai multe module pe care le pot combina împreună în moduri diferite pentru a gestionați diferite situații, astfel încât utilizatorii care nu au nevoie de o anumită caracteristică să poată sări peste includerea modulului corespunzător, în timp ce încă folosesc celelalte module.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.