spiegel_podman/docs
Corey Hickey 03ee8204d3 podman machine: make 9p security model configurable; adjust docs
This addresses:
Symlinks don't work on podman machine on macOS Monterey when using volumes feature #13784

This change does NOT exactly fix the bug, but it does allow the user to
work around it via 'podman init' option, e.g.:
podman machine init -v "$HOME/git:$HOME/git:ro:security_model=none"

If the default security model were to be changed to 'none', then that
would fix the bug, at the possible cost of breaking any use cases that
depend on 'mapped-xattr'.

The documentation of the purpose and behavior of the different security
models seems to be rather light:
https://wiki.qemu.org/Documentation/9psetup#Starting_the_Guest_directly

From testing, it appears that the mapped-xattr security model intends to
manage symlinks such that the guest can see the symlinks but the host
only sees regular files (with extended attributes). As far as I can
tell, this behavior only makes sense when the guest is the only thing
that ever needs to create and read symlinks. Otherwise, symlinks created
on the host are unusable on the guest, and vice versa.

As per the original commit: 8e7eeaa4dd
[NO NEW TESTS NEEDED]

Also document existing ro and rw options.

Also remove misleading statement about /mnt. By my observation, this
line is incorrect. If the intended meaning is different, then I don't
understand.

The default volume is mounted read/write and is not within /mnt.

[core@localhost ~]$ mount | grep 9p
vol0 on /Users/chickey type 9p (rw,relatime,sync,dirsync,access=client,trans=virtio)

Signed-off-by: Corey Hickey <chickey@tagged.com>
2022-07-06 16:07:56 -07:00
..
source podman machine: make 9p security model configurable; adjust docs 2022-07-06 16:07:56 -07:00
tutorials Fix spelling "setup" -> "set up" and similar 2022-06-22 18:39:21 +02:00
dckrman.sh Add information about .containerignore to podman build man page 2021-10-12 16:42:07 -04:00
links-to-html.lua Update XML to not embed quote in PATH on windows 2020-01-31 15:22:20 -07:00
make.bat Restructure documentation dir 2019-10-31 12:31:39 -05:00
Makefile Restructure documentation dir 2019-10-31 12:31:39 -05:00
MANPAGE_SYNTAX.md [CI:DOCS] Follow-up to PR 10676 2021-06-23 20:36:20 +02:00
play.png Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
play_kube_support.md [CI:DOCS] Add play kube support docs 2022-05-25 13:11:45 -04:00
podman-derivative-api Remove varlink support from Podman 2020-11-26 16:50:42 -05:00
README.md Manpage syntax proposal 2021-05-27 22:42:50 +02:00
remote-docs.sh Open Windows tutorial after MSI installation 2022-06-16 23:46:24 -05:00
requirements.txt Use a new markdown converter for sphinx 2021-09-16 21:10:13 +02:00
standalone-styling.css Open Windows tutorial after MSI installation 2022-06-16 23:46:24 -05:00
use-pagetitle.lua [CI:DOCS] Add titles to remote docs (windows) 2021-04-29 22:18:13 +01:00

Podman Documentation

The online man pages and other documents regarding Podman can be found at Read The Docs. The man pages can be found under the Commands link on that page.

Build the Docs

Directory Structure

Directory
Markdown source for man pages docs/source/markdown/
man pages aliases as .so files docs/source/markdown/links/
restructured text for readthedocs.io docs/rst/
target for output docs/build
man pages docs/build/man
remote linux man pages docs/build/remote/linux
remote darwin man pages docs/build/remote/darwin
remote windows html pages docs/build/remote/windows

Support files

docs/remote-docs.sh Read the docs/source/markdown files and format for each platform
docs/links-to-html.lua pandoc filter to do aliases for html files
docs/use-pagetitle.lua pandoc filter to set html document title

Manpage Syntax

The syntax for the formatting of all man pages can be found here.

API Reference

The latest online documentation is automatically generated by two cooperating automation systems based on committed upstream source code. Firstly, the Cirrus-CI docs task builds pkg/api/swagger.yaml and uploads it to a public-facing location (Google Storage Bucket - an online service for storing unstructured data). Second, Read The Docs reacts to the github.com repository change, building the content for the libpod documentation site. This site includes for the API section, some javascript which consumes the uploaded swagger.yaml file directly from the Google Storage Bucket.

Since there are multiple systems and local cache is involved, it's possible that updates to documentation (especially the swagger/API docs) will lag by 10-or-so minutes. However, because the client (i.e. your web browser) is fetching content from multiple locations that do not share a common domain, accessing the API section may show a stack-trace similar to the following:

JavaScript Stack Trace Image

If reloading the page, or clearing your local cache does not fix the problem, it is likely caused by broken metadata needed to protect clients from cross-site-scripting style attacks. Please notify a maintainer so they may investigate how/why the swagger.yaml file's CORS-metadata is incorrect, or the file isn't accessible for some other reason.

Local Testing

Assuming that you have the dependencies installed, then also install (showing Fedora in the example):

# dnf install python3-sphinx python3-recommonmark
# pip install sphinx-markdown-tables

After that completes, cd to the docs directory in your Podman sandbox and then do make html.

You can then preview the html files in docs/build/html with:

python -m http.server 8000 --directory build/html