[ZEPPELIN-5444] Allow users to set service account for interpreter

### What is this PR for?
Currently, users cannot set the service account for the interpreter pod under k8s mode. And there is no service account defined in the pod `spec` in `k8s/interpreter/100-interpreter-spec.yaml`. According to the documentation of Kubernetes (<https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/>):
> When you create a pod, if you do not specify a service account, it is automatically assigned the **default** service account in the same namespace.

, which means that currently the interpreter pod can only use the default service account.

In order to allow users to directly set the service account for the interpreter pod in the interpreter settings, this PR adds a k8s template property, named `zeppelin.k8s.interpreter.serviceAccount`.

Example usage:
```
%spark.conf
zeppelin.k8s.interpreter.serviceAccount yourServiceAccount
```

Note that the `k8s/interpreter/100-interpreter-spec.yaml` creates a **role binding** when using the spark interpreter. It was originally directly bound to the default service account. This PR makes it bind to the service account set by user.

### What type of PR is it?
[Improvement]

### Todos
* [ ] - Task

### What is the Jira issue?
* <https://issues.apache.org/jira/browse/ZEPPELIN-5444>

### How should this be tested?
* CI pass and manually tested

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: rick <rick@rickdeMacBook-Pro.local>

Closes #4172 from rickchengx/ZEPPELIN-5444 and squashes the following commits:

c8522f497 [rick] update docs
19bbfb0f7 [rick] [ZEPPELIN-5444] Allow users to set service account for interpreter
3 files changed
tree: 02067df218d3be4d2131659b4d03a7e0e805b37f
  1. .github/
  2. _tools/
  3. alluxio/
  4. angular/
  5. beam/
  6. bigquery/
  7. bin/
  8. cassandra/
  9. conf/
  10. dev/
  11. docs/
  12. elasticsearch/
  13. file/
  14. flink/
  15. flink-cmd/
  16. geode/
  17. groovy/
  18. hazelcastjet/
  19. hbase/
  20. helium-dev/
  21. ignite/
  22. influxdb/
  23. java/
  24. jdbc/
  25. k8s/
  26. kotlin/
  27. ksql/
  28. kylin/
  29. lens/
  30. licenses/
  31. livy/
  32. markdown/
  33. mongodb/
  34. neo4j/
  35. notebook/
  36. pig/
  37. python/
  38. rlang/
  39. sap/
  40. scalding/
  41. scio/
  42. scripts/
  43. shell/
  44. spark/
  45. spark-submit/
  46. sparql/
  47. submarine/
  48. testing/
  49. zeppelin-client/
  50. zeppelin-client-examples/
  51. zeppelin-common/
  52. zeppelin-display/
  53. zeppelin-distribution/
  54. zeppelin-examples/
  55. zeppelin-integration/
  56. zeppelin-interpreter/
  57. zeppelin-interpreter-integration/
  58. zeppelin-interpreter-parent/
  59. zeppelin-interpreter-shaded/
  60. zeppelin-jupyter/
  61. zeppelin-jupyter-interpreter/
  62. zeppelin-jupyter-interpreter-shaded/
  63. zeppelin-plugins/
  64. zeppelin-server/
  65. zeppelin-web/
  66. zeppelin-web-angular/
  67. zeppelin-zengine/
  68. .appveyor.yml
  69. .asf.yaml
  70. .gitignore
  71. Dockerfile
  72. LICENSE
  73. NOTICE
  74. pom.xml
  75. README.md
  76. Roadmap.md
  77. SECURITY-README.md
  78. STYLE.md
README.md

Apache Zeppelin

Documentation: User Guide
Mailing Lists: User and Dev mailing list
Continuous Integration: core frontend rat
Contributing: Contribution Guide
Issue Tracker: Jira
License: Apache 2.0

Zeppelin, a web-based notebook that enables interactive data analytics. You can make beautiful data-driven, interactive and collaborative documents with SQL, Scala and more.

Core features:

  • Web based notebook style editor.
  • Built-in Apache Spark support

To know more about Zeppelin, visit our web site https://zeppelin.apache.org

Getting Started

Install binary package

Please go to install to install Apache Zeppelin from binary package.

Build from source

Please check Build from source to build Zeppelin from source.