List of hub features#
Here’s the list of running hubs and the features they have enabled on them.
It is automatically generated from the config stored in the config/clusters
folder of the infrastructure
repository and can therefore be limited in the information it provides.
Hub options table#
Warning
This is a work in progress and the current list of features is being tracked in the following table.
Hub features decision tree#
Warning
The following flowchart is a work in progress. There are two more layers that were intentional left out of this initial chart, Knowledge sharing layer
and Support and training layer
, as they are more complex and require additional research, that is not tied to infrastructure configurations.
flowchart TB
NewHub --> CloudLayer
CloudLayer --> HubUserAccessLayer
HubUserAccessLayer --> CommunityCustomizationsLayer
CommunityCustomizationsLayer --> DataLayer
DataLayer --> IntegrationsLayer
IntegrationsLayer --> PerformanceLayer
PerformanceLayer --> ElasticScaffolding
subgraph CloudLayer
Cluster -- default --> Shared
cluster_one[2i2c, GCP, us-central1-b]
cluster_two[2i2c-aws-us, AWS, us-west-2]
cluster_three[2i2c-uk, GCP, europe-west2]
Shared -- default --> cluster_one
Shared --> cluster_two
Shared --> cluster_three
cluster_one --> plan_events{if events on hub}
cluster_two --> plan_events
cluster_three --> plan_events
plan_events -- Yes --> ded_nodepool[Dedicated nodepool in shared cluster]
plan_events -- default: No --> shared_nodepool[Shared nodepool]
Cluster --> Dedicated
Dedicated --> Provider
Provider -- default --> GCP
Dedicated --> Region
Region -- default --> us_west_2
end
subgraph HubUserAccessLayer
direction TB
Authentication--> Username
subgraph Authentication
direction LR
root_auth[Authenticator] -- default --> CILogonOAuthenticator
root_auth --> GitHubOAuthenticator
root_auth -- if ephemeral hub --> TmpAuthenticator
CILogonOAuthenticator --> auth[authentication]
click auth "https://www.cilogon.org/home" "Depends on the providers supported by CILogon"
CILogonOAuthenticator --> cilogon_authorization[authorization]
GitHubOAuthenticator --> github_authorization[authorization]
auth --> SocialProvider
auth -- if member of InCommon Federation --> InstitutionalProvider
click InstitutionalProvider "https://cilogon.org/idplist/" "Click here to check if an institution's provider is supported by CILogon"
SocialProvider --> Microsoft
SocialProvider --> Google
SocialProvider --> GitHub
SocialProvider --> ORCID
cilogon_authorization -- default --> domain_based[Domain matching]
cilogon_authorization --> username_pattern[Username pattern matching]
cilogon_authorization --> allowed_users[Membership in allowed users list]
github_authorization -- default --> teams[GitHub Teams membership status]
github_authorization --> org[GitHub Organizations membership status]
github_authorization --> allowed_users
end
subgraph Username
u[ID] --> anonymous
u --> public
public -- default --> email
public --> claim[provider specific claim]
end
end
subgraph CommunityCustomizationsLayer
cclayer[*] --> hub_pages
cclayer --> hub_domain
hub_pages[Hub pages]
hub_domain[Hub domain]
hub_pages --> option_one
hub_pages -- optional and only for straightforward, short HTML --> option_two
hub_domain --> community_name.cluster_name.2i2c.cloud
hub_domain --> community_name.2i2c.cloud
hub_domain -- community must set a CNAME that points to the 2i2c domain --> other
option_one[Hub Login Page]
option_two[Other Hub pages]
login_page_option_one[Basic configuration of template sections]
login_page_option_two[Self configuration through own GitHub repo]
option_one --> login_options
login_options -- mandatory --> login_page_option_one
login_options -- optional --> login_page_option_two
login_page_option_one --> OrganizationInfo
login_page_option_one --> FundedBy
login_page_option_two -- default 2i2c-org/default-hub-homepage --> RepoURL
login_page_option_two -- default master --> RepoBranch
OrganizationInfo --> OrgName
OrganizationInfo --> OrgURL
OrganizationInfo --> logoURL
FundedBy --> FunderName
FundedBy --> FunderURL
end
subgraph DataLayer
data[*] --> data_root_option_one
data --> data_root_option_two
data_root_option_one[Shared Data Directories]
data_root_option_two[Object Storage Buckets]
shared_readwrite[shared-readwrite]
shared_public[shared-public]
data_root_option_one -- enabled by default --> shared_dir
data_root_option_one -- enabled by default --> shared_readwrite
data_root_option_one -- optional --> shared_public
data_root_option_one -- optional --> allusers
data_root_option_two --> Scratch
data_root_option_two --> Persistent
hub_cloud_permissions[Cloud Permissions]
Scratch --> hub_cloud_permissions
Persistent --> hub_cloud_permissions
public_bucket[Publicly accessible]
from_hub[Buckets accessible from the Hub]
outside_hub[Buckets accessible from outside the Hub]
requestor_pays[Requestor Pays]
hub_cloud_permissions --> outside_hub
hub_cloud_permissions -- default --> from_hub
hub_cloud_permissions -- GCP only --> requestor_pays
outside_hub --> public_bucket
gg_membership[Google Groups based membership]
outside_hub -- GCP only --> gg_membership
end
subgraph IntegrationsLayer
integrations[*] --> gh-scoped-creds[Allow users to push to GitHub from the hub]
integrations --> git-credential-helpers[Enable nbgitpuller for private GitHub repos]
integrations -- only dedicated clusters --> Grafana
integrations -- currently broken --> static_webs[fa:fa-exclamation Authenticated static websites]
integrations --> Configurator
end
subgraph PerformanceLayer
perf[*] --> GPUs
GPUs -- optional --> profile[GPU user profile]
perf --> Dask
perf --> KernelCulling
end
subgraph ElasticScaffolding
ProfileLists --> HardwareProfiles
ProfileLists --> UserImageSelectors
ProfileLists --> NodeSharing
end