# Apache Spark
[Apache Spark](https://spark.apache.org/) is a high-performance engine for large-scale computing tasks, such as data processing, machine learning and real-time data streaming. It includes APIs for Java, Python, Scala and R.
## Azure-ready Charts with Containers from marketplace.azurecr.io
This Helm Chart has been configured to pull the Container Images from the Azure Marketplace Public Repository.
The following command allows you to download and install all the charts from this repository.
```bash
$ helm repo add bitnami-azure https://marketplace.azurecr.io/helm/v1/repo
```
## TL;DR
```console
$ helm repo add bitnami-azure https://marketplace.azurecr.io/helm/v1/repo
$ helm install my-release bitnami-azure/spark
```
## Introduction
This chart bootstraps a [spark](https://github.com/bitnami/bitnami-docker-spark) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of [Bitnami Kubernetes Production Runtime](https://kubeprod.io/) (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications.
## Prerequisites
- Kubernetes 1.12+
- Helm 3.1.0
## Installing the Chart
To install the chart with the release name `my-release`:
```console
$ helm repo add bitnami-azure https://marketplace.azurecr.io/helm/v1/repo
$ helm install my-release bitnami-azure/spark
```
These commands deploy Spark on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `my-release` statefulset:
```console
$ helm delete my-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release. Use the option `--purge` to delete all persistent volumes too.
## Parameters
The following tables lists the configurable parameters of the spark chart and their default values.
### Global parameters
| Parameter | Description | Default |
|---------------------------|-------------------------------------------------|---------------------------------------------------------|
| `global.imageRegistry` | Global Docker image registry | `nil` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
### Common parameters
| Parameter | Description | Default |
|---------------------|-----------------------------------------------------------------------------------------------------------|--------------------------------|
| `nameOverride` | String to partially override common.names.fullname template with a string (will prepend the release name) | `nil` |
| `fullnameOverride` | String to fully override common.names.fullname template with a string | `nil` |
| `commonLabels` | Labels to add to all deployed objects | `{}` |
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `nil` |
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` (evaluated as a template) |
### Spark parameters
| Parameter | Description | Default |
|---------------------|--------------------------------------------------|---------------------------------------------------------|
| `image.registry` | spark image registry | `docker.io` |
| `image.repository` | spark Image name | `bitnami/spark` |
| `image.tag` | spark Image tag | `{TAG_NAME}` |
| `image.pullPolicy` | spark image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
### Spark master parameters
| Parameter | Description | Default |
|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| `master.debug` | Specify if debug values should be set on the master | `false` |
| `master.webPort` | Specify the port where the web interface will listen on the master | `8080` |
| `master.clusterPort` | Specify the port where the master listens to communicate with workers | `7077` |
| `master.hostAliases` | Add deployment host aliases | `[]` |
| `master.daemonMemoryLimit` | Set the memory limit for the master daemon | No default |
| `master.configOptions` | Optional configuration if the form `-Dx=y` | No default |
| `master.securityContext.enabled` | Enable security context | `true` |
| `master.securityContext.fsGroup` | Group ID for the container | `1001` |
| `master.securityContext.runAsUser` | User ID for the container | `1001` |
| `master.securityContext.seLinuxOptions` | SELinux options for the container | `{}` |
| `master.podAnnotations` | Annotations for pods in StatefulSet