Repository for dip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

359 lines
11 KiB

#
# Copyright 2024 The Kubeflow authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Default values for spark-operator.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
# -- String to partially override release name.
nameOverride: ""
# -- String to fully override release name.
fullnameOverride: ""
# -- Common labels to add to the resources.
commonLabels: {}
image:
# -- Image registry.
registry: docker.io
# -- Image repository.
repository: kubeflow/spark-operator
# -- Image tag.
# @default -- If not set, the chart appVersion will be used.
tag: ""
# -- Image pull policy.
pullPolicy: IfNotPresent
# -- Image pull secrets for private image registry.
pullSecrets: []
# - name: <secret-name>
controller:
# -- Number of replicas of controller.
replicas: 1
# -- Reconcile concurrency, higher values might increase memory usage.
workers: 10
# -- Configure the verbosity of logging, can be one of `debug`, `info`, `error`.
logLevel: info
uiService:
# -- Specifies whether to create service for Spark web UI.
enable: true
uiIngress:
# -- Specifies whether to create ingress for Spark web UI.
# `controller.uiService.enable` must be `true` to enable ingress.
enable: false
# -- Ingress URL format.
# Required if `controller.uiIngress.enable` is true.
urlFormat: ""
batchScheduler:
# -- Specifies whether to enable batch scheduler for spark jobs scheduling.
# If enabled, users can specify batch scheduler name in spark application.
enable: false
# -- Specifies a list of kube-scheduler names for scheduling Spark pods.
kubeSchedulerNames: []
# - default-scheduler
# -- Default batch scheduler to be used if not specified by the user.
# If specified, this value must be either "volcano" or "yunikorn". Specifying any other
# value will cause the controller to error on startup.
default: ""
serviceAccount:
# -- Specifies whether to create a service account for the controller.
create: true
# -- Optional name for the controller service account.
name: ""
# -- Extra annotations for the controller service account.
annotations: {}
rbac:
# -- Specifies whether to create RBAC resources for the controller.
create: true
# -- Extra annotations for the controller RBAC resources.
annotations: {}
# -- Extra labels for controller pods.
labels: {}
# key1: value1
# key2: value2
# -- Extra annotations for controller pods.
annotations: {}
# key1: value1
# key2: value2
# -- Volumes for controller pods.
volumes: []
# -- Node selector for controller pods.
nodeSelector: {}
# -- Affinity for controller pods.
affinity: {}
# -- List of node taints to tolerate for controller pods.
tolerations: []
# -- Priority class for controller pods.
priorityClassName: ""
# -- Security context for controller pods.
podSecurityContext: {}
# runAsUser: 1000
# runAsGroup: 2000
# fsGroup: 3000
# -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
# Ref: [Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/).
# The labelSelector field in topology spread constraint will be set to the selector labels for controller pods if not specified.
topologySpreadConstraints: []
# - maxSkew: 1
# topologyKey: topology.kubernetes.io/zone
# whenUnsatisfiable: ScheduleAnyway
# - maxSkew: 1
# topologyKey: kubernetes.io/hostname
# whenUnsatisfiable: DoNotSchedule
# -- Environment variables for controller containers.
env: []
# -- Environment variable sources for controller containers.
envFrom: []
# -- Volume mounts for controller containers.
volumeMounts: []
# -- Pod resource requests and limits for controller containers.
# Note, that each job submission will spawn a JVM within the controller pods using "/usr/local/openjdk-11/bin/java -Xmx128m".
# Kubernetes may kill these Java processes at will to enforce resource limits. When that happens, you will see the following error:
# 'failed to run spark-submit for SparkApplication [...]: signal: killed' - when this happens, you may want to increase memory limits.
resources: {}
# limits:
# cpu: 100m
# memory: 300Mi
# requests:
# cpu: 100m
# memory: 300Mi
# -- Security context for controller containers.
securityContext: {}
# runAsUser: 1000
# runAsGroup: 2000
# fsGroup: 3000
# -- Sidecar containers for controller pods.
sidecars: []
# Pod disruption budget for controller to avoid service degradation.
podDisruptionBudget:
# -- Specifies whether to create pod disruption budget for controller.
# Ref: [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/)
enable: false
# -- The number of pods that must be available.
# Require `controller.replicas` to be greater than 1
minAvailable: 1
pprof:
# -- Specifies whether to enable pprof.
enable: false
# -- Specifies pprof port.
port: 6060
# -- Specifies pprof service port name.
portName: pprof
# Workqueue rate limiter configuration forwarded to the controller-runtime Reconciler.
workqueueRateLimiter:
# -- Specifies the average rate of items process by the workqueue rate limiter.
bucketQPS: 50
# -- Specifies the maximum number of items that can be in the workqueue at any given time.
bucketSize: 500
maxDelay:
# -- Specifies whether to enable max delay for the workqueue rate limiter.
# This is useful to avoid losing events when the workqueue is full.
enable: true
# -- Specifies the maximum delay duration for the workqueue rate limiter.
duration: 6h
webhook:
# -- Specifies whether to enable webhook.
enable: true
# -- Number of replicas of webhook server.
replicas: 1
# -- Configure the verbosity of logging, can be one of `debug`, `info`, `error`.
logLevel: info
# -- Specifies webhook port.
port: 9443
# -- Specifies webhook service port name.
portName: webhook
# -- Specifies how unrecognized errors are handled.
# Available options are `Ignore` or `Fail`.
failurePolicy: Fail
# -- Specifies the timeout seconds of the webhook, the value must be between 1 and 30.
timeoutSeconds: 10
resourceQuotaEnforcement:
# -- Specifies whether to enable the ResourceQuota enforcement for SparkApplication resources.
enable: false
serviceAccount:
# -- Specifies whether to create a service account for the webhook.
create: true
# -- Optional name for the webhook service account.
name: ""
# -- Extra annotations for the webhook service account.
annotations: {}
rbac:
# -- Specifies whether to create RBAC resources for the webhook.
create: true
# -- Extra annotations for the webhook RBAC resources.
annotations: {}
# -- Extra labels for webhook pods.
labels: {}
# key1: value1
# key2: value2
# -- Extra annotations for webhook pods.
annotations: {}
# key1: value1
# key2: value2
# -- Sidecar containers for webhook pods.
sidecars: []
# -- Volumes for webhook pods.
volumes: []
# -- Node selector for webhook pods.
nodeSelector: {}
# -- Affinity for webhook pods.
affinity: {}
# -- List of node taints to tolerate for webhook pods.
tolerations: []
# -- Priority class for webhook pods.
priorityClassName: ""
# -- Security context for webhook pods.
podSecurityContext: {}
# runAsUser: 1000
# runAsGroup: 2000
# fsGroup: 3000
# -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
# Ref: [Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/).
# The labelSelector field in topology spread constraint will be set to the selector labels for webhook pods if not specified.
topologySpreadConstraints: []
# - maxSkew: 1
# topologyKey: topology.kubernetes.io/zone
# whenUnsatisfiable: ScheduleAnyway
# - maxSkew: 1
# topologyKey: kubernetes.io/hostname
# whenUnsatisfiable: DoNotSchedule
# -- Environment variables for webhook containers.
env: []
# -- Environment variable sources for webhook containers.
envFrom: []
# -- Volume mounts for webhook containers.
volumeMounts: []
# -- Pod resource requests and limits for webhook pods.
resources: {}
# limits:
# cpu: 100m
# memory: 300Mi
# requests:
# cpu: 100m
# memory: 300Mi
# -- Security context for webhook containers.
securityContext: {}
# runAsUser: 1000
# runAsGroup: 2000
# fsGroup: 3000
# Pod disruption budget for webhook to avoid service degradation.
podDisruptionBudget:
# -- Specifies whether to create pod disruption budget for webhook.
# Ref: [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/)
enable: false
# -- The number of pods that must be available.
# Require `webhook.replicas` to be greater than 1
minAvailable: 1
spark:
# -- List of namespaces where to run spark jobs.
# If empty string is included, all namespaces will be allowed.
# Make sure the namespaces have already existed.
jobNamespaces:
- default
serviceAccount:
# -- Specifies whether to create a service account for spark applications.
create: true
# -- Optional name for the spark service account.
name: ""
# -- Optional annotations for the spark service account.
annotations: {}
rbac:
# -- Specifies whether to create RBAC resources for spark applications.
create: true
# -- Optional annotations for the spark application RBAC resources.
annotations: {}
prometheus:
metrics:
# -- Specifies whether to enable prometheus metrics scraping.
enable: true
# -- Metrics port.
port: 8080
# -- Metrics port name.
portName: metrics
# -- Metrics serving endpoint.
endpoint: /metrics
# -- Metrics prefix, will be added to all exported metrics.
prefix: ""
# Prometheus pod monitor for controller pods
podMonitor:
# -- Specifies whether to create pod monitor.
# Note that prometheus metrics should be enabled as well.
create: false
# -- Pod monitor labels
labels: {}
# -- The label to use to retrieve the job name from
jobLabel: spark-operator-podmonitor
# -- Prometheus metrics endpoint properties. `metrics.portName` will be used as a port
podMetricsEndpoint:
scheme: http
interval: 5s