1# Licensed to the Apache Software Foundation (ASF) under one or more
2# contributor license agreements. See the NOTICE file distributed with
3# this work for additional information regarding copyright ownership.
4# The ASF licenses this file to You under the Apache License, Version 2.0
5# (the "License"); you may not use this file except in compliance with
6# the License. You may obtain a copy of the License at
8# http://www.apache.org/licenses/LICENSE-2.0
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
17 repository: cgr.dev/chainguard-private/spark-kubernetes-operator
18 pullPolicy: IfNotPresent
19 tag: latest@sha256:a2a74207e3a29f7d807ae66652966c779bcd6c801f2bfdeae57256b010888c2b
20 # If image digest is set then it takes precedence and the image tag will be ignored
24 # Replicas must be 1 unless leader election is enabled
26 # Strategy type must be 'Recreate' unless leader election is enabled
30 priorityClassName: null
35 # Node tolerations for operator pod assignment
36 # https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
38 # Topology spread constrains
39 # https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
40 topologySpreadConstraints: []
42 jvmArgs: "-Dfile.encoding=UTF8 -XX:+CrashOnOutOfMemoryError -XX:ErrorFile=/dev/stderr -XX:+UseParallelGC -XX:InitialRAMPercentage=80 -XX:MaxRAMPercentage=80 -XX:+AlwaysPreTouch -XX:+UseCompactObjectHeaders"
51 ephemeral-storage: 2Gi
55 ephemeral-storage: 2Gi
61 initialDelaySeconds: 30
72 # By default, operator container is configured to comply restricted standard
73 # https://kubernetes.io/docs/concepts/security/pod-security-standards/
75 allowPrivilegeEscalation: false
83 additionalContainers: []
91 name: "spark-operator"
94 name: "spark-operator-clusterrole"
97 name: "spark-operator-clusterrolebinding"
99 # If enabled, a Role would be created inside each workload namespace, as configured
100 # in {workloadResources.namespaces.data} for operator. Please enable *at least one* of
101 # {operatorRbac.clusterRole.create} or {operatorRbac.role.create} for operator
102 # unless permission is provided separately from the chart
104 name: "spark-operator-role"
106 # If enabled, a RoleBinding would be created inside each workload namespace, as configured
107 # in {workloadResources.namespaces.data} for operator. Please enable *at least one* of
108 # {operatorRbac.clusterRoleBinding.create} or {operatorRbac.roleBinding.create} for
109 # operator unless permission is provided separately from the chart
111 name: "spark-operator-rolebinding"
112 # It's possible to make the rolebinding refers to role / clusterrole as applicable
115 name: "spark-operator-role"
117 # Role to enable operator loading hot properties from config map
119 roleName: "spark-operator-config-monitor"
120 roleBindingName: "spark-operator-config-monitor-role-binding"
122 "app.kubernetes.io/component": "operator-rbac"
124 # Create namespace(s), service account(s), clusterrole, role(s) and rolebinding(s) for Spark
125 # workloads, including SparkApps and SparkClusters
128 # When enabled, value for conf property `spark.operator.watched.namespaces` would be set to
129 # the values provided in {workloadResources.namespaces.data} field as well
130 overrideWatchedNamespaces: true
138 # When enabled, a role would be created in each workload namespace, as configured in
139 # {workloadResources.namespaces.data} for Spark apps. Please enable *at least one* of
140 # {workloadResources.roles.create} or {workloadResources.clusterRole.create} for
141 # Spark workload unless permission is provided separately from the chart
143 name: "spark-workload-role"
145 # When enabled, a clusterrole would be created for Spark workloads. Please enable *at least one* of
146 # {workloadResources.roles.create} or {workloadResources.clusterRole.create} for Spark workload unless
147 # permission is provided separately from the chart
149 name: "spark-workload-clusterrole"
152 name: "spark-workload-rolebinding"
153 sparkApplicationSentinel:
155 name: "spark-app-sentinel"
160 # When enabled, a sentinel resource of type SparkApp will be deployed to namespace(s) provided
161 # Note that sentinelNamespaces list should be a subset of {workloadResources.namespaces.data}
163 sparkClusterSentinel:
165 name: "spark-cluster-sentinel"
170 # When enabled, a sentinel resource of type SparkCluster will be deployed to namespace(s) provided
171 # Note that sentinelNamespaces list should be a subset of {workloadResources.namespaces.data}
173 # workload resources are by default annotated to avoid workload abort due to operator upgrade
175 "helm.sh/resource-policy": keep
176 # labels to be added on workload resources
178 "app.kubernetes.io/component": "spark-workload"
179operatorConfiguration:
180 # If set to true, below properties would be appended to default conf files under conf/
181 # Otherwise, below would override default conf files
183 # Labels and annotations for the operatorConfiguration config map
189 rootLogger.level=INFO
190 rootLogger.appenderRef.stdout.ref = console
191 appender.console.type = Console
192 appender.console.name = console
193 appender.console.target = SYSTEM_ERR
194 appender.console.layout.type = PatternLayout
195 appender.console.layout.pattern = %d{yy/MM/dd HH:mm:ss} %p %X{resource.name} %X{resource.namespace} %C{1.} %m%n%ex
196 spark-operator.properties: |
197 # Property Overrides. e.g.
198 # spark.kubernetes.operator.reconciler.intervalSeconds=60
199 metrics.properties: |
200 # Metrics Properties Overrides
202 # Enable this for hot properties loading.
204 # Enable this to create a config map for hot property loading
207 "helm.sh/resource-policy": keep
209 # Spark Operator Config Runtime Properties Overrides. e.g.
210 spark.kubernetes.operator.reconciler.intervalSeconds: "60"