Post upgrade steps for No-Spark
This documentation is for Kyvos 2026.1.x. To view documentation for other Kyvos versions, click here. |
|---|
Post-upgrade steps to configure Kubernetes
From Kyvos 2025.3 onwards, support for the latest Kubernetes version on AWS (EKS), Azure (AKS), and GCP (GKE) for cluster upgrades has been added.
EKS and GKE: Kubernetes version 1.32 is supported.
AKS: Kubernetes version 1.31 is supported.
To upgrade EKS, refer to AWS Documentation.
To upgrade AKS, refer to Azure Documentation.
To upgrade GKE, refer to GCP Documentation.
From Kyvos 2025.4 onwards, the latest Kubernetes version, 1.32, on AWS (EKS), is supported for fresh deployments and cluster upgrades.
To configure Kubernetes to the latest release on AWS, perform the following steps.
Open OIDC role.
Click the Create inline policy option.
Copy the OIDC-POLICY.JSON content and paste it in the Specify Permission section.
Search the NODE_GROUP_ROLE_ARN in the pasted content and replace it with the ARN mentioned in the following image.
Open trust entity of OIDC role and click Edit.
Add system:serviceaccount:kube-system:cluster-autoscaler in the array of condition.
Go to the NodeGroup Role and remove the GetSecret policy from the role.
Upgrade the cluster with the release version you want to upgrade to.
Update the IAM Stack automated_deployment_iam_role.json and select yes to give EKS-related permissions to the IAM role.
Create an EKS cluster using CreateEks.json.
Run the following commands one by one on every Kyvos node to install kubectl
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin/ --install-dir /usr/local/aws-cli --update o curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.29.3/2024-04-19/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo chown kyvos:kyvos kubectl
sudo mv kubectl /bin/
sudo mkdir -p /home/kyvos/.kube
sudo chown -R kyvos:kyvos /home/kyvos/.kube
Run the commands below from sudo user on Kyvos Manager node to install eksctl.
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$ (uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo cp /tmp/eksctl /bin/
Once the EKS cluster is created, go to the created node then go to Security.
Click the eks-cluster-sg-kyvosEks-{STACK-NAME}-random number as Security group.
Add inbound rule to the above security group with TCP 6903 and source group will be the Security Group attached to the Analytical Server.
Add inbound rule to the Web server security group with TCP 2181 and source group will be the Security Group which was mentioned above (eks-cluster-sg-kyvosEks-{STACK-NAME}-random number).
Add inbound rule to the Analytical Server security group with TCP 2181 and source group will be the Security Group which was mentioned above (eks-cluster-sg-kyvosEks-{STACK-NAME}-random number).
Add inbound rule to the Analytical Server security group with TCP 45460 and source group will be the Security Group which was mentioned above (eks-cluster-sg-kyvosEks-{STACK-NAME}-random number).
Add inbound rule to the Analytical Server security group with TCP 6803 and source group will be the Security Group which was mentioned above (eks-cluster-sg-kyvosEks-{STACK-NAME}-random number).
Open the deployment bucket permission section and add the ARN of OIDC and Node group role in the array.
Once the above changes are done, navigate to compute cluster page on Kyvos Manager and click on Native. Choose Containerized Kubernetes.
Provide the name of the Kubernetes Cluster, then Node Pool name and then the K8S auth role name. The name of the role can be found in the resource section of the EKS creation stack.
Copy the value of the EKSOidcRole key and that is the K8S auth role name.
Validate the information and click Save.
Create an AKS cluster via script. To create the AKS cluster, refer to Azure documentation.
Upload the CreateAks.json script (available in Azure Installation files folder) and complete the parameters given in the script.
Once the AKS cluster is created, configure it through Kyvos Manager on the Computer cluster page.
Note
Provide the same managed identity that is used in your Kyvos environment.
Ensure that you create an AKS cluster in the same Resource Group and Virtual Network where your Kyvos environment is running.
Post upgrade for Compute Master
After creating compute master, you can configure to process the semantic model on a Compute Master (Independent Cluster), rather than on the Analytical Server. By default, semantic model processing runs on the Analytical Server within the same process.
To configure Kubernetes on GCP, perform the following steps.
Execute the following commands using the gcloud CLI to link the Kubernetes Service account to the IAM Service account.
gcloud iam service-accounts add-iam-policy-binding IAM_SA_NAME@IAM_SA_PROJECT_ID.iam.gserviceaccount.com --role roles/iam.workloadIdentityUser --member "serviceAccount:PROJECT_ID.svc.id.goog[kyvos-compute/kyvos-sa]"NOTE: Namespace can be custom.
In the above-mentioned commands, replace the following:
IAM_SA_NAME: a name for your new IAM service account.
IAM_SA_PROJECT_ID: the project ID for your IAM service account.
PROJECT_ID: your Google Cloud project ID.
Additionally, if using a shared Virtual Network, below roles and permissions are required on by Default service account of Kubernetes (service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com) on project of Shared Virtual Network
Compute Network User
kubernetes_role (create a custom role)
compute.firewalls.create
compute.firewalls.delete
compute.firewalls.get
compute.firewalls.list
compute.firewalls.update
compute.networks.updatePolicy
compute.subnetworks.get
container.hostServiceAgent.use
· Add the following roles to the existing IAM Kyvos service account:
roles/iam.serviceAccountTokenCreator (Service Account Token Creator)
roles/container.developer (Kubernetes Engine Developer)
roles/container.clusterAdmin (Kubernetes Engine Cluster Admin)
Add the below permissions to existing service account:
compute.instanceGroupManagers.update
compute.instanceGroupManagers.get
SSH on All Instances one by one and run the below commands-
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates gnupg curl -y
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get update && sudo apt-get install google-cloud-cli -y
sudo apt-get install google-cloud-cli-gke-gcloud-auth-plugin
sudo apt-get install kubectl
To install the Google Cloud CLI on all Kyvos nodes, refer to Google documentation.
Create Kubernetes cluster using Deployment scripts.
Open Kyvos Manager, go to Compute cluster page, Click the Kyvos Native tab.
Fill in the required inputs. Value provided to Worker Nodes Maximum Count should be same as you configured in templates. Click Save.
On Kyvos Manager > navigate to the Kyvos Properties page, ensure that the value of the KYVOS_PROCESS_COMPUTE_SUBTYPE property is Kubernetes compute.
Post-upgrade steps to configure external dedicated compute cluster
If you use ARM architecture instances (Graviton) for Kyvos, you must also use them for dedicated compute, similarly for non-Graviton instances.
To create a new dedicated compute cluster, see the Working with dedicated compute cluster (AWS, Azure, and GCP) section.
To a dedicated compute cluster by downloading the PostCreationDedicatedComputeAWS.json JSON file available in the AWS installation Files folder,
To a dedicated compute cluster by downloading the PostCreationDedicatedComputeAzure.json JSON file available in the Azure installation Files folder,
To a dedicated compute cluster by downloading the PostCreationDedicatedComputeGCP.json JSON file available in the GCP installation Files folder.
In case of an existing deployment upgraded to version 2025.4, you must update the PostCreationDedicatedCompute script on the dedicated compute cluster for all clouds (AWS, Azure, and GCP). See the Working with dedicated compute cluster (AWS, Azure, and GCP) section and follow case 2 as specified for all cloud platforms (AWS, Azure, and GCP), and delete the existing attached script.
After deploying Kyvos using no-Spark processing model, perform the following post deployment steps.
Modify the values of the following properties in the advance properties of semantic model job:
kyvos.process.compute.type=KYVOS_COMPUTE
This property is required only if the Default Compute Cluster Type is External at the application levelkyvos.build.aggregate.type=TABULAR
This property is not required if the semantic model is configured for Kyvos compute-based processing.
You need to add the Storage Blob Data Contributor role and add external location on the Azure portal.
To add the Storage Blob Data Contributor role,
On the Home page of the Azure portal, search for Storage Accounts.
On the Storage Accounts page, select the storage account that is used for deployment.
Navigate to Access Control (IAM).
Select the Storage Blob Data Contributor role from the list.
In the Assign Access to section, select Managed Identity.
Click Select Member.
On the Select Managed Identity dialog, select the Access Connector for Azure Databricks from the list.
Click Review+assign and click save the permission.
To add an external location,
Go to Databricks workspace. In the left pane, click Catalog.
Click Settings, and then click External Locations.
On the External Location page, click Create location.
On the Create Location dialog, add external location name, select the credentials from the list, and URL
The URL must be in abfss://<Container name >@<Storage name >.dfs.core.windows.net/<Cluster engine_work directroy>
For example, abfss://kyvoscontainer@kyvossa05751.dfs.core.windows.net/user/engine_workClick Create. Click Grant and select all privileges and grant them to the user whose token is used for while creating SQL Warehouse connection.
Click Grant. The Permission is assigned.
Post upgrade steps for the automated Shared Kubernetes
After deploying Kyvos, please follow these steps:
Access the Kubernetes console and add taints.
Create an auto-scaler separately and in parallel to the node group from the Kubernetes console.
Log in to Kyvos Manager.
In the navigation pane, click on Utilities, then Manage Configuration Files.
On the Manage Configuration Files page, find the file named
kyvos-compute-worker-job.yaml.templateand click Download. The file will be downloaded.Open the downloaded file and add the taint details (ensuring proper indentation) from the terminal.
After updating the file, click the corresponding Upload button.
On the Kyvos Manager node, navigate to the following path:
/data/kyvos/installs/kyvosmanager_war/kyvosmanager/cloud/aws/templates/kyvos-k8s/
Then run the following command:kubectl delete -f kyvos-compute-worker-disk-class.yamlOpen the file using the
vieditor:vi kyvos-compute-worker-disk-class.yamlIn the file, search for the keyword
gp2, and then add the following lines:encrypted: "true" kmsKeyId: arn:aws:kms:us-east-1:712283365795:key/eb18d30a-c5b6-408f-93c2-c5d8e098999aApply the updated file again using the following command:
kubectl apply -f kyvos-compute-worker-disk-class.yamlSave the changes on the Compute Server page.
Trigger the sanity check from Kyvos Manager. After this, both Kyvos and Kyvos Manager are upgraded to the latest version.
After the upgrade, repeat all of the above steps (1 to 13) without terminal access.
Resave the Compute Server page and trigger the sanity check again from Kyvos Manager.