posit-dev / posit-dev/ptd

Add support for global OpenZFS quotas on user home directories

Open
#25 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

aws
Dominant language
Go
Stars
7
Forks
2
Avg merge
1d 15h
Merged PRs (30d)
3

Description

Summary

Add support for configuring global quotas on Amazon FSx for OpenZFS user home directories to limit storage consumption per user. This feature was requested by a customer to prevent individual users from consuming excessive storage space.

Background

Currently, the PTD infrastructure creates FSx for OpenZFS file systems without setting quotas on user home directories. This means users can consume unlimited storage, potentially affecting cost and performance for the entire deployment.

Proposed Solution

Implement support for OpenZFS native quota features in the PTD infrastructure code:

  1. Add a configurable parameter for global user home directory quota (e.g., user_home_quota_gb)
  2. Modify the FSx OpenZFS provisioning logic in python-pulumi/src/ptd/pulumi_resources/aws_fsx_openzfs_multi.py to create child volumes with quota configurations
  3. Ensure quotas are applied when user home directories are created

Implementation Details

  • Component: PTD Infrastructure (Python Pulumi)
  • Primary files:
    • python-pulumi/src/ptd/pulumi_resources/aws_fsx_openzfs_multi.py
    • Related configuration in workload setup
  • Quota mechanism: OpenZFS native quota property on volumes/datasets
  • Scope: Global quota applied uniformly to all user home directories

Acceptance Criteria

  • Configuration parameter added for specifying global user home quota
  • User home directories are created as OpenZFS volumes with quota property set
  • Quota is enforced by OpenZFS filesystem
  • Documentation updated with quota configuration instructions
  • Tested on at least one staging environment

References

Priority

Medium - Enhancement requested by a customer

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading python-pulumi/src/ptd/pulumi_resources/aws_fsx_openzfs_multi.py and tracing the related workload setup configuration. Use the OpenZFS quota and AWS FSx references to understand the requested volume behavior, then validate the configuration and enforcement in a staging environment. Done means global user-home quota configuration, documentation, and staging verification are present.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
cloud, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.