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​
-
Save the
values.yaml
file provided by Ascend -
Set the following bash variables:
tipAfter 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> -
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-namespacetipIf 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
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}