The SWIFT is a container orchestration, backup, and disaster recovery (DR) solution for Kubernetes and OpenShift environments. It provides an Any-to-Any DR capability, enabling seamless sync between source and target container platforms across public clouds and on-premises datacenters. SWIFT works on top of existing container platforms such as Kubernetes and OpenShift.


This KB article covers:


Initial SWIFT setup


After creating a SWIFT instance from Oracle Marketplace: Please refer how_to_spin_out_swift_from_marketplace

    1. Connect to the SWIFT instance.

    2. Set a password for the admin user using the following command: 

sudo swiftcli user modify admin --password <password_of_your_choice>



Accessing the SWIFT dashboard


Use the following URL to access the SWIFT dashboard:

https://<swift-host-ip>/swift/dashboard/

If login is successful, the SWIFT dashboard will be accessible and ready for Kubernetes/OpenShift migration, backup, and DR operations. 



Downloading the Operations Guide


You can download the SWIFT Operations Guide using either of the following methods:


From Login Page you can download the Installation and Prerequisite Guide from the SWIFT Dashboard.



Uploading the TRAI image to Oracle Cloud Infrastructure Registry (OCIR)


TRAI stands for Transient RackWare Agent Image. TRAI is an exclusive container image deployed with the SWIFT. It is used by the SWIFT server to deploy under your SWIFT managed Kubernetes or OpenShift cluster for the transient sync time.To know more about TRAI image, please check the “SWIFTOperationsGuide.pdf”

 

The TRAI image needs to be uploaded to the container registry for the SWIFT managed Kubernetes or OpenShift cluster. It is an one-time configuration step. The below section highlights steps for uploading TRAI image to Oracle Cloud Infrastructure Registry (OCIR). If you are managing any non-OCI clusters under SWIFT (like you source cloud or on-prem cluster for migration, for example), then you can use the SWIFT Operations Guide for specific steps. The steps overall remain the same for uploading TRAI image to any registry type. 


Note: It's not mandatory to use OCIR registry and you can use a container registry of your choice. Just make the TRAI image available to the source and target namespace by setting up the image pull secret with similar steps as below.


Uploading TRAI Image to OCIR

Step 1: Login to OCIR

Use Docker login to authenticate with OCIR.

docker login <region-key>.ocir.io

Example: 

docker login phx.ocir.io

Example Credentials 

Username: a502645/swift
Password: <auth-token>

Replace <auth-token> with your OCI authentication token. 


For more information about OCIR authentication, refer to:
Oracle Container Registry Documentation 


Step 2: Copy TRAI Image Tar File

Copy the TRAI image tar file from the SWIFT server to a machine where Docker is installed.

Default file location:

/opt/swift/traipod/rackware-trai-docker.tar.gz


Step 3: Load the Docker Image

Navigate to the directory containing the tar file and execute:

docker load < rackware-trai-docker.tar.gz

Verify the image: 

docker images

Example output: 

REPOSITORY        TAG                 IMAGE ID       CREATED        SIZE
Rackware-trai     Release-1.0.6.37    148d70c65ab7   18 hours ago   837 MB


Step 4: Tag the Image for OCIR

Tag the Docker image before pushing it to OCIR.

Syntax:

docker tag <IMAGE_ID> <region-key>.ocir.io/<tenancy-namespace>/<repository-name>:<tag>

Example: 

docker tag 148d70c65ab7 phx.ocir.io/a502645/swift:release-1.0.6.37

Verify the tagged image: 

docker images

Example output: 

REPOSITORY                  TAG                 IMAGE ID       CREATED        SIZE
Rackware-trai               Release-1.0.6.37    148d70c65ab7   18 hours ago   837 MB
phx.ocir.io/a502645/swift  Release-1.0.6.37    148d70c65ab7   18 hours ago   837 MB


Step 5: Push the Image to OCIR

Push the tagged image to OCIR.

Syntax:

docker push <region-key>.ocir.io/<tenancy-namespace>/<repository-name>:<tag>

Example: 

docker push phx.ocir.io/a502645/swift:release-1.0.6.37



Configuring image-pull secrets on Kubernetes/OpenShift clusters


After uploading the TRAI image to OCIR, create image-pull secrets in both source and target Kubernetes/OpenShift namespaces. 


Step 6: Create Image Pull Secret on Source Cluster

Syntax:

kubectl --namespace <app-namespace> create secret docker-registry <secret-name> \
--docker-server=<region-key>.ocir.io \
--docker-username=<username> \
--docker-password=<auth-token> \
--docker-email=<email>

Example: 

kubectl --namespace app1 create secret docker-registry ocirsecret \
--docker-server=phx.ocir.io \
--docker-username='a502645/swift' \
--docker-password='k]k64r{1sHJSF-;)K8' \
--docker-email='swift@rackwareinc.com'


Step 7: Create Image Pull Secret on Target Cluster

Repeat the same process on the OCI Kubernetes target cluster.

Example:

kubectl --namespace tgt-app1 create secret docker-registry ocirsecret \
--docker-server=phx.ocir.io \
--docker-username='a502645/swift' \
--docker-password='k]k64r{1sHJSF-;)K8' \
--docker-email='swift@rackwareinc.com'



#Required Values for SWIFT Sync Configuration 


After completing the setup, note the following values for future sync configurations: 

| Parameter         | Example                                      |
| ----------------- | -------------------------------------------- |
| TRAI Image Name   | `phx.ocir.io/a502645/swift:release-1.0.6.37` |
| Image Pull Secret | `ocirsecret`                                 |


#Important Notes


 - Uploading the TRAI image is a one-time configuration step. 

 - Using OCIR is optional; any accessible container registry can be used. 

 - Ensure the registry is reachable from both source and target clusters. 

 - The image-pull secret must exist in the application namespaces participating in migration or sync.