Applies to: Kyvos Enterprise
Kyvos Cloud (SaaS on AWS)
Kyvos AWS Marketplace
Kyvos Azure Marketplace
Kyvos GCP Marketplace
Kyvos Single Node Installation (Kyvos SNI)
Before you begin
In addition to the prerequisites, please ensure the following settings are enabled on your GCP project.
Project Billing: For this, search Billing on your Google Cloud project.
Click Link a Billing Account, and configure the billing information.
Once your billing is enabled, you will see an estimate as shown in the following figure.
Cloud Deployment Manager V2 API: Search Cloud Deployment Manager V2 API on your project and click the Enable button.
Once the API is enabled, the API Enabled status is displayed, as shown in the following figure.Compute Engine APIs: Search for Compute Engine APIs on your project, and click the Enable button.
Once the API is enabled, the corresponding status is displayed, as shown in the following figure.Cloud Resource Manager API: Search for Cloud Resource Manager API on your project, and click the Enable button.
Once the API is enabled, the API Enabled status is displayed, as shown in the following figure.Enable the following APIs on your project. Refer to the GCP documentation for details.
Cloud Functions
Cloud Build
Cloud Scheduler
Create an App Engine project, and select the region where you want to deploy your resources.
To the default Google APIs Service Agent service account, add the storage.buckets.get role. This is required to delete deployment through the Deployment Manager.
Kubernetes Engine API: Search for Kubernetes Engine API on your project and click the Enable button. Once the API is enabled, the API Enabled status is displayed.
Creating resources using script
Download the gcp.tar file from the GCP Installation Files folder on your workstation.
On your workstation, install the gcloud command-line tool.
Configure the gcloud command-line tool to use your project using the following command.
gcloud config set project [MY_PROJECT]
Here, replace [MY_PROJECT] with your project ID.Copy the script tar file and untar it.
Update the following parameters in the kyvos-template.yaml (provided in the gcp.tar) as per your business requirement.
Enter details for Kyvos resources with Kubernetes and Dataproc:
Parameter | Description |
---|---|
existingVpcName | |
existingvpcProjectId | |
existingSubnetworkName | |
createNetworkFirewall | To create firewall rules, set the value of this parameter to false. NOTE: If the value of createVPC is set to true, firewall rules will be created unconditionally. |
gkeSubnetName | Enter the name of an existing Subnet in which you want to deploy GKE Cluster. If left blank subnetwork name will be used. |
secondaryRangeName1 | Enter the Secondary IPv4 ranges name for GKE Cluster creation. NOTE: This must be preconfigured if using an existing VPC. For more information, see Google documentation. |
secondaryRangeName2 | Enter the Secondary IPv4 ranges name for GKE Cluster creation. NOTE: This must be preconfigured if using an existing VPC. For more information, see Google documentation. |
secondaryRange1 | |
secondaryRange2 | |
vpcConnectorName | Enter the name of the VPC Connector to be used with GCP functions. |
kmCount | The number of Kyvos Manager instances to be launched. |
kmInstanceType | Instance type of Kyvos Manager (n2-standard-4). |
kmVolumeSizeGB | Size of the disk to be attached to the Kyvos Manager. |
kmVolumeType | Type of the disk for KM (pd-ssd). |
hostNameBasedDeployment | Change the value to true to use the hostname for the cluster deployment. |
createLoadBalancer | Set the value as true to create load balancer. By default, the value is set as false. |
enableWebServerHA | Set the value as true for enabling webserver High Availability. By default, the value is set as false. |
webServerCount | |
webServerInstanceType | |
webServerVolumeSizeGB | |
webServerVolumeType | |
qeCount | The number of instances to be used as query engines. |
qeInstanceType | Instance type of query engine (n2-highmem-4). |
qeDataVolumeSizeGB | Size of the disk to be attached with query engines. |
qeCacheVolumeSizeGB | Size of the disk to be attached for the cache. |
qeCacheVolumeCount | The number of disks to be attached to the cache. |
qeCacheVolumeType | |
biCount | Enter the number of instances to be used as the BI server. |
biInstanceType | Instance type of BI Server (n2-standard-8). |
biBootScript | startup-script-bi.sh |
biVolumeCount | The number of disks to be attached to the BI Server. |
biVolumeSizeGB | Size of the disk to be attached to the BI Server. |
biVolumeType | Type of the disk for BI server (pd-ssd) |
createGcpFunctions | Set the value as true to configure GCP Functions in Kyvos. |
dataprocMetastoreURI | Enter the Metastore URI if you want to deploy Kyvos with no Spark configuration. |
createGKE | Enter the value as True or False.
|
gkeWorkerInitialNodeCount | Enter the initial worker node count for the Kubernetes cluster. NOTE: The default value is 1. |
gkeWorkerInstancetype | Enter the worker node instance type for the Kubernetes cluster. NOTE: n2-standard-16 is the minimum configuration. Instance type smaller than this aren't supported. |
minPodCount | Enter minimum pod count. NOTE:
|
maxWorkerNodeCount | Enter the maximum worker node count. |
createDataProc | Enter the value as True or False.
|
enableComponentGateway | Set the value of ‘enableComponentGateway’ to True to get publicly accessible URL for Dataproc. |
sharedDataprocCluster | Select true to use the shared Dataproc cluster. In this case, Kyvos will not manage the Dataproc cluster.Select false to use the on-demand Dataproc cluster. In this case, the Dataproc cluster will automatically start or stop. |
dataProcNetworkTags | Provide a list of comma-separated network tags to be added to the Dataproc cluster. Example: dataProcNetworkTags : ["abc","xyz"] |
enableSshFlag | Set the value to true to enable SSH to the Dataproc cluster. |
enableLivy | Set the value of Livy to True if using Dataproc version 2.1.11-debian11. |
masterInstanceCount | The number of master nodes. For example, 1 |
masterInstanceType | Instance type of master node (n2-highmem-4) |
masterInstanceVolumeType | Type of the disk for master node (pd-ssd) |
workerInstanceCount | The number of worker instances. |
workerInstanceType | Instance type of worker node (n2-highmem-8) |
workerInstanceVolumeType | Type of the disk for worker node (pd-ssd) |
enableDataProcMetastore | Set the value as true to allow external Dataproc metastore. |
dataProcMetastoreProjectId | If enable DataProcMetastore is set as true, provide the name of the metastore project ID. |
dataProcMetaStoreName | Provide the name of the metastore name. |
dataProcVersion | Supported version is 2.1.11-debian11 |
enableAutoScaling | Set the value as true to enable the autoscaling of cluster nodes. |
existingAutoScalingPolicyName | Provide the name of the existing autoscaling property, if any. |
secondaryWorkerMinInstanceCount | Specify the number of minimum worker instances to be kept running while scaling. |
secondaryWorkerMaxInstanceCount | Specify the number of maximum worker instances to be kept running while scaling. |
existingDataprocClusterName | Enter the name of the existing Dataproc cluster. NOTE: Use these Configurations if you want to use the existing Dataproc and set the value of the parameter (createDataProc) to false. |
sshPrivateKeyDataproc | The private key of existing Dataproc. NOTE: The private key should be base64 encoded |
dataprocUsername | Name of the user. |
createServiceAccount | Change the value to false if you want to use the existing Service Account. |
serviceAccountName | Enter the service account name to be attached to all Kyvos Virtual Machines. |
enableNodeScaling | Set the value to false to disable the addition of permission required for Node Scaling on Service Account. |
createSecretManager | Set value of the parameter to true to create a new secret manager for Kyvos. |
secretManagerName | Provide the name of the existing Secret Manager. |
secretManagerProjectId | Provide the name of the Project ID in which the existing secret manager is created. |
customPrefixNameDataproc | A prefix is to be added before the name of Dataproc. |
customPrefixNameGKE | A prefix is to be added before GKE. |
customPrefixNameBI | A prefix is to be added before the name of BI virtual machines. |
customPrefixNameBIDisk | A prefix is to be added before the name of BI Disks. |
customPrefixNameQE | A prefix is to be added before the name of Query Engine virtual machines. |
customPrefixNameQEDisk | A prefix is to be added before the name of Query Engine disks. |
customPrefixNameKM | A prefix is to be added before the name of the Kyvos Manager virtual machine. |
customPrefixNameKMDataDisk | A prefix is to be added before the name of the Kyvos Manager disk. |
enableEncryption | Set the value to true to enable encryption for the deployment,Encryption will be enabled for Secret Manager, google storage buckets, and disks. |
cmkKeyRingName | |
cmkKeyName | |
bucketName | |
kyvosWorkDir | Provide the path of the Kyvos work directory. |
kyvosClusterName | Name of the Kyvos cluster to be deployed. |
bundleAccessKey | Key to access Kyvos bundle. |
bundleSecretKey | The secret key for Kyvos bundle. |
sshPublicKey | Text of the SSH public key for authentication. |
sshPrivateKey | Enter the SSH private Key text of the pem file. NOTE: The text must be in base64 encoded. |
kyvosLicenseFileValue | Enter a valid Kyvos license key. NOTE: It should be base64 encoded |
additionalLabels | Labels to be added to the resources. |
Note
Possible values in volume type fields:
For SSD type disk: pd-ssd
For standard disk: pd-standard
Change the value of the parameter kmCount to 0 in the kyvos-template.yaml file to go with wizard-based deployment.
Once created, you can validate if the resources meet the requirements for installing Kyvos on the Google cloud platform.
Post-deployment, for a non-SSH based cluster, if you use an existing Dataproc cluster and a new bucket for automated deployment on GCP, you must execute the dataproc.sh script on the master node of Dataproc after modifying the values of DEPLOYMENT_BUCKET, WORK_DIR, COPY_LIB, and DATAPROC_VERSION to the name of the existing bucket. Then, sync the library and configuration files from the Kyvos Manager on the Dataproc page.
Tip
If you encounter any issue while processing the semantic model through Kubernetes, you cab debug the issue. For more details about debugging, see the Kubernetes documentation.
Using existing Service Account
Once Kyvos resources are created using Kubernetes, 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-monitoring/default]"
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/default]"
In the above-mentioned commands, replace the following:
IAM_SA_NAME: The name of your new IAM service account.
IAM_SA_PROJECT_ID: The project ID of your IAM service account.
PROJECT_ID: The project ID of your Google Cloud.
Note
After creating resources using scripts, the configuration of the Kyvos GCP cluster on Kyvos Manager is no longer needed. Once the resources are successfully created, deployment of the Kyvos cluster will commence automatically on logging into the Kyvos Manager portal.
Tip
In case of any failures in the Cloud-init service on any of the Kyvos Instances, you can view the Cloud-init logs directly from the GCP Cloud logging UI. Refer to the Troubleshooting GCP deployment section for details.
Warning
If you want to attach an autoscaling policy to your cluster, follow the steps given in Enabling Autoscaling on cluster.