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
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
|
|
|