Add LiteLLM gateway (skyliner) via ArgoCD/Helm

- cluster/applications/litellm: multi-source Application (oci litellm-helm 1.106.1),
  values, ExternalSecrets (1Password wdw-labs), HTTPRoute, ExternalName services
  for fantasmic/wishes, namespace
- gateway: https-skyliner listener + skyliner.wdw-labs.cloud certificate,
  ReferenceGrant for litellm namespace
- cert-manager: add wdw-labs.cloud to ClusterIssuer dnsZones
- external-dns: add wdw-labs.cloud zone (Technitium RFC2136)
- onepassword-connect: add wdw-labs vault to ClusterSecretStore

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0118eUSMQitZMHN7qaCvynA3
This commit is contained in:
rblundonandClaude Sonnet 5.5 committed 2026-10-21 03:55:57 +00:00
1 parent b1ce761291
commit ebe4681438
12 files changed
+444 -2

No files matched your search

@@ -25,6 +25,7 @@ spec:
selector:
dnsZones:
- mk-labs.cloud
- wdw-labs.cloud
---
# Production issuer — switch to this once staging certs are working
@@ -47,3 +48,4 @@ spec:
selector:
dnsZones:
- mk-labs.cloud
- wdw-labs.cloud
+8 -2
View File
@@ -16,8 +16,6 @@ env:
value: "10.1.71.32"
- name: EXTERNAL_DNS_RFC2136_PORT
value: "53"
- name: EXTERNAL_DNS_RFC2136_ZONE
value: "local.mk-labs.cloud"
- name: EXTERNAL_DNS_RFC2136_TSIG_AXFR
value: "true"
# TSIG secret key name — must match what's configured in Technitium
@@ -34,6 +32,14 @@ env:
# Only manage records in this zone
domainFilters:
- local.mk-labs.cloud
- wdw-labs.cloud
# Multiple Technitium zones (the env var form only supports one zone).
# wdw-labs.cloud zone must exist in Technitium and the "external-dns" TSIG key
# must be authorised for dynamic updates + zone transfer on it (added for skyliner).
extraArgs:
- --rfc2136-zone=local.mk-labs.cloud
- --rfc2136-zone=wdw-labs.cloud
# Sources: ingress, service, and Gateway API HTTPRoutes
sources:
@@ -0,0 +1,17 @@
# ------------------------------------------------------------------------------
# Certificate for skyliner.wdw-labs.cloud (LiteLLM)
# Single-host cert; referenced by listener "https-skyliner" in gateway.yaml.
# Requires letsencrypt-prod dnsZones to include wdw-labs.cloud (cert-manager).
# ------------------------------------------------------------------------------
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: skyliner-wdw-labs-tls
namespace: gateway
spec:
secretName: skyliner-wdw-labs-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- skyliner.wdw-labs.cloud
+15
View File
@@ -36,3 +36,18 @@ spec:
allowedRoutes:
namespaces:
from: All
# Dedicated listener for LiteLLM (skyliner) — wdw-labs.cloud is not covered
# by the wildcard cert above. Cert: certificate-skyliner.yaml
- name: https-skyliner
port: 443
protocol: HTTPS
hostname: skyliner.wdw-labs.cloud
tls:
mode: Terminate
certificateRefs:
- group: ""
kind: Secret
name: skyliner-wdw-labs-tls
allowedRoutes:
namespaces:
from: All
@@ -16,6 +16,7 @@
# - monitoring (Grafana)
# - authentik (Authentik SSO — future)
# - gitea (Gitea — future)
# - litellm (LiteLLM / skyliner)
# ------------------------------------------------------------------------------
apiVersion: gateway.networking.k8s.io/v1beta1
kind: ReferenceGrant
@@ -45,6 +46,9 @@ spec:
- group: gateway.networking.k8s.io
kind: HTTPRoute
namespace: firecrawl
- group: gateway.networking.k8s.io
kind: HTTPRoute
namespace: litellm
to:
- group: gateway.networking.k8s.io
kind: Gateway
@@ -24,6 +24,7 @@ spec:
connectHost: http://onepassword-connect.onepassword-connect.svc.cluster.local:8080
vaults:
mk-labs: 1 # vault name in 1Password : priority
wdw-labs: 2 # WDW Labs hosts/agents (LiteLLM, host api-keys); Connect token needs read access
auth:
secretRef:
connectTokenSecretRef: