- Install Docker for Mac (v3.4.0)
- Install Kubectl (v1.21.1)
- Install Tilt (v0.20.8)
- Install Helm,
brew install helm
(v3.5.2) - Install golang (go1.16.4)
- Install yarn (v1.22.10)
- Apply nginx ingress controller so that the ingress rules work.
- Run
make vendor-all
. - Set environment type in
Tiltfile
(dev
orstaging
,dev
by default). - Run
tilt up
. Ifdev
navigate tohttp://localhost
, elsehttps://staging.grouphouse.io
.
- Navigate to
./deployment
- Run
terraform init
to download providers. terraform plan
terraform apply
- Update kubectl config:
aws eks --region=us-west-1 update-kubeconfig --name=${cluster name}
Docs denoted by all-caps filename
./README
./TODO
./CHEATSHEET
./services
: Dockerized Services./grpc
: Example Private GRPC Service./public-api/README
: Public API Service./web-frontend/README
: Typescript/React/Redux/REST Web Frontend Service
./libraries
: Shared Local Libraries./golang/README
: Shared Golang Libraries./typescript/README
: Shared Typescript Libraries
./env
: Environment Variables./README
./charts
./values-dev.yaml
: Development Variables./values-staging.yaml
: Staging Variables./values-prod.yaml
: Production Variables
./charts
: Helm Charts./api-store/README
./grpc
./public-api
./web-frontend
./ingress/README
./external-dns/README
./deployment/README
: Terraform Deployment
- Don't commit directly to master, make PRs.
- PRs should be reviewed and be required to have a +1 from non-contributor to the PR.
- PRs should have corresponding tests.
- PRs should include documentation. Documentation should be kept with its relevant code to minimize drift.
- Autogenerated code should not be committed.
- Correct known trip-wires (little annoyances, mistakes, gotchas) immediately - quick fixes pay off dividends.
- Prefix branch name with creator's initials.
- As new items come up, add to TODO.
- Maximize code reuse, minimize service directory size and complexity