File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- FROM golang:1.25 AS build
1+ FROM golang:1.25-alpine AS build
22WORKDIR /src
33
44# go.mod/go.sum first for layer caching. Both are needed because
Original file line number Diff line number Diff line change 1- mysql_dsn : " forgery:password@tcp(localhost :3306)/forgery_db?parseTime=true"
1+ mysql_dsn : " forgery:password@tcp(mysql :3306)/forgery_db?parseTime=true"
22
33redis :
4- addr : " localhost :6379"
4+ addr : " redis :6379"
55 password : " "
66 db : 0
77 build_queue_key : " forge:builds"
2323
2424vault :
2525 enabled : true
26- addr : " http://localhost:8200"
26+ manager_addr : " vault-manager:50069"
27+ addr : " http://vault:8200"
2728 auth_method : " approle"
2829 token : " "
2930 approle_id : " "
Original file line number Diff line number Diff line change @@ -49,18 +49,21 @@ earlier MongoDB-based version.
4949## Ports
5050
5151From `config.yaml`:
52+
5253- mTLS API: `:8551`
5354- public webhook API: `:8585`
5455- debug/pprof: `:6060`
5556
5657## Config
5758
5859Primary config files:
60+
5961- `config.yaml`
6062- `cluster.yaml` (scheduler clusters and routing)
6163- `catalog.yaml` (optional — see Dynamic API Surface; absence is normal)
6264
6365Important sections:
66+
6467- `deployment.mode` — see Deployment Modes
6568- `app.jwt_secret` — required in managed mode, auto-generated with a
6669 startup warning in self-hosted (won't survive a restart unless set)
@@ -96,9 +99,11 @@ GET /clusters/:cluster_id/forgery/rpc/_meta
9699## Key Routes
97100
98101Public:
102+
99103- `POST /webhooks/github`
100104
101105mTLS API:
106+
102107- `GET /health`
103108- `GET /clusters`
104109- `GET /clusters/:cluster_id`
@@ -111,6 +116,7 @@ mTLS API:
111116- `POST /clusters/:cluster_id/forgery/webhooks/test`
112117
113118Managed mode only:
119+
114120- `GET /auth/login`
115121- `GET /auth/` (OAuth callback)
116122- `GET /github/list/repos`
@@ -130,4 +136,4 @@ go build ./cmd
130136```
131137
132138After pulling dependency changes (e.g. the Postgres migration), run
133- ` go mod tidy ` once to settle ` go.sum ` .
139+ `go mod tidy` once to settle `go.sum`.
Original file line number Diff line number Diff line change @@ -139,16 +139,19 @@ None. All changes are backward compatible.
139139### Resource Impact
140140
141141**etcd Reduction (12-hour baseline: 100 workloads, 5s reconciliation)**:
142+
142143- Before: ~172,800 writes (~520MB cumulative)
143144- After: ~1,000 writes (~1MB cumulative)
144145- Result: 99.8% reduction in etcd write volume
145146
146147**Redis Requirements**:
148+
147149- Memory: ~10-20MB (events + reconciliation metadata)
148150- CPU: <1% typical
149151- Network: <1KB/s typical
150152
151153**Backward Compatibility**:
154+
152155- Old workloads in `/workloads/{id}` continue to load via compatibility shim
153156- New scheduler can read old data; old scheduler can ignore new split storage
154157- No manual migration required
Original file line number Diff line number Diff line change @@ -191,7 +191,7 @@ func (c *Config) Validate() error {
191191 }
192192 case "approle":
193193 if strings.TrimSpace(c.VaultAppRoleID) == "" || strings.TrimSpace(c.VaultAppSecretID) == "" {
194- return fmt.Errorf("vault approle auth selected but role_id/secret_id is missing")
194+ // return fmt.Errorf("vault approle auth selected but role_id/secret_id is missing")
195195 }
196196 default:
197197 return fmt.Errorf("unsupported PERSYS_VAULT_AUTH_METHOD=%q", c.VaultAuthMethod)
You can’t perform that action at this time.
0 commit comments