Skip to main content
Requires Orka 3.5 or later. If you’re on an earlier version, see the release notes for your version before proceeding.
This guide walks you through the process of migrating your existing NFS-based images to OCI using Harbor storage in Orka 3.5.

Prerequisites

  • Orka cluster upgraded to version 3.5.0 or later
  • Harbor instance provisioned by MacStadium
  • Harbor credentials (URL, username, password) from your IP Plan
  • VPN connection configured per your IP plan
  • List of existing NFS images to migrate
  • Inventory of all integrations currently using these images

Step 1: Upgrade to Orka 3.5+

You can verify your Orka version using the Orka3 CLI command orka3 version If an upgrade is needed:
  • Contact MacStadium Support to schedule the upgrade
  • Review the Orka v3.5 (or later) release notes to better understand how upgrading may impact you
  • Plan for your scheduled upgrade maintenance window

Step 2: Provision Harbor OCI Registry

Submit a support request for Harbor instance provisioning. Once the request is complete, you will receive the following:
  • A Harbor instance URL (Usually the last IP in your Orka subnet, e.g., https://10.221.189.254)
  • Harbor metrics URL (e.g., http://10.221.189.254:9090/metrics)
  • Project Admin username + password
  • Default project name (usually this is set to library)
Access the Harbor web interface:
  • Connect to VPN (per your IP plan)
  • Navigate to your Harbor instance URL in your browser
  • Log in using the credentials provided in your IP Plan
  • Verify you can access your project dashboard

Step 3: Configure Orka to Connect to Harbor

  • Add your Harbor registry credentials to Orka using the Orka3 CLI:
  • Verify your credentials using
  • Note: Registry credentials are namespace-specific. If you use namespaces other than orka-default, add credentials to each namespace:

Step 4: Convert NFS Images to OCI Format

  • Confirm the image(s) you’d like to migrate by running orka3 image list and noting the image(s) to convert.
  • Deploy a VM from the specified NFS image:
  • Wait for the VM to begin running
  • Push the VM as an OCI image to Harbor:
  • Monitor push status using
  • After pushing to Harbor, cache the new OCI image on your Orka nodes:
  • To cache the image on a specific node, run:
  • Monitor image caching status:
  • Clean up the temporary VM by running:
To do so via the Harbor web UI:
  • Log in to the Harbor web interface
  • Navigate to ‘Projects’ -> ‘Library’
  • Click ‘Repositories’
  • Verify your image appears with the correct tag, repeating the process for each NFS image to migrate

Step 5: Update CI/CD Integrations

GitHub Actions

Old workflow example:
New workflow example:

Jenkins

Old Jenkinsfile example:
New Jenkinsfile example:

GitLab CI

Old .gitlab-ci.yml example:
New .gitlab-ci.yml workflow example:

Packer Templates

Old HCL:
New HCL:
Packer-built images should also be pushed to Harbor using the new OCI format.

Validation and Testing

  • Example test VM deployment from an OCI image
  • Verify the VM boots successfully using
  • Use orka3 vm vnc validation-vm to get the VNC connection information for the VM
  • Run any integration smoke tests your organization uses
  • Monitor Harbor storage

Migration Best Practices

  • Keep NFS images available during transition
  • Migrate integrations gradually (not all at once)
  • Test OCI images thoroughly before removing NFS versions
  • Maintain rollback capability
  • Use consistent, semantic naming conventions for images, such as:
  • Pre-cache frequently used images on all nodes
  • Schedule image caching during off-peak hours
For more information on using Harbor with the Orka3 CLI, see Using Harbor OCI Storage with the Orka CLI.