Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ba0675e84 | |||
| 1ce130cc1e | |||
| 0ee716114c | |||
| 5293a25e47 | |||
| e3fbcb0016 | |||
| 5211a16701 | |||
| f40366bc3e | |||
| bbf77a57e2 | |||
| f9eac3c184 | |||
| b3ab290cb6 | |||
| ce0a8ca933 | |||
| d8d4f9203e | |||
| a1e399c4bd | |||
| 5f4be0a668 | |||
| 90db5d0c6f | |||
| e3c8bc843d | |||
| cccd12fee5 | |||
| c8a6719054 | |||
| ebce53f998 | |||
| 8f19607e96 |
@@ -1,6 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: apps
|
||||
labels:
|
||||
name: apps
|
||||
@@ -1,6 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: apps
|
||||
labels:
|
||||
name: apps
|
||||
@@ -1,18 +0,0 @@
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: tailscale-auth
|
||||
namespace: tailscale
|
||||
spec:
|
||||
refreshInterval: 1h
|
||||
secretStoreRef:
|
||||
name: orion-vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: tailscale-auth
|
||||
creationPolicy: Owner
|
||||
data:
|
||||
- secretKey: TS_AUTH_KEY
|
||||
remoteRef:
|
||||
key: Talos Cluster/tailscale
|
||||
property: TS_AUTH_KEY
|
||||
@@ -2,3 +2,5 @@ apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: tailscale
|
||||
labels:
|
||||
kubernetes.io/metadata.name: tailscale
|
||||
@@ -1,17 +0,0 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: tailscale-operator
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets", "configmaps", "services", "pods", "endpoints"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments", "statefulsets", "daemonsets"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: ["networking.k8s.io"]
|
||||
resources: ["ingresses"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: ["tailscale.com"]
|
||||
resources: ["*"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
@@ -1,43 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: tailscale-operator
|
||||
namespace: tailscale
|
||||
labels:
|
||||
app: tailscale-operator
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: tailscale-operator
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: tailscale-operator
|
||||
spec:
|
||||
serviceAccountName: tailscale-operator
|
||||
containers:
|
||||
- name: operator
|
||||
image: ghcr.io/tailscale/k8s-operator:v1.78.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: CLIENT_ID_FILE
|
||||
value: /etc/tailscale/oauth/client-id
|
||||
- name: CLIENT_SECRET_FILE
|
||||
value: /etc/tailscale/oauth/client-secret
|
||||
volumeMounts:
|
||||
- name: oauth-secret
|
||||
mountPath: /etc/tailscale/oauth
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: oauth-secret
|
||||
secret:
|
||||
secretName: tailscale-operator-secret
|
||||
@@ -1,22 +0,0 @@
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: tailscale-operator-secret
|
||||
namespace: tailscale
|
||||
spec:
|
||||
refreshInterval: 1h
|
||||
secretStoreRef:
|
||||
name: orion-vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: tailscale-operator-secret
|
||||
creationPolicy: Owner
|
||||
data:
|
||||
- secretKey: client-id
|
||||
remoteRef:
|
||||
key: tailscale/operator
|
||||
property: CLIENT_ID_FILE
|
||||
- secretKey: client-secret
|
||||
remoteRef:
|
||||
key: tailscale/operator
|
||||
property: CLIENT_SECRET_FILE
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: tailscale-operator
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["pods", "services", "secrets", "configmaps"]
|
||||
verbs: ["*"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments", "daemonsets", "statefulsets"]
|
||||
verbs: ["*"]
|
||||
- apiGroups: ["networking.k8s.io"]
|
||||
resources: ["networkpolicies", "ingresses"]
|
||||
verbs: ["*"]
|
||||
+1
-1
@@ -9,4 +9,4 @@ roleRef:
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: tailscale-operator
|
||||
namespace: tailscale
|
||||
namespace: tailscale
|
||||
@@ -0,0 +1,31 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: tailscale-operator
|
||||
namespace: tailscale
|
||||
labels:
|
||||
app: tailscale-operator
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: tailscale-operator
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: tailscale-operator
|
||||
spec:
|
||||
serviceAccountName: tailscale-operator
|
||||
containers:
|
||||
- name: operator
|
||||
image: ghcr.io/tailscale/operator:v1.70.0
|
||||
env:
|
||||
- name: DEPLOY_TYPE
|
||||
value: k8s
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /config
|
||||
volumes:
|
||||
- name: config
|
||||
secret:
|
||||
secretName: tailscale-operator-config
|
||||
@@ -0,0 +1,21 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: tailscale-operator
|
||||
namespace: tailscale
|
||||
spec:
|
||||
refreshInterval: 1h
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: SecretStore
|
||||
target:
|
||||
name: tailscale-operator
|
||||
template:
|
||||
engineVersion: v2
|
||||
data:
|
||||
TS_AUTHKEY: "{{ .TS_AUTHKEY }}"
|
||||
data:
|
||||
- secretKey: TS_AUTHKEY
|
||||
remoteRef:
|
||||
key: secret/data/kubernetes/tailscale-operator
|
||||
property: TS_AUTHKEY
|
||||
+1
-3
@@ -2,6 +2,4 @@ apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: tailscale-operator
|
||||
namespace: tailscale
|
||||
labels:
|
||||
app: tailscale-operator
|
||||
namespace: tailscale
|
||||
Reference in New Issue
Block a user