- Services upgrade: upgrades the Orka Kubernetes services on EKS.
- Node tooling upgrade: updates the Virtual Kubelet and Orka Engine on your ARM Mac nodes in place.
Before you upgrade
Verify your node tags
The upgrade uses a dynamic Ansible inventory to identify your ARM nodes. Each ARM EC2 Mac instance must have the EC2 tag:- Key:
role - Value:
orka-arm
Check your ARM node SSH configuration
Starting with the 3.5 to 3.6 upgrade, ARM node tooling is updated in place using Ansible rather than replacing the AMI. For this to work, your ARM EC2 Mac instances must accept SSH connections on port 22 for theec2-user account using key-based authentication. EC2 Mac instances launched with a key pair have this enabled by default. Your security group must allow inbound TCP port 22 from your CodeBuild subnets.
If your nodes cannot accept SSH, the upgrade can run over SSM instead. SSM upgrades require an S3 bucket in the same region as your ARM nodes for Ansible file transfer, and can take significantly longer (up to 4 hours). SSH is strongly recommended.
Enabling SSH on nodes launched without a key pair
If your nodes were not launched with a key pair and do not accept SSH connections, you can use SSM to install a public SSH key first, then proceed with the faster SSH upgrade path. This requires your instances to be SSM-managed: theAmazonSSMManagedInstanceCore policy must be attached to the instance profile.
To set this up:
- Generate an SSH key pair (ed25519 or RSA).
-
Run the following SSM command to install the public key on all tagged ARM nodes:
The identity running
send-commandrequiresssm:SendCommandon the target instances and on theAWS-RunShellScriptdocument, plusssm:GetCommandInvocation. - Store the private key in AWS Secrets Manager as a plaintext secret.
-
Grant your CodeBuild service role permission to read the secret:
- Ensure your security group allows inbound TCP port 22 from your CodeBuild subnets.
Multi-region deployments
The upgrade discovers ARM nodes in the region set byAWS_DEFAULT_REGION on the CodeBuild project, defaulting to us-east-1. If your ARM nodes span multiple AWS regions, you can either configure multiple steps in a single CodeBuild project (one per region), or trigger separate runs with a region override:
Upgrading the Orka services
The Orka Kubernetes services are upgraded the same way they were installed: run the CodeBuild project pointed at the Orka 3.6 Ansible image. For setup details, see Getting started with Orka on AWS. No additional configuration is required.Upgrading ARM node tooling
Over SSH (recommended)
Store your SSH private key in AWS Secrets Manager as a plaintext secret. Give your CodeBuild service role permission to read it:Over SSM
Use this method only if SSH cannot be enabled. SSM upgrades may take up to 4 hours per run. Requirements:-
Instances are SSM-managed (
AmazonSSMManagedInstanceCorepolicy attached to the instance profile). -
An S3 bucket in the same region as your ARM nodes. Set the
ANSIBLE_AWS_SSM_BUCKETenvironment variable on the CodeBuild project to the bucket name. -
CodeBuild service role permissions for Session Manager:
-
CodeBuild service role permissions on the S3 bucket:
Changing node values
By default, all configuration is read from the running node and reapplied automatically. You can also run the playbook independently to change a value without a full upgrade, for example to rename a node. Pass the value as an extra variable:| Value | Variable |
|---|---|
| Node hostname | -e override_node_hostname=<new-name> |
| License key | -e override_orka_engine_license_key=<key> |
What changes in 3.5 to 3.6
ARM node tooling updates no longer require provisioning a new EC2 Mac instance
Previously, updating tooling on ARM nodes required replacing the EC2 Mac AMI: the instance had to be deleted, a new one provisioned (a process that takes approximately 2 hours), and the node’s name, namespace, and custom tags had to be manually reapplied. Starting with the 3.5 to 3.6 upgrade path, ARM node tooling is updated in place using Ansible over SSH. Ansible runs nodes in parallel; a typical deployment completes in under 10 minutes. The following are read from the running node and reapplied automatically: node name, node IP, cluster registration, license key, VM quota, and storage layout (including data volumes on instances with local NVMe). Running VMs are not interrupted. AMI replacement is still required when the host operating system needs to be upgraded. Release notes will call this out explicitly when it applies.Upgrade Service is installed
As part of the 3.6 upgrade, the Orka Upgrade Service is deployed to your cluster. This will enable smoother tooling updates in future Orka releases without requiring you to provision new EC2 Mac instances.AWS credentials no longer required for artifact distribution
Orka binaries and container images are now distributed publicly via CloudFront. You no longer need AWS credentials configured to pull Orka artifacts during upgrades or deployments.cert-manager behavior change
Orka no longer installs its own cert-manager when configured to skip the bundled installation. This is not auto-detected: if you want Orka to skip cert-manager, configure the installation explicitly. If your cluster runs its own cert-manager and you previously experienced version or configuration conflicts with Orka’s bundled installation, those conflicts can now be avoided by opting out. If your automation or tooling depends on Orka’s cert-manager specifically, verify your setup before upgrading.Hybrid deployments (EKS control plane + on-premises Mac nodes)
If your Orka deployment combines an EKS control plane on AWS with Mac nodes on-premises, the upgrade follows the same pattern as installation: each component is upgraded using the workflow for where it runs.- EKS control plane and AWS services: Follow the AWS upgrade flow in this guide.
- On-premises Mac nodes: Follow the on-premises upgrade flow using your on-premises Ansible installation. SSH access to the nodes must be available via the same network path used during installation.

