This document explains how to create a Helm configuration for Spanner Omni on Kubernetes.
Overview
You configure Helm charts for Spanner Omni deployments on Kubernetes.
Review the available configuration options to customize your deployment. The
Helm template includes a global.platform property, which sets default values
for key settings like StorageClass and service annotations based on your
chosen platform.
Understand how the Helm chart applies platform-specific default values for Google Kubernetes Engine (GKE) and Amazon Elastic Kubernetes Service (Amazon EKS). These defaults cover configurations such as storage classes, data locations, and service annotations. Customize these settings to align with your specific deployment requirements for each platform.
Before you begin
If you haven't done so already, install Helm.
Prepare a Helm chart configuration
To create a Helm chart configuration, do the following:
Use the
helm show valuescommand to review the configuration options available for creating a deployment:helm show values oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.1.0The documentation for creating a deployment uses the
--setflag to specify various options. You can also specify these options in a YAML file and use the-fflag in thehelmcommand. For ease of deployment, the Helm template includes theglobal.platformproperty, which determines the default values for theStorageClass, service annotations, and other settings based on the platform.The following table summarizes the platform-specific default values for Google Kubernetes Engine (GKE) and Amazon EKS:
| Property | Default | Platform | |
|---|---|---|---|
| GKE | Amazon EKS | ||
storageClasses |
- name: my_scprovisioner: kubernetes.io/no-provisionervolumeBindingMode: WaitForFirstConsumer |
- name: hyperdisk-balanced-rwoprovisioner: pd.csi.storage.gke.ioparameters: type: hyperdisk-balanced |
- name: aws-gp3provisioner: ebs.csi.aws.comparameters: type: gp3- name: aws-standardprovisioner: ebs.csi.aws.comparameters: type: standard |
locations |
- name: usnamespace: ""zones:- name: "us-a"shortName: "a"replicas: 1rootServers: 1singleServer: true- name: "us-b"shortName: "b"- name: "us-c"shortName: "c" |
- name: us-east1zones:- name: us-east1-bshortName: a- name: us-east1-cshortName: b- name: us-east1-dshortName: c |
- name: us-east-1zones:- name: us-east-1ashortName: a- name: us-east-1cshortName: b- name: us-east-1dshortName: c |
dataStorageClass |
<default> |
premium-rwo |
aws-gp3 |
logsStorageClass |
<default> |
standard-rwo |
aws-standard |
serviceAnnotations |
null |
networking.gke.io/load-balancer-type: "Internal"networking.gke.io/internal-load-balancer-allow-global-access: "true" |
service.beta.kubernetes.io/aws-load-balancer-internal: "true"service.beta.kubernetes.io/aws-load-balancer-type: "nlb"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true" |
What's next
Learn how to use a Helm chart to create a multi-cluster deployment on Kubernetes for Spanner Omni.
Learn how to use a Helm chart to create a deployment on Kubernetes for Spanner Omni.