{"version":4,"terraform_version":"1.10.7","serial":70,"lineage":"b9cd9b83-e968-5121-57be-9fab06ecf5bc","outputs":{"image_builder_vm":{"value":{"ipv4":[["127.0.0.1"],["192.168.69.70"]],"name":"image-builder","vm_id":9100},"type":["object",{"ipv4":["list",["list","string"]],"name":"string","vm_id":"number"}],"sensitive":true},"infrastructure_summary":{"value":{"lxc_containers":{"k3s-control":{"hostname":"k3s-control.k8s","ip_config":[{"ipv4":[{"address":"192.168.69.201/24","gateway":"192.168.69.1"}],"ipv6":[]}],"vm_id":6901},"k3s-worker-1":{"hostname":"k3s-worker-1.k8s","ip_config":[{"ipv4":[{"address":"192.168.69.202/24","gateway":"192.168.69.1"}],"ipv6":[]}],"vm_id":6902},"k3s-worker-2":{"hostname":"k3s-worker-2.k8s","ip_config":[{"ipv4":[{"address":"192.168.69.203/24","gateway":"192.168.69.1"}],"ipv6":[]}],"vm_id":6903},"kasm-agent":{"hostname":"kasm-agent","ip_config":[{"ipv4":[{"address":"192.168.69.204/24","gateway":"192.168.69.1"}],"ipv6":[]}],"vm_id":6904}},"vms":{}},"type":["object",{"lxc_containers":["object",{"k3s-control":["object",{"hostname":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"vm_id":"number"}],"k3s-worker-1":["object",{"hostname":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"vm_id":"number"}],"k3s-worker-2":["object",{"hostname":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"vm_id":"number"}],"kasm-agent":["object",{"hostname":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"vm_id":"number"}]}],"vms":["object",{}]}]},"lxc_containers":{"value":{"k3s-control":{"hostname":"k3s-control.k8s","id":"6901","ip_config":[{"ipv4":[{"address":"192.168.69.201/24","gateway":"192.168.69.1"}],"ipv6":[]}],"tags":["k3s"],"vm_id":6901},"k3s-worker-1":{"hostname":"k3s-worker-1.k8s","id":"6902","ip_config":[{"ipv4":[{"address":"192.168.69.202/24","gateway":"192.168.69.1"}],"ipv6":[]}],"tags":["k3s"],"vm_id":6902},"k3s-worker-2":{"hostname":"k3s-worker-2.k8s","id":"6903","ip_config":[{"ipv4":[{"address":"192.168.69.203/24","gateway":"192.168.69.1"}],"ipv6":[]}],"tags":["k3s"],"vm_id":6903},"kasm-agent":{"hostname":"kasm-agent","id":"6904","ip_config":[{"ipv4":[{"address":"192.168.69.204/24","gateway":"192.168.69.1"}],"ipv6":[]}],"tags":["kasm"],"vm_id":6904}},"type":["object",{"k3s-control":["object",{"hostname":"string","id":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"tags":["list","string"],"vm_id":"number"}],"k3s-worker-1":["object",{"hostname":"string","id":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"tags":["list","string"],"vm_id":"number"}],"k3s-worker-2":["object",{"hostname":"string","id":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"tags":["list","string"],"vm_id":"number"}],"kasm-agent":["object",{"hostname":"string","id":"string","ip_config":["list",["object",{"ipv4":["list",["object",{"address":"string","gateway":"string"}]],"ipv6":["list",["object",{"address":"string","gateway":"string"}]]}]],"tags":["list","string"],"vm_id":"number"}]}]},"vms":{"value":{},"type":["object",{}]}},"resources":[{"mode":"managed","type":"proxmox_virtual_environment_file","name":"image_builder_cloud_init","provider":"provider[\"registry.opentofu.org/bpg/proxmox\"]","instances":[{"index_key":0,"schema_version":0,"attributes":{"content_type":"snippets","datastore_id":"truenas","file_mode":null,"file_modification_date":null,"file_name":"image-builder-cloud-init.yaml","file_size":null,"file_tag":null,"id":"truenas:snippets/image-builder-cloud-init.yaml","node_name":"pve","overwrite":true,"source_file":[],"source_raw":[{"data":"#cloud-config\n# Bootstraps the privileged edge-image 'image-builder' Forgejo runner on a\n# Debian cloud VM. Rendered by image-builder.tf (templatefile) — the runner\n# token + Forgejo URL are injected at apply time. The setup script is embedded\n# base64, so the VM needs NO git clone and NO extra credential at boot: it\n# writes the script, then runs it. (act_runner pulls the repo per-job at build\n# time using its own Forgejo-issued token — that is separate from this.)\nhostname: image-builder\nmanage_etc_hosts: true\npackage_update: true\npackage_upgrade: false\npackages:\n  - qemu-guest-agent\n  - git\n  - curl\n\nwrite_files:\n  - path: /opt/setup-image-builder-runner.sh\n    permissions: '0755'\n    owner: root:root\n    encoding: b64\n    content: IyEvdXNyL2Jpbi9lbnYgYmFzaAojIFByb3Zpc2lvbiB0aGUgZGVkaWNhdGVkIFBSSVZJTEVHRUQgJ2ltYWdlLWJ1aWxkZXInIEZvcmdlam8gcnVubmVyIHRoYXQgdGhlCiMgZWRnZS1pbWFnZSB3b3JrZmxvdyB0YXJnZXRzIChydW5zLW9uOiBpbWFnZS1idWlsZGVyKS4gUnVuIGFzIFJPT1Qgb24gYSBmcmVzaAojIERlYmlhbiAoMTIvMTMpIG9yIFVidW50dSBMVFMgKDIyLjA0LzI0LjA0LzI2LjA0KSBQcm94bW94IFZNIOKAlCBOT1QgYW4gTFhDLgojIChEZWJpYW4gaXMgbGVhbmVyIGFuZCBhIGZpcnN0LWNsYXNzIEFybWJpYW4gYnVpbGQgaG9zdDsgZWl0aGVyIHdvcmtzLikKIyBUSVA6IGltYWdlLWJ1aWxkZXIudGYgaW4gaW5mcmFzdHJ1Y3R1cmUvb3BlbnRvZnUvIHByb3Zpc2lvbnMgdGhlIHdob2xlIFZNICsKIyBydW5zIHRoaXMgc2NyaXB0IHZpYSBjbG91ZC1pbml0IOKAlCBvbmUgYHRvZnUgYXBwbHlgIGluc3RlYWQgb2YgdGhlc2Ugc3RlcHMuCiMgVGhlIHNjcmlwdCBpcyBkaXN0cm8tdmVyc2lvbi1hZ25vc3RpYyAocGxhaW4gYXB0ICsgTm9kZVNvdXJjZSArIGdldC5kb2NrZXIuY29tKS4KIyBDYXZlYXQ6IHRoZSBPcmFuZ2UgUGkgbGFuZSBydW5zIEFybWJpYW4ncyBidWlsZCBpbiBpdHMgb3duIERvY2tlciBjb250YWluZXIsCiMgc28gdGhlIGhvc3QgdmVyc2lvbiByYXJlbHkgbWF0dGVyczsgaWYgQXJtYmlhbidzIGhvc3QgcHJlZmxpZ2h0IGV2ZXIgYmFsa3Mgb24KIyBhIHZlcnkgbmV3IHJlbGVhc2UsIGZhbGwgYmFjayB0byAyNC4wNCBMVFMuIFRoZSBSUGkgbGFuZSBpcyB1bmFmZmVjdGVkLgojCiMgV2h5IGEgVk0gYW5kIG5vdCBhbiBMWEM6IGJ1aWxkaW5nIGEgYm9vdGFibGUgLmltZyBuZWVkcyBsb29wIGRldmljZXMKIyAobG9zZXR1cCkgKyBhbiBhcm02NCBjaHJvb3QuIExYQyBoYXMgbm8gL2Rldi9sb29wLWNvbnRyb2wgKHRoZSBzYW1lIGtlcm5lbAojIHJlc3RyaWN0aW9uIGRvY3VtZW50ZWQgaW4gQ0xBVURFLm1kIHRoYXQgZm9yY2VzIGJpbmZtdCBvbnRvIHRoZSBoeXBlcnZpc29yKSwKIyBzbyB0aGUgYnVpbGQgcGh5c2ljYWxseSBjYW5ub3QgcnVuIHRoZXJlLiBBIEtWTSBWTSBoYXMgaXRzIG93biBrZXJuZWwgKwojIGxvb3AgZGV2aWNlczsgdGhpcyBzY3JpcHQgcmVnaXN0ZXJzIGFybTY0IGJpbmZtdCBJTlNJREUgdGhlIFZNIChhIFZNIGRvZXMKIyBOT1QgaW5oZXJpdCB0aGUgaHlwZXJ2aXNvcidzIGJpbmZtdCB0aGUgd2F5IGFuIExYQyBkb2VzKS4KIwojIFdoYXQgaXQgaW5zdGFsbHM6CiMgICAtIGJ1aWxkIGRlcHM6IGRvY2tlciAoYXJtYmlhbi9idWlsZCksIHFlbXUtdXNlci1zdGF0aWMgKyBiaW5mbXQgKGFybTY0CiMgICAgIGNocm9vdCksIGdyb3dwYXJ0L2UyZnNwcm9ncy9wYXJ0ZWQvZG9zZnN0b29scyAoUlBpIGxvb3AtcmVzaXplKSwgbm9kZTIwCiMgICAgIChzbyBhY3Rpb25zL2NoZWNrb3V0QHY0IHJ1bnMgaW4gaG9zdCBtb2RlKSwgeHovY3VybC9naXQuCiMgICAtIGEgbm9uLXJvb3QgJ2J1aWxkZXInIHVzZXIgd2l0aCBwYXNzd29yZGxlc3Mgc3VkbyArIGRvY2tlciBncm91cAojICAgICAoYXJtYmlhbi9idWlsZCByZWZ1c2VzIHRvIHJ1biBhcyByb290IGFuZCBzdWRvcyBpdHNlbGY7IHRoZSBSUGkgbGFuZQojICAgICBuZWVkcyByb290IHZpYSBzdWRvKS4KIyAgIC0gYWN0X3J1bm5lciByZWdpc3RlcmVkIHdpdGggbGFiZWwgJ2ltYWdlLWJ1aWxkZXI6aG9zdCcgKGhvc3QgZXhlY3V0aW9uIOKAlAojICAgICBqb2JzIHJ1biBkaXJlY3RseSBvbiB0aGUgVk0sIHdpdGggbG9vcCBkZXZpY2VzICsgdGhlIHRvb2xzIGFib3ZlKSwgYXMgYQojICAgICBzeXN0ZW1kIHNlcnZpY2UuCiMKIyBQcmVyZXFzIHlvdSBwcm92aWRlOgojICAgUlVOTkVSX1RPS0VOIOKAlCBhIHJlZ2lzdHJhdGlvbiB0b2tlbiBmcm9tIEZvcmdlam86CiMgICAgIFNpdGUgQWRtaW4gPiBBY3Rpb25zID4gUnVubmVycyA+ICJDcmVhdGUgbmV3IFJ1bm5lciIgKGluc3RhbmNlLXdpZGUpLCBvcgojICAgICByZXBvIFNldHRpbmdzID4gQWN0aW9ucyA+IFJ1bm5lcnMgZm9yIGEgcmVwby1zY29wZWQgcnVubmVyLgojCiMgVXNhZ2UgKG9uIHRoZSBWTSwgYXMgcm9vdCk6CiMgICBSVU5ORVJfVE9LRU49eHh4eCBiYXNoIHNldHVwLWltYWdlLWJ1aWxkZXItcnVubmVyLnNoCiMgICBGT1JHRUpPX1VSTD1odHRwczovL2ZvcmdlLnN0ZWZhbnNjaG9lbWFrZXIubmwgUlVOTkVSX1RPS0VOPXh4eHggXAojICAgICBiYXNoIHNldHVwLWltYWdlLWJ1aWxkZXItcnVubmVyLnNoCgpzZXQgLWV1byBwaXBlZmFpbAoKRk9SR0VKT19VUkw9IiR7Rk9SR0VKT19VUkw6LWh0dHBzOi8vZm9yZ2Uuc3RlZmFuc2Nob2VtYWtlci5ubH0iClJVTk5FUl9UT0tFTj0iJHtSVU5ORVJfVE9LRU46P3NldCBSVU5ORVJfVE9LRU4gKEZvcmdlam8gPiBBY3Rpb25zID4gUnVubmVycyA+IENyZWF0ZSBuZXcgUnVubmVyKX0iClJVTk5FUl9OQU1FPSIke1JVTk5FUl9OQU1FOi1pbWFnZS1idWlsZGVyfSIKIyBUaGUgbGFiZWwgYmVmb3JlICc6aG9zdCcgaXMgd2hhdCBgcnVucy1vbjpgIG1hdGNoZXM7ICc6aG9zdCcgPSBydW4gb24gdGhlIFZNCiMgZGlyZWN0bHkgKG5vIGNvbnRhaW5lciksIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBsb29wIGRldmljZXMgKyBjaHJvb3QuClJVTk5FUl9MQUJFTFM9IiR7UlVOTkVSX0xBQkVMUzotaW1hZ2UtYnVpbGRlcjpob3N0fSIKQlVJTERfVVNFUj0iJHtCVUlMRF9VU0VSOi1idWlsZGVyfSIKQUNUX1JVTk5FUl9WRVJTSU9OPSIke0FDVF9SVU5ORVJfVkVSU0lPTjotMC4yLjExfSIKCnNheSgpIHsgcHJpbnRmICdcblwwMzNbMW09PT4gJXNcMDMzWzBtXG4nICIkKiI7IH0KCltbICR7RVVJRH0gLWVxIDAgXV0gfHwgeyBlY2hvICJFUlJPUjogcnVuIGFzIHJvb3QiID4mMjsgZXhpdCAxOyB9CltbIC1lIC9kZXYvbG9vcC1jb250cm9sIF1dIHx8IHsKICBlY2hvICJFUlJPUjogL2Rldi9sb29wLWNvbnRyb2wgYWJzZW50IOKAlCB0aGlzIGlzIG5vdCBhIFZNIChMWEM/KS4gSW1hZ2UgYnVpbGRzIiA+JjIKICBlY2hvICIgICAgICAgbmVlZCBsb29wIGRldmljZXM7IHByb3Zpc2lvbiBhbiBVYnVudHUgTFRTIEtWTSBWTSBvbiBQcm94bW94LiIgPiYyCiAgZXhpdCAxCn0KCnNheSAiSW5zdGFsbGluZyBidWlsZCBkZXBlbmRlbmNpZXMiCmV4cG9ydCBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKYXB0LWdldCB1cGRhdGUKYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKICBnaXQgY3VybCBjYS1jZXJ0aWZpY2F0ZXMgeHotdXRpbHMgc3VkbyBcCiAgcWVtdS11c2VyLXN0YXRpYyBiaW5mbXQtc3VwcG9ydCBcCiAgY2xvdWQtZ3Vlc3QtdXRpbHMgZTJmc3Byb2dzIHBhcnRlZCBkb3Nmc3Rvb2xzIGtwYXJ0eCB1ZGV2CgpzYXkgIkluc3RhbGxpbmcgRG9ja2VyIChhcm1iaWFuL2J1aWxkIHVzZXMgaXQpIgppZiAhIGNvbW1hbmQgLXYgZG9ja2VyID4vZGV2L251bGw7IHRoZW4KICBjdXJsIC1mc1NMIGh0dHBzOi8vZ2V0LmRvY2tlci5jb20gfCBzaApmaQpzeXN0ZW1jdGwgZW5hYmxlIC0tbm93IGRvY2tlcgoKc2F5ICJJbnN0YWxsaW5nIE5vZGUuanMgJHtOT0RFX01BSk9SOj0yMn0gKGFjdGlvbnMvY2hlY2tvdXRAdjQgbmVlZHMgaXQgaW4gaG9zdCBtb2RlKSIKIyBOb2RlIDIyIExUUyDigJQgTm9kZSAyMCBpcyBuZWFyIEVPTCBhbmQgTm9kZVNvdXJjZSBtYXkgbm90IHB1Ymxpc2ggaXQgZm9yIHRoZQojIG5ld2VzdCBVYnVudHUgY29kZW5hbWVzIChlLmcuIDI2LjA0KS4gQSBuZXdlciBob3N0IG5vZGUgcnVucyBub2RlMjAtdGFyZ2V0ZWQKIyBhY3Rpb25zIGxpa2UgY2hlY2tvdXRAdjQgZmluZS4gT3ZlcnJpZGUgTk9ERV9NQUpPUiBpZiBuZWVkZWQuCmlmICEgY29tbWFuZCAtdiBub2RlID4vZGV2L251bGwgfHwgW1sgIiQobm9kZSAtdiAyPi9kZXYvbnVsbCB8IGN1dCAtZHYgLWYyIHwgY3V0IC1kLiAtZjEpIiAtbHQgMTggXV07IHRoZW4KICBjdXJsIC1mc1NMICJodHRwczovL2RlYi5ub2Rlc291cmNlLmNvbS9zZXR1cF8ke05PREVfTUFKT1J9LngiIHwgYmFzaCAtCiAgYXB0LWdldCBpbnN0YWxsIC15IG5vZGVqcwpmaQoKc2F5ICJSZWdpc3RlcmluZyBhcm02NCBiaW5mbXQgKGZvciB0aGUgcWVtdSBjaHJvb3QpIgp1cGRhdGUtYmluZm10cyAtLWVuYWJsZSBxZW11LWFhcmNoNjQgMj4vZGV2L251bGwgfHwgdHJ1ZQpbWyAtZSAvcHJvYy9zeXMvZnMvYmluZm10X21pc2MvcWVtdS1hYXJjaDY0IF1dIHx8IHsKICBlY2hvICJFUlJPUjogYmluZm10IHFlbXUtYWFyY2g2NCBub3QgcmVnaXN0ZXJlZCBhZnRlciBpbnN0YWxsLiIgPiYyCiAgZWNobyAiICAgICAgIFRyeTogdXBkYXRlLWJpbmZtdHMgLS1pbXBvcnQ7IGxzIC9wcm9jL3N5cy9mcy9iaW5mbXRfbWlzYy8iID4mMgogIGV4aXQgMQp9CmVjaG8gIiAgICBxZW11LWFhcmNoNjQgYmluZm10IE9LIgoKc2F5ICJDcmVhdGluZyBidWlsZCB1c2VyICcke0JVSUxEX1VTRVJ9JyAocGFzc3dvcmRsZXNzIHN1ZG8gKyBkb2NrZXIgZ3JvdXApIgppZCAtdSAiJHtCVUlMRF9VU0VSfSIgJj4vZGV2L251bGwgfHwgdXNlcmFkZCAtbSAtcyAvYmluL2Jhc2ggIiR7QlVJTERfVVNFUn0iCnVzZXJtb2QgLWFHIGRvY2tlciAiJHtCVUlMRF9VU0VSfSIKcHJpbnRmICclcyBBTEw9KEFMTCkgTk9QQVNTV0Q6QUxMXG4nICIke0JVSUxEX1VTRVJ9IiA+ICIvZXRjL3N1ZG9lcnMuZC85MC0ke0JVSUxEX1VTRVJ9IgpjaG1vZCA0NDAgIi9ldGMvc3Vkb2Vycy5kLzkwLSR7QlVJTERfVVNFUn0iCgpzYXkgIkluc3RhbGxpbmcgYWN0X3J1bm5lciAke0FDVF9SVU5ORVJfVkVSU0lPTn0iCkFSQ0g9IiQoZHBrZyAtLXByaW50LWFyY2hpdGVjdHVyZSkiICAgIyBhbWQ2NCBvbiBhIG5vcm1hbCBQcm94bW94IFZNCmN1cmwgLWZTTCAiaHR0cHM6Ly9kbC5naXRlYS5jb20vYWN0X3J1bm5lci8ke0FDVF9SVU5ORVJfVkVSU0lPTn0vYWN0X3J1bm5lci0ke0FDVF9SVU5ORVJfVkVSU0lPTn0tbGludXgtJHtBUkNIfSIgXAogIC1vIC91c3IvbG9jYWwvYmluL2FjdF9ydW5uZXIKY2htb2QgK3ggL3Vzci9sb2NhbC9iaW4vYWN0X3J1bm5lcgplY2hvICIgICAgJCgvdXNyL2xvY2FsL2Jpbi9hY3RfcnVubmVyIC0tdmVyc2lvbiAyPi9kZXYvbnVsbCB8fCBlY2hvIGFjdF9ydW5uZXIgaW5zdGFsbGVkKSIKCnNheSAiUmVnaXN0ZXJpbmcgdGhlIHJ1bm5lciB3aXRoICR7Rk9SR0VKT19VUkx9IgpSVU5ORVJfSE9NRT0iL2hvbWUvJHtCVUlMRF9VU0VSfS9hY3QtcnVubmVyIgpta2RpciAtcCAiJHtSVU5ORVJfSE9NRX0iCmNob3duIC1SICIke0JVSUxEX1VTRVJ9OiR7QlVJTERfVVNFUn0iICIke1JVTk5FUl9IT01FfSIKIyBHZW5lcmF0ZSBhIGNvbmZpZyB0aGF0IGFsbG93cyBob3N0LW1vZGUgZXhlY3V0aW9uICsgYSBnZW5lcm91cyBqb2IgdGltZW91dAojIChhbiBhcm02NCBjaHJvb3QgdW5kZXIgcWVtdSArIGFuIGFybWJpYW4gYnVpbGQgY2FuIHRha2UgMzDigJM2MCBtaW4pLgpzdWRvIC11ICIke0JVSUxEX1VTRVJ9IiAvdXNyL2xvY2FsL2Jpbi9hY3RfcnVubmVyIGdlbmVyYXRlLWNvbmZpZyA+ICIke1JVTk5FUl9IT01FfS9jb25maWcueWFtbCIKY2hvd24gIiR7QlVJTERfVVNFUn06JHtCVUlMRF9VU0VSfSIgIiR7UlVOTkVSX0hPTUV9L2NvbmZpZy55YW1sIgoKc3VkbyAtdSAiJHtCVUlMRF9VU0VSfSIgYmFzaCAtYyAiY2QgJyR7UlVOTkVSX0hPTUV9JyAmJiAvdXNyL2xvY2FsL2Jpbi9hY3RfcnVubmVyIHJlZ2lzdGVyIFwKICAtLW5vLWludGVyYWN0aXZlIFwKICAtLWluc3RhbmNlICcke0ZPUkdFSk9fVVJMfScgXAogIC0tdG9rZW4gJyR7UlVOTkVSX1RPS0VOfScgXAogIC0tbmFtZSAnJHtSVU5ORVJfTkFNRX0nIFwKICAtLWxhYmVscyAnJHtSVU5ORVJfTEFCRUxTfScgXAogIC0tY29uZmlnICcke1JVTk5FUl9IT01FfS9jb25maWcueWFtbCciCgpzYXkgIkluc3RhbGxpbmcgdGhlIGFjdC1ydW5uZXIgc3lzdGVtZCBzZXJ2aWNlIgpjYXQgPiAvZXRjL3N5c3RlbWQvc3lzdGVtL2FjdC1ydW5uZXIuc2VydmljZSA8PEVPRgpbVW5pdF0KRGVzY3JpcHRpb249Rm9yZ2VqbyBBY3QgUnVubmVyIChpbWFnZS1idWlsZGVyKQpBZnRlcj1kb2NrZXIuc2VydmljZSBuZXR3b3JrLW9ubGluZS50YXJnZXQKV2FudHM9bmV0d29yay1vbmxpbmUudGFyZ2V0CgpbU2VydmljZV0KVXNlcj0ke0JVSUxEX1VTRVJ9CldvcmtpbmdEaXJlY3Rvcnk9JHtSVU5ORVJfSE9NRX0KRXhlY1N0YXJ0PS91c3IvbG9jYWwvYmluL2FjdF9ydW5uZXIgZGFlbW9uIC0tY29uZmlnICR7UlVOTkVSX0hPTUV9L2NvbmZpZy55YW1sClJlc3RhcnQ9YWx3YXlzClJlc3RhcnRTZWM9NQojIEFuIGFybWJpYW4gYnVpbGQgKyBhbiBhcm02NCBjaHJvb3QgYXJlIGxvbmc7IGRvbid0IGxldCBzeXN0ZW1kIG51a2UgaXQuClRpbWVvdXRTdG9wU2VjPTEyMAoKW0luc3RhbGxdCldhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CkVPRgoKc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWQKc3lzdGVtY3RsIGVuYWJsZSAtLW5vdyBhY3QtcnVubmVyLnNlcnZpY2UKCnNheSAiRG9uZSIKY2F0IDw8RU9GCgpUaGUgJ2ltYWdlLWJ1aWxkZXInIHJ1bm5lciBpcyByZWdpc3RlcmVkIGFuZCBydW5uaW5nLgoKICBzeXN0ZW1jdGwgc3RhdHVzIGFjdC1ydW5uZXIgICAgICAgICMgY29uZmlybSBpdCdzIGFjdGl2ZQogIGpvdXJuYWxjdGwgLXUgYWN0LXJ1bm5lciAtZiAgICAgICAgIyBmb2xsb3cgaXRzIGxvZ3MKClZlcmlmeSBpbiBGb3JnZWpvOiBTaXRlIEFkbWluID4gQWN0aW9ucyA+IFJ1bm5lcnMgc2hvdWxkIGxpc3QKJyR7UlVOTkVSX05BTUV9JyB3aXRoIGxhYmVsICdpbWFnZS1idWlsZGVyJyBhbmQgc3RhdHVzIElkbGUuCgpUaGVuIHRyaWdnZXIgYSBidWlsZCBieSBwdXNoaW5nIGFueSBjaGFuZ2UgdW5kZXIgZWRnZS9pbWFnZS8qKiAob3IKcmUtc2F2aW5nIC5mb3JnZWpvL3dvcmtmbG93cy9lZGdlLWltYWdlLnlhbWwpLiBUaGUgd29ya2Zsb3cncyB0d28gbWF0cml4CmpvYnMgKG9yYW5nZXBpemVybzMgKyByYXNwYmVycnlwaS1hcm02NCkgd2lsbCBsYW5kIG9uIHRoaXMgcnVubmVyIGFuZApwdWJsaXNoIGVkZ2UtaW1hZ2UgLyBlZGdlLXJwaS1pbWFnZSBnZW5lcmljIHBhY2thZ2VzLgpFT0YK\n\nruncmd:\n  # Bring up the guest agent first so the Proxmox provider gets the VM's IP\n  # quickly, while the (longer) runner setup continues afterwards.\n  - systemctl enable --now qemu-guest-agent || true\n  - [ bash, -c, \"RUNNER_TOKEN='OxRY24uWOXuhRyMjKrfJoUu85z3KwdGVLsff_DA-jLK' FORGEJO_URL='https://forge.stefanschoemaker.nl' NODE_MAJOR='22' bash /opt/setup-image-builder-runner.sh 2\u003e\u00261 | tee /var/log/image-builder-setup.log\" ]\n\nfinal_message: \"image-builder runner cloud-init done after $UPTIME s\"\n","file_name":"image-builder-cloud-init.yaml","resize":0}],"timeout_upload":1800,"upload_mode":"stream"},"sensitive_attributes":[[{"type":"get_attr","value":"source_raw"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"data"}]],"private":"bnVsbA=="}]},{"mode":"managed","type":"proxmox_virtual_environment_vm","name":"image_builder","provider":"provider[\"registry.opentofu.org/bpg/proxmox\"]","instances":[{"index_key":0,"schema_version":0,"attributes":{"acpi":true,"agent":[{"enabled":true,"timeout":"15m","trim":false,"type":"virtio","wait_for_ip":[]}],"amd_sev":[],"audio_device":[],"bios":"seabios","boot_order":["virtio0","net0"],"cdrom":[],"clone":[],"cpu":[{"affinity":"","architecture":"","cores":4,"flags":null,"hotplugged":0,"limit":0,"numa":false,"sockets":1,"type":"host","units":0}],"delete_unreferenced_disks_on_destroy":true,"description":"","disk":[{"aio":"io_uring","backup":true,"cache":"none","datastore_id":"local-zfs","discard":"on","file_format":"raw","file_id":"truenas:iso/debian-genericcloud-40g.img","import_from":"","interface":"virtio0","iothread":true,"path_in_datastore":"vm-9100-disk-0","replicate":true,"serial":"","size":40,"speed":[],"ssd":false}],"efi_disk":[],"hook_script_file_id":"","hostpci":[],"hotplug":null,"id":"9100","initialization":[{"datastore_id":"local-zfs","dns":[],"file_format":"","interface":"ide2","ip_config":[{"ipv4":[{"address":"dhcp","gateway":""}],"ipv6":[]}],"meta_data_file_id":"","network_data_file_id":"","type":"","upgrade":true,"user_account":[{"keys":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPFywirNcik0Slgame42AxrT6R2mZiseDWJXQ7TJV71"],"password":"**********","username":"debian"}],"user_data_file_id":"truenas:snippets/image-builder-cloud-init.yaml","vendor_data_file_id":""}],"ipv4_addresses":[["127.0.0.1"],["192.168.69.70"]],"ipv6_addresses":[["::1"],["fe80::be24:11ff:fe89:2361"]],"keyboard_layout":"en-us","kvm_arguments":"","mac_addresses":["00:00:00:00:00:00","BC:24:11:89:23:61"],"machine":"","memory":[{"dedicated":4096,"floating":0,"hugepages":"","keep_hugepages":false,"shared":0}],"migrate":false,"name":"image-builder","network_device":[{"bridge":"vmbr0","disconnected":false,"enabled":true,"firewall":false,"mac_address":"BC:24:11:89:23:61","model":"virtio","mtu":0,"queues":0,"rate_limit":0,"trunks":"","vlan_id":0}],"network_interface_names":["lo","eth0"],"node_name":"pve","numa":[],"on_boot":true,"operating_system":[{"type":"l26"}],"pool_id":"","protection":false,"purge_on_destroy":true,"reboot":false,"reboot_after_update":true,"rng":[],"scsi_hardware":"virtio-scsi-pci","serial_device":[],"smbios":[],"started":true,"startup":[],"stop_on_destroy":false,"tablet_device":true,"tags":["ci","image-builder","opentofu"],"template":false,"timeout_clone":1800,"timeout_create":1800,"timeout_migrate":1800,"timeout_move_disk":1800,"timeout_reboot":1800,"timeout_shutdown_vm":1800,"timeout_start_vm":1800,"timeout_stop_vm":300,"tpm_state":[],"usb":[],"vga":[],"virtiofs":[],"vm_id":9100,"watchdog":[]},"sensitive_attributes":[[{"type":"get_attr","value":"initialization"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"user_account"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"password"}]],"private":"bnVsbA==","dependencies":["proxmox_virtual_environment_file.image_builder_cloud_init"]}]},{"module":"module.lxc_containers[\"k3s-control\"]","mode":"managed","type":"proxmox_virtual_environment_container","name":"this","provider":"provider[\"registry.opentofu.org/bpg/proxmox\"]","instances":[{"schema_version":0,"attributes":{"clone":[],"console":[],"cpu":[{"architecture":"amd64","cores":4,"limit":0,"units":0}],"description":"","device_passthrough":[],"disk":[{"acl":false,"datastore_id":"local-zfs","mount_options":[],"path_in_datastore":"local-zfs:subvol-6901-disk-0","quota":false,"replicate":false,"size":16}],"environment_variables":{},"features":[{"fuse":false,"keyctl":false,"mknod":false,"mount":[],"nesting":true}],"hook_script_file_id":"","id":"6901","idmap":[],"initialization":[{"dns":[],"entrypoint":"","hostname":"k3s-control.k8s","ip_config":[{"ipv4":[{"address":"192.168.69.201/24","gateway":"192.168.69.1"}],"ipv6":[]}],"user_account":[{"keys":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPFywirNcik0Slgame42AxrT6R2mZiseDWJXQ7TJV71"],"password":"CHam1996!"}]}],"ipv4":{"cni0":"10.42.0.1","eth0":"192.168.69.201","flannel.1":"10.42.0.0"},"ipv6":{"cni0":"fe80::cc3d:95ff:fe36:9698","flannel.1":"fe80::28f7:1bff:fe1d:7356","veth41ca1991":"fe80::ecb9:cdff:fe00:57ff","veth59353751":"fe80::5858:40ff:fecb:5eb0","veth720b87b7":"fe80::6c27:12ff:fea0:9ad1","veth7ab354d6":"fe80::744d:58ff:fe08:403e","veth848ed075":"fe80::4:10ff:feb1:f0c3","veth8510eef1":"fe80::286c:a0ff:fef2:8df","vethb1fd80f6":"fe80::bc86:f8ff:fe9e:df6e","vethba4f69d6":"fe80::243a:22ff:fe12:b061","vethc7a0d8ba":"fe80::c437:29ff:fef9:6d3b","vethce766b3b":"fe80::7435:5cff:fe38:cae6","vethd46af41a":"fe80::782d:ddff:fec8:c6d6","vethd83cf9c2":"fe80::284a:cbff:feb8:3889","vethf78f5cc9":"fe80::5052:31ff:fe8e:86e5","vethff3b66b6":"fe80::7c4f:f8ff:fea7:2054"},"memory":[{"dedicated":4096,"swap":1024}],"mount_point":[{"acl":false,"backup":false,"mount_options":[],"path":"/mnt/kubernetes","path_in_datastore":"/mnt/local-dir/share/kubernetes","quota":false,"read_only":false,"replicate":true,"shared":false,"size":"","volume":"/mnt/local-dir/share/kubernetes"}],"network_interface":[{"bridge":"vmbr0","enabled":true,"firewall":false,"host_managed":false,"mac_address":"BC:24:11:3E:D9:8F","mtu":0,"name":"eth0","rate_limit":0,"vlan_id":0}],"node_name":"pve","operating_system":[{"template_file_id":"local:vztmpl/almalinux-10-default_20250930_amd64.tar.xz","type":"centos"}],"pool_id":null,"protection":false,"start_on_boot":true,"started":true,"startup":[],"tags":["k3s"],"template":false,"timeout_clone":1800,"timeout_create":1800,"timeout_delete":60,"timeout_start":300,"timeout_update":1800,"unprivileged":false,"vm_id":6901,"wait_for_ip":[]},"sensitive_attributes":[[{"type":"get_attr","value":"initialization"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"user_account"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"password"}]],"private":"bnVsbA=="}]},{"module":"module.lxc_containers[\"k3s-worker-1\"]","mode":"managed","type":"proxmox_virtual_environment_container","name":"this","provider":"provider[\"registry.opentofu.org/bpg/proxmox\"]","instances":[{"schema_version":0,"attributes":{"clone":[],"console":[],"cpu":[{"architecture":"amd64","cores":4,"limit":0,"units":0}],"description":"","device_passthrough":[],"disk":[{"acl":false,"datastore_id":"local-zfs","mount_options":[],"path_in_datastore":"local-zfs:subvol-6902-disk-0","quota":false,"replicate":false,"size":16}],"environment_variables":{},"features":[{"fuse":false,"keyctl":false,"mknod":false,"mount":[],"nesting":true}],"hook_script_file_id":"","id":"6902","idmap":[],"initialization":[{"dns":[],"entrypoint":"","hostname":"k3s-worker-1.k8s","ip_config":[{"ipv4":[{"address":"192.168.69.202/24","gateway":"192.168.69.1"}],"ipv6":[]}],"user_account":[{"keys":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPFywirNcik0Slgame42AxrT6R2mZiseDWJXQ7TJV71"],"password":"CHam1996!"}]}],"ipv4":{"cni0":"10.42.1.1","eth0":"192.168.69.202","flannel.1":"10.42.1.0"},"ipv6":{"cni0":"fe80::980e:5ff:fe3f:6f9e","flannel.1":"fe80::dc38:67ff:fe60:5b15","veth01d4bfe5":"fe80::c59:14ff:fea4:275b","veth52a06ccf":"fe80::b42e:7dff:fe7a:c363","veth80d57c26":"fe80::9416:baff:fe1d:2e87","vetha0828746":"fe80::9478:e3ff:fea0:38b2","vethdb8afa2a":"fe80::708b:55ff:fe67:1286","vethdc19e6d7":"fe80::946f:c1ff:fe41:4825","vethf761fdbd":"fe80::8ce5:beff:fe8e:20e3"},"memory":[{"dedicated":4096,"swap":1024}],"mount_point":[{"acl":false,"backup":false,"mount_options":[],"path":"/mnt/kubernetes","path_in_datastore":"/mnt/local-dir/share/kubernetes","quota":false,"read_only":false,"replicate":true,"shared":false,"size":"","volume":"/mnt/local-dir/share/kubernetes"}],"network_interface":[{"bridge":"vmbr0","enabled":true,"firewall":false,"host_managed":false,"mac_address":"BC:24:11:E1:42:06","mtu":0,"name":"eth0","rate_limit":0,"vlan_id":0}],"node_name":"pve","operating_system":[{"template_file_id":"local:vztmpl/almalinux-10-default_20250930_amd64.tar.xz","type":"centos"}],"pool_id":null,"protection":false,"start_on_boot":true,"started":true,"startup":[],"tags":["k3s"],"template":false,"timeout_clone":1800,"timeout_create":1800,"timeout_delete":60,"timeout_start":300,"timeout_update":1800,"unprivileged":false,"vm_id":6902,"wait_for_ip":[]},"sensitive_attributes":[[{"type":"get_attr","value":"initialization"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"user_account"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"password"}]],"private":"bnVsbA=="}]},{"module":"module.lxc_containers[\"k3s-worker-2\"]","mode":"managed","type":"proxmox_virtual_environment_container","name":"this","provider":"provider[\"registry.opentofu.org/bpg/proxmox\"]","instances":[{"schema_version":0,"attributes":{"clone":[],"console":[],"cpu":[{"architecture":"amd64","cores":4,"limit":0,"units":0}],"description":"","device_passthrough":[],"disk":[{"acl":false,"datastore_id":"local-zfs","mount_options":[],"path_in_datastore":"local-zfs:subvol-6903-disk-0","quota":false,"replicate":false,"size":16}],"environment_variables":{},"features":[{"fuse":false,"keyctl":false,"mknod":false,"mount":[],"nesting":true}],"hook_script_file_id":"","id":"6903","idmap":[],"initialization":[{"dns":[],"entrypoint":"","hostname":"k3s-worker-2.k8s","ip_config":[{"ipv4":[{"address":"192.168.69.203/24","gateway":"192.168.69.1"}],"ipv6":[]}],"user_account":[{"keys":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPFywirNcik0Slgame42AxrT6R2mZiseDWJXQ7TJV71"],"password":"CHam1996!"}]}],"ipv4":{"cni0":"10.42.3.1","eth0":"192.168.69.203","flannel.1":"10.42.3.0"},"ipv6":{"cni0":"fe80::38b5:10ff:fe6f:2c7","flannel.1":"fe80::463:afff:fe2e:cb42","veth1578b739":"fe80::7801:b9ff:fe45:745e","veth1e049efb":"fe80::a82f:c6ff:fe74:e4f1","veth3948642e":"fe80::788a:92ff:fefb:b840","veth89f66a87":"fe80::f4e2:c5ff:fe67:b5ba","veth8e7e2fcd":"fe80::1406:acff:feee:b119","vethbdfca699":"fe80::30e7:e1ff:fe93:809f"},"memory":[{"dedicated":4096,"swap":1024}],"mount_point":[{"acl":false,"backup":false,"mount_options":[],"path":"/mnt/kubernetes","path_in_datastore":"/mnt/local-dir/share/kubernetes","quota":false,"read_only":false,"replicate":true,"shared":false,"size":"","volume":"/mnt/local-dir/share/kubernetes"}],"network_interface":[{"bridge":"vmbr0","enabled":true,"firewall":false,"host_managed":false,"mac_address":"BC:24:11:8E:EC:67","mtu":0,"name":"eth0","rate_limit":0,"vlan_id":0}],"node_name":"pve","operating_system":[{"template_file_id":"local:vztmpl/almalinux-10-default_20250930_amd64.tar.xz","type":"centos"}],"pool_id":null,"protection":false,"start_on_boot":true,"started":true,"startup":[],"tags":["k3s"],"template":false,"timeout_clone":1800,"timeout_create":1800,"timeout_delete":60,"timeout_start":300,"timeout_update":1800,"unprivileged":false,"vm_id":6903,"wait_for_ip":[]},"sensitive_attributes":[[{"type":"get_attr","value":"initialization"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"user_account"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"password"}]],"private":"bnVsbA=="}]},{"module":"module.lxc_containers[\"kasm-agent\"]","mode":"managed","type":"proxmox_virtual_environment_container","name":"this","provider":"provider[\"registry.opentofu.org/bpg/proxmox\"]","instances":[{"schema_version":0,"attributes":{"clone":[],"console":[],"cpu":[{"architecture":"amd64","cores":4,"limit":0,"units":0}],"description":"","device_passthrough":[],"disk":[{"acl":false,"datastore_id":"local-zfs","mount_options":[],"path_in_datastore":"local-zfs:subvol-6904-disk-0","quota":false,"replicate":false,"size":50}],"environment_variables":{},"features":[{"fuse":false,"keyctl":false,"mknod":false,"mount":[],"nesting":true}],"hook_script_file_id":"","id":"6904","idmap":[],"initialization":[{"dns":[],"entrypoint":"","hostname":"kasm-agent","ip_config":[{"ipv4":[{"address":"192.168.69.204/24","gateway":"192.168.69.1"}],"ipv6":[]}],"user_account":[{"keys":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPFywirNcik0Slgame42AxrT6R2mZiseDWJXQ7TJV71"],"password":"CHam1996!"}]}],"ipv4":{"br-b9ebd627a165":"172.18.0.1","docker0":"172.17.0.1","eth0":"192.168.69.204"},"ipv6":{},"memory":[{"dedicated":8192,"swap":1024}],"mount_point":[],"network_interface":[{"bridge":"vmbr0","enabled":true,"firewall":false,"host_managed":false,"mac_address":"BC:24:11:04:BD:15","mtu":0,"name":"eth0","rate_limit":0,"vlan_id":0}],"node_name":"pve","operating_system":[{"template_file_id":"local:vztmpl/almalinux-10-default_20250930_amd64.tar.xz","type":"centos"}],"pool_id":null,"protection":false,"start_on_boot":true,"started":true,"startup":[],"tags":["kasm"],"template":false,"timeout_clone":1800,"timeout_create":1800,"timeout_delete":60,"timeout_start":300,"timeout_update":1800,"unprivileged":false,"vm_id":6904,"wait_for_ip":[]},"sensitive_attributes":[[{"type":"get_attr","value":"initialization"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"user_account"},{"type":"index","value":{"value":0,"type":"number"}},{"type":"get_attr","value":"password"}]],"private":"bnVsbA=="}]}],"check_results":null}
