Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: FSxN Storage for Perforce Helix Core #428

Open
3 tasks
henrykie opened this issue Jan 6, 2025 · 0 comments
Open
3 tasks

Feature request: FSxN Storage for Perforce Helix Core #428

henrykie opened this issue Jan 6, 2025 · 0 comments
Labels
feature-request feature request triage to be triaged by project maintainers

Comments

@henrykie
Copy link
Contributor

henrykie commented Jan 6, 2025

Use case

Perforce Helix Core with Amazon FSx for NetApp ONTAP

Currently, our Perforce Helix Core module leverages Amazon EBS for storage of the /hxdepots, /hxlogs, and /hxmetadata volumes. We should support the automated deployment and mounting of Amazon FSxN volumes for /hxdepots, and provide the ability for end-users of the module to configure multiple depot volumes.

Filesystem Creation and Volume Creation

The module should not be responsible for creation of the Amazon FSxN Filesystem. Instead, the module should take the filesystem ID or filesystem virtual machine ID as a variable, and provision the necessary volumes on the filesystem as needed.

Deliverables

  • Example module configuration (/modules/perforce/helix-core/examples/fsxn) demonstrating FSxN filesystem creation, and Perforce Helix Core module usage with the FSxN filesystem.
  • Automatic FSxN volume creation within the Helix Core module.
  • Automatic mounting of the FSxN volumes to the Helix Core instance at the expected path.

Solution/User Experience

Example Usage

module "perforce_helix_core" {
    source = "cloud-game-development-toolkit/modules/perforce/helix-core"
    ...
    storage_type = "FSxN"
    amazon_fsxn_filesystem_id = aws_fsx_ontap_file_system.example.id
    depot_volumes = {
        "engine" = {
            size_in_gigabytes = 512
            # Other configuration specific to volume creation
        }
        "game" = {
            size_in_gigabytes = 1000
            # Other configuration specific to volume creation
        }
    }
    metadata_volume_size = 128
    logs_volume_size = 128
}

For details on volume creation see the aws_fsx_ontap_volume resource. Exactly which parameters we expose at the module level is still up for discussion.

Alternative solutions

NA

@henrykie henrykie added feature-request feature request triage to be triaged by project maintainers labels Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request feature request triage to be triaged by project maintainers
Projects
None yet
Development

No branches or pull requests

1 participant