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:
2026-08-10 16:54:30 +08:00
parent cc478bdad4
commit 4e467e1136
43 changed files with 3179 additions and 1 deletions
@@ -0,0 +1,24 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-config
data:
config.yaml: |
server:
addr: ":8080"
git:
type: gitea
base_url: "{{ .Values.git.baseUrl }}"
token: "${GIT_TOKEN}"
cluster:
kubeconfig: /etc/proto-gen/kubeconfig
namespace: {{ .Values.cluster.namespace }}
job_timeout: {{ .Values.cluster.jobTimeout }}
max_concurrent: {{ .Values.cluster.maxConcurrent }}
toolchain_registry: "{{ .Values.toolchainRegistry }}"
target_repo_template: "{{ .Values.targetRepoTemplate }}"
plugins:
{{- range .Values.plugins }}
- language: {{ .language }}
image: "{{ .image }}"
{{- end }}