Skip to main content
RBAC (Role-Based Access Control) configuration controls permissions, policies, and security settings for both the vCluster control plane and workloads running within the virtual cluster.

RBAC Rules

rbac.role
object
Virtual cluster Role configuration for the host cluster namespace.
rbac.clusterRole
object
Virtual cluster ClusterRole configuration.
rbac.enableVolumeSnapshotRules
object
Enable RBAC rules for volume snapshots.

Service Accounts

controlPlane.advanced.serviceAccount
object
vCluster control plane service account.
controlPlane.advanced.workloadServiceAccount
object
Service account for workloads running in the virtual cluster.

Resource Quotas

policies.resourceQuota
object
Resource quota for the virtual cluster.

Limit Range

policies.limitRange
object
LimitRange for the virtual cluster.

Network Policies

policies.networkPolicy
object
NetworkPolicy configuration for isolating virtual cluster traffic.

Central Admission

policies.centralAdmission
object
Define validating or mutating webhooks to enforce within the virtual cluster (PRO feature).

Security Context

controlPlane.statefulSet.security
object
Security context for the control plane.

Example: Custom RBAC Rules

rbac:
  role:
    enabled: true
    extraRules:
      - apiGroups: [""]
        resources: ["configmaps"]
        verbs: ["get", "list", "watch", "create", "update"]
  
  clusterRole:
    enabled: true
    extraRules:
      - apiGroups: [""]
        resources: ["nodes", "persistentvolumes"]
        verbs: ["get", "list", "watch"]

Example: Resource Quotas and Limits

policies:
  resourceQuota:
    enabled: true
    quota:
      requests.cpu: 20
      requests.memory: 40Gi
      limits.cpu: 40
      limits.memory: 80Gi
      count/pods: 50
      count/services: 30
  
  limitRange:
    enabled: true
    default:
      cpu: "2"
      memory: 1Gi
    defaultRequest:
      cpu: 200m
      memory: 256Mi
    max:
      cpu: "4"
      memory: 8Gi
    min:
      cpu: 50m
      memory: 64Mi

Example: Network Isolation

policies:
  networkPolicy:
    enabled: true
    fallbackDns: 1.1.1.1
    
    controlPlane:
      # Only allow access from specific pods
      ingress:
        - from:
            - podSelector:
                matchLabels:
                  access: vcluster
          ports:
            - protocol: TCP
              port: 8443
    
    workload:
      # Restrict public egress
      publicEgress:
        enabled: true
        cidr: 0.0.0.0/0
        except:
          - 10.0.0.0/8
          - 172.16.0.0/12
          - 192.168.0.0/16
      
      # Custom ingress rules
      ingress:
        - from:
            - namespaceSelector:
                matchLabels:
                  name: allowed-namespace

Example: Service Account with AWS IAM

controlPlane:
  advanced:
    serviceAccount:
      enabled: true
      name: vcluster-sa
      annotations:
        eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/vcluster-role
    
    workloadServiceAccount:
      enabled: true
      name: vcluster-workload-sa
      annotations:
        eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/workload-role
      imagePullSecrets:
        - name: ecr-registry-secret

Example: Pod Security Standards

controlPlane:
  statefulSet:
    security:
      podSecurityContext:
        runAsNonRoot: true
        runAsUser: 10000
        runAsGroup: 10000
        fsGroup: 10000
        seccompProfile:
          type: RuntimeDefault
      
      containerSecurityContext:
        allowPrivilegeEscalation: false
        readOnlyRootFilesystem: true
        runAsNonRoot: true
        capabilities:
          drop:
            - ALL

Use Cases

Multi-Tenant Resource Isolation

Enforce resource limits per virtual cluster:
policies:
  resourceQuota:
    enabled: true
    quota:
      requests.cpu: 10
      requests.memory: 20Gi
      count/pods: 30
  limitRange:
    enabled: true

Strict Network Isolation

Isolate virtual cluster traffic:
policies:
  networkPolicy:
    enabled: true
    workload:
      publicEgress:
        enabled: false

Cluster-Wide Resource Access

Grant ClusterRole permissions:
rbac:
  clusterRole:
    enabled: true
    extraRules:
      - apiGroups: [""]
        resources: ["nodes", "namespaces"]
        verbs: ["get", "list", "watch"]

Build docs developers (and LLMs) love