Overview:

ResourceManager is a supporting microservice designed to manage network resources (IP and VLAN) within the SDN controller TFS.
Its main purpose is to verify the availability of such resources before deploying L2 or L3 services, acting as a safeguard to prevent conflicts or duplicate assignments.

Current Status:

The gRPC service has been implemented in Python.
The current logic supports:
    Checking whether an IP or VLAN is already assigned on the router.
    Assigning a new IP or VLAN (in-memory) if available.
Resource state is maintained in memory only, with no persistence.
The module is already integrated with the TFS controller, and is called before generating services for the NBI.

Structure:

├── Dockerfile                      # Docker image definition for the service
├── README.txt                      
├── requirements.in                 # Service dependencies (e.g., gRPC)
├── __init__.py
├── client/
│   ├── ResourceManagerClient.py    # gRPC client to test the service
│   └── __init__.py
└── service/
    ├── ResourceManagerService.py   # gRPC service logic
    ├── ResourceManagerServicerImpl.py # gRPC server implementation
    ├── __init__.py
    └── __main__.py                 # Main entry point (launches the server)

proto/
│   └── resource_manager.proto      # gRPC service definition (messages & service interface)
manifest/
│   └── resource-manager-deployment.yaml # Kubernetes Deployment & Service definition