<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>agent-forge-operator on contineroo.ch</title>
    <link>/docs/agent-forge-operator/</link>
    <description>Recent content in agent-forge-operator on contineroo.ch</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <atom:link href="/docs/agent-forge-operator/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Core Concepts</title>
      <link>/docs/agent-forge-operator/core_concepts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/core_concepts/</guid>
      <description>&lt;h2 id=&#34;architecture&#34;&gt;Architecture&lt;/h2&gt;&#xA;&lt;p&gt;agent-forge-operator is a demand-driven bridge between HyperShift Agent&#xA;NodePools and vSphere inventory. It does not scale NodePools directly and it&#xA;does not replace the hosted cluster autoscaler. It reacts to demand that&#xA;HyperShift and CAPI already expressed through &lt;code&gt;AgentMachine&lt;/code&gt; resources.&lt;/p&gt;&#xA;&lt;p&gt;The reconciliation flow is:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The hosted cluster autoscaler changes HyperShift &lt;code&gt;NodePool&lt;/code&gt; demand.&lt;/li&gt;&#xA;&lt;li&gt;HyperShift and CAPI render &lt;code&gt;AgentMachine&lt;/code&gt; and &lt;code&gt;Machine&lt;/code&gt; resources.&lt;/li&gt;&#xA;&lt;li&gt;Waiting &lt;code&gt;AgentMachine&lt;/code&gt; resources report &lt;code&gt;Ready=False&lt;/code&gt; with &lt;code&gt;Reason=NoSuitableAgents&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;VsphereAgentPool&lt;/code&gt; reconciliation plans required capacity from AgentMachine demand, existing Agents, owned VMs, and InfraEnv state.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;VsphereAgent&lt;/code&gt; request creates one vSphere VM.&lt;/li&gt;&#xA;&lt;li&gt;The VM boots the InfraEnv discovery ISO and appears as an Assisted Installer &lt;code&gt;Agent&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The operator prepares the Agent so the Agent CAPI provider can bind it to a Machine.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;demand&#34;&gt;Demand&lt;/h2&gt;&#xA;&lt;p&gt;The operator watches CAPI &lt;code&gt;AgentMachine&lt;/code&gt; objects for one HyperShift&#xA;&lt;code&gt;NodePool&lt;/code&gt;. It creates capacity only when an &lt;code&gt;AgentMachine&lt;/code&gt; reports&#xA;&lt;code&gt;Ready=False&lt;/code&gt; with &lt;code&gt;Reason=NoSuitableAgents&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Get Started</title>
      <link>/docs/agent-forge-operator/get_started/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/get_started/</guid>
      <description>&lt;p&gt;This tutorial walks through a first &lt;code&gt;VsphereAgentPool&lt;/code&gt; and active VM&#xA;reconciliation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;&#xA;&lt;p&gt;The following prerequisites are required:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A Kubernetes or OpenShift management cluster with agent-forge-operator installed.&lt;/li&gt;&#xA;&lt;li&gt;HyperShift and Assisted Installer resources.&lt;/li&gt;&#xA;&lt;li&gt;A hosted cluster that uses the Agent platform.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;code&gt;NodePool&lt;/code&gt; for the hosted cluster.&lt;/li&gt;&#xA;&lt;li&gt;CAPI &lt;code&gt;AgentMachine&lt;/code&gt; and &lt;code&gt;Machine&lt;/code&gt; objects rendered for that NodePool in the hosted control plane namespace.&lt;/li&gt;&#xA;&lt;li&gt;An &lt;code&gt;InfraEnv&lt;/code&gt; in the hosted cluster namespace with &lt;code&gt;status.isoDownloadURL&lt;/code&gt; populated.&lt;/li&gt;&#xA;&lt;li&gt;vSphere credentials that can upload the discovery ISO, create VMs, power on VMs, and destroy operator-owned VMs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The examples use these names:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installation</title>
      <link>/docs/agent-forge-operator/installation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/installation/</guid>
      <description>&lt;p&gt;This guide walks you through installing agent-forge-operator.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Install Helm 3.&lt;/li&gt;&#xA;&lt;li&gt;Kubernetes or OpenShift cluster.&lt;/li&gt;&#xA;&lt;li&gt;HyperShift and Assisted Installer resources for Agent platform clusters.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;install-agent-forge-operator&#34;&gt;Install agent-forge-operator&lt;/h2&gt;&#xA;&lt;h3 id=&#34;helm-repository&#34;&gt;Helm repository&lt;/h3&gt;&#xA;&lt;p&gt;Add the containeroo Helm chart repository:&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;helm repo add containeroo https://charts.containeroo.ch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Update the Helm chart repository:&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;helm repo update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;custom-resource-definitions&#34;&gt;Custom Resource Definitions&lt;/h3&gt;&#xA;&lt;p&gt;The Helm chart includes the &lt;code&gt;VsphereAgent&lt;/code&gt; and &lt;code&gt;VsphereAgentPool&lt;/code&gt; CRDs in the&#xA;chart &lt;code&gt;crds/&lt;/code&gt; directory. Helm installs CRDs on first install, but does not&#xA;upgrade or delete CRDs during normal chart upgrades.&lt;/p&gt;</description>
    </item>
    <item>
      <title>API Reference</title>
      <link>/docs/agent-forge-operator/api_reference/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/agent-forge-operator/api_reference/</guid>
      <description>&lt;p&gt;Packages:&lt;/p&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;a href=&#34;#agent-forge.containeroo.ch%2fv1alpha1&#34;&gt;agent-forge.containeroo.ch/v1alpha1&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;agent-forge.containeroo.ch/v1alpha1&#34;&gt;agent-forge.containeroo.ch/v1alpha1&lt;/h2&gt;&#xA;&lt;p&gt;Package v1alpha1 contains API Schema definitions for the agent-forge.containeroo.ch v1alpha1 API group.&lt;/p&gt;&#xA;Resource Types:&#xA;&lt;ul class=&#34;simple&#34;&gt;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;agent-forge.containeroo.ch/v1alpha1.AgentBindingSpec&#34;&gt;AgentBindingSpec&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&#xA;(&lt;em&gt;Appears on:&lt;/em&gt;&#xA;&lt;a href=&#34;#agent-forge.containeroo.ch/v1alpha1.VsphereAgentPoolSpec&#34;&gt;VsphereAgentPoolSpec&lt;/a&gt;)&#xA;&lt;/p&gt;&#xA;&lt;p&gt;AgentBindingSpec describes how a discovered Assisted Installer Agent should&#xA;be made consumable by the Hypershift Agent NodePool.&lt;/p&gt;&#xA;&lt;div class=&#34;md-typeset__scrollwrap&#34;&gt;&#xA;&lt;div class=&#34;md-typeset__table&#34;&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;&#xA;&lt;code&gt;role&lt;/code&gt;&lt;br&gt;&#xA;&lt;em&gt;&#xA;string&#xA;&lt;/em&gt;&#xA;&lt;/td&gt;&#xA;&lt;td&gt;&#xA;&lt;p&gt;Role is the Hypershift NodePool role label value to apply to discovered&#xA;Agents. For worker pools this is normally &amp;ldquo;worker&amp;rdquo;.&lt;/p&gt;&#xA;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&#xA;&lt;code&gt;labels&lt;/code&gt;&lt;br&gt;&#xA;&lt;em&gt;&#xA;map[string]string&#xA;&lt;/em&gt;&#xA;&lt;/td&gt;&#xA;&lt;td&gt;&#xA;&lt;p&gt;Labels are required on a discovered Agent before the Agent CAPI provider&#xA;can bind it to an AgentMachine. These should match the NodePool&#xA;spec.platform.agent.agentLabelSelector labels.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
