đối với công ty của mình, tôi đã được giao nhiệm vụ tạo cấu hình và mẫu tiêu chuẩn cho cụm Kubernetes (EKS) trong Terraform có thể được triển khai bằng GitLab CI/CD. Việc triển khai và cấu hình đã được thực hiện trong một thời gian, nhưng tôi đã gặp khó khăn với khía cạnh mẫu của mọi thứ.
Đây là nhiệm vụ của tôi: tạo một dự án/repo mẫu với cấu hình mà người khác có thể sao chép và chỉnh sửa.
Tuy nhiên, sau đó tôi cần có thể cập nhật cấu hình của mình để phù hợp với các phiên bản hoặc tính năng mới trong tương lai và sau đó họ cần sao chép/sao chép/hợp nhất mẫu của tôi trở lại cấu hình của họ mà không ghi đè lên cấu hình cụ thể của họ.
Tôi đã xin lời khuyên từ một trong những nhà phát triển cấp cao hơn và anh ấy đã khuyên tôi nên tạo một loại tệp cấu hình (chẳng hạn như tệp .tfvars cho Terraform) nơi cấu hình cụ thể có thể được đưa vào, sau đó tôi có thể trừu tượng hóa mẫu của mình và cập nhật nó mà không ảnh hưởng đến cấu hình trong tương lai. Điều này sẽ hoạt động trên bề mặt và hiện tại, nhưng khi các tính năng được thêm vào và các yêu cầu cụ thể hơn đối với tôi xuất hiện, điều này sẽ ngày càng trở nên khó kiểm soát hơn trong tương lai.
Một tùy chọn khác là sử dụng các mô-đun Terraform, nhưng điều này có cùng tác dụng phụ có thể xảy ra là phát triển thành một mớ hỗn độn không thể bảo trì sau này.
Vì vậy, tôi thua lỗ ở đây.Điều này dường như không thể duy trì được đối với tôi hoặc họ trong tương lai. Quan trọng nhất, khi một bản cập nhật phiên bản chính xảy ra cho mẫu của tôi, cấu hình của chúng chắc chắn sẽ bị hỏng mà tôi không có cách nào khắc phục mà không cần thực hiện nhiều thao tác thủ công. Tôi muốn thực hiện nhiều công việc hơn một chút ngay bây giờ để có thể duy trì nó trong tương lai với càng ít công việc càng tốt, nhưng dường như tôi không thể tìm ra giải pháp tốt.
Vì vậy, câu hỏi của tôi dành cho tất cả các bạn là: Làm cách nào để tạo đúng mẫu cụm Terraform Kubernetes có thể bảo trì mà tôi có thể cập nhật với ít nỗ lực nhất có thể trong tương lai?