Commit Graph
8 Commits
Author SHA1 Message Date
Story Crater Bot 4ad8a4f4a4 fix: move LLM config to encrypted ConfigMap (CI-friendly)
Build & Push Portfolio Image / Test (pull_request) Failing after 34s
Build & Push Portfolio Image / Build & Push Image (pull_request) Skipped
Problem: LLM_API_URL hardcoded to external HTTPS endpoint
- https://api.riotpiao.com/v1/chat/completions (TLS hairpin through nginx)
- Not externalizable for CI or environment-specific deployment

Solution: Move to SOPS-encrypted ConfigMap with in-cluster endpoint
- LLM_API_URL: http://api-gateway.api.svc.cluster.local:8080/v1/chat/completions
- No TLS overhead, direct cluster communication
- Encrypted for security (SOPS + age key)
- Externalizable: CI can update values without app redeployment

Changes:
1. Create configmap.enc.yaml (SOPS-encrypted)
   - Data: LLM_API_URL, LLM_MODEL
   - Encrypted with .sops.yaml age key
2. Update deployment.yaml
   - Change from 'value:' to 'valueFrom: configMapKeyRef'
   - Reference portfolio-llm-config ConfigMap
3. Update kustomization.yaml
   - Add configmap.enc.yaml to resources
   - Add sops: version: 3 for decryption

Benefits:
- ArgoCD auto-decrypts via SOPS before applying
- CI can auto-patch ConfigMap without app changes
- Environment-specific config (dev/staging/prod)
- Secrets encrypted in git (never plain text)
2026-09-06 23:25:35 -07:00
Story Crater Bot cd600e4807 fix: add LLM_API_URL and LLM_MODEL to portfolio deployment
Build & Push Portfolio Image / build-push (push) Failing after 1m11s
Missing env vars caused LLM calls to fail even with valid OAuth tokens.
Now pod has:
- Auth credentials (Authentik client_id/secret/token_url) 
- LLM endpoint (api.riotpiao.com/v1/chat/completions) 
- Model (qwen2.5:3b-instruct) 

Chat API will now successfully authenticate and call LLM gateway.
2026-09-06 06:00:06 -07:00
Story Crater Bot 32636832fc auth: switch to Authentik OAuth for LLM API
Build & Push Portfolio Image / build-push (push) Successful in 3m28s
- Add lib/auth.ts: OAuth client with token caching
- Use client_credentials grant with portfolio-agent service account
- Mount portfolio-agent-oidc secret for credentials
- Remove static LLM_API_TOKEN dependency
2026-09-03 19:32:12 -07:00
Story Crater Bot e55f774b42 feat: add LLM_API_TOKEN env to portfolio deployment 2026-09-01 09:45:52 -07:00
Story Crater Bot 0a5102fef0 feat: add FORGEJO_TOKEN env var from secret 2026-08-31 22:33:01 -07:00
Story Crater Bot 479979cad4 fix: dropdown close on mouse leave + imagePullPolicy Always
Build & Push Portfolio Image / build-push (push) Successful in 2m41s
- Add onMouseLeave to close dropdowns when hover away
- Change imagePullPolicy to Always for latest tag updates
2026-08-31 22:29:04 -07:00
Story Crater Bot b9ae470bc1 feat: portfolio redesign with i18n, RBC project showcase, CI/CD
- Add i18n support (EN/ZH) with language toggle
- Redesign header with education dropdown, contact copy buttons
- Add RBC project showcase with bullet points, skills highlighting
- Create terraform-drift placeholder page
- Add ProjectShowcase component with media toggle (image/video)
- Update experience timeline with action-driven descriptions
- Add Docker + Forgejo CI workflow for image builds
- Update K8s manifests for riotpiao.com ingress
- Add DESIGN.md documenting design system patterns
2026-08-31 13:59:46 -07:00
Story Crater Bot 6c6218ef36 (chore) init commit and add tasks 2026-08-18 18:33:49 -07:00