rkkm/devops-rules icon
public
Published on 4/19/2025
DevOps Assistant rules

Rules
## 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