feat: added ipc_mode task config option#515
Merged
Merged
Conversation
chrisroberts
previously approved these changes
Jun 18, 2026
chrisroberts
left a comment
Member
There was a problem hiding this comment.
Looks good. Left some styling nits in the tests. Replacing the defers with t.Cleanup throughout the tests will make things a little cleaner.
tehut
approved these changes
Jun 24, 2026
tehut
left a comment
There was a problem hiding this comment.
Thanks for getting this knocked out so fast, @ritesh-harihar !
15 tasks
ritesh-harihar
added a commit
to hashicorp/web-unified-docs
that referenced
this pull request
Jul 13, 2026
<!-- **Merge branch** Make sure you create your PR against the correct **base** branch. For instructions, refer to GitHub's **Change the branch range and destination repository guide** (https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). If your content is an update to: - Currently published content Choose **base: main** when you are updating published documentation, and you want your changes published when the PR is merged. We publish Nomad content from the `main` branch. - Upcoming Nomad release Choose the branch for the Nomad release that your content is for. Nomad release branches use the `nomad/<exact-release-number>` format. If you are not able to find the upcoming Nomad release branch that you are looking for, contact the tech writer that works with the Nomad team. - Upcoming Nomad release but not sure which one - Choose the `main` branch. - Add the "do not merge" label. - Convert the PR to a DRAFT. - Put an explanation in the **Description** section. The tech writer coordinates with Nomad engineering and updates the docs PR base branch when the code is slotted into an upcoming release. **Backports** This repo stores previous version docs in folders instead of branches. There are no backport labels. If you backported your code PR to previous branches, update the docs content in the corresponding folders. For example, if the current release is 1.10.x and you backported your code to 1.9.x and 1.8.x, update the docs content in the v1.10.x, v1.9.x, and v1.8.x folders. If you can't find the relevant files in previous versions, add a note to your PR description. The tech writer will help ensure that the previous versions receive the correct updates. --> ## Description This PR updates the nomad-driver-podman documentation for the v0.5.0 release. [Ticket](https://hashicorp.atlassian.net/browse/NMD-1628) <!-- Please describe why you're making this change and point out any important details the reviewers should be aware of. A robust description helps the tech writer create a fabulous release note. If your code PR has a splendid description, link to the code PR in the links section so that the tech writer can update this PR's description. Include the target release as well as prior versions if applicable. --> ## Changes <!-- **Please link to the related Nomad repo code PR!** if there is one. The tech writer does look at the code PR description, Jira ticket, and/or GH issue before reviewing docs content. Include links to GitHub issues, documentation, or similar which is relevant to this PR. If this is a docs bug fix, please ensure related issues are linked so they will close when this PR is merged. // GH-Jira integration generates the link and updates the Jira ticket. Jira: [<jira-ticket-number>] // for example, Jira: [NMD-1234] GitHub Issue: <issue-link> Deploy previews: The bot does publish a root-level link to the deploy preview, but the preview URL changes with each build. --> **Image platform overrides ([PR](hashicorp/nomad-driver-podman#514) , [JIRA Ticket](https://hashicorp.atlassian.net/browse/NMD-1320))** - Documents the new os, arch, and variant task config fields that override the platform used when pulling an image (mirroring podman's --os, --arch, --variant flags) - Adds an example and explains the always-pull behavior when any override is set, plus constraint guidance for pinning workloads to compatible nodes **IPC namespace mode ([PR](hashicorp/nomad-driver-podman#515) , [JIRA Ticket](https://hashicorp.atlassian.net/browse/NMD-1582))** - Documents the new ipc_mode task config with all supported values (host, private, shareable, none, container:<id>, ns:<path>, task:<name>) - Adds a task:mps-daemon example and the shm_size compatibility note **Custom Podman network names ([PR](hashicorp/nomad-driver-podman#509) , [JIRA Ticket](https://hashicorp.atlassian.net/browse/NMD-1518 ))** - Documents that network_mode accepts the name of a pre-existing Podman network created with podman network create - Notes the network must already exist and that this requires Podman 4.0 or later; adds a network_mode = "mynet" example **HTTP(S) archive URLs for images ([PR](hashicorp/nomad-driver-podman#517) ,[ JIRA Ticket](https://hashicorp.atlassian.net/browse/NMD-1000))** - Documents that the image field's oci-archive and docker-archive transports accept http(s):// URLs, not just local archive paths - Adds an oci-archive:https://... example ## Contributor checklists Review urgency: - [ ] ASAP: Bug fixes, broken content, imminent releases - [ ] 3 days: Small changes, easy reviews - [ ] 1 week: Default expectation - [ ] Best effort: No urgency Pull request: - [ ] Verify that the PR is set to merge into the correct base branch - [ ] Verify that all status checks passed - [ ] Verify that the preview environment deployed successfully - [ ] Add additional reviewers if they are not part of assigned groups Content: - [ ] I added redirects for any moved or removed pages - [x] I followed the [Education style guide](https://github.com/hashicorp/web-unified-docs/tree/main/docs/style-guide) - [ ] I looked at the local or Vercel build to make sure the content rendered correctly ## Reviewer checklist - [ ] This PR is set to merge into the correct base branch. - [ ] The content does not contain technical inaccuracies. - [ ] The content follows the Education content and style guides. - [ ] I have verified and tested changes to instructions for end users. [NMD-1234]: https://hashicorp.atlassian.net/browse/NMD-1234?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
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.
Issue
Summary
The Podman driver previously gave tasks no control over their IPC namespace — every container got Podman's default (a
privatenamespace with its own/dev/shm). This makes it impossible for tasks in the same allocation to share IPC primitives //dev/shm,What's Chnaged
This PR exposes a new optional
ipc_modetask config option that maps directly to Podman's--ipc, bringing the driver to parity with the Docker driver's ipc_mode. It also adds a fail-fast conflict check betweenipc_modeandshm_size.StartTasktranslatesipc_modeinto createOpts.ContainerStorageConfig.IpcNS (driver.go), mirroring the existingnetwork_modehandling (including the container:, ns:, and task: prefix forms viaBuildContainerNameForTask).Conflict check:shm_sizeis now rejected with anyipc_modethat does not own the container's/dev/shm(i.e. anything other thanprivate/shareable), matching the Podman API contract.Example
Supported values
container:<id>ns:<path>task:<name>Before/After
Testing
Details
Changes to Security Controls
Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.