# Verify IAM policy across multi-cloud
$ otroid provider add aws --role arn:aws:iam::123:role/otroid
✓ AWS credentials verified
$ otroid provider add hetzner --token $HCLOUD_TOKEN
✓ Hetzner API connected
_
# Generating immutable OCI image
$ kairos-init build --arch arm64 --variant hardened
Resolving base image...
Applying hardening profiles...
Building squashfs archive...
✓ Image pushed to AWS AMI (ami-0123456789)
✓ Image pushed to Hetzner Cloud (ID: 98765)
# Cryptographic seed injected via cloud-init
write_files:
- path: /etc/otroid/seed.yaml
content: |
apiVersion: otroid.io/v1alpha1
kind: NodeRegistration
metadata:
name: edge-node-99
spec:
clusterRef: edge-production-fleet
tpmEnrollment: strict
runcmd:
- [ "systemctl", "enable", "--now", "otroid-agent" ]
# Nodes discovering each other
[2026-06-12T10:01:23] [info] Booting Kairos network coordinator...
[2026-06-12T10:01:25] [info] Establishing edgeVPN P2P tunnels...
[peer] Found AWS node (ip-10-0-1-5)
[peer] Found Hetzner node (fsn1-dc14-3)
[2026-06-12T10:01:30] [success] Quorum reached. Cluster ready.
# State reconciliation started
$ flux get kustomizations
NAME REVISION READY MESSAGE
cilium-cni main@a1b2 True Applied revision main@a1b2
cert-manager main@a1b2 True Applied revision main@a1b2
apps-prod main@a1b2 False Reconciliation in progress
$ kubectl get nodes
aws-worker-1 Ready <none>
hetzner-worker-1 Ready <none>