feat: implement proto-gen platform
- Config loader with env var expansion and validation - SQLite database with tasks and toolchain_versions tables - Gitea REST API client for repository and branch operations - K8s client for Job lifecycle management (with noop fallback for local dev) - REST API: tasks CRUD, retry, plugins, version management - Worker/scheduler with polling, concurrency control, and job tracking - Static frontend: generate, tasks, settings pages - Toolchain images: Go and Node.js Dockerfiles with entrypoint scripts - Helm chart with deployment, service, configmap, ingress, PVC - Multi-stage Dockerfile for service - Unit tests for config, database, gitclient, k8s, api, worker - E2E tests for idempotency, version switch, failure recovery
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: registry.example.com/proto-gen
|
||||
tag: "latest"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
git:
|
||||
baseUrl: "https://git.example.com"
|
||||
tokenSecret: "proto-gen-git-token"
|
||||
|
||||
cluster:
|
||||
kubeconfigSecret: "proto-gen-kubeconfig"
|
||||
namespace: proto-gen-jobs
|
||||
jobTimeout: 600
|
||||
maxConcurrent: 2
|
||||
|
||||
toolchainRegistry: "registry.example.com/proto-gen"
|
||||
|
||||
targetRepoTemplate: "{proto_repo}-gen-{lang}"
|
||||
|
||||
plugins:
|
||||
- language: go
|
||||
image: "proto-gen-go:v1.34.2"
|
||||
- language: nodejs
|
||||
image: "proto-gen-ts:v0.9.0"
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 8080
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
className: ""
|
||||
annotations: {}
|
||||
hosts:
|
||||
- host: gen.example.com
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls: []
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 1Gi
|
||||
|
||||
resources: {}
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
Reference in New Issue
Block a user