Terraform için testler yazın

Hasan Tayyar Beşik
2 min readJul 8, 2020

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.

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:

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.

--

--

Hasan Tayyar Beşik

GCloud, AWS, Security, NodeJs, Berlin — This blog is mostly technical and multilingual. Be aware of possible and multiple typos!