Terraform için testler yazın

Terraform mimarinizi kod olarak tanımlamanıza ve yönetmenize olanak sağlan bir teknoloji. O konuda fazla detay vermeyeceğim. Şuradan okuyabilirisiniz: https://www.terraform.io/intro/index.html

Eğer orta veya büyük ölçekli bir mimariniz varsa terraform reponuz hızlı bir şekilde karmaşık hale gelebiliyor. Kontrolü ise yine çok zor oluyor.

Kontrolü biraz daha sağlamak için MIT lisansi ile acik kaynak yapilmis terraform-compliance uygulamasini kullanmaya karar verdik. Aslında epeydir aklımızda olan bir şeydi.

Image for post
Image for post
terraform-compliance logo

Ben şu şekilde mevcut terraform containerima ekledim.

FROM alpine:3.12 as buildRUN apk add libxml2-dev libxslt-dev python3-dev gcc build-base
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
RUN pip install terraform-compliance
FROM alpine:3.12 as releaseCOPY --from=build /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

İstersen sadece pip install terraform-compliance şeklinde de ekleyebilirsin ama yukarıdaki gibi staged Dockerfile daha performanslı olur

Çünkü ben terraformu docker ile çalıştırıyorum. Bu şekilde olması bir çok CI/CD pipeline için daha uygun.

terraform-compliance icin Docker imaji da var. Detaylar surada: https://terraform-compliance.com/pages/installation/

Test yazarken çok keyif aldım çünkü http://radish-bdd.io/ ile yazım çok keyifli. Terraform-compliance radish-bdd kullaniyor.

Örnek bir test:

Image for post
Image for post
Ornek bir terraform-compliance ciktisi

Şimdilik terraform-compliance’ı şunlar için kullanacağım ve kullanmayı düşünüyorum.

  • Güvenlik doğrulamaları. belirli portlar açık olmamalı, public bucket olmamalı, encryption olmalı v.s.
  • Mimarı standardlar: tag eklenmeli v.s.
  • www.terraform-best-practices.com baz alarak olusturacagimiz style guideline dogrulamasi

Özellikle güvenlik doğrulamarı çok önemli. Mimarı değişmeden bu kontrolün yapılması çok geç olmadan müdaheleyi sağlar ve güvenliği ciddi şekilde arttırır.

Eğer kullanmaya başlamak veya daha fazla motive olmak istiyorsan terraform-compliance yaratıcısının blog yazısını okumanı tavsiye ederim.

Written by

DevOps at OLX Autos, Former Devops @bitwala #nodejs #Berlin — This blog is mostly techie and multilingual. Be aware of possible and multiple typos!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store