Skip to content

yonahd/kubernetes-access-manager

Repository files navigation

Python Version Node.js Version Docker Pulls Frontend Docker Pulls Backend

Kubernetes Access Manager

A modern web application for generating Kubernetes RBAC configurations and kubeconfig files with a beautiful, user-friendly interface.

Flow

Step 1: Choose what you want to generate(Kubeconfig/Role)

Kubernetes Access Manager Screenshot

Step 2: Choose the exact permissions you want on whatever resources you need

Kubernetes Access Manager Roles

Step 3: Press Generate


The application provides an intuitive . interface for managing Kubernetes access:

  • Role Generator: Create fine-grained RBAC roles with specific permissions
  • Kubeconfig Generator: Generate kubeconfig files for service accounts
  • Resource Selection: Choose from a comprehensive list of Kubernetes resources
  • Permission Management: Select specific verbs for each resource

Features

  • 🔐 Role Generator: Create Kubernetes RBAC roles with fine-grained permissions
  • 📄 Kubeconfig Generator: Generate kubeconfig files for service accounts
  • 🎯 Resource-specific Permissions: Control access to specific Kubernetes resources
  • 📊 Namespace Support: Generate configurations for specific namespaces
  • 🎨 Modern UI: Beautiful and intuitive user interface with Material-UI
  • Fast & Responsive: Built with React and Vite for optimal performance

Supported Resources

  • Core Resources: Pods, Services, ConfigMaps, Secrets, etc.
  • Apps: Deployments, StatefulSets, DaemonSets, ReplicaSets
  • Networking: Ingresses, NetworkPolicies
  • RBAC: Roles, ClusterRoles, RoleBindings
  • Other: HorizontalPodAutoscalers, PodDisruptionBudgets, PersistentVolumes

Prerequisites

  • Node.js 18+ for frontend
  • Python 3.8+ for backend
  • Kubernetes cluster for deployment (optional)

Quick Start

  1. Clone the repository:
git clone https://github.com/yourusername/kubernetes-access-manager.git
cd kubernetes-access-manager
  1. Start the development environment:
./start-dev.sh

This will start both the frontend and backend servers:

Development Setup

Frontend

cd frontend
npm install
npm run dev

Backend

cd backend
python -m venv venv
source venv/bin/activate  # On Windows: .\venv\Scripts\activate
pip install -r requirements.txt
python app.py

Environment Variables

Frontend

Backend

  • FLASK_ENV: Development/production environment
  • FLASK_APP: Application entry point
  • KUBERNETES_SERVICE_HOST: Kubernetes API server host (optional)
  • KUBERNETES_SERVICE_PORT: Kubernetes API server port (optional)

Docker Deployment

Build and run the containers:

# Build images
docker build -t kubernetes-access-manager-frontend ./frontend
docker build -t kubernetes-access-manager-backend ./backend

# Run containers
docker-compose up -d

Kubernetes Deployment

The application can be deployed to Kubernetes using the provided Helm chart:

helm install kubernetes-access-manager ./helm/kubernetes-access-manager

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

About

A service to generate Roles and kubeconfigs with the exact permissions you want

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published