blumeops/argocd/manifests/tailscale-operator-ringtail/external-secret.yaml
Erich Blume 61ca1ca305 Deploy Tailscale operator on ringtail k3s cluster (#215)
## Summary
- Extract shared Tailscale operator resources (CRDs, RBAC, Deployment, ProxyClass, DNSConfig) into `tailscale-operator-base/` so both clusters reference the same manifests
- Add `tailscale-operator-ringtail/` overlay with 1-replica ProxyGroup and ExternalSecret for the shared OAuth client
- Add ArgoCD Application targeting `ringtail.tail8d86e.ts.net:6443`
- Update `.yamllint.yaml` ignore path for the moved `operator.yaml`

## Deployment and Testing
- [ ] Sync `apps` app to pick up the new Application definition
- [ ] `argocd app sync tailscale-operator-ringtail`
- [ ] Verify ExternalSecret syncs: `kubectl --context=k3s-ringtail -n tailscale get externalsecret`
- [ ] Verify operator pod runs: `kubectl --context=k3s-ringtail -n tailscale get pods`
- [ ] Verify ProxyGroup ready: `kubectl --context=k3s-ringtail -n tailscale get proxygroups`
- [ ] Verify indri operator still works: `argocd app diff tailscale-operator`
- [ ] Check Tailscale admin for new operator device with `tag:k8s-operator`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/215
2026-02-19 09:33:05 -08:00

32 lines
849 B
YAML

---
# ExternalSecret for Tailscale Operator OAuth credentials
#
# Shares the same 1Password item as indri's operator (same OAuth client).
# Multiple operator instances can share one OAuth client; each registers
# as its own device.
#
# 1Password item: "Tailscale K8s Operator OAuth" in blumeops vault
# Fields: "client-id", "client-secret"
#
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: operator-oauth
namespace: tailscale
spec:
refreshInterval: 1h
secretStoreRef:
kind: ClusterSecretStore
name: onepassword-blumeops
target:
name: operator-oauth
creationPolicy: Owner
data:
- secretKey: client_id
remoteRef:
key: Tailscale K8s Operator OAuth
property: client-id
- secretKey: client_secret
remoteRef:
key: Tailscale K8s Operator OAuth
property: client-secret