Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 5 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Grounds Development Infrastructure (grounds-dev) πŸš€

A local development infrastructure that provisions a k3d Kubernetes cluster with PostgreSQL and Agones (game server hosting).
A local development infrastructure that provisions a k3d Kubernetes cluster with all necessary components to run the Grounds network.

## 🎯 Quick Start

Expand All @@ -15,6 +15,7 @@ The `make up` command will automatically install missing prerequisites and deplo
- **k3d Kubernetes cluster** (1 server + 2 agents)
- **PostgreSQL database** in `databases` namespace
- **Agones** for game server hosting in `games` namespace
- **Valkey** in `databases` namespace
- **Dummy HTTP server** for testing in `infra` namespace
- **API namespace** for API services and microservices

Expand Down Expand Up @@ -71,32 +72,17 @@ This enables pulling private GHCR images without specifying `imagePullSecrets` i
|---------|-------------|
| `make up` | Start complete development environment |
| `make down` | Stop and delete the cluster |
| `make reset` | Reset the cluster (down + up) |
| `make status` | Show cluster and deployment status |
| `make logs` | Show logs for all services |
| `make test` | Test the deployment |
| `make export-kubeconfig` | Export cluster kubeconfig to ./kubeconfig |
| `make help` | Show all available commands |

### Development Helpers

| Command | Description |
|---------|-------------|
| `make port-forward` | Port forward services to localhost |
| `make db-connect` | Connect to PostgreSQL database |
| `make shell` | Open shell in PostgreSQL pod |

### Kubeconfig Access

The cluster kubeconfig is automatically exported to `./kubeconfig` during setup.

```bash
# Use the local kubeconfig
export KUBECONFIG=$(pwd)/kubeconfig
kubectl get nodes

# Or manually re-export
make export-kubeconfig
```

## 🌐 Service Access

Expand All @@ -107,9 +93,6 @@ make export-kubeconfig
- **Port**: `5432`

```bash
# Connect to database
make db-connect

# Port forward to access locally
kubectl port-forward -n databases svc/postgresql 5432:5432
```
Expand All @@ -124,20 +107,6 @@ kubectl get fleets -n games
kubectl get gameservers -n games
```


### API Services
- **Namespace**: `api`
- **Purpose**: Host API services and microservices

```bash
# Deploy API services to the api namespace
kubectl apply -f manifests/ -n api

# Check API services
kubectl get pods -n api
kubectl get services -n api
```

### Dummy HTTP Server (Testing)
- **URL**: http://localhost/demo
- **Namespace**: `infra`
Expand All @@ -157,9 +126,9 @@ kubectl get pods -A
make logs

# Restart everything
make down && make up
make reset
```

## πŸ”’ Security Note

⚠️ **Development only!** Default credentials (app/app) are used. Not for production.
⚠️ **Development only!** Default credentials (app/app) are used. Not for production.
12 changes: 10 additions & 2 deletions helmfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ releases:
# Wait for Agones controller to be ready
wait: true
timeout: 600
# Install CRDs automatically
createNamespace: true

# Valkey
- name: valkey
namespace: databases
chart: bitnami/valkey
values:
- values/valkey.values.yaml
# Wait for Valkey to be ready before proceeding
wait: true
timeout: 300

4 changes: 4 additions & 0 deletions values/valkey.values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
architecture: standalone

auth:
enabled: false