Thank you for your interest in contributing to this DevOps project! This document provides guidelines and instructions for contributing.
- Clone the repository and open in VS Code
- When prompted, reopen in the Dev Container
- Wait for the container to build and install dependencies
- Run the setup script:
./scripts/setup.sh
- Follow the existing code style and conventions
- Write clear, descriptive commit messages
- Add documentation for new features
- Update README.md if necessary
- Use consistent variable naming (snake_case)
- Add descriptions to all variables and outputs
- Use modules for reusable components
- Tag all resources appropriately
- Run
terraform fmtbefore committing
- Follow YAML best practices
- Use meaningful task names
- Add comments for complex logic
- Use handlers for service restarts
- Test with
ansible-lint
- Use proper resource naming conventions
- Add labels and annotations
- Set resource limits and requests
- Use secrets for sensitive data
- Validate manifests before committing
- Use multi-stage builds when appropriate
- Run containers as non-root users
- Add health checks
- Minimize image layers
- Use .dockerignore files
Before submitting a pull request:
- Run the setup script to validate all configurations
- Test Terraform configurations with
terraform plan - Lint Ansible playbooks with
ansible-lint - Validate Kubernetes manifests
- Test Docker builds locally
- Run pre-commit hooks
- Fork the repository
- Create a feature branch from
develop - Make your changes following the code standards
- Test your changes thoroughly
- Update documentation as needed
- Submit a pull request with a clear description
This project uses pre-commit hooks to ensure code quality. Install them with:
pre-commit installThe hooks will automatically run on every commit and check for:
- Code formatting
- Syntax validation
- Security issues
- Documentation updates
When reporting issues, please include:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Relevant logs or error messages
If you discover a security vulnerability, please email the maintainers directly instead of creating a public issue.
Feel free to open an issue for questions about:
- How to use specific features
- Best practices for DevOps workflows
- Architecture decisions
- Tool recommendations