<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Reference on Farrow</title>
    <link>https://farrow.pgsty.com/docs/reference/</link>
    <description>Recent content in Reference on Farrow</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://farrow.pgsty.com/docs/reference/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Configuration</title>
        <link>https://farrow.pgsty.com/docs/reference/configuration/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://farrow.pgsty.com/docs/reference/configuration/</guid>
        <description>&lt;h2 id=&#34;discovery&#34;&gt;Discovery&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Configuration lookup order is explicit &lt;code&gt;-f&lt;/code&gt;, then &lt;code&gt;farrow.yml&lt;/code&gt;,&#xA;&lt;code&gt;farrow.yaml&lt;/code&gt;, &lt;code&gt;pigsty.yml&lt;/code&gt;, and &lt;code&gt;pigsty.yaml&lt;/code&gt; in the current directory. Every&#xA;name uses the same Pigsty-compatible YAML Inventory format.&lt;/p&gt;&#xA;&lt;p&gt;The retired top-level &lt;code&gt;version:&lt;/code&gt;/&lt;code&gt;nodes:&lt;/code&gt; format is rejected with migration&#xA;guidance.&lt;/p&gt;&#xA;&lt;p&gt;For &lt;code&gt;plan&lt;/code&gt;, &lt;code&gt;up&lt;/code&gt;, &lt;code&gt;reload&lt;/code&gt;, and &lt;code&gt;recreate&lt;/code&gt;, absence of a file falls back to&#xA;the applied spec when a deployment exists. &lt;code&gt;validate&lt;/code&gt; has no fallback. A&#xA;configuration must be a regular non-symlink file no larger than 4 MiB.&lt;/p&gt;</description>
      </item>
    <item>
        <title>CLI</title>
        <link>https://farrow.pgsty.com/docs/reference/cli/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://farrow.pgsty.com/docs/reference/cli/</guid>
        <description>&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9455d335-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-9455d335-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;farrow [--json|--yaml] [--verbose] &amp;lt;command&amp;gt; [flags] [node...]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The installed binary is the authoritative reference for its own version. Every&#xA;visible command includes its operational boundary and copyable examples:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9455d335-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;3&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-9455d335-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;farrow --help&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;farrow setup --help&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;farrow image pull --help&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;In text mode, bare &lt;code&gt;farrow&lt;/code&gt; and namespaces such as &lt;code&gt;farrow image&lt;/code&gt; display&#xA;contextual help and exit successfully. In JSON/YAML mode a bare namespace is a&#xA;structured usage error; explicit &lt;code&gt;--help&lt;/code&gt; always renders human help.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Images</title>
        <link>https://farrow.pgsty.com/docs/reference/images/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://farrow.pgsty.com/docs/reference/images/</guid>
        <description>&lt;p&gt;Farrow uses a signed static-file Catalog plus immutable qcow2 artifacts. A&#xA;Catalog update does not require a new Farrow binary, but the binary decides&#xA;which signing keys and image safety rules are trusted.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--warning&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-triangle-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Warning&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;EL7 is &lt;code&gt;deprecated&lt;/code&gt;; every other built-in image is currently &lt;code&gt;testing&lt;/code&gt;, not&#xA;&lt;code&gt;supported&lt;/code&gt;. The warning printed by &lt;code&gt;up&lt;/code&gt; is intentional: a successful pull&#xA;is an integrity result, not a production-support promise.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;aliases-and-pull-order&#34;&gt;Aliases and pull order&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The embedded Catalog contains 9 families and 17 artifacts: &lt;code&gt;el7&lt;/code&gt; is&#xA;amd64-only; &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, and &lt;code&gt;u26&lt;/code&gt;&#xA;have amd64 and arm64 artifacts. &lt;code&gt;u24&lt;/code&gt; is the VM default.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Image Pipeline</title>
        <link>https://farrow.pgsty.com/docs/reference/image-pipeline/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://farrow.pgsty.com/docs/reference/image-pipeline/</guid>
        <description>&lt;p&gt;&lt;code&gt;packaging/image-pipeline/&lt;/code&gt; accepts one already-downloaded immutable qcow2 and&#xA;an independently obtained SHA-256. It never downloads, uploads, touches Farrow&#xA;runtime/network state, reads signing keys, or marks an image &lt;code&gt;supported&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;modes&#34;&gt;Modes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validate&lt;/code&gt;: copy/re-hash, force qcow2 inspection, validate the single backing&#xA;chain, run &lt;code&gt;qemu-img check&lt;/code&gt;, and emit an explicitly unpublishable evidence&#xA;bundle. Guest credentials are not changed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;offline&lt;/code&gt;: additionally use libguestfs &lt;code&gt;virt-customize --no-network&lt;/code&gt; and&#xA;&lt;code&gt;virt-cat&lt;/code&gt; on the staged copy. It rejects unrelated UID/GID 88 occupants,&#xA;normalizes the locked &lt;code&gt;dba&lt;/code&gt;/&lt;code&gt;admin&lt;/code&gt; identity, disables password/root SSH,&#xA;removes keys/history/host identity/cloud-init cache, restores targeted SELinux&#xA;labels, and reads back a deterministic marker.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-01b05ff9-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;14&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-01b05ff9-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SOURCE_DATE_EPOCH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1787486400&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./packaging/image-pipeline/build.sh &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --mode validate &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --source /absolute/source.qcow2 &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --expected-sha256 &amp;lt;digest&amp;gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output /absolute/new/evidence-directory &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name u24 --release 20260801.0.0 --arch amd64 &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --source-user ubuntu --boot uefi &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --source-uri https://immutable.example/source.qcow2 &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --artifact-url &lt;span class=&#34;s1&#34;&gt;&amp;#39;https://images.example/u24/{sha256}.qcow2&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --license NOASSERTION &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --source-date-epoch &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SOURCE_DATE_EPOCH&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --manifest-version &lt;span class=&#34;m&#34;&gt;2026082801&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Source/output paths must be absolute; source is canonical, regular,&#xA;non-symlinked, stable while copied, and at most 16 GiB. Output must not exist.&#xA;The builder uses an exclusive adjacent lock, mode-0700 staging, and one final&#xA;rename. Failure removes only its guarded staging directory.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
