## 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
27 lines
872 B
YAML
27 lines
872 B
YAML
---
|
|
# ArgoCD Application for Tailscale Kubernetes Operator on ringtail
|
|
# Shares operator.yaml, proxyclass, and dnsconfig with indri; ringtail-specific
|
|
# ProxyGroup (1 replica) and ExternalSecret live in the overlay directory.
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
metadata:
|
|
name: tailscale-operator-ringtail
|
|
namespace: argocd
|
|
spec:
|
|
project: default
|
|
# Tailscale operator mutates externalName from "placeholder" to actual proxy service
|
|
ignoreDifferences:
|
|
- group: ""
|
|
kind: Service
|
|
jsonPointers:
|
|
- /spec/externalName
|
|
source:
|
|
repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git
|
|
targetRevision: main
|
|
path: argocd/manifests/tailscale-operator-ringtail
|
|
destination:
|
|
server: https://ringtail.tail8d86e.ts.net:6443
|
|
namespace: tailscale
|
|
syncPolicy:
|
|
syncOptions:
|
|
- CreateNamespace=true
|