# # 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 # # http://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. apiVersion: sparkoperator.k8s.io/v1beta2 kind: SparkApplication metadata: name: spark-pi-python spec: type: Python pythonVersion: "3" mode: cluster image: docker.io/library/spark:4.0.0 imagePullPolicy: IfNotPresent mainApplicationFile: local:///opt/spark/examples/src/main/python/pi.py sparkVersion: 4.0.0 sparkConf: # Expose Spark metrics for Prometheus "spark.kubernetes.driver.annotation.prometheus.io/scrape": "true" "spark.kubernetes.driver.annotation.prometheus.io/path": "/metrics/executors/prometheus/" "spark.kubernetes.driver.annotation.prometheus.io/port": "4040" "spark.kubernetes.driver.service.annotation.prometheus.io/scrape": "true" "spark.kubernetes.driver.service.annotation.prometheus.io/path": "/metrics/driver/prometheus/" "spark.kubernetes.driver.service.annotation.prometheus.io/port": "4040" "spark.ui.prometheus.enabled": "true" "spark.executor.processTreeMetrics.enabled": "true" "spark.metrics.conf.*.sink.prometheusServlet.class": "org.apache.spark.metrics.sink.PrometheusServlet" "spark.metrics.conf.driver.sink.prometheusServlet.path": "/metrics/driver/prometheus/" "spark.metrics.conf.executor.sink.prometheusServlet.path": "/metrics/executors/prometheus/" driver: cores: 1 memory: 512m serviceAccount: spark-operator-spark securityContext: capabilities: drop: - ALL runAsGroup: 185 runAsUser: 185 runAsNonRoot: true allowPrivilegeEscalation: false seccompProfile: type: RuntimeDefault executor: instances: 1 cores: 1 memory: 512m securityContext: capabilities: drop: - ALL runAsGroup: 185 runAsUser: 185 runAsNonRoot: true allowPrivilegeEscalation: false seccompProfile: type: RuntimeDefault