gke-multitenancy

Configures multi-tenant GKE clusters with namespace isolation, RBAC, quotas, and network policies.

Updated May 11, 2026
One-click install
npx skills add https://github.com/alon3153/upe-social-publisher --skill gke-multitenancy-alon3153
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gke-multitenancy
Source: https://github.com/alon3153/upe-social-publisher/tree/main/.agents/skills/gke-multitenancy
Command: npx skills add https://github.com/alon3153/upe-social-publisher --skill gke-multitenancy-alon3153

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Sharing a single GKE cluster across multiple teams risks resource contention, weak access control, and unclear cost attribution. This Skill provides the patterns and manifests needed to isolate tenants safely without provisioning separate clusters. ## Core Features & Use Cases - Namespace Isolation: Create labeled namespaces per team or environment with namespace-scoped RBAC Roles and RoleBindings bound to Google Groups. - Resource Governance: Apply ResourceQuotas and LimitRanges with mandatory default and defaultRequest values so no team can exhaust cluster capacity. - Network Segmentation & Cost Allocation: Deploy default-deny NetworkPolicies with DNS egress rules, and enable GKE cost allocation with cost-center labels for billing breakdowns. - Use Case: A platform engineer onboarding three teams onto one production cluster can use this Skill to set up per-team namespaces, least-privilege RBAC, CPU/memory quotas, and intra-team network policies in a single workflow. ## Quick Start Set up multi-tenancy on my GKE cluster with separate namespaces, RBAC roles, resource quotas, and network policies for two teams.

Frequently Asked Questions about gke-multitenancy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up multi-tenancy on a GKE cluster?

Create a labeled namespace per team, bind namespace-scoped RBAC Roles to Google Groups, apply ResourceQuotas and LimitRanges, and enforce default-deny NetworkPolicies. Start with namespace-per-team for cost efficiency and escalate isolation only when compliance requires it.

How to configure RBAC for teams sharing a Kubernetes cluster?

Define namespace-scoped Roles granting minimal verbs on resources like pods and deployments, then bind them with RoleBindings to Google Groups as subjects. Prefer Roles over ClusterRoles and never bind to system:authenticated.

What is the difference between namespace-per-team and cluster-per-team isolation?

Namespace-per-team provides soft isolation via RBAC and NetworkPolicy at the lowest cost, while cluster-per-team gives hard isolation with full separation at the highest cost. Node pool-per-team sits between them with dedicated compute.

Why are pods rejected after applying a LimitRange in Kubernetes?

Pods are rejected when a LimitRange defines min or max limits without corresponding default and defaultRequest values. Any pod deployed without explicit resource requests and limits fails admission control, so always define defaults alongside min and max.

How do I track GKE costs per team or namespace?

Label namespaces with cost-center attributes and enable GKE cost allocation using gcloud container clusters update with the --enable-cost-allocation flag. View the breakdown in Cloud Billing under GKE Cost Allocation.