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