<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Resources on contineroo.ch</title>
    <link>/docs/agent-forge-operator/resources/</link>
    <description>Recent content in Resources on contineroo.ch</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <atom:link href="/docs/agent-forge-operator/resources/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>VsphereAgentPool</title>
      <link>/docs/agent-forge-operator/resources/vsphereagentpool/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/resources/vsphereagentpool/</guid>
      <description>&lt;p&gt;The API specification can be viewed &lt;a href=&#34;/docs/agent-forge-operator/api_reference/#agent-forge.containeroo.ch/v1alpha1.VsphereAgentPool&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;VsphereAgentPool&lt;/code&gt; is a namespace-scoped bridge between one HyperShift Agent&#xA;&lt;code&gt;NodePool&lt;/code&gt; and vSphere VM inventory.&lt;/p&gt;&#xA;&lt;p&gt;HyperShift and CAPI remain authoritative. The operator reacts to&#xA;&lt;code&gt;AgentMachine&lt;/code&gt; objects that report &lt;code&gt;Ready=False&lt;/code&gt; with &lt;code&gt;Reason=NoSuitableAgents&lt;/code&gt;&#xA;by ensuring enough matching Assisted Installer &lt;code&gt;Agent&lt;/code&gt; objects can exist.&lt;/p&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;Example&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-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;apiVersion&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;agent-forge.containeroo.ch/v1alpha1&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;kind&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;VsphereAgentPool&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;metadata&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo-worker&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;namespace&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo&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;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;hostedClusterRef&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo&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;nodePoolRef&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo-worker&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;infraEnvRef&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo&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;controlPlaneNamespace&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo-demo&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;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;vsphere&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;credentialsSecretRef&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;vsphere-credentials&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;datacenter&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;dc1&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;datastoreCluster&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;workload-datastore-cluster&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;isoDatastore&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;iso-datastore&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;resourcePool&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;cluster/Resources&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;folder&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo&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;network&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;VM Network&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;template&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;namePrefix&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo-worker&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;numCPUs&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;4&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;memoryMiB&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;16384&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;diskGiB&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;100&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;agent&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;role&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;worker&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;approve&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;labels&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;hypershift.openshift.io/nodepool-role&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;worker&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;customer&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;example&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;iso&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;checkInterval&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;10m&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;retainVersions&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&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;pathPrefix&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;agent-forge/demo/demo-worker&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;required-spec-fields&#34;&gt;Required spec fields&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Field&lt;/th&gt;&#xA;          &lt;th&gt;Description&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;spec.hostedClusterRef.name&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;HostedCluster name in the same namespace as this resource.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.nodePoolRef.name&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;HyperShift NodePool name in the same namespace as this resource.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.infraEnvRef.name&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Assisted Installer InfraEnv name in the same namespace.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.controlPlaneNamespace&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Hosted control plane namespace containing CAPI &lt;code&gt;AgentMachine&lt;/code&gt; and &lt;code&gt;Machine&lt;/code&gt; objects.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.credentialsSecretRef.name&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Secret containing vSphere &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, and &lt;code&gt;password&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.datastoreCluster&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Datastore cluster for VM disks.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.isoDatastore&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Datastore for cached discovery ISOs.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.resourcePool&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Resource pool path, for example &lt;code&gt;cluster/Resources&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.network&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;vSphere network attached to the VM NIC.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.agent.labels&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Labels required on discovered Agents. These should match the NodePool Agent selector.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;important-optional-spec-fields&#34;&gt;Important optional spec fields&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Field&lt;/th&gt;&#xA;          &lt;th&gt;Description&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;spec.vsphere.credentialsSecretRef.namespace&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Secret namespace. Defaults to the resource namespace.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.datacenter&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;vSphere datacenter name. Defaults to &lt;code&gt;dc1&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.folder&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM folder path. Defaults logically to the hosted cluster name when empty.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.vmTags&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Optional vSphere tag IDs to attach to created VMs.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.guestID&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Guest OS identifier. Defaults to &lt;code&gt;rhel9_64Guest&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.scsiType&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;SCSI controller type. Defaults to &lt;code&gt;pvscsi&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.firmware&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM firmware, &lt;code&gt;efi&lt;/code&gt; or &lt;code&gt;bios&lt;/code&gt;. Defaults to &lt;code&gt;efi&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.vsphere.networkAdapterType&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;NIC adapter type. Defaults to &lt;code&gt;vmxnet3&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.template.namePrefix&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Prefix for operator-created VM names.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.template.numCPUs&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM vCPU count. Defaults to &lt;code&gt;4&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.template.memoryMiB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM memory in MiB. Defaults to &lt;code&gt;16384&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.template.diskGiB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Primary disk size in GiB. Defaults to &lt;code&gt;100&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.agent.role&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Value for &lt;code&gt;hypershift.openshift.io/nodepool-role&lt;/code&gt;. Defaults to &lt;code&gt;worker&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.agent.approve&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;When true, patch matching Agents with &lt;code&gt;spec.approved=true&lt;/code&gt;. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.iso.checkInterval&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;How often to download and hash the InfraEnv ISO. Defaults to &lt;code&gt;10m&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.iso.retainVersions&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Number of content-addressed ISO objects to keep. Defaults to &lt;code&gt;2&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.iso.pathPrefix&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Datastore directory for cached ISO objects.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;spec.cleanupPolicy&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;Delete&lt;/code&gt; removes stale owned VMs and unbound Agents. &lt;code&gt;Retain&lt;/code&gt; leaves them in place. Defaults to &lt;code&gt;Delete&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;VsphereAgentPool.status&lt;/code&gt; reports observed AgentMachine demand, matching Agent&#xA;capacity, owned VM identities, active ISO cache state, planned actions, and&#xA;conditions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VsphereAgent</title>
      <link>/docs/agent-forge-operator/resources/vsphereagent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/resources/vsphereagent/</guid>
      <description>&lt;p&gt;The API specification can be viewed &lt;a href=&#34;/docs/agent-forge-operator/api_reference/#agent-forge.containeroo.ch/v1alpha1.VsphereAgent&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;VsphereAgent&lt;/code&gt; represents one vSphere VM requested to satisfy AgentMachine&#xA;demand.&lt;/p&gt;&#xA;&lt;p&gt;Most users do not create &lt;code&gt;VsphereAgent&lt;/code&gt; resources manually. The&#xA;&lt;code&gt;AgentMachine&lt;/code&gt; controller creates one &lt;code&gt;VsphereAgent&lt;/code&gt; for each waiting&#xA;&lt;code&gt;AgentMachine&lt;/code&gt; when the selected &lt;code&gt;VsphereAgentPool&lt;/code&gt; needs additional capacity.&lt;/p&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;Example&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-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;apiVersion&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;agent-forge.containeroo.ch/v1alpha1&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;kind&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;VsphereAgent&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;metadata&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo-worker-abc12&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;namespace&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo&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;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;poolRef&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;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;demo-worker&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;spec&#34;&gt;Spec&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Field&lt;/th&gt;&#xA;          &lt;th&gt;Description&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;spec.poolRef.name&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Name of the &lt;code&gt;VsphereAgentPool&lt;/code&gt; whose configuration is used to create and manage the VM.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Field&lt;/th&gt;&#xA;          &lt;th&gt;Description&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;status.observedGeneration&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Latest resource generation reconciled by the controller.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.vm.name&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;vSphere VM name.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.vm.biosUUID&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM BIOS UUID when known.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.vm.macAddress&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Primary NIC MAC address when known.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.vm.agentRef&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Discovered Assisted Installer Agent matched to this VM.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.vm.machineRef&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;CAPI Machine paired with this VM when bound.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.vm.phase&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;VM lifecycle phase such as &lt;code&gt;Provisioning&lt;/code&gt;, &lt;code&gt;Available&lt;/code&gt;, &lt;code&gt;Bound&lt;/code&gt;, &lt;code&gt;Released&lt;/code&gt;, or &lt;code&gt;Orphaned&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;status.conditions&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Readiness and provider errors.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;When a &lt;code&gt;VsphereAgent&lt;/code&gt; is deleted, its finalizer deletes the paired vSphere VM&#xA;unless the owning &lt;code&gt;VsphereAgentPool&lt;/code&gt; uses &lt;code&gt;spec.cleanupPolicy: Retain&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
