rkkm/devops-rules icon
public
Published on 4/19/2025
rkkm/devops-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