diff --git a/clusters/homelab/tailscale/helmrelease.yaml b/clusters/homelab/tailscale/helmrelease.yaml new file mode 100644 index 0000000..88e51db --- /dev/null +++ b/clusters/homelab/tailscale/helmrelease.yaml @@ -0,0 +1,19 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: tailscale-operator + namespace: tailscale +spec: + interval: 1h + chart: + spec: + chart: tailscale-operator + version: ">=1.0.0" + sourceRef: + kind: HelmRepository + name: tailscale + namespace: tailscale + values: + operatorConfig: + secret: + name: tailscale-oauth diff --git a/clusters/homelab/tailscale/helmrepository.yaml b/clusters/homelab/tailscale/helmrepository.yaml new file mode 100644 index 0000000..57fb429 --- /dev/null +++ b/clusters/homelab/tailscale/helmrepository.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: tailscale + namespace: tailscale +spec: + interval: 1h + url: https://pkgs.tailscale.com/helmcharts diff --git a/clusters/homelab/tailscale/kustomization.yaml b/clusters/homelab/tailscale/kustomization.yaml new file mode 100644 index 0000000..0ed758b --- /dev/null +++ b/clusters/homelab/tailscale/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: tailscale + namespace: flux-system +spec: + interval: 10m0s + path: ./clusters/homelab/tailscale + prune: true + sourceRef: + kind: GitRepository + name: flux-system + decryption: + provider: sops + secretRef: + name: sops-age diff --git a/clusters/homelab/tailscale/namespace.yaml b/clusters/homelab/tailscale/namespace.yaml new file mode 100644 index 0000000..9dc761e --- /dev/null +++ b/clusters/homelab/tailscale/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: tailscale diff --git a/clusters/homelab/tailscale/secret.sops.yaml b/clusters/homelab/tailscale/secret.sops.yaml new file mode 100644 index 0000000..3c2028f --- /dev/null +++ b/clusters/homelab/tailscale/secret.sops.yaml @@ -0,0 +1,28 @@ +apiVersion: ENC[AES256_GCM,data:28E=,iv:NdFgv8Gckz4nunatHnqAEXVyRpNyM/M1hwlcfCRoD3Q=,tag:aHp4DULfReV7+5StU4bWLQ==,type:str] +kind: ENC[AES256_GCM,data:GHFD/zO/,iv:7kYAlhzFcEDq2xrZdAEyXKco+Ixp47g3gEn9qpKmQy0=,tag:xY5o/1MK2yZeBBmozGeQQA==,type:str] +metadata: + name: ENC[AES256_GCM,data:AiOaX/POsVhAhqHwFzFi,iv:SvUmqnUNgbizEsNKBhlt0pKEDLh7YxyQEe+vV8Cvicg=,tag:HHBQ9+osw9E48XdlkDR9MQ==,type:str] + namespace: ENC[AES256_GCM,data:GyWo+ecAMNor,iv:XWGYmwYrzmazjKXWXMiZ2Rm0B7ALehLoMPfZLd5/izE=,tag:e468TtMHBWFcAZ4OFfDGlg==,type:str] +stringData: + client_id: ENC[AES256_GCM,data:6ZJBp9IUk9hLolEnpTXdt0k=,iv:no08mIEZ+13rpNcH1fHu0Ae85RTEco8k5S21MUhSsvg=,tag:1nrkY5YR4opEY3IECINDRQ==,type:str] + client_secret: ENC[AES256_GCM,data:CryLSUq3cSfe3X2JO0H0kis7rKDBpqNel6sd3sjGp7wYwx+Qytyw+w+M7yVpumu1ISAEKpApbuGz2HJUzv+N,iv:yoTcvpFsaeAhM4kXEp+VRaifERZgqM3nfaEyw9WELF0=,tag:6Kr6CCzhlSjqmzh3vJW+NQ==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1rydfcalt7pu4jnmh298lgjlasxyjldyaz3xyssk7v54lpu30fv0qna96ea + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoWWpYaExiY3F3RFM1UVBQ + dEZwL1ZYUjF3eEhNNkU0ek9PY1p6ME8zT0NVCjJlZVVWUkRRTGpQSklHa3FHb0Vz + cExsMHg2MXhuMXBqVnN2UCtrNUxSMk0KLS0tIHhCOVlwd01VZS9UVzMzK2lFMGNZ + eXQ1SzNVRU5QdmRGc0NwclpUSDhyaW8K8m95+qqueRMB03tPZPutDacStrJDfFET + fKl2ve1NvxDr8S4UfFBODqnKS0PN4li9z7FfGpZHWVuKhCsqoNpAig== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2026-03-16T15:37:05Z" + mac: ENC[AES256_GCM,data:3w0xQamtuaiakGeIHddHLzkoffSFYnI6ONAajVq6rggbvlpgE6UTu1FAF2kHnE4rJHfei93FneBSVF5ePGkh515OZ44XPoUUeK3UwHV5/vapdsdN4J2dbPFs4Q6AwvUzU1GQ2/NoZYxrqEq8FWPC6zOa+x50itPPapKVJQMVbB8=,iv:aBHxzbeChtLIkTgYnjh9q8+XoTZZA4rpgwUl3bQFLCI=,tag:mwAfkdJzM6pa/UIDJJkopQ==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.9.4