feat(openviking): pilot deployment to fastpass (wave 8)

Platform Knowledge Infrastructure pilot - context database for large
file trees, shared skills, and long-term logs to reduce agent token
consumption. Pilot scope: two corpora (hermes/ skills library,
personal/homelab/), two consumer profiles (Wong, Shuri) for before/after
token comparison.

- namespace.yaml: openviking namespace, sync-wave 8 (after Harbor wave 7)
- externalsecret.yaml: credentials from 1Password via onepassword-connect
  ClusterSecretStore (Wong, t_32766900)
- values.yaml: Helm overrides - px-fa-direct-access storage (30Gi),
  embedding (nomic-embed-text-v1.5) + VLM (Llama-3.1-8B) via astro-orbiter
  router (:8002), internal-only ingress
- application.yaml: multi-source ArgoCD Application, Harbor pattern
  (Peter Parker, t_eefdcc17 + reconciled in t_3e54efa8)

Prerequisites verified complete before this commit:
- nomic-embed-text-v1.5-Q4_K_M live on astro-orbiter router (War Machine,
  t_34b96e83, commit ad70b34)
- All 3 1Password items provisioned (root/embedding/vlm api keys)
- Storage class corrected to px-fa-direct-access after live PV audit
  showed pure-block/pure-file have zero provisioned volumes (t_77b3ff79)
- Dry-run validated against live cluster prior to commit

Constraint: vault (~/friday) remains canonical source of truth; OpenViking
index is a derived cache, rebuilt from vault source files.

Honcho/lincoln explicitly out of scope for this work.
This commit is contained in:
Hermes Agent service account
2026-08-13 23:33:36 -05:00
parent ad70b3439c
commit d9e41118f8
5 changed files with 474 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
# ============================================================================
# ArgoCD Application: OpenViking
# Wave: 8 (after Harbor at Wave 7)
# Deployment method: GitOps (Gitea -> ArgoCD)
# ============================================================================
#
# Multi-source: Helm chart from upstream VolcEngine + local values + manifests from repo
# Follows Harbor's pattern exactly (multi-source Application with local value overrides).
#
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: openviking
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "8"
description: |
OpenViking Platform Knowledge Infrastructure pilot deployment
Pilot scope: Two corpora (hermes/ skills library, personal/homelab/)
Two consumer profiles (Wong, Shuri) for before/after token comparison.
CRITICAL CONSTRAINT: Vault (~/friday) is the canonical source of truth.
OpenViking's index is a derived cache, rebuilt from vault source files.
If index and vault ever diverge, vault wins and re-index runs.
See inbox/ryan/2026-08-13-openviking-pilot-deployment-plan.md
spec:
project: default
sources:
# Source 1: Helm chart from upstream VolcEngine/OpenViking repository
- repoURL: https://github.com/volcengine/openviking.git
chart: deploy/helm/openviking
targetRevision: main
helm:
valueFiles:
# Local values override upstream defaults
- $values/cluster/platform/openviking/values.yaml
# Source 2: Gitea homelab repo — values + ExternalSecret + namespace + ingress manifests
- repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git
targetRevision: main
path: cluster/platform/openviking
ref: values
directory:
# Exclude the Application manifest itself (already in argocd)
exclude: "application.yaml"
destination:
server: https://kubernetes.default.svc
namespace: openviking
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
# Important: do not prune ExternalSecrets on ArgoCD uninstall
# (credentials live in 1Password, re-sync on pod restart)
- PrunePropagationPolicy=background
# ============================================================================
# DEPLOYMENT GATE: DO NOT SYNC TO ARGOCD UNTIL
# ============================================================================
# 1. Wong's Phase 1 (t_32766900) is complete: ExternalSecret manifests exist in Gitea,
# 1Password vault items (openviking-root-api-key, openviking-embedding-api-key, openviking-vlm-api-key)
# are provisioned and synced to the cluster.
#
# 2. Model staging (separate task): nomic-embed-text-v1.5-Q4_K_M.gguf has been pulled into
# /opt/models/ on astro-orbiter and the router preset INI section appended + router restarted.
# Verify: POST http://10.1.71.130:8002/v1/embeddings with model="nomic-embed-text-v1.5"
# returns a 768-dim float vector.
#
# 3. Smoke test plan (below) documented and ready to execute post-sync.
#
# Contact: Peter Parker (Phase 2 owner) — check for blocker updates via kanban comment
# or by monitoring Wong's task (t_32766900) for completion.
# ============================================================================