Skip to the content.

Union Helm Registry

Add this repository using:

$ helm repo add unionai https://helm.union.ai
$ helm repo update

Union Operator Helm Chart

The Union Operator Helm Chart helps you to onboard a k8s cluster to Union Cloud

Install Union Operator

To install Union Operator, the following configuration values must be set:

You can create a values.yaml file to set the required values, a sample values.yaml file is provided below:

Production Clusters (Connect directly to s3/gcs/… etc.)

union:
  cloudUrl: <Union Cloud URL>
  appId: <App Id from uctl create app>
  appSecret: <App secret from uctl create app>
  metadataBucketPrefix: s3://my-s3-bucket
  storage:
    type: "s3" 
    bucketName: "<s3 bucket>"
    s3:
      region: "us-east-1"

Sandbox Clusters (kind, k3s, minikube… etc.)

union:
  cloudUrl: <Union Cloud URL>
  appId: <App Id from uctl create app>
  appSecret: <App secret from uctl create app>
  metadataBucketPrefix: s3://my-s3-bucket
  configmap:
    k8s:
      plugins:
        k8s:
          default-env-vars:
            - FLYTE_AWS_ENDPOINT: "http://minio.union.svc.cluster.local:9000"
            - FLYTE_AWS_ACCESS_KEY_ID: minio
            - FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage

Install Union Operator by running this command:

$ helm install -n union -f values.yaml --create-namespace union-operator unionai/union-operator 

Upgrade Union Operator

$ helm upgrade -n union -f values.yaml --create-namespace union-operator unionai/union-operator

Appendix

Example values file for installing union-operator on EKS:

union:
  cloudUrl: <Union Cloud URL>
  appId: <App Id from uctl create app>
  appSecret: <App secret from uctl create app>
  metadataBucketPrefix: "s3://<s3 bucket>"
  userRoleAnnotationKey: eks.amazonaws.com/role-arn
  userRoleAnnotationValue: "<User role with s3 access>"
  storage:
    type: "s3"
    bucketName: "<s3 bucket>"
    s3:
      region: "{vars.region}"
  flytepropeller:
    serviceAccount:
      annotations:
        eks.amazonaws.com/role-arn: "<Propeller role with s3 access>"
  cluster_resource_manager:
    config:
      # The cluster resource config specifies the default resource quota and user roles for each <project>-<domain> kubernetes namespace.   
      cluster_resources:
        customData:
          - production:
              - projectQuotaCpu:
                  value: "64"
              - projectQuotaMemory:
                  value: "32Gi"
              - projectQuotaNvidiaGpu:
                  value: "1"
              - defaultUserRoleKey:
                  value: 'eks.amazonaws.com/role-arn'
              - defaultUserRoleValue:
                  value: '<User role with s3 access>'
          - staging:
              - projectQuotaCpu:
                  value: "64"
              - projectQuotaMemory:
                  value: "32Gi"
              - projectQuotaNvidiaGpu:
                  value: "1"
              - defaultUserRoleKey:
                  value: 'eks.amazonaws.com/role-arn'
              - defaultUserRoleValue:
                  value: '<User role with s3 access>'
          - development:
              - projectQuotaCpu:
                  value: "64"
              - projectQuotaMemory:
                  value: "32Gi"
              - projectQuotaNvidiaGpu:
                  value: "1"
              - defaultUserRoleKey:
                  value: 'eks.amazonaws.com/role-arn'
              - defaultUserRoleValue:
                  value: '<User role with s3 access>'