Welcome to the GistPin infrastructure team. This guide covers everything you need to contribute effectively.
Install all required tools listed in TOOLS.md before proceeding.
infrastructure/
├── ci/ # GitHub Actions workflows and CI scripts
├── docs/ # Documentation (you are here)
├── docker/ # Dockerfiles and compose configs
├── k8s/ # Kubernetes manifests and Helm values
├── monitoring/ # Prometheus, Grafana, alerting configs
├── scripts/ # Operational shell/Python scripts
├── security/ # Security scanning and compliance configs
└── terraform/ # AWS infrastructure as code
- Branch off
mainusing the patternfeat/<issue-number>-<short-description>. - Make changes in the relevant subdirectory.
- Validate your changes locally (see commands below).
- Commit with a clear message referencing the issue:
feat: add VPA config (#577). - Push and open a PR against
PinSpace-Org/GistPin:main. - Request review from at least one infrastructure team member.
cd infrastructure/terraform
terraform fmt -recursive # format
terraform validate # validate syntax
terraform plan # preview changeskubectl apply --dry-run=client -f k8s/ # dry-run all manifests
kubectl diff -f k8s/ # diff against live clusterdocker build -f docker/backend.Dockerfile . # build backend image
docker compose -f docker/docker-compose.yml up # local stackshellcheck infrastructure/scripts/*.sh # lint shell scripts- Terraform: follow
terraform fmtoutput; document all variables and outputs. - Kubernetes: include resource
requestsandlimitson every container. - Shell scripts: pass
shellcheckwith no warnings; useset -euo pipefail. - YAML: 2-space indent; no trailing whitespace.
- No hardcoded secrets or credentials
- Resource limits set on all K8s containers
- Terraform changes include a
terraform planoutput in the PR description - New scripts have execute permissions (
chmod +x) and passshellcheck - Docs updated if behaviour changes