feat: poimen-sandbox namespace + security hardening + RBAC
Phase 1: sandbox namespace with PSA restricted enforcement, ResourceQuota (20 pods, 10/20 CPU, 20/40Gi memory), and CiliumNetworkPolicy denying pi-session egress to kube-apiserver. Phase 2: sandbox-observer Role + poimen-devs RoleBinding for OIDC-authenticated kubectl access to sandbox pod status/logs.
This commit is contained in:
@@ -16,6 +16,7 @@ resources:
|
||||
- temporal-operator-role.yaml
|
||||
- llm-serving-operator-role.yaml
|
||||
- poimen-memory-operator-role.yaml
|
||||
- sandbox-observer-role.yaml
|
||||
# paperless's Role/RoleBinding lives in k8s/apps/paperless/rbac.yaml instead -
|
||||
# that app already has its own kustomization + namespace, no need to
|
||||
# duplicate it here. All of these stay inert (grant nothing) until
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: sandbox-observer
|
||||
namespace: poimen-sandbox
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: [pods, pods/log, services]
|
||||
verbs: [get, list, watch]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: poimen-devs-sandbox
|
||||
namespace: poimen-sandbox
|
||||
subjects:
|
||||
- kind: Group
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
name: "oidc:poimen-devs"
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: sandbox-observer
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
Reference in New Issue
Block a user