Thank you for your interest in contributing to this project! This document provides guidelines and information for contributors.
- Use the GitHub issue tracker to report bugs or request features
- Provide detailed information about your environment and steps to reproduce
- Include relevant logs and error messages
- Check existing issues to avoid duplicates
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the project standards
- Test your changes thoroughly
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use consistent formatting (
terraform fmt) - Include meaningful variable descriptions
- Use appropriate variable types and validation
- Follow HashiCorp's Terraform style guide
- Include examples in variable descriptions
- Use
#!/bin/bashshebang - Include
set -efor error handling - Use meaningful variable names
- Include help/usage functions
- Add comments for complex logic
- Use consistent formatting and indentation
- Write clear, concise documentation
- Include practical examples
- Update relevant documentation when making changes
- Follow the existing documentation structure
- Test all documented procedures
├── docs/ # All documentation
│ ├── deployment/ # Deployment guides
│ ├── backup/ # Backup documentation
│ ├── monitoring/ # Monitoring setup
│ └── troubleshooting/ # Issue resolution
├── scripts/ # Automation scripts
│ ├── deployment/ # Deployment automation
│ ├── backup/ # Backup operations
│ ├── maintenance/ # System maintenance
│ └── troubleshooting/ # Diagnostic tools
├── configs/ # Configuration files
│ ├── grafana/ # Grafana dashboards/configs
│ ├── prometheus/ # Prometheus configurations
│ └── backup/ # Backup configurations
└── *.tf # Terraform infrastructure files
- Test all Terraform configurations with
terraform plan - Validate all shell scripts with
shellcheck(if available) - Test deployment scripts in a development environment
- Verify documentation accuracy
- Ensure all scripts have proper error handling
- Test infrastructure deployment from scratch
- Verify all components are functional
- Test backup and restore procedures
- Validate monitoring and alerting
- Check ingress and networking functionality
- Terraform 1.0+
- Access to Proxmox VE environment
- SSH key pair for VM access
- Basic understanding of Kubernetes
- Familiarity with shell scripting
- Clone the repository
- Copy
terraform.tfvars.exampletoterraform.tfvars - Configure your environment variables
- Run pre-flight checks:
./scripts/deployment/pre-flight-check.sh
- Use a separate Proxmox environment for testing
- Test the complete deployment process
- Verify all components are working
- Test backup and restore functionality
- Document any new procedures or changes
- Use clear, concise language
- Include step-by-step instructions
- Provide working code examples
- Add troubleshooting sections
- Cross-reference related documents
- Prerequisites and requirements
- Step-by-step procedures
- Verification steps
- Common issues and solutions
- Problem description and symptoms
- Root cause analysis
- Solution procedures
- Prevention measures
- Purpose and overview
- Configuration options
- Examples and best practices
- Integration with other components
- Environment Details: Proxmox version, Terraform version, OS
- Steps to Reproduce: Exact steps that led to the issue
- Expected Behavior: What should have happened
- Actual Behavior: What actually happened
- Logs and Errors: Relevant log entries and error messages
- Configuration: Relevant parts of your terraform.tfvars (sanitized)
## Bug Description
Brief description of the issue.
## Environment
- Proxmox VE Version:
- Terraform Version:
- Operating System:
- Project Version/Commit:
## Steps to Reproduce
1. Step one
2. Step two
3. Step three
## Expected Behavior
What should happen.
## Actual Behavior
What actually happens.
## Logs and Error MessagesPaste relevant logs here
## Additional Context
Any other relevant information.
- Use Case: Why is this feature needed?
- Proposed Solution: How should it work?
- Alternatives: Other ways to achieve the same goal
- Implementation Ideas: Technical approach (if you have ideas)
- Functionality: Does the code work as intended?
- Quality: Is the code well-written and maintainable?
- Testing: Has the code been properly tested?
- Documentation: Is the code properly documented?
- Standards: Does the code follow project standards?
- Code follows project conventions
- Changes are well-tested
- Documentation is updated
- No breaking changes without justification
- Security considerations are addressed
We follow Semantic Versioning:
- MAJOR: Incompatible API changes
- MINOR: New functionality (backward compatible)
- PATCH: Bug fixes (backward compatible)
- All tests pass
- Documentation is updated
- CHANGELOG.md is updated
- Version numbers are bumped
- Release notes are prepared
- GitHub Issues for bug reports and feature requests
- GitHub Discussions for questions and community support
- Create an issue for project-related questions
- Use discussions for general questions about usage
Contributors will be recognized in:
- Project README.md
- Release notes
- CHANGELOG.md
Thank you for contributing to making this project better! 🎉