<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Guides on contineroo.ch</title>
    <link>/docs/agent-forge-operator/guides/</link>
    <description>Recent content in Guides on contineroo.ch</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <atom:link href="/docs/agent-forge-operator/guides/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Monitoring with Prometheus</title>
      <link>/docs/agent-forge-operator/guides/monitoring/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/guides/monitoring/</guid>
      <description>&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Prometheus Operator or kube-prometheus-stack.&lt;/li&gt;&#xA;&lt;li&gt;agent-forge-operator installed through the Helm chart.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;enable-metrics-resources&#34;&gt;Enable metrics resources&lt;/h2&gt;&#xA;&lt;p&gt;Create a &lt;code&gt;values.yaml&lt;/code&gt; file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;metrics&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;serviceMonitor&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;enabled&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;prometheusRule&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;enabled&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Install or upgrade the Helm chart by following &lt;a href=&#34;/docs/agent-forge-operator/installation/#customized-installation&#34;&gt;the installation guide&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;available-metrics&#34;&gt;Available metrics&lt;/h2&gt;&#xA;&lt;p&gt;The controller exposes these application metrics:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Metric&lt;/th&gt;&#xA;          &lt;th&gt;Meaning&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;agent_forge_vsphere_vm_operations_total&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM create/delete attempts by operation and result.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;agent_forge_iso_operations_total&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;ISO cache ensure/delete attempts by operation and result.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;agent_forge_pool_capacity&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Per-pool capacity gauges for desired, waiting, available, pending, and planned-create counts.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;You can also use kube-state-metrics to alert on &lt;code&gt;VsphereAgentPool&lt;/code&gt; and&#xA;&lt;code&gt;VsphereAgent&lt;/code&gt; conditions once those custom resources are configured for state&#xA;metrics collection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting</title>
      <link>/docs/agent-forge-operator/guides/troubleshooting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/guides/troubleshooting/</guid>
      <description>&lt;h2 id=&#34;agentmachine-demand-is-not-observed&#34;&gt;AgentMachine demand is not observed&lt;/h2&gt;&#xA;&lt;p&gt;Check AgentMachines in the hosted control plane namespace:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl -n demo-demo get agentmachines.capi-provider.agent-install.openshift.io -o yaml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl -n demo get vsphereagentpool demo-worker &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -o jsonpath&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{.status.conditions[?(@.type==&amp;#34;AgentMachineDemandFound&amp;#34;)]}{&amp;#34;\n&amp;#34;}&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Confirm that the AgentMachine has the expected&#xA;&lt;code&gt;hypershift.openshift.io/nodePool&lt;/code&gt; annotation and reports &lt;code&gt;Ready=False&lt;/code&gt; with&#xA;&lt;code&gt;Reason=NoSuitableAgents&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;infraenv-iso-is-unavailable&#34;&gt;InfraEnv ISO is unavailable&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl -n demo get infraenv demo -o yaml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl -n demo get vsphereagentpool demo-worker &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -o jsonpath&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{.status.conditions[?(@.type==&amp;#34;InfraEnvAvailable&amp;#34;)]}{&amp;#34;\n&amp;#34;}&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The operator cannot create bootable discovery VMs until&#xA;&lt;code&gt;status.isoDownloadURL&lt;/code&gt; is populated on the InfraEnv.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cleanup Policy</title>
      <link>/docs/agent-forge-operator/guides/cleanup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/guides/cleanup/</guid>
      <description>&lt;p&gt;&lt;code&gt;spec.cleanupPolicy&lt;/code&gt; controls whether agent-forge-operator deletes external&#xA;inventory when demand disappears or when a pool is deleted.&lt;/p&gt;&#xA;&lt;h2 id=&#34;delete&#34;&gt;Delete&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;Delete&lt;/code&gt; is the default policy.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;spec&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;cleanupPolicy&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Delete&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With &lt;code&gt;Delete&lt;/code&gt;, the operator removes stale owned vSphere VMs and unbound Agents&#xA;when they are no longer needed. Scale-down is conservative: the controller&#xA;first observes a paired CAPI &lt;code&gt;Machine&lt;/code&gt; entering deletion, waits until that&#xA;Machine has disappeared, and only then deletes the paired &lt;code&gt;VsphereAgent&lt;/code&gt;, VM,&#xA;and stale Agent.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
