Add userspace chart and docs
This allows easy creation of user namespaces with limited permissions.
This commit is contained in:
14
helm/namespace/templates/limitrange.yaml
Executable file
14
helm/namespace/templates/limitrange.yaml
Executable file
@@ -0,0 +1,14 @@
|
||||
apiVersion: v1
|
||||
kind: LimitRange
|
||||
metadata:
|
||||
name: default
|
||||
namespace: {{ .Release.Name }}
|
||||
spec:
|
||||
limits:
|
||||
- type: Container
|
||||
default:
|
||||
memory: 128Mi
|
||||
cpu: 100m
|
||||
defaultRequest:
|
||||
memory: 1Mi
|
||||
cpu: 1m
|
||||
4
helm/namespace/templates/namespace.yaml
Executable file
4
helm/namespace/templates/namespace.yaml
Executable file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: {{ .Release.Name }}
|
||||
12
helm/namespace/templates/resourcequota.yaml
Executable file
12
helm/namespace/templates/resourcequota.yaml
Executable file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: ResourceQuota
|
||||
metadata:
|
||||
name: default
|
||||
namespace: {{ .Release.Name }}
|
||||
spec:
|
||||
hard:
|
||||
requests.cpu: "8"
|
||||
requests.memory: "8Gi"
|
||||
limits.cpu: "16"
|
||||
limits.memory: "16Gi"
|
||||
requests.storage: "500Gi"
|
||||
104
helm/namespace/templates/role.yaml
Executable file
104
helm/namespace/templates/role.yaml
Executable file
@@ -0,0 +1,104 @@
|
||||
kind: Role
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: namespace-manager
|
||||
namespace: {{ .Release.Name }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
- extensions
|
||||
- apps
|
||||
- batch
|
||||
- autoscaling
|
||||
- networking.k8s.io
|
||||
- rbac.authorization.k8s.io
|
||||
- metrics.k8s.io
|
||||
- policy
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- deployments
|
||||
- replicasets
|
||||
- pods
|
||||
- pods/exec
|
||||
- pods/log
|
||||
- pods/attach
|
||||
- daemonsets
|
||||
- statefulsets
|
||||
- replicationcontrollers
|
||||
- horizontalpodautoscalers
|
||||
- services
|
||||
- ingresses
|
||||
- persistentvolumeclaims
|
||||
- jobs
|
||||
- cronjobs
|
||||
- secrets
|
||||
- configmaps
|
||||
- serviceaccounts
|
||||
- rolebindings
|
||||
- ingressroutes
|
||||
- middlewares
|
||||
- endpoints
|
||||
- deployments/scale
|
||||
- poddisruptionbudgets
|
||||
- certificates
|
||||
- roles
|
||||
verbs:
|
||||
- "*"
|
||||
- apiGroups:
|
||||
- ""
|
||||
- metrics.k8s.io
|
||||
- rbac.authorization.k8s.io
|
||||
- policy
|
||||
resources:
|
||||
- resourcequotas
|
||||
- roles
|
||||
verbs:
|
||||
- list
|
||||
- get
|
||||
---
|
||||
kind: Role
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: namespace-readonly
|
||||
namespace: {{ .Release.Name }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
- extensions
|
||||
- apps
|
||||
- batch
|
||||
- autoscaling
|
||||
- networking.k8s.io
|
||||
- traefik.containo.us
|
||||
- rbac.authorization.k8s.io
|
||||
- metrics.k8s.io
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- deployments
|
||||
- replicasets
|
||||
- pods
|
||||
- pods/exec
|
||||
- pods/log
|
||||
- pods/attach
|
||||
- daemonsets
|
||||
- statefulsets
|
||||
- replicationcontrollers
|
||||
- horizontalpodautoscalers
|
||||
- services
|
||||
- ingresses
|
||||
- persistentvolumeclaims
|
||||
- jobs
|
||||
- cronjobs
|
||||
- secrets
|
||||
- configmaps
|
||||
- serviceaccounts
|
||||
- rolebindings
|
||||
- ingressroutes
|
||||
- middlewares
|
||||
- resourcequotas
|
||||
- roles
|
||||
- endpoints
|
||||
- clusterroles
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
26
helm/namespace/templates/rolebinding.yaml
Executable file
26
helm/namespace/templates/rolebinding.yaml
Executable file
@@ -0,0 +1,26 @@
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: namespace-manager
|
||||
namespace: {{ .Release.Name }}
|
||||
subjects:
|
||||
- kind: User
|
||||
name: {{ .Values.user }}
|
||||
apiGroup: ""
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: namespace-manager
|
||||
apiGroup: ""
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: user-readonly
|
||||
subjects:
|
||||
- kind: User
|
||||
name: {{ .Values.user }}
|
||||
apiGroup: ""
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: user-readonly
|
||||
apiGroup: ""
|
||||
Reference in New Issue
Block a user