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?