Quick Start Guide

This guide will help you get started with KubeFlex quickly. Choose the scenario that best fits your needs.

Prerequisites

Basic Multi-Tenant Setup

Create the hosting kind cluster with ingress controller and install the kubeflex operator:

kflex init --create-kind

Create a control plane:

kflex create cp1

Interact with the new control plane, for example get namespaces and create a new:

kflex ctx cp1
kubectl get ns
kubectl create ns myns

Create a second control plane and check that the namespace created in the first control plane is not present:

kflex create cp2
kflex ctx cp2
kubectl get ns

To go back to the hosting cluster context, use the ctx command:

kflex ctx

To switch back to a control plane context, use the ctx <control plane name> command, e.g:

kflex ctx cp1

To delete a control plane, use the delete <control plane name> command, e.g:

kflex delete cp1

Advanced Multi-Tenant Scenario

For a realistic development team scenario with complete isolation:

  1. Initialize the hosting cluster:

    kflex init --create-kind
  2. Create Team Alpha’s control plane:

    kflex create team-alpha --type k8s
  3. Switch to Team Alpha’s isolated environment:

    kflex ctx team-alpha
    kubectl create namespace frontend
    kubectl create namespace backend
    kubectl create deployment web --image=nginx -n frontend
  4. Create Team Beta’s control plane:

    kflex create team-beta --type k8s
  5. Switch to Team Beta’s environment:

    kflex ctx team-beta
    kubectl get namespaces  # Notice: team-alpha's namespaces are not visible
    kubectl create namespace api
    kubectl create deployment api-server --image=httpd -n api
  6. Verify complete isolation:

    # Team Beta cannot see Team Alpha's resources
    kubectl get deployments --all-namespaces
    # Only shows Team Beta's deployments
     
    # Switch back to Team Alpha
    kflex ctx team-alpha
    kubectl get deployments --all-namespaces
    # Only shows Team Alpha's deployments
  7. Return to host cluster management:

    kflex ctx
    kubectl get controlplanes
    # Shows both team-alpha and team-beta control planes
  8. Cleanup:

    kflex delete team-alpha
    kflex delete team-beta

Result: Each team operates with complete isolation - they cannot see or interfere with each other’s resources, yet they share the underlying infrastructure efficiently.

Next Steps