From 70a618f2f25628bb0f74fa92b0854b924777db0a Mon Sep 17 00:00:00 2001 From: milx Date: Fri, 24 Jul 2026 15:01:00 +0330 Subject: [PATCH 1/4] Chore: Update Dockerfile base image to golang:1.25-alpine --- persys-automation/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persys-automation/Dockerfile b/persys-automation/Dockerfile index 4d20648..9af7faf 100644 --- a/persys-automation/Dockerfile +++ b/persys-automation/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25 AS build +FROM golang:1.25-alpine AS build WORKDIR /src # go.mod/go.sum first for layer caching. Both are needed because From f317dca735ed800d0d92fd8fac23343a0104fcf5 Mon Sep 17 00:00:00 2001 From: milx Date: Fri, 24 Jul 2026 15:01:36 +0330 Subject: [PATCH 2/4] Chore: Update Forgery Config to use correct docker compose deployment as default --- persys-forgery/config.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/persys-forgery/config.yaml b/persys-forgery/config.yaml index a74656c..71b3f94 100644 --- a/persys-forgery/config.yaml +++ b/persys-forgery/config.yaml @@ -1,7 +1,7 @@ -mysql_dsn: "forgery:password@tcp(localhost:3306)/forgery_db?parseTime=true" +mysql_dsn: "forgery:password@tcp(mysql:3306)/forgery_db?parseTime=true" redis: - addr: "localhost:6379" + addr: "redis:6379" password: "" db: 0 build_queue_key: "forge:builds" @@ -23,7 +23,8 @@ tls: vault: enabled: true - addr: "http://localhost:8200" + manager_addr: "vault-manager:50069" + addr: "http://vault:8200" auth_method: "approle" token: "" approle_id: "" From af5bd145a972f488b4ad31bb0375f3bf8d29139e Mon Sep 17 00:00:00 2001 From: milx Date: Fri, 24 Jul 2026 15:01:46 +0330 Subject: [PATCH 3/4] Chore: Update Docs --- persys-gateway/README.md | 8 +++++++- persys-scheduler/CHANGELOG.md | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/persys-gateway/README.md b/persys-gateway/README.md index fba14b2..54f1534 100644 --- a/persys-gateway/README.md +++ b/persys-gateway/README.md @@ -49,6 +49,7 @@ earlier MongoDB-based version. ## Ports From `config.yaml`: + - mTLS API: `:8551` - public webhook API: `:8585` - debug/pprof: `:6060` @@ -56,11 +57,13 @@ From `config.yaml`: ## Config Primary config files: + - `config.yaml` - `cluster.yaml` (scheduler clusters and routing) - `catalog.yaml` (optional — see Dynamic API Surface; absence is normal) Important sections: + - `deployment.mode` — see Deployment Modes - `app.jwt_secret` — required in managed mode, auto-generated with a startup warning in self-hosted (won't survive a restart unless set) @@ -96,9 +99,11 @@ GET /clusters/:cluster_id/forgery/rpc/_meta ## Key Routes Public: + - `POST /webhooks/github` mTLS API: + - `GET /health` - `GET /clusters` - `GET /clusters/:cluster_id` @@ -111,6 +116,7 @@ mTLS API: - `POST /clusters/:cluster_id/forgery/webhooks/test` Managed mode only: + - `GET /auth/login` - `GET /auth/` (OAuth callback) - `GET /github/list/repos` @@ -130,4 +136,4 @@ go build ./cmd ``` After pulling dependency changes (e.g. the Postgres migration), run -`go mod tidy` once to settle `go.sum`. \ No newline at end of file +`go mod tidy` once to settle `go.sum`. diff --git a/persys-scheduler/CHANGELOG.md b/persys-scheduler/CHANGELOG.md index 8b1208c..68a0623 100644 --- a/persys-scheduler/CHANGELOG.md +++ b/persys-scheduler/CHANGELOG.md @@ -139,16 +139,19 @@ None. All changes are backward compatible. ### Resource Impact **etcd Reduction (12-hour baseline: 100 workloads, 5s reconciliation)**: + - Before: ~172,800 writes (~520MB cumulative) - After: ~1,000 writes (~1MB cumulative) - Result: 99.8% reduction in etcd write volume **Redis Requirements**: + - Memory: ~10-20MB (events + reconciliation metadata) - CPU: <1% typical - Network: <1KB/s typical **Backward Compatibility**: + - Old workloads in `/workloads/{id}` continue to load via compatibility shim - New scheduler can read old data; old scheduler can ignore new split storage - No manual migration required From bbbee3c166b8d3fb139409ff7957a0f49dab24b5 Mon Sep 17 00:00:00 2001 From: milx Date: Fri, 24 Jul 2026 15:02:10 +0330 Subject: [PATCH 4/4] Fix: ignore missing role_id and secret_id --- persys-scheduler/internal/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persys-scheduler/internal/config/config.go b/persys-scheduler/internal/config/config.go index 8ea944e..24879de 100644 --- a/persys-scheduler/internal/config/config.go +++ b/persys-scheduler/internal/config/config.go @@ -191,7 +191,7 @@ func (c *Config) Validate() error { } case "approle": if strings.TrimSpace(c.VaultAppRoleID) == "" || strings.TrimSpace(c.VaultAppSecretID) == "" { - return fmt.Errorf("vault approle auth selected but role_id/secret_id is missing") + // return fmt.Errorf("vault approle auth selected but role_id/secret_id is missing") } default: return fmt.Errorf("unsupported PERSYS_VAULT_AUTH_METHOD=%q", c.VaultAuthMethod)