Điểm:0

Làm cách nào để sử dụng aws-iam-authenticator với Terraform Cloud Run từ xa?

lá cờ us

Tôi đã sử dụng thành công Terraform với Nhà cung cấp Kubernetes để quản lý các phần và dịch vụ khác nhau trên một EKS cụm trong AWS. tôi muốn sử dụng Đám mây địa hình để quản lý nó (và tận dụng lợi thế của tích hợp Github/VCS tuyệt vời). Tuy nhiên, các kubeconfig mà tôi có cho cụm đó sử dụng aws-iam-authenticator nhị phân để tận dụng thông tin đăng nhập AWS (và do đó là quyền IAM) để xác thực và cấp quyền, cả trong AWS và trong cụm thông qua IRSA.

Các phiên bản Terraform Cloud không có aws-iam-authenticator đã cài đặt nhị phân và do đó, mặc dù chúng có thông tin xác thực AWS chính xác nhưng không thể tận dụng những thông tin này để xác thực và kết nối với cụm EKS.

Sử dụng Terraform thông thường (không phải đám mây) không có vấn đề này, bạn chỉ cần đảm bảo rằng máy bạn đang chạy kế hoạch / áp dụng from có ​​tệp nhị phân và thông tin đăng nhập và nó "chỉ hoạt động", làm cách nào tôi có thể khiến Terraform Cloud hoạt động theo cách tương tự?

Điểm:1
lá cờ us

Tài liệu Terraform Cloud che đậy điều này, và nó không bị cấm, nhưng nó cũng không được khuyến khích chính xác. Có 2 phương pháp được đề cập trong các tài liệu đó, sử dụng cục bộ-exec nhà cung cấp (việc sử dụng được mô tả là "phương sách cuối cùng" và có khả năng gây ra sự cố) hoặc sử dụng mô hình con. Các tài liệu cũng đề cập rằng chỉ nên sử dụng "Các tệp nhị phân độc lập". rất may aws-iam-authenticator thực sự có sẵn dưới dạng nhị phân độc lập tĩnh cho nhiều hệ thống. Thật không may, tài liệu, ngoài việc đề cập đến các mô hình con, không bao gồm các bước cần thiết để thực hiện công việc này.

Hy vọng rằng Hashicorp sẽ cung cấp một cách ít hack hơn và được hỗ trợ nhiều hơn để tùy chỉnh các môi trường này trong tương lai, nhưng cho đến lúc đó...

Trước tiên, chúng tôi cần một tệp nhị phân tương thích và mặc dù chúng tôi không biết chính xác Hệ điều hành/Hình ảnh nào đang được chạy bởi các phiên bản Đám mây Terraform, nhưng chúng tôi biết từ tài liệu rằng nó tương thích với Linux x86_64. Do đó, kể từ khi aws-iam-authenticator có sẵn dưới dạng tệp nhị phân tĩnh độc lập cho Linux x86_64, điều chúng tôi cần làm là đưa tệp nhị phân đó vào môi trường, sau đó cung cấp tệp nhị phân đó cho cá thể nói chung (vì chúng tôi không kiểm soát cách gọi cụ thể nó).

Terraform Cloud cho phép bạn thao tác các biến môi trường, chúng ta có thể đạt được điều này bằng cách thao tác $PATH biến khi chúng ta có nhị phân trên máy chủ. Cách đơn giản nhất để làm điều này là chỉ cần thêm tệp nhị phân vào cấu hình bên trong một thư mục, tuy nhiên, nếu bạn muốn sử dụng cách này cho nhiều cấu hình mà không phải quản lý tệp nhị phân riêng trong từng cấu hình (hãy tưởng tượng phải cập nhật tất cả chúng một cách riêng biệt), Tôi khuyên bạn nên làm điều này như một mô-đun phụ trong kho git của bạn.

Đây là một ví dụ về một repo công khai chứa nhị phân, bạn sẽ thêm phần này vào repo của mình dưới dạng mô hình con như sau:

mô hình con git thêm https://github.com/comerford/tc-tools.git

Sau đó, bạn có thể cam kết/đẩy như bình thường, đảm bảo rằng cài đặt kiểm soát phiên bản cho không gian làm việc của bạn được đặt thành sao chép các mô hình con như bên dưới:

kích hoạt nhân bản mô hình con

Cuối cùng, để đảm bảo rằng dù nhị phân được gọi như thế nào thì nó vẫn hoạt động, bạn cần thực hiện các thay đổi đối với CON ĐƯỜNG biến môi trường để nó nhìn thấy tệp nhị phân mới của bạn, nhưng cũng không phá vỡ bất kỳ thứ gì. Đây là ENV biến phù hợp với tôi với mô hình con ở trên:

Biến PATH hoạt động trên Terraform Cloud

Để cung cấp chuỗi đó ở định dạng dễ sử dụng hơn:

"~/tc-tools:/home/terraform/tc-tools:./tc-tools:/usr/bin:/usr/local/bin:/bin:$PATH"

Nó đang phỏng đoán các đường dẫn có khả năng xảy ra và tôi không chắc chắn 100% đường dẫn nào hoạt động vì tôi không muốn gây ra các lần chạy bị hỏng vì lợi ích của một vài ký tự.

Mặc dù điều này là đặc biệt cho aws-iam-authenticator nhị phân, nó sẽ hoạt động như một phương pháp chung cho bất kỳ tệp nhị phân tĩnh Linux x86_64 nào mà bạn cần.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.