Thank you very much, Greg, for the kind follow-up and important questions. Below is our attempt to respond to the requested technical information. I need your permission to send you a Slack invite to communicate with the IT volunteer, so it will help with technical explanation and next steps.I am also working with volunteer to setup remote access to the 4 node server via IPMI networking for your access. It will take two weeks time for remote accessibility to install StarlingX IO. Please accept my apologies for the delay response. Sincerely, Rizwan Answers: *1. What type of applications are you thinking of running on StarlingX?* We plan to deploy a *multi-user training platform* that provides *Virtual Desktops (VMs), Database Training Environments, and Interactive Coding Spaces*, along with *Community Service Applications* for nonprofit organizations. The applications will be a mix of *VM-based services* and *containerized microservices*, orchestrated using *Kubernetes on StarlingX*. *Virtual Desktops (Windows & Linux)* - Windows and Linux-based virtual desktops for hands-on training. - Users will access these desktops remotely via *Apache Guacamole (RDP/VNC/SSH in a browser)*. - Each user will have their own *isolated VM* with persistent storage. *Web-Based Interactive Coding Environments* - *JupyterHub* for Python, R, and data science training. - *Code-Server (VS Code in a browser)* for multi-language development. - Each user will have *a containerized coding environment* running on Kubernetes. *Database Training Environments (VMs)* - Dedicated VMs for database administration training, including: - *PostgreSQL* - *MySQL* - *MongoDB* - *Redis* - Users will have *individual or shared access* to these database VMs for learning database management, performance tuning, and security. *Web Application Backend* - *FastAPI-based web application* for: - User authentication - VM allocation and management - Code-space provisioning - *React/Vue.js frontend* for user interaction and real-time monitoring. - *Kubernetes-managed containerized backend* ensuring scalability and high availability. *Storage & File Management* - *MinIO (S3-compatible object storage)* for storing user files and code. - *Nextcloud (self-hosted cloud storage)* for collaborative file management. - *Block Storage* for VM disks and databases requiring high-performance storage. *Networking & Security* - *Nginx / Traefik* as a reverse proxy for microservices. - *Let’s Encrypt for SSL certificates* to enable HTTPS. - *WireGuard/OpenVPN* for secure remote access. - *Kubernetes Ingress and Service Mesh (Istio/Linkerd)* for inter-service communication. *2. Community Services Applications for Non-Profit Organizations* In addition to training environments, we will use *StarlingX* to host *various community service applications* designed for *nonprofit organizations*. These applications will follow a *microservices architecture* deployed on *Kubernetes*, with an API Gateway for efficient service communication. *Technology Stack* - *FastAPI, Django REST Framework (DRF), WebSockets, HTTPS*. - *MongoDB & PostgreSQL* for structured and unstructured data storage. - *Microservices Architecture* where each service communicates via APIs. - *FastAPI-based API Gateway* for managing authentication, request routing, and inter-service communication. *Media File Storage & Serving* - *MinIO (preferred)* for scalable, API-driven media storage (videos, images, documents). - *Block Storage* for applications that require direct disk access on VMs. - *Since containers will be running on VMs with block storage, media files will be stored in MinIO for better scalability and API-based access* . *Example Use Cases* - *Food Distribution & Assistance Management* - Managing inventory, scheduling deliveries, and tracking recipients. - *Volunteer & Donation Management* - Sign-ups, tracking donations, and managing nonprofit events. - *Community Support Services* - Online helpdesk, case tracking, and real-time chat via WebSockets. *3. Will there be multiple users or tenants?* Yes, the platform will support *multi-tenancy*, ensuring that: - *Registered users* have their own *virtual desktops, database VMs, and coding spaces*. - *Nonprofit organizations* get *isolated environments* for their applications. - Users have *role-based access control (RBAC)* (e.g., admin, trainer, student, nonprofit manager). - *Resource isolation* is enforced through *VMs for databases and persistent workloads, and Kubernetes for microservices*. *4. Will your users want to run primarily containerized applications or primarily VM-based applications… or both?* We require *both VMs and containerized applications*, depending on the use case. *VM-Based Applications:* - *Windows/Linux Virtual Desktops* for training users. - *Database Training VMs* for PostgreSQL, MySQL, MongoDB, and Redis. - *Persistent applications requiring dedicated compute resources*. - *Block storage-backed environments for VMs*. *Containerized Applications (Managed with Kubernetes):* - *JupyterHub, Code-Server, FastAPI, API Gateway, and Community Service Apps* will be containerized. - *Kubernetes will manage service orchestration, auto-scaling, and deployment.* - *All containerized services will be deployed on StarlingX Kubernetes for high availability and resource efficiency.* This *hybrid approach* allows *scalability* for web applications and coding environments while maintaining *dedicated VMs* for desktops and database training. *5. Storage Strategy: MinIO vs. Block Storage (Management by Kubernetes & StarlingX)* We will use *both MinIO and Block Storage*, but their management differs: *MinIO (Managed by Kubernetes)* - Deployed as a *StatefulSet on Kubernetes* for high availability. - Storage managed using *Persistent Volume Claims (PVCs) and StorageClasses*. - Used for *user file storage, application data, and media files*. - Scalable with built-in redundancy. *Block Storage (Managed by StarlingX/OpenStack, Not Kubernetes)* - Used for *VM disk images (Windows/Linux desktops, database VMs)*. - Managed by *StarlingX’s OpenStack Cinder, Ceph, or direct storage solutions*. - Provides *high-performance storage* for databases requiring persistent block-level storage. By *clearly separating storage management*, we ensure Kubernetes efficiently handles microservices storage, while StarlingX/OpenStack manages VM and database disk storage. Also some questions about your hardware … - what type of server(s) do you have currently ? - this page provides minimum hardware requirements for running StarlingX - https://docs.starlingx.io/planning/kubernetes/starlingx-hardware-requirement... - how many servers do you have ? - StarlingX is quite scalable … it can run on 1 server or up to 200 servers - you said that you wanted to install “StarlingX in Ubuntu Linux“ - StarlingX actually requires a dedicated server - i.e., you can not install StarlingX as an Application on top of an existing OS - StarlingX installs ’everything’ on a dedicated server - it installs its own linux kernel, OS (Debian -based), StarlingX infrastructure management services, Kubernetes and OpenStack Greg. On Wed, Mar 26, 2025 at 3:56 AM Waines, Greg <Greg.Waines@windriver.com> wrote:
Hey Rizwan,
Sorry for the slow reply.
I wanted to reach out and get some more information from you.
Just to make sure that StarlingX is the right fit for you, I wanted to understand some examples of what you would like to do with the StarlingX deployment after you set it up.
I.e.,
- what type of applications are you thinking of running on StarlingX ? - e.g. - virtual desktops ? e.g. windows, linux, … - various web servers or web pages ? - wikis ? - … - will there be multiple users or tenants ? - each running their own applications - will your users want to run primarily containerized applications or primarily VM-based applications … or both ?
Also some questions about your hardware …
- what type of server(s) do you have currently ? - this page provides minimum hardware requirements for running StarlingX - https://docs.starlingx.io/planning/kubernetes/starlingx-hardware-requirement... - how many servers do you have ? - StarlingX is quite scalable … it can run on 1 server or up to 200 servers - you said that you wanted to install “StarlingX in Ubuntu Linux” - StarlingX actually requires a dedicated server - i.e., you can not install StarlingX as an Application on top of an existing OS - StarlingX installs ‘everything’ on a dedicated server - it installs its own linux kernel, OS (Debian -based), StarlingX infrastructure management services, Kubernetes and OpenStack
Greg.
------------------------
From: Rizwan Ashraf <rizwan@ablecommunity.com>
Sent: Sunday, March 2, 2025 10:55 AM
To: Khalil, Ghada <Ghada.Khalil@windriver.com>
Subject: StarlingX IO installation for a community nonprofit
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know the content is safe.
Hello Khalil,
Able Community would like to set up StarlingX IO cloud environment and enable CI/CD. This effort is to help the minority community youth and families with skills training.
I and one more IT volunteer are working in Able Community to enable the community technology skills platform and environment.
I am reaching out requesting if the StarlingX team can volunteer to help install and StarlingX in Ubuntu Linux.
Please advise.
Rizwan Ashraf