<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Cara_install_OKD</id>
	<title>Cara install OKD - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Cara_install_OKD"/>
	<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Cara_install_OKD&amp;action=history"/>
	<updated>2026-11-01T19:05:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=Cara_install_OKD&amp;diff=888&amp;oldid=prev</id>
		<title>SanzSkuy: Created page with &quot;&#039;&#039;&#039;OKD&#039;&#039;&#039; adalah distribusi Kubernetes komunitas (upstream dari Red Hat OpenShift). Halaman ini mencatat langkah lengkap memasang &#039;&#039;&#039;OKD Single Node (SNO)&#039;&#039;&#039; sebagai satu VM di Proxmox VE, memakai &#039;&#039;&#039;Agent-based Installer&#039;&#039;&#039;, untuk keperluan cluster dev.   == Ringkasan == {| class=&quot;wikitable&quot; ! Item !! Nilai |- | Versi OKD || &lt;code&gt;5.0.0-okd-scos.3&lt;/code&gt; (stable) |- | OS node || CentOS Stream CoreOS (SCOS), ter-bake di ISO |- | Metode install || Agent-based Installer, t...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Cara_install_OKD&amp;diff=888&amp;oldid=prev"/>
		<updated>2026-10-28T04:17:44Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;OKD&amp;#039;&amp;#039;&amp;#039; adalah distribusi Kubernetes komunitas (upstream dari Red Hat OpenShift). Halaman ini mencatat langkah lengkap memasang &amp;#039;&amp;#039;&amp;#039;OKD Single Node (SNO)&amp;#039;&amp;#039;&amp;#039; sebagai satu VM di Proxmox VE, memakai &amp;#039;&amp;#039;&amp;#039;Agent-based Installer&amp;#039;&amp;#039;&amp;#039;, untuk keperluan cluster dev.   == Ringkasan == {| class=&amp;quot;wikitable&amp;quot; ! Item !! Nilai |- | Versi OKD || &amp;lt;code&amp;gt;5.0.0-okd-scos.3&amp;lt;/code&amp;gt; (stable) |- | OS node || CentOS Stream CoreOS (SCOS), ter-bake di ISO |- | Metode install || Agent-based Installer, t...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;OKD&amp;#039;&amp;#039;&amp;#039; adalah distribusi Kubernetes komunitas (upstream dari Red Hat OpenShift). Halaman ini mencatat langkah lengkap memasang &amp;#039;&amp;#039;&amp;#039;OKD Single Node (SNO)&amp;#039;&amp;#039;&amp;#039; sebagai satu VM di Proxmox VE, memakai &amp;#039;&amp;#039;&amp;#039;Agent-based Installer&amp;#039;&amp;#039;&amp;#039;, untuk keperluan cluster dev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ringkasan ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Item !! Nilai&lt;br /&gt;
|-&lt;br /&gt;
| Versi OKD || &amp;lt;code&amp;gt;5.0.0-okd-scos.3&amp;lt;/code&amp;gt; (stable)&lt;br /&gt;
|-&lt;br /&gt;
| OS node || CentOS Stream CoreOS (SCOS), ter-bake di ISO&lt;br /&gt;
|-&lt;br /&gt;
| Metode install || Agent-based Installer, topologi SNO&lt;br /&gt;
|-&lt;br /&gt;
| Hypervisor || Proxmox VE, standalone node &amp;lt;code&amp;gt;node-3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Bridge jaringan || &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt; (LAB) → subnet &amp;lt;code&amp;gt;192.168.90.0/24&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gateway || &amp;lt;code&amp;gt;192.168.90.1&amp;lt;/code&amp;gt; (MikroTik)&lt;br /&gt;
|-&lt;br /&gt;
| VM bastion (DNS) || &amp;lt;code&amp;gt;192.168.90.29&amp;lt;/code&amp;gt;, AlmaLinux, dnsmasq&lt;br /&gt;
|-&lt;br /&gt;
| VM OKD (node) || &amp;lt;code&amp;gt;192.168.90.30&amp;lt;/code&amp;gt;, hostname &amp;lt;code&amp;gt;okd-sno&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cluster / base domain || &amp;lt;code&amp;gt;okd&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;lab.local&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mesin kerja || Arch Linux (edit config + generate ISO)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Memilih topologi ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNO (1 node)&amp;#039;&amp;#039;&amp;#039;: paling hemat resource, cocok untuk dev. Tidak ada HA, dan &amp;#039;&amp;#039;&amp;#039;tidak bisa&amp;#039;&amp;#039;&amp;#039; dikonversi ke cluster HA setelah terpasang.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Compact cluster (3 node)&amp;#039;&amp;#039;&amp;#039;: ketiga node jadi master sekaligus worker. Lebih mirip production, tetap punya quorum etcd.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;2 node&amp;#039;&amp;#039;&amp;#039;: OKD punya topologi &amp;#039;&amp;#039;two-node with fencing&amp;#039;&amp;#039; (butuh BMC, tidak cocok untuk VM Proxmox) dan &amp;#039;&amp;#039;two control plane + arbiter&amp;#039;&amp;#039; (tetap 3 mesin, salah satunya arbiter kecil). Untuk lab, praktis pilih SNO atau 3 node.&lt;br /&gt;
&lt;br /&gt;
Dipilih &amp;#039;&amp;#039;&amp;#039;SNO&amp;#039;&amp;#039;&amp;#039; supaya resource host tetap lega untuk VM lain.&lt;br /&gt;
&lt;br /&gt;
== Arsitektur ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Arch Linux (laptop) ──WireGuard──► Proxmox (vmbr0, 192.168.11.x)&lt;br /&gt;
   │  generate ISO&lt;br /&gt;
   ▼&lt;br /&gt;
Proxmox vmbr3 (LAB, 192.168.90.0/24)&lt;br /&gt;
   ├── VM bastion  192.168.90.29  → dnsmasq (DNS cluster)&lt;br /&gt;
   └── VM OKD SNO  192.168.90.30  → seluruh cluster OKD&lt;br /&gt;
          ▲&lt;br /&gt;
   gateway MikroTik 192.168.90.1 → internet (quay.io)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa butuh bastion di dalam vmbr3?&amp;#039;&amp;#039;&amp;#039; Host Proxmox tidak punya IP di &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;, dan laptop berada di jaringan lain (lewat WireGuard). Node OKD harus bisa menjangkau DNS-nya, jadi DNS diletakkan di VM yang satu subnet dengan node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bastion&amp;#039;&amp;#039;&amp;#039; hanyalah istilah untuk mesin pembantu yang mengurus cluster (tempat &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt;, DNS, dsb.). DNS ini harus &amp;#039;&amp;#039;&amp;#039;tetap hidup selama cluster hidup&amp;#039;&amp;#039;&amp;#039;, bukan hanya saat install, karena node memakai nama &amp;lt;code&amp;gt;api-int&amp;lt;/code&amp;gt; untuk komunikasi internal.&lt;br /&gt;
&lt;br /&gt;
== Kebutuhan resource ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! VM !! vCPU !! RAM !! Disk&lt;br /&gt;
|-&lt;br /&gt;
| OKD SNO || 16 || 32 GB || 150 GB&lt;br /&gt;
|-&lt;br /&gt;
| Bastion (AlmaLinux minimal) || 1–2 || 1–2 GB || 10–20 GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Catatan:&lt;br /&gt;
* Spesifikasi minimal SNO di dokumentasi sekitar 8 vCPU / 16 GB, tapi 32 GB lebih nyaman.&lt;br /&gt;
* Di Proxmox, pemakaian RAM VM OKD terlihat sekitar 27 GiB saat install. Angka itu termasuk page cache dan tanpa guest agent, jadi lebih besar dari pemakaian riil. Cek angka asli dengan &amp;lt;code&amp;gt;oc adm top node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Langkah 1: Siapkan binary di mesin kerja ==&lt;br /&gt;
Binary diambil dari GitHub Releases proyek OKD: &amp;lt;code&amp;gt;https://github.com/okd-project/okd/releases&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pilih rilis &amp;#039;&amp;#039;&amp;#039;stable&amp;#039;&amp;#039;&amp;#039; (tanpa label &amp;#039;&amp;#039;Pre-release&amp;#039;&amp;#039; dan tanpa &amp;lt;code&amp;gt;ec&amp;lt;/code&amp;gt; di namanya).&lt;br /&gt;
* Download &amp;lt;code&amp;gt;openshift-install-linux-&amp;amp;lt;tag&amp;amp;gt;.tar.gz&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;openshift-client-linux-&amp;amp;lt;tag&amp;amp;gt;.tar.gz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
TAG=&amp;lt;tag-stable&amp;gt;&lt;br /&gt;
BASE=https://github.com/okd-project/okd/releases/download/$TAG&lt;br /&gt;
curl -LO $BASE/openshift-install-linux-$TAG.tar.gz&lt;br /&gt;
curl -LO $BASE/openshift-client-linux-$TAG.tar.gz&lt;br /&gt;
&lt;br /&gt;
tar xzf openshift-install-linux-$TAG.tar.gz openshift-install&lt;br /&gt;
tar xzf openshift-client-linux-$TAG.tar.gz oc kubectl&lt;br /&gt;
sudo mv openshift-install oc kubectl /usr/local/bin/&lt;br /&gt;
&lt;br /&gt;
openshift-install version&lt;br /&gt;
oc version --client&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Penting:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;&amp;#039;wajib&amp;#039;&amp;#039;&amp;#039; ada di &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt;, karena &amp;lt;code&amp;gt;openshift-install&amp;lt;/code&amp;gt; memanggilnya saat membuat ISO.&lt;br /&gt;
&lt;br /&gt;
Binary &amp;lt;code&amp;gt;openshift-install&amp;lt;/code&amp;gt; terkunci ke satu rilis, jadi versi OKD yang terpasang sama dengan versi binary.&lt;br /&gt;
&lt;br /&gt;
Install juga &amp;lt;code&amp;gt;nmstate&amp;lt;/code&amp;gt; (menyediakan &amp;lt;code&amp;gt;nmstatectl&amp;lt;/code&amp;gt;, dipakai untuk validasi IP statis):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yay -S nmstate      # Arch (AUR)&lt;br /&gt;
nmstatectl --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Buat SSH key kalau belum ada:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519 -N &amp;quot;&amp;quot;&lt;br /&gt;
cat ~/.ssh/id_ed25519.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 2: Buat VM bastion (AlmaLinux) ==&lt;br /&gt;
AlmaLinux dipilih karena stabil dan support-nya panjang. Fedora kurang cocok untuk server yang hidup lama (siklus rilis cepat); CentOS Stream lebih sering berubah.&lt;br /&gt;
&lt;br /&gt;
Setelan VM di Proxmox:&lt;br /&gt;
* Bridge &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;, NIC VirtIO.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CPU type &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (lihat bagian Troubleshooting: kernel panic).&lt;br /&gt;
* RAM minimal 2 GB saat instalasi.&lt;br /&gt;
* Options → &amp;#039;&amp;#039;&amp;#039;Start at boot&amp;#039;&amp;#039;&amp;#039; aktif.&lt;br /&gt;
&lt;br /&gt;
=== Kunci IP statis ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nmcli -t -f NAME,DEVICE con show&lt;br /&gt;
sudo nmcli con mod ens18 ipv4.method manual \&lt;br /&gt;
  ipv4.addresses 192.168.90.29/24 ipv4.gateway 192.168.90.1 \&lt;br /&gt;
  ipv4.dns &amp;quot;192.168.90.29&amp;quot;&lt;br /&gt;
sudo nmcli con up ens18&lt;br /&gt;
sudo hostnamectl set-hostname marshall-okd-bastion&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DNS bastion diarahkan ke &amp;#039;&amp;#039;&amp;#039;dnsmasq miliknya sendiri&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;192.168.90.29&amp;lt;/code&amp;gt;), bukan ke DNS publik. Kalau tidak, bastion tidak bisa resolve &amp;lt;code&amp;gt;api.okd.lab.local&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; tidak bisa memantau install.&lt;br /&gt;
&lt;br /&gt;
Pastikan IP bastion dan IP node berada &amp;#039;&amp;#039;&amp;#039;di luar pool DHCP&amp;#039;&amp;#039;&amp;#039; MikroTik. Cek tanpa mengubah apa pun:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/ip pool print&lt;br /&gt;
/ip dhcp-server lease print&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cek IP node masih kosong:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping -c2 192.168.90.30          # harus gagal&lt;br /&gt;
ip neigh | grep 192.168.90.30   # kosong atau FAILED&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 3: DNS dengan dnsmasq ==&lt;br /&gt;
OKD membutuhkan tiga record:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Record !! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api.okd.lab.local&amp;lt;/code&amp;gt; || API cluster (port 6443), dipakai &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; dan installer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api-int.okd.lab.local&amp;lt;/code&amp;gt; || API internal, dipakai node dan komponen cluster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;*.apps.okd.lab.local&amp;lt;/code&amp;gt; || Ingress: web console, OAuth, dan semua aplikasi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Di SNO, ketiganya mengarah ke IP node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dnf install -y dnsmasq bind-utils&lt;br /&gt;
sudo tee /etc/dnsmasq.d/okd.conf &amp;lt;&amp;lt;&amp;#039;EOF&amp;#039;&lt;br /&gt;
listen-address=192.168.90.29&lt;br /&gt;
bind-interfaces&lt;br /&gt;
server=1.1.1.1&lt;br /&gt;
server=8.8.8.8&lt;br /&gt;
address=/api.okd.lab.local/192.168.90.30&lt;br /&gt;
address=/api-int.okd.lab.local/192.168.90.30&lt;br /&gt;
address=/apps.okd.lab.local/192.168.90.30&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Penjelasan:&lt;br /&gt;
* &amp;lt;code&amp;gt;server=&amp;lt;/code&amp;gt; adalah DNS upstream untuk nama di luar cluster (quay.io, dll.). dnsmasq hanya menjadi klien ke server itu, tidak mengubah konfigurasi router.&lt;br /&gt;
* &amp;lt;code&amp;gt;address=/apps.okd.lab.local/...&amp;lt;/code&amp;gt; otomatis mencakup semua subdomain (wildcard).&lt;br /&gt;
* &amp;lt;code&amp;gt;listen-address&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;bind-interfaces&amp;lt;/code&amp;gt; membuat dnsmasq hanya mendengarkan di IP tersebut, sehingga tidak bentrok dengan resolver lain.&lt;br /&gt;
&lt;br /&gt;
Pastikan folder &amp;lt;code&amp;gt;.d&amp;lt;/code&amp;gt; terbaca:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
grep -n conf-dir /etc/dnsmasq.conf&lt;br /&gt;
# kalau tidak ada / masih dikomentari:&lt;br /&gt;
echo &amp;#039;conf-dir=/etc/dnsmasq.d/,*.conf&amp;#039; | sudo tee -a /etc/dnsmasq.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jalankan dan uji:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dnsmasq --test&lt;br /&gt;
sudo systemctl enable --now dnsmasq&lt;br /&gt;
sudo firewall-cmd --add-service=dns --permanent &amp;amp;&amp;amp; sudo firewall-cmd --reload&lt;br /&gt;
sudo ss -lntup | grep &amp;#039;:53&amp;#039;&lt;br /&gt;
dig +short api.okd.lab.local @192.168.90.29    # → 192.168.90.30&lt;br /&gt;
dig +short quay.io @192.168.90.29              # harus ada jawaban&lt;br /&gt;
getent hosts api.okd.lab.local                 # dari bastion sendiri&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 4: install-config.yaml ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
baseDomain: lab.local&lt;br /&gt;
metadata:&lt;br /&gt;
  name: okd&lt;br /&gt;
compute:&lt;br /&gt;
- name: worker&lt;br /&gt;
  replicas: 0&lt;br /&gt;
controlPlane:&lt;br /&gt;
  name: master&lt;br /&gt;
  replicas: 1&lt;br /&gt;
networking:&lt;br /&gt;
  networkType: OVNKubernetes&lt;br /&gt;
  machineNetwork:&lt;br /&gt;
  - cidr: 192.168.90.0/24&lt;br /&gt;
  clusterNetwork:&lt;br /&gt;
  - cidr: 10.128.0.0/14&lt;br /&gt;
    hostPrefix: 23&lt;br /&gt;
  serviceNetwork:&lt;br /&gt;
  - 172.30.0.0/16&lt;br /&gt;
platform:&lt;br /&gt;
  none: {}&lt;br /&gt;
pullSecret: &amp;#039;{&amp;quot;auths&amp;quot;:{&amp;quot;fake&amp;quot;:{&amp;quot;auth&amp;quot;:&amp;quot;aWQ6cGFzcwo=&amp;quot;}}}&amp;#039;&lt;br /&gt;
sshKey: &amp;#039;ssh-ed25519 AAAA... (isi ~/.ssh/id_ed25519.pub)&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Catatan:&lt;br /&gt;
* &amp;lt;code&amp;gt;platform: none&amp;lt;/code&amp;gt; dipakai karena Proxmox tidak punya integrasi native.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Pull secret dummy&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;id:pass&amp;lt;/code&amp;gt; dalam base64) cukup untuk OKD, karena image diambil dari &amp;lt;code&amp;gt;quay.io/okd&amp;lt;/code&amp;gt; yang publik. Pull secret asli Red Hat hanya perlu untuk OpenShift atau image dari &amp;lt;code&amp;gt;registry.redhat.io&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Langkah 5: agent-config.yaml ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
apiVersion: v1alpha1&lt;br /&gt;
kind: AgentConfig&lt;br /&gt;
metadata:&lt;br /&gt;
  name: okd&lt;br /&gt;
rendezvousIP: 192.168.90.30&lt;br /&gt;
hosts:&lt;br /&gt;
- hostname: okd-sno&lt;br /&gt;
  role: master&lt;br /&gt;
  interfaces:&lt;br /&gt;
  - name: eth0&lt;br /&gt;
    macAddress: BC:24:11:00:00:30&lt;br /&gt;
  networkConfig:&lt;br /&gt;
    interfaces:&lt;br /&gt;
    - name: eth0&lt;br /&gt;
      type: ethernet&lt;br /&gt;
      state: up&lt;br /&gt;
      mac-address: BC:24:11:00:00:30&lt;br /&gt;
      ipv4:&lt;br /&gt;
        enabled: true&lt;br /&gt;
        dhcp: false&lt;br /&gt;
        address:&lt;br /&gt;
        - ip: 192.168.90.30&lt;br /&gt;
          prefix-length: 24&lt;br /&gt;
    dns-resolver:&lt;br /&gt;
      config:&lt;br /&gt;
        server:&lt;br /&gt;
        - 192.168.90.29&lt;br /&gt;
    routes:&lt;br /&gt;
      config:&lt;br /&gt;
      - destination: 0.0.0.0/0&lt;br /&gt;
        next-hop-address: 192.168.90.1&lt;br /&gt;
        next-hop-interface: eth0&lt;br /&gt;
        table-id: 254&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Catatan:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MAC address ditentukan sendiri&amp;#039;&amp;#039;&amp;#039;, lalu dipasang manual di NIC VM. Installer mencocokkan IP statis ke VM berdasarkan MAC.&lt;br /&gt;
* Aturan MAC: oktet pertama harus genap di digit keduanya (unicast). Prefix &amp;lt;code&amp;gt;BC:24:11&amp;lt;/code&amp;gt; adalah prefix Proxmox.&lt;br /&gt;
* Nama interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; hanya label; pencocokan dilakukan lewat MAC.&lt;br /&gt;
&lt;br /&gt;
== Langkah 6: Generate ISO ==&lt;br /&gt;
ISO &amp;#039;&amp;#039;&amp;#039;tidak didownload&amp;#039;&amp;#039;&amp;#039;, melainkan dibuat oleh &amp;lt;code&amp;gt;openshift-install&amp;lt;/code&amp;gt; dari dua YAML di atas. File YAML akan &amp;#039;&amp;#039;&amp;#039;dikonsumsi&amp;#039;&amp;#039;&amp;#039; (dihapus) saat generate, jadi simpan backup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/okd&lt;br /&gt;
mkdir -p ~/okd-backup &amp;amp;&amp;amp; cp install-config.yaml agent-config.yaml ~/okd-backup/&lt;br /&gt;
rm -rf cluster &amp;amp;&amp;amp; mkdir cluster&lt;br /&gt;
cp install-config.yaml agent-config.yaml cluster/&lt;br /&gt;
openshift-install agent create image --dir cluster --log-level=info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil: &amp;lt;code&amp;gt;cluster/agent.x86_64.iso&amp;lt;/code&amp;gt;, plus &amp;lt;code&amp;gt;cluster/auth/&amp;lt;/code&amp;gt; (kubeconfig dan password kubeadmin).&lt;br /&gt;
&lt;br /&gt;
* Tidak ada progress bar saat &amp;lt;code&amp;gt;Downloading base ISO&amp;lt;/code&amp;gt;; tunggu sampai prompt kembali.&lt;br /&gt;
* Warning &amp;lt;code&amp;gt;Failed to extract base ISO from release payload&amp;lt;/code&amp;gt; tidak fatal; installer jatuh ke jalur download.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Setiap perubahan IP/DNS/MAC wajib generate ulang ISO&amp;#039;&amp;#039;&amp;#039;, karena konfigurasi ter-bake di dalamnya.&lt;br /&gt;
&lt;br /&gt;
Salin folder &amp;lt;code&amp;gt;cluster/&amp;lt;/code&amp;gt; ke bastion supaya &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; bisa dijalankan dari sana.&lt;br /&gt;
&lt;br /&gt;
== Langkah 7: Buat VM OKD di Proxmox ==&lt;br /&gt;
Upload ISO lewat UI Proxmox (storage → ISO Images → Upload), lalu Create VM:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tab !! Setelan !! Alasan&lt;br /&gt;
|-&lt;br /&gt;
| General || Start at boot || Cluster ikut hidup saat host reboot&lt;br /&gt;
|-&lt;br /&gt;
| OS || ISO &amp;lt;code&amp;gt;agent.x86_64.iso&amp;lt;/code&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| System || Machine &amp;lt;code&amp;gt;q35&amp;lt;/code&amp;gt;, BIOS SeaBIOS || q35 chipset modern (opsional, i440fx juga bisa). Kalau OVMF, matikan Secure Boot&lt;br /&gt;
|-&lt;br /&gt;
| Disks || VirtIO SCSI single, 150 GB, SSD, &amp;#039;&amp;#039;&amp;#039;Discard&amp;#039;&amp;#039;&amp;#039; + &amp;#039;&amp;#039;&amp;#039;SSD emulation&amp;#039;&amp;#039;&amp;#039; || Discard (TRIM) mengembalikan ruang thin-provisioned ke host; opsional&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 socket, 16 core, type &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Wajib.&amp;#039;&amp;#039;&amp;#039; SCOS butuh instruksi CPU modern; tipe default bisa memicu crash&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 32768 MB, &amp;#039;&amp;#039;&amp;#039;Ballooning off&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Penting.&amp;#039;&amp;#039;&amp;#039; Kubernetes mengasumsikan RAM tetap; balloon bisa memicu OOM/eviction&lt;br /&gt;
|-&lt;br /&gt;
| Network || Bridge &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;, VirtIO, MAC &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;BC:24:11:00:00:30&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; || Harus sama persis dengan agent-config.yaml&lt;br /&gt;
|-&lt;br /&gt;
| Options → Boot Order || &amp;lt;code&amp;gt;scsi0&amp;lt;/code&amp;gt; di atas CD-ROM || Setelah install, node boot dari disk, bukan installer lagi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Langkah 8: Install dan pantau ==&lt;br /&gt;
Start VM. Di Console Proxmox, tanda awal yang benar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ens18: 192.168.90.30&lt;br /&gt;
Ignition: user-provided config was applied&lt;br /&gt;
This host (192.168.90.30) is the rendezvous host.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Urutan yang terlihat:&lt;br /&gt;
# &amp;lt;code&amp;gt;Waiting for services&amp;lt;/code&amp;gt; → service installer naik satu per satu.&lt;br /&gt;
# &amp;lt;code&amp;gt;Installation cannot proceed: Cluster status: insufficient&amp;lt;/code&amp;gt; → sementara, validasi host belum selesai.&lt;br /&gt;
# &amp;lt;code&amp;gt;Cluster installation in progress&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;Writing image to disk&amp;lt;/code&amp;gt; 0–100%, lalu node reboot dari disk.&lt;br /&gt;
# Log &amp;lt;code&amp;gt;crio-... libcrun container&amp;lt;/code&amp;gt; berulang → container cluster dinyalakan (normal).&lt;br /&gt;
# &amp;lt;code&amp;gt;Finished bootkube.service&amp;lt;/code&amp;gt; → bootstrap selesai.&lt;br /&gt;
&lt;br /&gt;
Pantau dari bastion:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/okd&lt;br /&gt;
openshift-install agent wait-for bootstrap-complete --dir cluster --log-level=info&lt;br /&gt;
openshift-install agent wait-for install-complete --dir cluster --log-level=info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pesan &amp;lt;code&amp;gt;cluster bootstrap did not complete&amp;lt;/code&amp;gt; tepat setelah &amp;#039;&amp;#039;Writing image to disk: 100%&amp;#039;&amp;#039; bisa muncul karena &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; kehilangan kontak saat node reboot dari ISO ke disk. Jalankan ulang &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; (aman, tidak mengganggu installer).&lt;br /&gt;
* Install aktual memakan sekitar &amp;#039;&amp;#039;&amp;#039;1 jam&amp;#039;&amp;#039;&amp;#039; (cluster &amp;lt;code&amp;gt;Available&amp;lt;/code&amp;gt; sekitar 09:15 dari mulai 08:11).&lt;br /&gt;
&lt;br /&gt;
Cek status langsung:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export KUBECONFIG=~/okd/cluster/auth/kubeconfig&lt;br /&gt;
curl -k https://api.okd.lab.local:6443/version&lt;br /&gt;
oc get clusterversion&lt;br /&gt;
oc get co&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install sukses bila &amp;lt;code&amp;gt;clusterversion&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;Available=True&amp;lt;/code&amp;gt; dan semua cluster operator &amp;lt;code&amp;gt;Available=True, Progressing=False, Degraded=False&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Langkah 9: Akses web console ==&lt;br /&gt;
Password:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ~/okd/cluster/auth/kubeadmin-password&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Console tidak bisa dibuka lewat &amp;lt;code&amp;gt;IP:port&amp;lt;/code&amp;gt;, karena router OKD memilih tujuan berdasarkan &amp;#039;&amp;#039;&amp;#039;nama host&amp;#039;&amp;#039;&amp;#039;. Di mesin yang menjalankan browser, tambahkan ke &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
192.168.90.30 api.okd.lab.local console-openshift-console.apps.okd.lab.local oauth-openshift.apps.okd.lab.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Buka &amp;lt;code&amp;gt;https://console-openshift-console.apps.okd.lab.local&amp;lt;/code&amp;gt;, login sebagai &amp;lt;code&amp;gt;kubeadmin&amp;lt;/code&amp;gt;. Peringatan sertifikat (self-signed) normal.&lt;br /&gt;
&lt;br /&gt;
Mesin itu juga harus bisa menjangkau &amp;lt;code&amp;gt;192.168.90.0/24&amp;lt;/code&amp;gt; (misalnya lewat route WireGuard atau &amp;lt;code&amp;gt;sshuttle&amp;lt;/code&amp;gt; via bastion).&lt;br /&gt;
&lt;br /&gt;
Tes router tanpa browser:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -kI --resolve console-openshift-console.apps.okd.lab.local:443:192.168.90.30 \&lt;br /&gt;
  https://console-openshift-console.apps.okd.lab.local&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 10: Setelah install ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Snapshot VM OKD&amp;#039;&amp;#039;&amp;#039; selagi bersih.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Lepas ISO&amp;#039;&amp;#039;&amp;#039; dari VM OKD (CD/DVD → Do not use any media).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Autostart dan urutan boot&amp;#039;&amp;#039;&amp;#039;: bastion order 1, OKD order 2, beri jeda start.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simpan &amp;lt;code&amp;gt;cluster/auth/&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; di tempat aman.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Storage class&amp;#039;&amp;#039;&amp;#039;: cluster baru di &amp;lt;code&amp;gt;platform: none&amp;lt;/code&amp;gt; belum punya storage dinamis; PVC akan Pending sampai dipasang NFS / local-path / LVMS. Cek dengan &amp;lt;code&amp;gt;oc get sc&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Image registry&amp;#039;&amp;#039;&amp;#039; (dev): &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oc patch configs.imageregistry.operator.openshift.io cluster --type merge \&lt;br /&gt;
  --patch &amp;#039;{&amp;quot;spec&amp;quot;:{&amp;quot;managementState&amp;quot;:&amp;quot;Managed&amp;quot;,&amp;quot;storage&amp;quot;:{&amp;quot;emptyDir&amp;quot;:{}}}}&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; (emptyDir: isi hilang saat pod restart, hanya untuk dev.)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Keamanan&amp;#039;&amp;#039;&amp;#039;: jangan publikasikan console, OAuth, dan API ke internet selama masih memakai &amp;lt;code&amp;gt;kubeadmin&amp;lt;/code&amp;gt;. Ganti dengan user admin biasa lewat OAuth.&lt;br /&gt;
&lt;br /&gt;
== Publish aplikasi dengan domain sendiri (rencana) ==&lt;br /&gt;
Alur: &amp;lt;code&amp;gt;Internet → MikroTik NAT → nginx → router OKD (192.168.90.30:80) → app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Route dengan domain sendiri:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oc create route edge myapp --service=myapp \&lt;br /&gt;
  --hostname=app.domainku.com --insecure-policy=Allow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nginx (TLS di nginx, teruskan header Host):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
location / {&lt;br /&gt;
    proxy_pass http://192.168.90.30:80;&lt;br /&gt;
    proxy_set_header Host $host;&lt;br /&gt;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
    proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tes sisi OKD: &amp;lt;code&amp;gt;curl -sI -H &amp;quot;Host: app.domainku.com&amp;quot; http://192.168.90.30&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting (yang benar-benar terjadi) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gejala !! Penyebab !! Solusi&lt;br /&gt;
|-&lt;br /&gt;
| dnsmasq &amp;lt;code&amp;gt;start-limit-hit&amp;lt;/code&amp;gt;, log: &amp;lt;code&amp;gt;failed to create listening socket for port 53: Address already in use&amp;lt;/code&amp;gt; || Config di &amp;lt;code&amp;gt;/etc/dnsmasq.d/&amp;lt;/code&amp;gt; tidak terbaca (Arch tidak mengaktifkan &amp;lt;code&amp;gt;conf-dir&amp;lt;/code&amp;gt;), dnsmasq bind ke semua alamat dan bentrok dengan dnsmasq libvirt di &amp;lt;code&amp;gt;virbr0&amp;lt;/code&amp;gt; || Tambahkan &amp;lt;code&amp;gt;conf-dir=/etc/dnsmasq.d/,*.conf&amp;lt;/code&amp;gt;; gunakan &amp;lt;code&amp;gt;listen-address&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;bind-interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;exec: &amp;quot;nmstatectl&amp;quot;: executable file not found in $PATH&amp;lt;/code&amp;gt; || Paket nmstate belum terpasang || &amp;lt;code&amp;gt;yay -S nmstate&amp;lt;/code&amp;gt;, atau jalankan installer di container Fedora&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;exec: &amp;quot;oc&amp;quot;: executable file not found in $PATH&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; belum diekstrak/di-PATH || Ekstrak &amp;lt;code&amp;gt;openshift-client&amp;lt;/code&amp;gt;, pindahkan ke &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Node tidak bisa menjangkau DNS di laptop || Laptop (192.168.83.x, WiFi) tidak bisa dijangkau dari jaringan Proxmox (laptop masuk via WireGuard) || Pindahkan DNS ke VM bastion di &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Kernel panic AlmaLinux: &amp;lt;code&amp;gt;Attempted to kill init! exitcode=0x00007f00&amp;lt;/code&amp;gt; || CPU type default Proxmox menyembunyikan instruksi x86-64-v2/v3 yang dibutuhkan Alma 9/10 || Ubah Processor → Type &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; stuck lama di &amp;lt;code&amp;gt;Waiting for cluster install to initialize. Sleeping for 30 seconds&amp;lt;/code&amp;gt; || Bastion tidak bisa resolve &amp;lt;code&amp;gt;api.okd.lab.local&amp;lt;/code&amp;gt; (DNS bastion ke 1.1.1.1). Cluster sebenarnya sudah jadi || Arahkan DNS bastion ke dnsmasq-nya (&amp;lt;code&amp;gt;192.168.90.29&amp;lt;/code&amp;gt;) atau tambah &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;. Cek dengan &amp;lt;code&amp;gt;getent hosts api.okd.lab.local&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Console tidak terbuka di laptop || Nama &amp;lt;code&amp;gt;*.apps&amp;lt;/code&amp;gt; tidak dikenal, atau subnet 192.168.90.x tidak terjangkau || Tambah &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, pastikan route ke 192.168.90.0/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Perintah debug yang berguna:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh core@192.168.90.30&lt;br /&gt;
sudo journalctl -b -f&lt;br /&gt;
sudo crictl ps&lt;br /&gt;
tail -n 60 ~/okd/cluster/.openshift_install.log&lt;br /&gt;
openshift-install agent wait-for bootstrap-complete --dir cluster --log-level=debug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referensi ==&lt;br /&gt;
* [https://docs.okd.io/latest/installing/overview/ OKD installation overview]&lt;br /&gt;
* [https://docs.okd.io/4.21/installing/installing_sno/install-sno-preparing-to-install-sno.html Preparing to install OKD on a single node]&lt;br /&gt;
* [https://docs.okd.io/4.22/installing/installing_two_node_cluster/about-two-node-arbiter-installation.html OKD two control plane + arbiter]&lt;br /&gt;
* [https://okd.io/blog/2025/05/14/okd-4.19-and-4.20-release OKD 4.19 / 4.20 release (transisi ke SCOS)]&lt;br /&gt;
* [https://github.com/okd-project/okd/releases OKD releases (GitHub)]&lt;/div&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
</feed>