Skip to content

Commit 35a11a7

Browse files
committed
add battalions chart
add chart for deploying a battalion to warnet. a battalion is a collection of users in a namespace with roles assigned to the users that allow them to manage resources in their namespace only. after the battalion namespace is created, the bitcoincore chart can be used to deploy tanks to the battalion.
1 parent 93dc8d5 commit 35a11a7

File tree

8 files changed

+106
-0
lines changed

8 files changed

+106
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: battalion-namespace
3+
description: A Helm chart for creating a battalion namespace
4+
type: application
5+
version: 0.1.0
6+
appVersion: "1.0.0"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: {{ .Values.namespaceName | default .Release.Name }}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{- range .Values.roles }}
2+
---
3+
apiVersion: rbac.authorization.k8s.io/v1
4+
kind: Role
5+
metadata:
6+
name: {{ .name }}
7+
namespace: {{ $.Values.namespaceName | default $.Release.Name }}
8+
rules:
9+
{{ toYaml .rules | indent 2 }}
10+
{{- end }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{- range $user := .Values.users }}
2+
{{- range $role := $user.roles }}
3+
---
4+
apiVersion: rbac.authorization.k8s.io/v1
5+
kind: RoleBinding
6+
metadata:
7+
name: {{ $.Release.Name }}-{{ $role }}-{{ $user.name }}
8+
namespace: {{ $.Values.namespaceName | default $.Release.Name }}
9+
subjects:
10+
- kind: ServiceAccount
11+
name: {{ $user.name }}
12+
namespace: {{ $.Values.namespaceName | default $.Release.Name }}
13+
roleRef:
14+
kind: Role
15+
name: {{ $role }}
16+
apiGroup: rbac.authorization.k8s.io
17+
{{- end }}
18+
{{- end }}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{{- range .Values.users }}
2+
---
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
name: {{ .name }}
7+
namespace: {{ $.Values.namespaceName | default $.Release.Name }}
8+
annotations:
9+
helm.sh/hook: post-install,post-upgrade
10+
helm.sh/hook-weight: "-5"
11+
{{- end }}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
users:
2+
- name: alice
3+
roles:
4+
- pod-viewer
5+
- name: bob
6+
roles:
7+
- pod-viewer
8+
- pod-manager
9+
roles:
10+
- name: pod-viewer
11+
rules:
12+
- apiGroups: [""]
13+
resources: ["pods"]
14+
verbs: ["get", "list", "watch"]
15+
- name: pod-manager
16+
rules:
17+
- apiGroups: [""]
18+
resources: ["pods"]
19+
verbs: ["get", "list", "watch", "create", "update", "delete"]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
users:
2+
- name: alice
3+
roles:
4+
- pod-viewer
5+
- name: bob
6+
roles:
7+
- pod-viewer
8+
- pod-manager
9+
roles:
10+
- name: pod-viewer
11+
rules:
12+
- apiGroups: [""]
13+
resources: ["pods"]
14+
verbs: ["get", "list", "watch"]
15+
- name: pod-manager
16+
rules:
17+
- apiGroups: [""]
18+
resources: ["pods"]
19+
verbs: ["get", "list", "watch", "create", "update", "delete"]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
users:
2+
- name: alice
3+
roles:
4+
- pod-viewer
5+
- name: bob
6+
roles:
7+
- pod-viewer
8+
- pod-manager
9+
roles:
10+
- name: pod-viewer
11+
rules:
12+
- apiGroups: [""]
13+
resources: ["pods"]
14+
verbs: ["get", "list", "watch"]
15+
- name: pod-manager
16+
rules:
17+
- apiGroups: [""]
18+
resources: ["pods"]
19+
verbs: ["get", "list", "watch", "create", "update", "delete"]

0 commit comments

Comments
 (0)