## 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
32 lines
849 B
YAML
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
|