https://github.com/computecanada/magic_castle

Terraform modules to replicate the HPC user experience in the cloud

https://github.com/computecanada/magic_castle

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Terraform modules to replicate the HPC user experience in the cloud

Basic Info
  • Host: GitHub
  • Owner: ComputeCanada
  • License: mit
  • Language: HCL
  • Default Branch: main
  • Homepage:
  • Size: 4.45 MB
Statistics
  • Stars: 149
  • Watchers: 9
  • Forks: 43
  • Open Issues: 24
  • Releases: 95
Created over 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License

README.md

Magic Castle

DOI Build Status

The Digital Research Alliance of Canada provides HPC infrastructure and support to every academic research institution in Canada. The Alliance uses CVMFS, a software distribution system developed at CERN, to make its research software stack available on its HPC clusters, and anywhere else with internet access. This enables replication of the user experience outside of The Alliance physical infrastructure.

From these new possibilities emerged an open-source software project named Magic Castle, which aims to recreate the HPC user experience in public clouds. Magic Castle uses the open-source software Terraform and HashiCorp Language (HCL) to define the virtual machines, volumes, and networks that are required to replicate a virtual HPC infrastructure. The infrastructure definition is packaged as a Terraform module that users can customize as they require. After deployment, the user is provided with a complete HPC cluster software environment including a Slurm scheduler, a Globus Endpoint, JupyterHub, LDAP, DNS, and over 3000 research software applications compiled by experts with EasyBuild. Magic Castle is compatible with AWS, Microsoft Azure, Google Cloud, OpenStack, and OVH.

Setup

How Magic Castle Works

This software project integrates multiple parts that come into play at different steps of spawning the cluster. The following list enumerates the steps involved in order for users to better grasp what is happening when they create clusters.

We will refer to the user of Magic Castle as the operator.

  1. After downloading the latest release of the cloud provider of choice and adapting the main configuration file, the operator launches Terraform and accepts the proposed plan.
  2. Terraform communicates with the cloud provider REST API and requests the creation of the virtual machines.
  3. For each virtual machine creation request, Magic Castle provides a cloud-init file. This file is used to initialize the virtual machine base configuration and installs puppet agent. The cloud-init file of the puppet tagged virtual machine installs and configures a Puppet primary server.
  4. Terraform uploads on the Puppet primary server instance a YAML file containing information about the roles of each instances specified as tags.
  5. The Puppet agents communicate with the Puppet primary server to retrieve and apply their configuration based on the tags defined in the preceding YAML file.

Talks, slides and videos

List of other cloud HPC cluster open-source projects

When I think about the DevOps landscape, we have so many people just like chefs in a restaurant that are experimenting with different ways of doing things. Once they get it, then they create those recipes. Those recipes in our world is source code. [...] That's why we will always have duplicates and similar projects, because there's going to be one ingredient that's going to be slightly different to make you preferred over something else

Kelsey Hightower, Sourcegraph Podcast, Episode 16, 2020

Contributing / Customizing

Refer to the reference design and the developer documentation.

Owner

  • Name: Compute Canada / Calcul Canada
  • Login: ComputeCanada
  • Kind: organization
  • Location: Canada

GitHub Events

Total
  • Create event: 36
  • Issues event: 23
  • Release event: 13
  • Watch event: 24
  • Delete event: 8
  • Issue comment event: 36
  • Push event: 241
  • Pull request review comment event: 4
  • Pull request review event: 4
  • Pull request event: 57
  • Fork event: 5
Last Year
  • Create event: 36
  • Issues event: 23
  • Release event: 13
  • Watch event: 24
  • Delete event: 8
  • Issue comment event: 36
  • Push event: 241
  • Pull request review comment event: 4
  • Pull request review event: 4
  • Pull request event: 57
  • Fork event: 5

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 14
  • Total pull requests: 24
  • Average time to close issues: over 2 years
  • Average time to close pull requests: 12 days
  • Total issue authors: 7
  • Total pull request authors: 5
  • Average comments per issue: 1.79
  • Average comments per pull request: 0.83
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 9
  • Pull requests: 24
  • Average time to close issues: 3 months
  • Average time to close pull requests: 12 days
  • Issue authors: 6
  • Pull request authors: 5
  • Average comments per issue: 0.89
  • Average comments per pull request: 0.83
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • cmd-ntrf (14)
  • mboisson (5)
  • ocaisa (3)
  • poquirion (3)
  • verdurin (2)
  • foglienimatteo (2)
  • odiezg (1)
  • OscarDiez (1)
  • robkooper (1)
  • ostueker (1)
Pull Request Authors
  • cmd-ntrf (43)
  • etiennedub (9)
  • mboisson (4)
  • Scirelgar (2)
  • ocaisa (2)
  • OscarDiez (1)
  • KerberosMorphy (1)
  • boegel (1)
Top Labels
Issue Labels
enhancement (13) bug (5) documentation (3) question (2) openstack (1) gcp (1) azure (1)
Pull Request Labels
enhancement (31) bug (9) azure (4) documentation (3) core (1) aws (1)

Dependencies

.github/workflows/docs.yaml actions
  • actions/checkout master composite
  • gaurav-nelson/github-action-markdown-link-check v1 composite
.github/workflows/release.yaml actions
  • actions/checkout main composite
  • hashicorp/setup-terraform v1 composite
  • softprops/action-gh-release v1 composite
.github/workflows/spelling.yaml actions
  • actions/checkout master composite
  • codespell-project/actions-codespell master composite
.github/workflows/test.yaml actions
  • ./.github/actions/test_provider * composite
  • actions/cache v2 composite
  • actions/checkout main composite
utils/azure/vmsizes/requirements.txt pypi
  • requests *
.github/actions/test_provider/action.yaml actions