Repository navigation
CP-13821 Gate nfs-server.service and default it off at image build - #581
Open
david-mendez1 wants to merge 3 commits into
Open
david-mendez1 wants to merge 3 commits into
david-mendez1 wants to merge 3 commits into
Conversation
Add a ConditionPathExists=!/etc/nfs_disable constraint to the nfs-server.service drop-in configuration. When the /etc/nfs_disable marker file exists, systemd will not start this service, even if explicitly requested via 'systemctl start'. This gating mechanism allows administrators to close port 2049 (NFS) by default on most appliance variants. Multiple Condition*= keys are ANDed together, preserving the existing container virtualization check.
…iants Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
david-mendez1
force-pushed
the
dlpx/pr/david-mendez1/9dfae8a5-a50d-4d69-ae1b-337a64079379
branch
from
October 16, 2026 23:07
e1324aa to
bc7f55a
Compare
david-mendez1
changed the base branch from
CP-13821-disable-nfs-default
to
develop
October 16, 2026 23:08
david-mendez1
marked this pull request as ready for review
October 16, 2026 23:08
david-mendez1
requested review from
sebroy
and
a balanced review from Copilot
October 17, 2026 15:02
There was a problem hiding this comment.
🔵 Needs a closer look
Coordinated delivery with the companion PR and outstanding Linux storage tests require human verification.
No open issues 🎉
What changed in this PR
Disables NFS by default on most appliance variants, with engine-specific enablement handled by the companion application change.
Changes:
- Gates
nfs-server.serviceon the absence of/etc/nfs_disable. - Creates the marker only during image builds, excluding six internal infrastructure variants and avoiding runtime upgrade resets.
| File | Description |
|---|---|
| files/common/var/lib/delphix-platform/ansible/10-delphix-platform/roles/delphix-platform/tasks/main.yml | Creates the NFS-disable marker for eligible image builds. |
| files/common/lib/systemd/system/nfs-server.service.d/override.conf | Prevents NFS startup while the marker exists. |
Review effort: Balanced
…admin-control framing PR URL: https://www.github.com/delphix/delphix-platform/pull/581 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
david-mendez1
force-pushed
the
dlpx/pr/david-mendez1/9dfae8a5-a50d-4d69-ae1b-337a64079379
branch
from
October 19, 2026 16:16
bc7f55a to
812d616
Compare
david-mendez1
requested review from
sebroy
and
a balanced review from Copilot
and removed request for
sebroy
October 20, 2026 15:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CP-13821 (child of Epic CP-13819): closes port 2049 by default on most Delphix appliance variants. Companion appliance change: dlpx-app-gate PR #4967, CP-13820.
This PR is not safe to merge independently of the companion dlpx-app-gate PR. Merging either repo's change alone leaves an engine in a broken state:
/etc/nfs_disablepresent (NFS disabled), and nothing in this repo ever removes it — only the companion PR'sProductServiceImpl/StackStartupcode does.Conditionanywhere to actually gatenfs-server.servicewithout this PR.Both must land in the same release train.
ConditionPathExists=!/etc/nfs_disableadded to the existing[Unit]block infiles/common/lib/systemd/system/nfs-server.service.d/override.conf, alongside the existingConditionVirtualization=!container.ansible_is_chroot-gated task inroles/delphix-platform/tasks/main.ymlcreates/etc/nfs_disableon every variant except six named internal-infra variants (internal-minimal,internal-unittest,internal-dcenter,internal-buildserver,internal-package-mirror,internal-claude). Theansible_is_chrootgate is required: without it, this task would re-run on every real engine's boot-time Ansible re-run after every delphix-platform package upgrade and silently re-disable NFS on a liveVIRTUALIZATION/BOTHengine.Test plan
ab-pre-push) and manually verify on clonedinternal-devengines for bothVIRTUALIZATIONandMASKING:/etc/nfs_disablepresent/absent andnfs-server.serviceactive/inactive match expectations on both.nfs-server.servicewhile the marker exists.developer_reset) correctly reconciles NFS state back to disabled on a previously-enabled Virtualization engine, and leaves a Masking engine unaffected.server:storagetests could not be executed in the implementation sandbox (no native libzfs on that machine) and need a real run on Linux/CI before merge.Replaces #578, which was closed because its head branch (
CP-13821-disable-nfs-default) had unintentionally acquired develop-level branch protection (no force-push, no admin bypass, linear-history-only, 1 required review with no self-approval), making it impossible to update.🤖 Generated with Claude Code