Skip to content
This repository was archived by the owner on Feb 28, 2023. It is now read-only.

Commit 17a3879

Browse files
authored
Merge pull request #62 from projectsyn/feat/sa-token-secret
Add support for generating ServiceAccount token secrets
2 parents 3e81ea8 + 6a79400 commit 17a3879

4 files changed

Lines changed: 62 additions & 0 deletions

File tree

lib/resource-locker.libjsonnet

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,17 @@ local rbac_objs(objdata, verbs=[ 'create', 'get', 'update', 'patch' ]) =
162162
metadata+: rbac_meta {
163163
namespace: namespace,
164164
},
165+
secrets: [ { name: saname } ],
166+
};
167+
// Create service account token secret
168+
local tokensecret = kube.Secret(saname) {
169+
metadata+: rbac_meta {
170+
namespace: namespace,
171+
annotations+: {
172+
'kubernetes.io/service-account.name': saname,
173+
},
174+
},
175+
type: 'kubernetes.io/service-account-token',
165176
};
166177
// Create cluster role to get/list/watch resource kind
167178
local rolename = clusterRoleName(name);
@@ -204,6 +215,7 @@ local rbac_objs(objdata, verbs=[ 'create', 'get', 'update', 'patch' ]) =
204215
serviceaccount: serviceaccount,
205216
objs: std.prune([
206217
serviceaccount,
218+
tokensecret,
207219
clusterrole,
208220
clusterrolebinding,
209221
role,

tests/golden/lib/resource-locker/tests/test-lock.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,23 @@ metadata:
1010
name: foo-test-6e4cb03e339fd56-manager
1111
name: foo-test-6e4cb03e339fd56-manager
1212
namespace: syn-resource-locker
13+
secrets:
14+
- name: foo-test-6e4cb03e339fd56-manager
15+
---
16+
apiVersion: v1
17+
kind: Secret
18+
metadata:
19+
annotations:
20+
kubernetes.io/service-account.name: foo-test-6e4cb03e339fd56-manager
21+
resourcelocker.syn.tools/target-namespace: foo
22+
resourcelocker.syn.tools/target-object: apps.Deployment/test
23+
labels:
24+
app.kubernetes.io/managed-by: commodore
25+
app.kubernetes.io/part-of: resource-locker
26+
name: foo-test-6e4cb03e339fd56-manager
27+
name: foo-test-6e4cb03e339fd56-manager
28+
namespace: syn-resource-locker
29+
type: kubernetes.io/service-account-token
1330
---
1431
apiVersion: rbac.authorization.k8s.io/v1
1532
kind: ClusterRole

tests/golden/lib/resource-locker/tests/test-patch-long-name.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,22 @@ metadata:
99
name: clusterrolebinding-system-build-775295b1777a143-manager
1010
name: clusterrolebinding-system-build-775295b1777a143-manager
1111
namespace: syn-resource-locker
12+
secrets:
13+
- name: clusterrolebinding-system-build-775295b1777a143-manager
14+
---
15+
apiVersion: v1
16+
kind: Secret
17+
metadata:
18+
annotations:
19+
kubernetes.io/service-account.name: clusterrolebinding-system-build-775295b1777a143-manager
20+
resourcelocker.syn.tools/target-object: rbac.authorization.k8s.io.ClusterRoleBinding/system:build-strategy-docker-binding
21+
labels:
22+
app.kubernetes.io/managed-by: commodore
23+
app.kubernetes.io/part-of: resource-locker
24+
name: clusterrolebinding-system-build-775295b1777a143-manager
25+
name: clusterrolebinding-system-build-775295b1777a143-manager
26+
namespace: syn-resource-locker
27+
type: kubernetes.io/service-account-token
1228
---
1329
apiVersion: rbac.authorization.k8s.io/v1
1430
kind: ClusterRole

tests/golden/lib/resource-locker/tests/test-patch.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,23 @@ metadata:
1010
name: foo-test-6e4cb03e339fd56-manager
1111
name: foo-test-6e4cb03e339fd56-manager
1212
namespace: syn-resource-locker
13+
secrets:
14+
- name: foo-test-6e4cb03e339fd56-manager
15+
---
16+
apiVersion: v1
17+
kind: Secret
18+
metadata:
19+
annotations:
20+
kubernetes.io/service-account.name: foo-test-6e4cb03e339fd56-manager
21+
resourcelocker.syn.tools/target-namespace: foo
22+
resourcelocker.syn.tools/target-object: apps.Deployment/test
23+
labels:
24+
app.kubernetes.io/managed-by: commodore
25+
app.kubernetes.io/part-of: resource-locker
26+
name: foo-test-6e4cb03e339fd56-manager
27+
name: foo-test-6e4cb03e339fd56-manager
28+
namespace: syn-resource-locker
29+
type: kubernetes.io/service-account-token
1330
---
1431
apiVersion: rbac.authorization.k8s.io/v1
1532
kind: ClusterRole

0 commit comments

Comments
 (0)