Infrastructure and Agent

Setup

podmin setup \
  --vpc-cidr 10.0.0.0/16 \
  --nat64 \
  --nodegroup default \
  --nodegroup workers,size=3,disk-size=100,instance-type=c8g.large,zone=b,nat64=t4g.small

Setup:

Public subnets provide direct IPv6 egress without NAT. Security groups expose no ports to the internet; ingress is available only from other cluster VMs. Public applications use an outbound tunnel Pod.

Each VM's agent serves a read-only registry on loopback and reads only requested objects from S3 through the regional AWS dual-stack endpoint. Containerd can pull and resolve apps/ and setup-managed mirror/ images; only the CLI writes image objects. The registry performs no bucket listing, discovery, or background storage work.

Bootstrap

Cloud-init user-data:

Agent

podmin-agent --provider=aws --bucket=<bucket> --region=<region> --cluster=<cluster-id> --nodegroup=<nodegroup-id> --ipv6-prefix=<delegated-prefix> runs as a systemd service and:

AWS instances and ENIs carry podmin:cluster and podmin:nodegroup tags. Their IAM role reads cluster-scoped Parameter Store and Secrets Manager values plus dependencies/, apps/, mirror/, deployments/, nodegroups/, services/, dns/, and identity/ in S3. S3 writes are limited to dns/, public workload CA state under identity/, and the exact external publication object when configured. User-data installs and starts AWS SSM Agent with dual-stack endpoints, and the role grants its messaging and instance-status permissions for Session Manager and Run Command without granting broader Parameter Store access.

Secrets Manager values encrypted with a customer-managed KMS key additionally require the instance role to receive kms:Decrypt for that key; Podmin does not grant access to arbitrary customer keys.

Node Diagnostics

After connecting through SSM, use crictl pods and crictl ps -a to inspect workloads, crictl logs <container-id> to read container logs, and crictl inspect <container-id> or crictl inspectp <pod-id> for detailed runtime state. The installed /etc/crictl.yaml selects Podmin's containerd socket automatically.

Further Reading

See the technical specification for protocols, storage layout, DNS, reconciliation, and failure behavior.