This repository hosts the code that implements Sundew Project's prototype portal webpage. The portal is where you register for using Sundew, and receive the required configuration files for later accessing your personalized Kubernetes (or "K8s") dashboard to administrate your Sundew resources.
The portal code is split into two parts: A user-visible Web frontend, and
a backend that interfaces with Kubernetes. The frontend is a
Google App Engine web app
written in Python / webapp2
,
with Jinja templates.
It lets the user register an account, agree to the Acceptable Usage Policy (AUP),
and then hands out credentials in the form of a Kubernetes configuration.
With this config, the user can access their personalized Kubernetes
dashboard for further interactions with their resources on the Sundew cluster.
The backend
is a Flask app that is only accessible by the
frontend. For various routes in its app, it calls down into shell scripts
which interface with kubectl
, the Kubernetes control tool, to create
users,
list the available nodes and namespaces,
and generates the actual per-user config file
(including certificates) that the frontend serves.
As of the May 2018 prototype,
- There is only a single Kubernetes head node for all users in the cluster. We will later on think about scaling up, distributing and federating head nodes, etc.
- New user registrations are handled manually on a per-case basis, and must go through some Google App Engine-specific processing. Later, other identity providers and user verification methods should be supported.