Skip to content

Commit 41c10ce

Browse files
committed
update
1 parent a023570 commit 41c10ce

3 files changed

Lines changed: 21 additions & 34 deletions

File tree

containers/tailscale-operator-manager/examples/deployment.yml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,19 @@ spec:
2020
spec:
2121
serviceAccountName: cabotage-tailscale-operator-manager-account
2222
initContainers:
23-
- name: cabotage-enroller
24-
image: cabotage/sidecar:4
23+
- name: cabotage-sidecar
24+
image: cabotage/sidecar:4.1
25+
restartPolicy: Always
2526
args:
26-
- "kube-login"
27+
- "kube-login-and-maintain"
2728
- "--vault-ca-file=/var/run/secrets/cabotage.io/ca.crt"
2829
- "--vault-auth-kubernetes-role=cabotage-tailscale-operator-manager"
2930
volumeMounts:
3031
- name: vault-token
3132
mountPath: /var/run/secrets/vault
3233
containers:
33-
- name: cabotage-sidecar
34-
image: cabotage/sidecar:4
35-
args:
36-
- "maintain"
37-
volumeMounts:
38-
- name: vault-token
39-
mountPath: /var/run/secrets/vault
4034
- name: tailscale-operator-manager
41-
image: cabotage/tailscale-operator-manager:1
35+
image: ghcr.io/cabotage/containers/tailscale-operator-manager:latest
4236
imagePullPolicy: Always
4337
args:
4438
- "--verbose"

containers/tailscale-operator-manager/examples/rbac.yaml

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ rules:
1919
# Framework: runtime observation of namespaces & CRDs (addition/deletion).
2020
- apiGroups: [apiextensions.k8s.io]
2121
resources: [customresourcedefinitions]
22-
verbs: [list, watch]
22+
verbs: [get, list, watch]
2323
- apiGroups: [""]
2424
resources: [namespaces]
2525
verbs: [list, watch]
@@ -31,39 +31,38 @@ rules:
3131

3232
# Application: watch the CabotageTailscaleOperatorConfig CRD cluster-wide.
3333
- apiGroups: [cabotage.io]
34-
resources: [cabotagetailscaleoperatorconfigs]
34+
resources: [cabotagetailscaleoperatorconfigs, cabotagetailscaleoperatorconfigs/status]
3535
verbs: [list, watch, patch, get]
3636

3737
# Manage K8s resources in org namespaces for the Tailscale operator.
3838
- apiGroups: [""]
3939
resources: [secrets, serviceaccounts]
40-
verbs: [get, list, create, update, patch, delete]
40+
verbs: [get, list, watch, create, update, patch, delete]
4141
- apiGroups: [apps]
4242
resources: [deployments]
43-
verbs: [get, list, create, update, patch, delete]
43+
verbs: [get, list, watch, create, update, patch, delete]
4444
- apiGroups: [rbac.authorization.k8s.io]
4545
resources: [roles, rolebindings]
46-
verbs: [get, list, create, update, patch, delete]
46+
verbs: [get, list, watch, create, update, patch, delete]
4747

4848
# Manage ClusterRoleBinding subjects (add/remove operator SAs).
4949
- apiGroups: [rbac.authorization.k8s.io]
5050
resources: [clusterrolebindings]
5151
verbs: [get, list, update, patch]
5252

53-
# Must hold all permissions from the tailscale-operator ClusterRole
54-
# (RBAC escalation prevention when modifying its ClusterRoleBinding),
55-
# plus all permissions from the namespace-scoped operator Role.
53+
# Delegated permissions — the manager must hold every permission it grants
54+
# via the tailscale-operator ClusterRole (K8s RBAC escalation prevention).
5655
- apiGroups: [""]
5756
resources: [nodes]
5857
verbs: [get, list, watch]
5958
- apiGroups: [""]
60-
resources: [configmaps, events, pods, services, services/status]
59+
resources: [configmaps, events, pods]
60+
verbs: [get, list, watch, create, update, patch, delete]
61+
- apiGroups: [""]
62+
resources: [services, services/status]
6163
verbs: [get, list, watch, create, update, patch, delete, deletecollection]
62-
- apiGroups: [apiextensions.k8s.io]
63-
resources: [customresourcedefinitions]
64-
verbs: [get, list, watch]
6564
- apiGroups: [apps]
66-
resources: [statefulsets, deployments]
65+
resources: [statefulsets]
6766
verbs: [get, list, watch, create, update, patch, delete]
6867
- apiGroups: [coordination.k8s.io]
6968
resources: [leases]
@@ -72,14 +71,8 @@ rules:
7271
resources: [endpointslices]
7372
verbs: [get, list, watch]
7473
- apiGroups: [networking.k8s.io]
75-
resources: [ingresses, ingresses/status]
76-
verbs: [get, list, watch, create, update, patch, delete, deletecollection]
77-
- apiGroups: [networking.k8s.io]
78-
resources: [ingressclasses]
74+
resources: [ingresses, ingresses/status, ingressclasses]
7975
verbs: [get, list, watch, update, patch]
80-
- apiGroups: [rbac.authorization.k8s.io]
81-
resources: [roles, rolebindings]
82-
verbs: [get, list, watch, create, update, patch, delete]
8376
- apiGroups: [tailscale.com]
8477
resources: ["*"]
8578
verbs: [get, list, watch, create, update, patch, delete]

containers/tailscale-operator-manager/operator.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -279,12 +279,12 @@ def _operator_role_rules():
279279
kubernetes.client.V1PolicyRule(
280280
api_groups=[""],
281281
resources=["secrets", "serviceaccounts", "configmaps", "events"],
282-
verbs=["get", "list", "watch", "create", "update", "patch", "delete"],
282+
verbs=["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"],
283283
),
284284
kubernetes.client.V1PolicyRule(
285285
api_groups=[""],
286286
resources=["services", "services/status"],
287-
verbs=["get", "list", "watch", "update", "patch"],
287+
verbs=["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"],
288288
),
289289
kubernetes.client.V1PolicyRule(
290290
api_groups=[""],
@@ -294,7 +294,7 @@ def _operator_role_rules():
294294
kubernetes.client.V1PolicyRule(
295295
api_groups=["apps"],
296296
resources=["statefulsets", "deployments"],
297-
verbs=["get", "list", "watch", "create", "update", "patch", "delete"],
297+
verbs=["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"],
298298
),
299299
kubernetes.client.V1PolicyRule(
300300
api_groups=["networking.k8s.io"],

0 commit comments

Comments
 (0)