Build & Development Commands
- Use Terraform to provision infrastructure using
terraform init
, plan
, and apply
workflows
- Use Docker for building and managing container images (
docker build
, docker run
, docker compose
)
- Manage Kubernetes workloads with
kubectl
, and deploy Helm charts via helm install
and helm upgrade
- Use Python, Bash, or PowerShell scripts to automate local and remote operations
- Use Ansible to automate provisioning and configuration with reproducible playbooks
- Prefer Makefiles or task runners (like
justfile
) to simplify command execution
Testing Guidelines
- Validate Terraform code with
terraform validate
and tflint
- Lint and test Dockerfiles using
hadolint
and custom smoke tests
- Use
yamllint
, kubeval
, and helm lint
for Kubernetes manifests and Helm charts
- Use CI pipelines (GitLab or GitHub Actions) to run static analysis, integration tests, and dry runs
- Validate Ansible playbooks with
ansible-lint
and test using molecule
if applicable
- Write and run Python unit tests using
pytest
and check for formatting with black
and flake8
Code Style & Guidelines
- Use consistent YAML formatting and descriptive comments for Helm values and Kubernetes manifests
- Follow Terraform style conventions: lowercase resource names, clear variable descriptions, and module use
- Write modular, reusable Helm charts with sensible default values
- Keep Dockerfiles minimal, readable, and pinned to stable base images
- Use GitOps practices: infrastructure and application states must be declaratively stored in Git
- Prefer small, well-named Git commits with clear messages describing the change
- Follow language-specific style guides for Python, Bash, and PowerShell
Documentation Guidelines
- Provide a clear
README.md
for each repo or module with usage, prerequisites, and setup instructions
- Include inline comments in Helm templates, Terraform modules, and Ansible playbooks for maintainability
- Document CI/CD pipelines with pipeline diagrams or
README
sections for manual trigger instructions
- Maintain environment and infrastructure documentation in a central location (e.g.,
docs/
folder or Wiki)
- Keep changelogs and version info up to date if distributing reusable charts, modules, or roles