Skip to content

[ZEPPELIN-6144] Add Helm chart for deploying Zeppelin on Kubernetes #4896

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions charts/zeppelin/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#

# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
32 changes: 32 additions & 0 deletions charts/zeppelin/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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: v2

name: zeppelin

description: A Helm chart for deploying Apache Zeppelin on Kubernetes.

type: application

version: 0.1.0

appVersion: 0.11.2

maintainers:
- name: ChenYi015
email: github@chenyicn.net
82 changes: 82 additions & 0 deletions charts/zeppelin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# zeppelin

![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.11.2](https://img.shields.io/badge/AppVersion-0.11.2-informational?style=flat-square)

A Helm chart for deploying Apache Zeppelin on Kubernetes.

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| nameOverride | string | `""` | String to partially override release name. |
| fullnameOverride | string | `""` | String to fully override release name. |
| global.image.registry | string | `"docker.io"` | Global image registry. |
| global.image.pullPolicy | string | `"IfNotPresent"` | Global image pull policy. |
| global.image.pullSecrets | list | `[]` | Global image pull secrets for private image registry. |
| server.image.registry | string | If not set, `global.image.registry` will be used. | Zeppelin server image registry. |
| server.image.repository | string | `"apache/zeppelin"` | Zeppelin server image repository. |
| server.image.tag | string | If not set, the chart appVersion will be used. | Zeppelin image tag. |
| server.image.pullPolicy | string | `"IfNotPresent"` | Zeppelin server image pull policy. |
| server.image.pullSecrets | list | `[]` | Zeppelin server image pull secrets for private image registry. |
| server.conf | object | `{}` | Zeppelin configurations. For detailed information, please refer: https://zeppelin.apache.org/docs/latest/setup/operation/configuration.html. |
| server.labels | object | `{}` | Extra labels for Zeppelin server pods. |
| server.annotations | object | `{}` | Extra annotations for Zeppelin server pods. |
| server.volumes | list | `[]` | Volumes for Zeppelin server pods. |
| server.nodeSelector | object | `{}` | Node selector for Zeppelin server pods. |
| server.affinity | object | `{}` | Affinity for Zeppelin server pods. |
| server.tolerations | list | `[]` | List of node taints to tolerate for Zeppelin server pods. |
| server.priorityClassName | string | `""` | Priority class for Zeppelin server pods. |
| server.podSecurityContext | object | `{}` | Security context for Zeppelin server pods. |
| server.env | list | `[{"name":"ZEPPELIN_HOME","value":"/opt/zeppelin"},{"name":"SPARK_HOME","value":"/opt/spark"},{"name":"SERVICE_DOMAIN","value":"local.zeppelin-project.org:8080"},{"name":"ZEPPELIN_PORT","value":"8080"},{"name":"ZEPPELIN_SERVER_RPC_PORTRANGE","value":"12320:12320"},{"name":"ZEPPELIN_K8S_TEMPLATE_DIR","value":"/opt/zeppelin/k8s"}]` | Environment variables for Zeppelin server containers. |
| server.envFrom | list | `[]` | Environment variable sources for Zeppelin server containers. |
| server.volumeMounts | list | `[]` | Volume mounts for Zeppelin server containers. |
| server.resources | object | `{}` | Resource requests and limits for Zeppelin server containers. |
| server.securityContext | object | `{"runAsGroup":0,"runAsNonRoot":true,"runAsUser":1000}` | Security context for Zeppelin server containers. |
| server.serviceAccount.create | bool | `true` | Specifies whether a service account should be created for the Zeppelin server. |
| server.serviceAccount.name | string | `""` | Optional name for the Zeppelin server service account. |
| server.serviceAccount.annotations | object | `{}` | Extra annotations for the Zeppelin server service account. |
| server.service.type | string | `"ClusterIP"` | Service type for Zeppelin server. |
| server.service.port | int | `8080` | Service port for Zeppelin server. |
| server.ingress.enable | bool | `false` | Enable ingress for Zeppelin server. |
| server.ingress.className | string | `""` | Ingress class name for Zeppelin server ingress. |
| server.ingress.annotations | object | `{}` | Annotations for the Zeppelin server ingress. |
| server.ingress.hosts | list | `[{"host":"local.zeppelin-project.org","paths":[{"path":"/","pathType":"ImplementationSpecific"}]}]` | Hosts for Zeppelin server ingress. |
| server.ingress.tls | list | `[]` | TLS configuration for Zeppelin server ingress. |
| interpreter.image.registry | string | If not set, `global.image.registry` will be used. | Zeppelin interpreter image registry. |
| interpreter.image.repository | string | `"apache/zeppelin-interpreter"` | Zeppelin interpreter image repository. |
| interpreter.image.tag | string | If not set, the chart appVersion will be used. | Zeppelin interpreter image tag. |
| interpreter.image.pullPolicy | string | `"IfNotPresent"` | Zeppelin interpreter image pull policy. |
| interpreter.image.pullSecrets | list | `[]` | Zeppelin interpreter image pull secrets for private image registry. |
| interpreter.spark.image.registry | string | If not set, `global.image.registry` will be used. | Spark image registry. |
| interpreter.spark.image.repository | string | `"spark"` | Spark image repository. |
| interpreter.spark.image.tag | string | `"3.5.3"` | Spark image tag. |
| interpreter.spark.conf | object | `{"spark.kubernetes.driver.podTemplateFile":"file:///opt/spark/conf/driver-pod-template.yaml","spark.kubernetes.executor.podTemplateFile":"file:///opt/spark/conf/executor-pod-template.yaml"}` | Spark configurations. |
| interpreter.spark.labels | object | `{}` | Extra labels for Spark pods. |
| interpreter.spark.annotations | object | `{}` | Extra annotations for Spark pods. |
| interpreter.spark.volumes | list | `[]` | Volumes for Spark pods. |
| interpreter.spark.env | list | `[]` | Environment variables for Spark containers. |
| interpreter.spark.envFrom | list | `[]` | Environment variable sources for Spark containers. |
| interpreter.spark.volumeMounts | list | `[]` | Volume mounts for Spark containers. |
| interpreter.labels | object | `{}` | Extra labels for Zeppelin interpreter pods. |
| interpreter.annotations | object | `{}` | Extra annotations for Zeppelin interpreter pods. |
| interpreter.volumes | list | `[]` | Volumes for Zeppelin interpreter pods. |
| interpreter.nodeSelector | object | `{}` | Node selector for Zeppelin interpreter pods. |
| interpreter.affinity | object | `{}` | Affinity for Zeppelin interpreter pods. |
| interpreter.tolerations | list | `[]` | List of node taints to tolerate for Zeppelin interpreter pods. |
| interpreter.priorityClassName | string | `""` | Priority class for Zeppelin interpreter pods. |
| interpreter.podSecurityContext | object | `{}` | Security context for Zeppelin interpreter pods. |
| interpreter.env | list | `[{"name":"ZEPPELIN_HOME","value":"/opt/zeppelin"},{"name":"SPARK_HOME","value":"/opt/spark"},{"name":"SPARK_CONF_DIR","value":"/opt/spark/conf"}]` | Environment variables for Zeppelin interpreter containers. |
| interpreter.envFrom | list | `[]` | Environment variable sources for Zeppelin interpreter containers. |
| interpreter.volumeMounts | list | `[]` | Volume mounts for Zeppelin interpreter containers. |
| interpreter.resources | object | `{}` | Resource requests and limits for Zeppelin interpreter containers. |
| interpreter.securityContext | object | `{"runAsGroup":0,"runAsNonRoot":true,"runAsUser":1000}` | Security context for Zeppelin interpreter containers. |
| interpreter.serviceAccount.serviceAccount | string | `nil` | |
| interpreter.serviceAccount.create | bool | `true` | Specifies whether a service account should be created for the Zeppelin interpreter. |
| interpreter.serviceAccount.name | string | `""` | Optional name for the Zeppelin interpreter service account. |
| interpreter.serviceAccount.annotations | object | `{}` | Extra annotations for the Zeppelin interpreter service account. |

## Maintainers

| Name | Email | Url |
| ---- | ------ | --- |
| ChenYi015 | <github@chenyicn.net> | |
30 changes: 30 additions & 0 deletions charts/zeppelin/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{{- /*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
*/ -}}

{{ template "chart.header" . }}

{{ template "chart.deprecationWarning" . }}

{{ template "chart.badgesSection" . }}

{{ template "chart.description" . }}

{{ template "chart.homepageLine" . }}

{{ template "chart.valuesSection" . }}

{{ template "chart.maintainersSection" . }}
41 changes: 41 additions & 0 deletions charts/zeppelin/files/conf/configuration.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="configuration">
<html>
<body>
<table border="1">
<tr>
<td>name</td>
<td>value</td>
<td>description</td>
</tr>
<xsl:for-each select="property">
<tr>
<td><a name="{name}"><xsl:value-of select="name"/></a></td>
<td><xsl:value-of select="value"/></td>
<td><xsl:value-of select="description"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
37 changes: 37 additions & 0 deletions charts/zeppelin/files/conf/interpreter-list
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#
#
# [name] [maven artifact] [description]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For which functionality is this file required?


alluxio org.apache.zeppelin:zeppelin-alluxio:0.11.2 Alluxio interpreter
angular org.apache.zeppelin:zeppelin-angular:0.11.2 HTML and AngularJS view rendering
bigquery org.apache.zeppelin:zeppelin-bigquery:0.11.2 BigQuery interpreter
cassandra org.apache.zeppelin:zeppelin-cassandra:0.11.2 Cassandra interpreter
elasticsearch org.apache.zeppelin:zeppelin-elasticsearch:0.11.2 Elasticsearch interpreter
file org.apache.zeppelin:zeppelin-file:0.11.2 HDFS file interpreter
flink org.apache.zeppelin:zeppelin-flink:0.11.2 Flink interpreter
groovy org.apache.zeppelin:zeppelin-groovy:0.11.2 Groovy interpreter
hbase org.apache.zeppelin:zeppelin-hbase:0.11.2 Hbase interpreter
java org.apache.zeppelin:zeppelin-java:0.11.2 Java interpreter
jdbc org.apache.zeppelin:zeppelin-jdbc:0.11.2 Jdbc interpreter
livy org.apache.zeppelin:zeppelin-livy:0.11.2 Livy interpreter
md org.apache.zeppelin:zeppelin-markdown:0.11.2 Markdown support
neo4j org.apache.zeppelin:zeppelin-neo4j:0.11.2 Neo4j interpreter
python org.apache.zeppelin:zeppelin-python:0.11.2 Python interpreter
shell org.apache.zeppelin:zeppelin-shell:0.11.2 Shell command
sparql org.apache.zeppelin:zeppelin-sparql:0.11.2 Sparql interpreter
submarine org.apache.zeppelin:zeppelin-submarine:0.11.2 Submarine interpreter
28 changes: 28 additions & 0 deletions charts/zeppelin/files/conf/log4j.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#

log4j.rootLogger = INFO, stdout, dailyfile

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%d] ({%t} %F[%M]:%L) - %m%n

log4j.appender.dailyfile.DatePattern=.yyyy-MM-dd
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File = ${zeppelin.log.file}
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=%5p [%d] ({%t} %F[%M]:%L) - %m%n
49 changes: 49 additions & 0 deletions charts/zeppelin/files/conf/log4j2.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#

# This affects logging for both user code and Flink
rootLogger.level = INFO
rootLogger.appenderRef.file.ref = MainAppender

# Uncomment this if you want to _only_ change Flink's logging
#logger.flink.name = org.apache.flink
#logger.flink.level = INFO

# The following lines keep the log level of common libraries/connectors on
# log level INFO. The root logger does not override this. You have to manually
# change the log levels here.
logger.akka.name = akka
logger.akka.level = INFO
logger.kafka.name= org.apache.kafka
logger.kafka.level = INFO
logger.hadoop.name = org.apache.hadoop
logger.hadoop.level = INFO
logger.zookeeper.name = org.apache.zookeeper
logger.zookeeper.level = INFO

# Log all infos in the given file
appender.main.name = MainAppender
appender.main.type = File
appender.main.append = false
appender.main.fileName = ${sys:zeppelin.log.file}
appender.main.layout.type = PatternLayout
appender.main.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n

# Suppress the irrelevant (wrong) warnings from the Netty channel handler
logger.netty.name = org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline
logger.netty.level = OFF
Loading
Oops, something went wrong.