Skip to content

Atredies/opella-devops-challenge

 
 

Repository files navigation

Opella DevOps Technical Challenge

Reusable Terraform module for Azure Virtual Network + multi-environment deployment.

Architecture

  • Reusable Module: modules/vnet/ (VNet + subnets + optional NSG)
  • Environments:
    • Deveastus
    • Prodwestus (Microsoft paired region)
  • Resources per environment:
    • Resource Group (with consistent tags)
    • Virtual Network + Subnets + NSG (via reusable module)
    • Windows Virtual Machine
    • Storage Account (Blob) + Private Endpoint
  • Naming: Microsoft Cloud Adoption Framework (CAF) standards
  • Tagging: Applied at Resource Group level (Environment, ManagedBy, Project, Region)

Clean Code & Quality Process

The following tools are automatically enforced in the CI pipeline:

  • terraform fmt — code formatting validation
  • tflint — linting and best practices
  • trivy — security and misconfiguration scanning
  • terraform-docs — auto-generated module documentation

CI/CD Pipelines

  • Separate CI and CD pipelines (industry best practice)

    • terraform-ci.yml → Runs on every push:
      • Quality checks (fmt, tflint, trivy, terraform-docs)
      • Terraform Plan for both environments
      • Auto-generates and commits terraform-plan-dev.txt and terraform-plan-prod.txt
    • terraform-cd.yml → Manual deployment:
      • Apply to Dev
      • Apply to Prod (with manual approval gate)
  • Both pipelines use Azure OIDC for secure authentication (no secrets stored in GitHub).

Deliverables

Module Documentation

See modules/vnet/README.md (auto-generated with terraform-docs).


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HCL 100.0%