Prerequisites
Before you begin, confirm you’ve met all of the following prerequisites:- A CKS cluster with
kubectlaccess configured. - The
helmCLI installed. For installation instructions, see Install Helm. - The
uctlCLI installed. - The
flyteCLI installed. - A Union.ai organization. Contact Union.ai to create one if you don’t have one.
Configure CoreWeave AI Object Storage
Union.ai uses AI Object Storage (S3-compatible) to store workflow data and artifacts. To configure storage, complete the following steps:Create a bucket
Create a bucket in the CoreWeave Cloud Console. Navigate to Storage > Object Storage and create a bucket in your chosen Availability Zone. For detailed instructions, see Create a bucket.Generate access credentials
Navigate to Administration > Object Storage Access Keys in the Cloud Console and create an access key pair. Record the Access Key ID and Secret Key for use in later steps. You need this key pair so the Helm values and workload environment variables can authenticate to your bucket. For detailed instructions, see Create access keys.Create an access policy
Create an organization access policy that grants your access key permissions on the bucket. Navigate to Administration > Policies > Object Storage Access in the Cloud Console and create a policy with the following JSON. Replace[BUCKET-NAME] with the name of your bucket.
Configure the Union CLI
Update youructl configuration to point to your Union.ai organization endpoint.
Edit the ~/.union/config.yaml file:
[ORG-NAME] with your Union.ai organization name.
To verify connectivity, run:
uctl uses the correct organization endpoint.
Provision data plane resources
Set yourKUBECONFIG to the CKS cluster where you want to deploy the data plane:
Create the Helm values file
AI Object Storage requires virtual-hosted style S3 URLs. The default Union.ai configuration uses path-style URLs, which CoreWeave doesn’t support. Update the generated Helm values file with the following storage configuration. Replace all placeholder values with your credentials and settings.The
uctl selfserve provision-dataplane-resources command in the previous step generates the [CLIENT-ID] and [CLIENT-SECRET] values. Use the values from that command’s output.
Together, these values align the chart with AI Object Storage.
Deploy the Union data plane
To deploy the data plane, complete the following steps:-
Clone the Union Helm charts repository and check out the latest stable release:
Replace
[RELEASE-TAG]with the latest stable release tag (for example,dataplane-2026.3.3). Check the Union Helm charts repository for available tags.After checkout, you have the CRD and dataplane charts for the release you install. -
Install the Custom Resource Definitions (CRDs):
-
Build the chart dependencies and install the data plane:
Replace
[PATH-TO-VALUES-FILE]with the path to the Helm values file you customized in the previous section. -
Verify the deployment:
When the deployment succeeds, all Pods show a
Runningstatus, includingunion-operator-proxy,union-operator-buildkit,flytepropeller, andexecutor.
Register the cluster
After deploying the data plane, register the cluster with the Union.ai control plane so that the control plane can schedule workflows on the cluster. To register the cluster, complete the following steps:-
Clone the Union cloud repository and create a branch for your organization:
Replace
[CLOUD-REPO-URL]with your organization’s cloud repository URL. Replace[ORG-NAME]with your organization name. -
Generate tenant configurations:
-
Commit and push the generated configurations:
- Trigger a Buildkite build for your organization’s staging pipeline. In Buildkite, start New Build (not Rebuild) for the pipeline. That starts a pipeline run that picks up the branch you pushed.
-
Verify cluster registration:
The output is similar to the following:
Create the eager API key
Flyte v2 task execution requires an eager API key. To create the key, run:If you receive a
PermissionDenied error, contact Union.ai support to enable the permission for your organization.Test a workflow
Run a sample workflow to confirm that the data plane, control plane, and storage backend work together end to end. To run a sample workflow, complete the following steps:-
Create a Flyte CLI configuration file at the path
.flyte/config.yamlin your project directory: Replace[ORG-NAME]and[PROJECT-NAME]with your organization and project identifiers. -
Run a sample workflow:
If the remote image builder isn’t enabled for your organization, use the
--imageflag with a pre-built container image as in theflyte runexample. -
Check the run status:
Replace
[RUN-NAME]with the workflow run identifier.Look forACTION_PHASE_SUCCEEDEDin the output.
ACTION_PHASE_SUCCEEDED appears in the output, the sample workflow has completed successfully on your deployment.