Skip to main content
Version: 3.0.0

Bring your own Ascend Instance backend

This guide walks you through configuring your own Ascend Instance backend on a Kubernetes cluster.

Prerequisites​

  • Kubernetes cluster
  • Terminal access to interact with your Kubernetes cluster
  • Helm CLI version 3.16.0 or higher

Gather configuration information​

Before installing the Ascend Instance backend, you'll need to collect some information from your Kubernetes cluster. You'll use this information with the Helm package manager during installation.

First, identify your cluster's OIDC issuer and decide which namespace you'll use, then provide this information to Ascend.

If you don't know how to find your cluster's issuer, consult your cluster administrator.

If you are the cluster admin, you can find it by accessing a service account token. Connect to any pod with a mounted service account token using:

kubectl exec -it -n NAMESPACE POD_NAME -- bash

Then retrieve the token (this is safe as tokens are regularly rotated by Kubernetes):

cat /var/run/secrets/kubernetes.io/serviceaccount/token | pbcopy

To extract the issuer from the token, run:

echo $TOKEN_VAL | cut -d "." -f 2 | base64 -D | jq '.iss'

Replace TOKEN_VAL with the token value, or use pbpaste if available on your system.

Ascend will provide you with a values.yaml file for installation that looks similar to this:

instance:
uuid: "01953933-14ed-7240-ba0c-36a6039b7de9" # Required: Instance UUID
organizationUuid: "018fbc9f-49a2-7909-bb26-dd017195e3d4" # Required: Organization UUID
subdomain: "acme-self-hosted-instance" # Required: Subdomain for instance
managedIdentity:
ascend:
domainHash: "i5ft3k"
instanceHash: "un2edj"
aws:
enabled: true
clusterIssuerHash: "jh3t7v"
enabled: true
environments:
- id: dev
uuid: 01953936-7c3f-7e83-be35-f6e84f860b4e
hash: "aervpl"
- id: stage
uuid: 01953936-9892-7261-91ac-9e9d83cd4271
hash: "xibnsu"
- id: prod
uuid: 01953936-add7-7905-81cf-a5f3b6163918
hash: "6wdtcs"
msk:
roleArn: "arn:aws:iam::905936477528:role/asc-a-i5ft3k-un2edj-i"
clusterArn: "arn:aws:kafka:us-east-1:905936477528:cluster/app-dev/f696d209-f38c-4fc3-9b2a-6f591ccbb5bd-5"

Install the Ascend Instance backend​

  1. Save the values.yaml file provided by Ascend

  2. Set the following bash variables:

    tip

    After creating your cluster, you can get the cluster context by running kubectl config current-context.

    export KUBE_CONTEXT=gke_<gcp-project>_<region>_<cluster-name>
    export NAMESPACE=<your-namespace> # this should be the same as the subdomain
    export RELEASE_NAME=ascend-deploy-0 # you can change this if desired
    export VALUES_FILE=<path/to/values.yaml>
  3. Install the Helm chart:

    # If the namespace doesn't exist yet
    helm install \
    ${RELEASE_NAME} \
    oci://quay.io/ascendio/charts/instance-backend \
    -f ${VALUES_FILE} \
    --kube-context ${KUBE_CONTEXT} \
    --namespace ${NAMESPACE} \
    --create-namespace
    tip

    If the namespace already exists, you can omit the --create-namespace flag.

Upgrade the Ascend Instance backend​

To upgrade your Ascend Instance backend, run:

helm upgrade \
${RELEASE_NAME} \
oci://quay.io/ascendio/charts/instance-backend \
--kube-context ${KUBE_CONTEXT} \
-n ${NAMESPACE} \
--reuse-values
tip

If you've updated your values.yaml file, remove the --reuse-values flag and specify the new values with -f ${VALUES_FILE}.

Uninstalling the Ascend Instance backend​

To uninstall your Ascend Instance backend, run:

helm uninstall \
${RELEASE_NAME} \
--kube-context ${KUBE_CONTEXT} \
-n ${NAMESPACE}