Cluster Configuration Options
POST /api/v1/clusters/aws answers {"cluster_id", "name", "kind": "aws", "state": "creating", "operation_id"}; track the operation to see provisioning progress.
Node groups
Each entry ofnode_groups:
Egress modes
Nodes never receive a public IP, so every private subnet must route0.0.0.0/0 somewhere. Ankra never mixes modes on one cluster.
Omitted, it resolves to
nat_gateway for a created VPC. For an adopted VPC preflight resolves it: subnets with egress select existing; empty subnets without it select bastion_nat; subnets without egress that hold foreign instances are refused with a message naming them.
What Ankra creates
Everything Ankra creates carries three tags, and the credential’s write permissions are conditioned on them:
Teardown deletes everything in this table that carries the cluster’s tags, the created network included (NAT gateways and their Elastic IPs, route tables, subnets, internet gateway, VPC), in reverse order. A stop keeps the network and its NAT gateways, which keep billing.
In an adopted VPC, never created, modified or deleted: your VPC, subnets, internet gateway, NAT gateways, DHCP options set, and any route table Ankra did not create. In
bastion_nat mode the node subnets’ association is moved to the Ankra route table and moved back at teardown; the route tables themselves are untouched.
IMDS guard
The hop limit of 3 on control planes is compensated by the IMDS guard: a cluster-wide network policy in the AWS cloud-provider stack that denies pod egress to
169.254.169.254 for every pod except the EBS CSI controller. It is rendered for Cilium and Calico. Flannel has no policy engine, so on a flannel cluster the guard is not installed, the create result reports imds_guard: unavailable, and a pod scheduled onto a control-plane node can reach the control-plane instance role - prefer Cilium (the default) or keep the control planes tainted.
Catalogs
Every catalog loads live from your credential -ankra cluster aws regions, vpcs, subnets, availability-zones, instance-types, images and pricing, or the endpoints in the catalog API. The tables below are orientation, not the offer.
Regions
Any region your credential can
DescribeRegions is offered; opt-in regions appear once enabled in your account.
Instance types
Onlyamd64 types are offered. Prices are per region and per hour; ankra cluster aws pricing and the wizard show the live figure.
Burstable
t3 types spend CPU credits under sustained load; use m6i/c6i/r6i for a control plane or workers that run flat out. ankra cluster aws instance-types lists what the region offers, with vCPUs, memory, architecture and network performance.Images
The AMI ID is resolved from these public SSM parameters in the target region at create time, so every cluster boots the current stable image of its series. The images catalog (
ankra cluster aws images, GET /api/v1/clusters/aws/images) answers ubuntu_series, architectures and default_series, and lists only the series whose AMI resolves in that region.
Limits
Catalog API
Every catalog takescredential_id and region as query parameters (subnets also takes vpc_id), and every answer is three-state: a value Ankra could not read says so rather than reading as empty or zero.
Cluster API
Node Group API Reference
Control Plane API
Node Actions API
See Restarting, Diagnosing and Repairing a Node and Bastion health and resize for usage examples.
Credential API
The bearer-token twins of the AWS credential onboarding, for scripts and the CLI. Connecting a credential from the dashboard is documented on AWS Credentials.
Creating a cluster needs a keys credential, or a role credential whose scope is
provisioning (the AnkraProvisioning role, which covers EKS and self-managed clusters) or self_managed (the EC2-only AnkraSelfManagedProvisioning role); a cost-scoped role is refused.
The CLI wraps the three: ankra credentials aws onboarding [--scope cost|provisioning|self_managed] prints the external ID, trust principal, launch-stack URL and the follow-up command; ankra credentials aws create-role --name <name> --role-arn <arn> --external-id <id> [--region <region>] [--scope <scope>] stores the role; ankra credentials aws create-keys --name <name> --access-key-id <id> [--region <region>] stores access keys, asking for the secret on a masked prompt (never a flag); ankra credentials aws list shows what is connected.