Skip to content

Instantly share code, notes, and snippets.

@newbenhd
Created November 22, 2024 00:34
Show Gist options
  • Save newbenhd/5403f7df2874a6def2f6bd12720878fd to your computer and use it in GitHub Desktop.
Save newbenhd/5403f7df2874a6def2f6bd12720878fd to your computer and use it in GitHub Desktop.
custom yugabyte helm value
# Default values for yugabyte.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
Component: "yugabytedb"
fullnameOverride: ""
nameOverride: ""
Image:
repository: "yugabytedb/yugabyte"
tag: 2024.1.3.0-b105
pullPolicy: IfNotPresent
pullSecretName: ""
storage:
ephemeral: false # will not allocate PVs when true
master:
count: 2
size: 10Gi
storageClass: ""
tserver:
count: 2
size: 10Gi
storageClass: "premium-rwo"
resource:
master:
requests:
cpu: "0.5"
memory: 2Gi
limits:
## Ensure the 'memory' value is strictly in 'Gi' or 'G' format. Deviating from these formats
## may result in setting an incorrect value for the 'memory_limit_hard_bytes' flag.
## Avoid using floating numbers for the numeric part of 'memory'. Doing so may lead to
## the 'memory_limit_hard_bytes' being set to 0, as the function expects integer values.
memory: 2Gi
tserver:
requests:
cpu: "0.5"
memory: 2Gi
limits:
## Ensure the 'memory' value is strictly in 'Gi' or 'G' format. Deviating from these formats
## may result in setting an incorrect value for the 'memory_limit_hard_bytes' flag.
## Avoid using floating numbers for the numeric part of 'memory'. Doing so may lead to
## the 'memory_limit_hard_bytes' being set to 0, as the function expects integer values.
memory: 2Gi
replicas:
master: 3
tserver: 3
## Used to set replication factor when isMultiAz is set to true
totalMasters: 3
partition:
master: 0
tserver: 0
updateStrategy:
type: RollingUpdate
# Used in Multi-AZ setup
masterAddresses: ""
isMultiAz: false
AZ: ""
# Disable the YSQL
disableYsql: false
tls:
# Set to true to enable the TLS.
enabled: false
nodeToNode: true
clientToServer: true
# Set to false to disallow any service with unencrypted communication from joining this cluster
insecure: false
# Set enabled to true to use cert-manager instead of providing your own rootCA
certManager:
enabled: true
# Will create own ca certificate and issuer when set to true
bootstrapSelfsigned: true
# Use ClusterIssuer when set to true, otherwise use Issuer
useClusterIssuer: false
# Name of ClusterIssuer to use when useClusterIssuer is true
clusterIssuer: cluster-ca
# Name of Issuer to use when useClusterIssuer is false
issuer: yugabyte-ca
certificates:
# The lifetime before cert-manager will issue a new certificate.
# The re-issued certificates will not be automatically reloaded by the service.
# It is necessary to provide some external means of restarting the pods.
duration: 2160h # 90d
renewBefore: 360h # 15d
algorithm: RSA # ECDSA or RSA
# Can be 2048, 4096 or 8192 for RSA
# Or 256, 384 or 521 for ECDSA
keySize: 2048
## When certManager.enabled=false, rootCA.cert and rootCA.key are used to generate TLS certs.
## When certManager.enabled=true and boostrapSelfsigned=true, rootCA is ignored.
## When certManager.enabled=true and bootstrapSelfsigned=false, only rootCA.cert is used
## to verify TLS certs generated and signed by the external provider.
rootCA:
cert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFXTVJRd0VnWURWUVFERXd0WmRXZGgKWW5sMFpTQkVRakFlRncweE9UQXlNRGd3TURRd01qSmFGdzB5T1RBeU1EVXdNRFF3TWpKYU1CWXhGREFTQmdOVgpCQU1UQzFsMVoyRmllWFJsSUVSQ01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnVOMWF1aWc4b2pVMHM0OXF3QXhrT2FCaHkwcTlyaVg2akVyZWJyTHJOWDJOeHdWQmNVcWJkUlhVc3VZNS96RUQKUC9CZTNkcTFuMm9EQ2ZGVEwweGkyNFdNZExRcnJBMndCdzFtNHM1WmQzcEJ1U04yWHJkVVhkeUx6dUxlczJNbgovckJxcWRscXp6LzAyTk9TOE9SVFZCUVRTQTBSOFNMQ1RjSGxMQmRkMmdxZ1ZmemVXRlVObXhWQ2EwcHA5UENuCmpUamJJRzhJWkh5dnBkTyt3aURQM1Y1a1ZEaTkvbEtUaGUzcTFOeDg5VUNFcnRJa1pjSkYvWEs3aE90MU1sOXMKWDYzb2lVMTE1Q2svbGFGRjR6dWgrZk9VenpOVXRXeTc2RE92cm5pVGlaU0tQZDBBODNNa2l2N2VHaDVkV3owWgpsKzJ2a3dkZHJaRzVlaHhvbGhGS3pRSURBUUFCbzBJd1FEQU9CZ05WSFE4QkFmOEVCQU1DQXFRd0hRWURWUjBsCkJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dFQkFEQjVRbmlYd1ptdk52eG5VbS9sTTVFbms3VmhTUzRUZldIMHY4Q0srZWZMSVBTbwpVTkdLNXU5UzNEUWlvaU9SN1Vmc2YrRnk1QXljMmNUY1M2UXBxTCt0V1QrU1VITXNJNk9oQ05pQ1gvQjNKWERPCkd2R0RIQzBVOHo3aWJTcW5zQ2Rid05kajAyM0lwMHVqNE9DVHJ3azZjd0RBeXlwVWkwN2tkd28xYWJIWExqTnAKamVQMkwrY0hkc2dKM1N4WWpkK1kvei9IdmFrZG1RZDJTL1l2V0R3aU1SRDkrYmZXWkJVRHo3Y0QyQkxEVmU0aAp1bkFaK3NyelR2Sjd5dkVodzlHSDFyajd4Qm9VNjB5SUUrYSszK2xWSEs4WnBSV0NXMnh2eWNrYXJSKytPS2NKClFsL04wWExqNWJRUDVoUzdhOTdhQktTamNqY3E5VzNGcnhJa2tKST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdU4xYXVpZzhvalUwczQ5cXdBeGtPYUJoeTBxOXJpWDZqRXJlYnJMck5YMk54d1ZCCmNVcWJkUlhVc3VZNS96RURQL0JlM2RxMW4yb0RDZkZUTDB4aTI0V01kTFFyckEyd0J3MW00czVaZDNwQnVTTjIKWHJkVVhkeUx6dUxlczJNbi9yQnFxZGxxenovMDJOT1M4T1JUVkJRVFNBMFI4U0xDVGNIbExCZGQyZ3FnVmZ6ZQpXRlVObXhWQ2EwcHA5UENualRqYklHOElaSHl2cGRPK3dpRFAzVjVrVkRpOS9sS1RoZTNxMU54ODlVQ0VydElrClpjSkYvWEs3aE90MU1sOXNYNjNvaVUxMTVDay9sYUZGNHp1aCtmT1V6ek5VdFd5NzZET3ZybmlUaVpTS1BkMEEKODNNa2l2N2VHaDVkV3owWmwrMnZrd2RkclpHNWVoeG9saEZLelFJREFRQUJBb0lCQUJsdW1tU3gxR1djWER1Mwpwei8wZEhWWkV4c2NsU3U0SGRmZkZPcTF3cFlCUjlmeGFTZGsxQzR2YXF1UjhMaWl6WWVtVWViRGgraitkSnlSCmpwZ2JNaDV4S1BtRkw5empwU3ZUTkN4UHB3OUF5bm5sM3dyNHZhcU1CTS9aZGpuSGttRC9kQzBadEEvL0JIZ3YKNHk4d3VpWCsvUWdVaER0Z1JNcmR1ZUZ1OVlKaFo5UE9jYXkzSkkzMFhEYjdJSS9vNFNhYnhTcFI3bTg5WjY0NwpUb3hsOEhTSzl0SUQxbkl1bHVpTmx1dHI1RzdDdE93WTBSc2N5dmZ2elg4a1d2akpLZVJVbmhMSCtXVFZOaExICjdZc0tMNmlLa1NkckMzeWVPWnV4R0pEbVdrZVgxTzNPRUVGYkc4TjVEaGNqL0lXbDh1dGt3LzYwTEthNHBCS2cKTXhtNEx3RUNnWUVBNnlPRkhNY2pncHYxLzlHZC8yb3c2YmZKcTFjM1dqQkV2cnM2ZXNyMzgrU3UvdVFneXJNcAo5V01oZElpb2dYZjVlNjV5ZlIzYVBXcjJJdWMxZ0RUNlYycDZFR2h0NysyQkF1YkIzczloZisycVNRY1lkS3pmCnJOTDdKalE4ZEVGZWdYd041cHhKOTRTTVFZNEI4Qm9hOHNJWTd3TzU4dHpVMjZoclVnanFXQ1VDZ1lFQXlVUUIKNzViWlh6MGJ5cEc5NjNwYVp0bGlJY0cvUk1XMnVPOE9rVFNYSGdDSjBob25uRm5IMGZOc1pGTHdFWEtnTTRORworU3ZNbWtUekE5eVVSMHpIMFJ4UW44L1YzVWZLT2k5RktFeWx6NzNiRkV6ZW1QSEppQm12NWQ4ZTlOenZmU0E0CkdpRTYrYnFyV3VVWWRoRWlYTnY1SFNPZ3I4bUx1TzJDbGlmNTg0a0NnWUFlZzlDTmlJWmlOODAzOHNNWFYzZWIKalI5ZDNnYXY3SjJ2UnVyeTdvNDVGNDlpUXNiQ3AzZWxnY1RnczY5eWhkaFpwYXp6OGNEVndhREpyTW16cHF4cQpWY1liaFFIblppSWM5MGRubS9BaVF2eWJWNUZqNnQ5b05VVWtreGpaV1haalJXOGtZMW55QmtDUmJWVnhER0k4CjZOV0ZoeTFGaUVVVGNJcms3WVZFQlFLQmdRREpHTVIrYWRFamtlRlUwNjVadkZUYmN0VFVPY3dzb1Foalc2akkKZVMyTThxakNYeE80NnhQMnVTeFNTWFJKV3FpckQ3NDRkUVRvRjRCaEdXS21veGI3M3pqSGxWaHcwcXhDMnJ4VQorZENxODE0VXVJR3BlOTBMdWU3QTFlRU9kRHB1WVdUczVzc1FmdTE3MG5CUWQrcEhzaHNFZkhhdmJjZkhyTGpQCjQzMmhVUUtCZ1FDZ3hMZG5Pd2JMaHZLVkhhdTdPVXQxbGpUT240SnB5bHpnb3hFRXpzaDhDK0ZKUUQ1bkFxZXEKZUpWSkNCd2VkallBSDR6MUV3cHJjWnJIN3IyUTBqT2ZFallwU1dkZGxXaWh4OTNYODZ0aG83UzJuUlYrN1hNcQpPVW9ZcVZ1WGlGMWdMM1NGeHZqMHhxV3l0d0NPTW5DZGFCb0M0Tkw3enJtL0lZOEUwSkw2MkE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
## When tls.certManager.enabled=false
## nodeCert and clientCert will be used only when rootCA.key is empty.
## Will be ignored and genSignedCert will be used to generate
## node and client certs if rootCA.key is provided.
## cert and key are base64 encoded content of certificate and key.
nodeCert:
cert: ""
key: ""
clientCert:
cert: ""
key: ""
gflags:
master:
default_memory_limit_to_ram_ratio: 0.85
tserver: {}
# use_cassandra_authentication: false
yugabytedUi:
enabled: true
# If recoverWithoutFailure is true, yugabyted-ui will automatically try to restart itself
# instead of failing and causing the pod to restart
recoverWithoutFailure: true
recoveryInterval: 30s
# metricsSnapshotter must be enabled for yugabytedUi to properly display metrics
metricsSnapshotter:
enabled: true
# time between each metric snapshot in ms
interval: 11000
whitelist:
- handler_latency_yb_tserver_TabletServerService_Read_count
- handler_latency_yb_tserver_TabletServerService_Write_count
- handler_latency_yb_tserver_TabletServerService_Read_sum
- handler_latency_yb_tserver_TabletServerService_Write_sum
- disk_usage
- cpu_usage
- node_up
PodManagementPolicy: Parallel
enableLoadBalancer: false
ybc:
enabled: false
## https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container
## Use the above link to learn more about Kubernetes resources configuration.
# resources:
# requests:
# cpu: "1"
# memory: 1Gi
# limits:
# cpu: "1"
# memory: 1Gi
ybCleanup: {}
## https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container
## Use the above link to learn more about Kubernetes resources configuration.
# resources:
# requests:
# cpu: "1"
# memory: 1Gi
# limits:
# cpu: "1"
# memory: 1Gi
domainName: "cluster.local"
serviceEndpoints:
- name: "yb-master-ui"
type: ClusterIP
annotations: {}
# clusterIP: ""
## Sets the Service's externalTrafficPolicy
externalTrafficPolicy: ""
app: "yb-master"
# loadBalancerIP: ""
ports:
http-ui: "7000"
- name: "yb-tserver-service"
type: ClusterIP
annotations: {}
clusterIP: ""
## Sets the Service's externalTrafficPolicy
externalTrafficPolicy: ""
app: "yb-tserver"
# loadBalancerIP: ""
ports:
tcp-yql-port: "9042"
tcp-yedis-port: "6379"
tcp-ysql-port: "5433"
- name: "yugabyted-ui-service"
type: ClusterIP
annotations: {}
# clusterIP: ""
## Sets the Service's externalTrafficPolicy
externalTrafficPolicy: ""
app: "yb-master"
# loadBalancerIP: ""
sessionAffinity: ClientIP
ports:
yugabyted-ui: "15433"
Services:
- name: "yb-masters"
label: "yb-master"
skipHealthChecks: false
memory_limit_to_ram_ratio: 0.85
ports:
http-ui: "7000"
tcp-rpc-port: "7100"
yugabyted-ui: "15433"
- name: "yb-tservers"
label: "yb-tserver"
skipHealthChecks: false
ports:
http-ui: "9000"
tcp-rpc-port: "9100"
tcp-yql-port: "9042"
tcp-yedis-port: "6379"
tcp-ysql-port: "5433"
http-ycql-met: "12000"
http-yedis-met: "11000"
http-ysql-met: "13000"
grpc-ybc-port: "18018"
yugabyted-ui: "15433"
## Should be set to true only if Istio is being used. This also adds
## the Istio sidecar injection labels to the pods.
## TODO: remove this once
## https://github.com/yugabyte/yugabyte-db/issues/5641 is fixed.
##
istioCompatibility:
enabled: false
## Settings required when using multicluster environment.
multicluster:
## Creates a ClusterIP service for each yb-master and yb-tserver
## pod.
createServicePerPod: false
## creates a ClusterIP service whos name does not have release name
## in it. A common service across different clusters for automatic
## failover. Useful when using new naming style.
createCommonTserverService: false
## Enable it to deploy YugabyteDB in a multi-cluster services enabled
## Kubernetes cluster (KEP-1645). This will create ServiceExport.
## GKE Ref - https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-services#registering_a_service_for_export
## You can use this gist for the reference to deploy the YugabyteDB in a multi-cluster scenario.
## Gist - https://gist.github.com/baba230896/78cc9bb6f4ba0b3d0e611cd49ed201bf
createServiceExports: false
## Mandatory variable when createServiceExports is set to true.
## Use: In case of GKE, you need to pass GKE Hub Membership Name.
## GKE Ref - https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-services#enabling
kubernetesClusterId: ""
## mcsApiVersion is used for the MCS resources created by the
## chart. Set to net.gke.io/v1 when using GKE MCS.
mcsApiVersion: "multicluster.x-k8s.io/v1alpha1"
serviceMonitor:
## If true, two ServiceMonitor CRs are created. One for yb-master
## and one for yb-tserver
## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#servicemonitor
##
enabled: false
## interval is the default scrape_interval for all the endpoints
interval: 30s
## extraLabels can be used to add labels to the ServiceMonitors
## being created
extraLabels: {}
# release: prom
## Configurations of ServiceMonitor for yb-master
master:
enabled: true
port: "http-ui"
interval: ""
path: "/prometheus-metrics"
## Configurations of ServiceMonitor for yb-tserver
tserver:
enabled: true
port: "http-ui"
interval: ""
path: "/prometheus-metrics"
ycql:
enabled: true
port: "http-ycql-met"
interval: ""
path: "/prometheus-metrics"
ysql:
enabled: true
port: "http-ysql-met"
interval: ""
path: "/prometheus-metrics"
yedis:
enabled: true
port: "http-yedis-met"
interval: ""
path: "/prometheus-metrics"
commonMetricRelabelings:
# https://git.io/JJW5p
# Save the name of the metric so we can group_by since we cannot by __name__ directly...
- sourceLabels: ["__name__"]
regex: "(.*)"
targetLabel: "saved_name"
replacement: "$1"
# The following basically retrofit the handler_latency_* metrics to label format.
- sourceLabels: ["__name__"]
regex: "handler_latency_(yb_[^_]*)_([^_]*)_([^_]*)(.*)"
targetLabel: "server_type"
replacement: "$1"
- sourceLabels: ["__name__"]
regex: "handler_latency_(yb_[^_]*)_([^_]*)_([^_]*)(.*)"
targetLabel: "service_type"
replacement: "$2"
- sourceLabels: ["__name__"]
regex: "handler_latency_(yb_[^_]*)_([^_]*)_([^_]*)(_sum|_count)?"
targetLabel: "service_method"
replacement: "$3"
- sourceLabels: ["__name__"]
regex: "handler_latency_(yb_[^_]*)_([^_]*)_([^_]*)(_sum|_count)?"
targetLabel: "__name__"
replacement: "rpc_latency$4"
resources: {}
nodeSelector: {}
affinity: {}
statefulSetAnnotations: {}
networkAnnotation: {}
commonLabels: {}
## @param dnsPolicy DNS Policy for pod
## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
## E.g.
## dnsPolicy: ClusterFirst
dnsPolicy: ""
## @param dnsConfig DNS Configuration pod
## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
## E.g.
## dnsConfig:
## options:
## - name: ndots
## value: "4"
dnsConfig: {}
master:
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#affinity-v1-core
## This might override the default affinity from service.yaml
# To successfully merge, we need to follow rules for merging nodeSelectorTerms that kubernentes
# has. Each new node selector term is ORed together, and each match expression or match field in
# a single selector is ANDed together.
# This means, if a pod needs to be scheduled on a label 'custom_label_1' with a value
# 'custom_value_1', we need to add this 'subterm' to each of our pre-defined node affinity
# terms.
#
# Pod anti affinity is a simpler merge. Each term is applied separately, and the weight is tracked.
# The pod that achieves the highest weight is selected.
## Example.
# affinity:
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# - labelSelector:
# matchExpressions:
# - key: app
# operator: In
# values:
# - "yb-master"
# topologyKey: kubernetes.io/hostname
#
# For further examples, see examples/yugabyte/affinity_overrides.yaml
affinity: {}
## Extra environment variables passed to the Master pods.
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#envvar-v1-core
## Example:
# extraEnv:
# - name: NODE_IP
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
extraEnv: []
# secretEnv variables are used to expose secrets data as env variables in the master pod.
# TODO Add namespace also to support copying secrets from other namespace.
# secretEnv:
# - name: MYSQL_LDAP_PASSWORD
# valueFrom:
# secretKeyRef:
# name: secretName
# key: password
secretEnv: []
## Annotations to be added to the Master pods.
podAnnotations: {}
## Labels to be added to the Master pods.
podLabels: {}
## Tolerations to be added to the Master pods.
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#toleration-v1-core
## Example:
# tolerations:
# - key: dedicated
# operator: Equal
# value: experimental
# effect: NoSchedule
tolerations: []
## Extra volumes
## extraVolumesMounts are mandatory for each extraVolumes.
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#volume-v1-core
## Example:
# extraVolumes:
# - name: custom-nfs-vol
# persistentVolumeClaim:
# claimName: some-nfs-claim
extraVolumes: []
## Extra volume mounts
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#volumemount-v1-core
## Example:
# extraVolumeMounts:
# - name: custom-nfs-vol
# mountPath: /home/yugabyte/nfs-backup
extraVolumeMounts: []
## Set service account for master DB pods. The service account
## should exist in the namespace where the master DB pods are brought up.
serviceAccount: ""
## Memory limit hard % (between 1-100) of the memory limit.
memoryLimitHardPercentage: 100
## Readiness Probe
readinessProbe:
enabled: true
initialDelaySeconds: 30
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 3
successThreshold: 1
## Custom readinessProbe that overrides the default one
## Example: HTTP based Master readinessProbe
# customReadinessProbe:
# initialDelaySeconds: 30
# periodSeconds: 20
# timeoutSeconds: 10
# failureThreshold: 3
# successThreshold: 1
# httpGet:
# path: /
# port: 7000
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes
customReadinessProbe: {}
## Startup probe
startupProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 30
successThreshold: 1
## Custom startupProbe that overrides the default one
## Enabling it will overrides the tserver.startupProbe
## Example: HTTP based Master startupProbe
# customStartupProbe:
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 5
# failureThreshold: 3
# successThreshold: 1
# httpGet:
# path: /
# port: 7000
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
customStartupProbe: {}
tserver:
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#affinity-v1-core
## This might override the default affinity from service.yaml
# To successfully merge, we need to follow rules for merging nodeSelectorTerms that kubernentes
# has. Each new node selector term is ORed together, and each match expression or match field in
# a single selector is ANDed together.
# This means, if a pod needs to be scheduled on a label 'custom_label_1' with a value
# 'custom_value_1', we need to add this 'subterm' to each of our pre-defined node affinity
# terms.
#
# Pod anti affinity is a simpler merge. Each term is applied separately, and the weight is tracked.
# The pod that achieves the highest weight is selected.
## Example.
# affinity:
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# - labelSelector:
# matchExpressions:
# - key: app
# operator: In
# values:
# - "yb-tserver"
# topologyKey: kubernetes.io/hostname
# For further examples, see examples/yugabyte/affinity_overrides.yaml
affinity: {}
## Extra environment variables passed to the TServer pods.
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#envvar-v1-core
## Example:
# extraEnv:
# - name: NODE_IP
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
extraEnv: []
## secretEnv variables are used to expose secrets data as env variables in the tserver pods.
## If namespace field is not specified we assume that user already
## created the secret in the same namespace as DB pods.
## Example
# secretEnv:
# - name: MYSQL_LDAP_PASSWORD
# valueFrom:
# secretKeyRef:
# name: secretName
# namespace: my-other-namespace-with-ldap-secret
# key: password
secretEnv: []
## Annotations to be added to the TServer pods.
podAnnotations: {}
## Labels to be added to the TServer pods.
podLabels: {}
## Tolerations to be added to the TServer pods.
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#toleration-v1-core
## Example:
# tolerations:
# - key: dedicated
# operator: Equal
# value: experimental
# effect: NoSchedule
tolerations: []
## Sets the --server_broadcast_addresses flag on the TServer, no
## preflight checks are done for this address. You might need to add
## `use_private_ip: cloud` to the gflags.master and gflags.tserver.
serverBroadcastAddress: ""
## Extra volumes
## extraVolumesMounts are mandatory for each extraVolumes.
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#volume-v1-core
## Example:
# extraVolumes:
# - name: custom-nfs-vol
# persistentVolumeClaim:
# claimName: some-nfs-claim
extraVolumes: []
## Extra volume mounts
## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#volumemount-v1-core
## Example:
# extraVolumeMounts:
# - name: custom-nfs-vol
# path: /home/yugabyte/nfs-backup
extraVolumeMounts: []
## Set service account for tserver DB pods. The service account
## should exist in the namespace where the tserver DB pods are brought up.
serviceAccount: ""
## Memory limit hard % (between 1-100) of the memory limit.
memoryLimitHardPercentage: 100
## Readiness Probe
readinessProbe:
enabled: true
initialDelaySeconds: 30
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 3
successThreshold: 1
## Custom readinessProbe that overrides the default one
## Enabling it will overrides the tserver.readinessProbe
## Example: HTTP based Tserver readinessProbe
# customReadinessProbe:
# initialDelaySeconds: 30
# periodSeconds: 20
# timeoutSeconds: 10
# httpGet:
# path: /
# port: 9000
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes
customReadinessProbe: {}
## Startup probe
startupProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 30
successThreshold: 1
## Custom startupProbe that overrides the default one
## Enabling it will overrides the tserver.startupProbe
## Example: HTTP based Tserver startupProbe
# customStartupProbe:
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 5
# failureThreshold: 3
# successThreshold: 1
# httpGet:
# path: /
# port: 9000
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
customStartupProbe: {}
helm2Legacy: false
ip_version_support: "v4_only" # v4_only, v6_only are the only supported values at the moment
# For more https://docs.yugabyte.com/latest/reference/configuration/yugabyted/#environment-variables
authCredentials:
ysql:
user: "admin"
password: "admin"
database: "kraken"
ycql:
user: ""
password: ""
keyspace: ""
oldNamingStyle: true
preflight:
# Set to true to skip disk IO check, DNS address resolution, and
# port bind checks
skipAll: false
# Set to true to skip port bind checks
skipBind: false
## Set to true to skip ulimit verification
## SkipAll has higher priority
skipUlimit: false
## Pod securityContext
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context
## The following configuration runs YB-Master and YB-TServer as a non-root user
podSecurityContext:
enabled: false
## Mark it false, if you want to stop the non root user validation
runAsNonRoot: true
fsGroup: 10001
runAsUser: 10001
runAsGroup: 10001
## Added to handle old universe which has volume annotations
## K8s universe <= 2.5 to >= 2.6
legacyVolumeClaimAnnotations: false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment