Deploy Tailscale operator on ringtail k3s cluster #215
12 changed files with 95 additions and 5 deletions
|
|
@ -28,4 +28,4 @@ ignore:
|
|||
- .venv/
|
||||
- pulumi/.venv/
|
||||
# Third-party k8s manifest with non-standard formatting
|
||||
- argocd/manifests/tailscale-operator/operator.yaml
|
||||
- argocd/manifests/tailscale-operator-base/operator.yaml
|
||||
|
|
|
|||
27
argocd/apps/tailscale-operator-ringtail.yaml
Normal file
27
argocd/apps/tailscale-operator-ringtail.yaml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
# 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
|
||||
10
argocd/manifests/tailscale-operator-base/kustomization.yaml
Normal file
10
argocd/manifests/tailscale-operator-base/kustomization.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: tailscale
|
||||
|
||||
resources:
|
||||
- operator.yaml
|
||||
- proxyclass.yaml
|
||||
- dnsconfig.yaml
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
# 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
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: tailscale
|
||||
|
||||
resources:
|
||||
- ../tailscale-operator-base
|
||||
- proxygroup-ingress.yaml
|
||||
- external-secret.yaml
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
apiVersion: tailscale.com/v1alpha1
|
||||
kind: ProxyGroup
|
||||
metadata:
|
||||
name: ingress
|
||||
spec:
|
||||
type: ingress
|
||||
replicas: 1
|
||||
proxyClass: default
|
||||
tags:
|
||||
- tag:k8s
|
||||
|
|
@ -1,12 +1,11 @@
|
|||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: tailscale
|
||||
|
||||
resources:
|
||||
- operator.yaml
|
||||
- proxyclass.yaml
|
||||
- ../tailscale-operator-base
|
||||
- proxygroup-ingress.yaml
|
||||
- dnsconfig.yaml
|
||||
- egress-forge.yaml
|
||||
- external-secret.yaml
|
||||
|
|
|
|||
1
docs/changelog.d/tailscale-operator-ringtail.infra.md
Normal file
1
docs/changelog.d/tailscale-operator-ringtail.infra.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Deploy Tailscale operator on ringtail k3s cluster
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
"tag:feed": ["autogroup:admin", "tag:blumeops"],
|
||||
"tag:registry": ["autogroup:admin", "tag:blumeops"],
|
||||
"tag:k8s-api": ["autogroup:admin", "tag:blumeops"],
|
||||
"tag:k8s-operator": ["autogroup:admin", "tag:blumeops"],
|
||||
"tag:k8s-operator": ["autogroup:admin", "tag:blumeops", "tag:k8s-operator"],
|
||||
"tag:k8s": ["autogroup:admin", "tag:blumeops", "tag:k8s-operator"],
|
||||
"tag:ci-gateway": ["autogroup:admin", "tag:blumeops"],
|
||||
"tag:flyio-proxy": ["autogroup:admin", "tag:blumeops"],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue