From 665a3999a0f4a30810d8bc34e963bd365e410bce Mon Sep 17 00:00:00 2001 From: Dyllan Tinoco Date: Sun, 18 Sep 2022 05:47:51 -0500 Subject: [PATCH] feat(jupyter): Add Jupyter (#3616) * Initial work for Jupyter notebook * Fixed some things I forgot to change from base * Added readme and changelog * Update charts/incubator/jupyter/values.yaml * Update charts/incubator/jupyter/values.yaml * remove autogenerated content * lint * fix persistence and service * Add some config options and try to fix permissions I added some of the config options supported by the container. I also tried to fix permissions by setting UID and GID, but this doesn't seem to have worked * Changed container to run as root I changed the pod security so that it would run as root in order for it to deploy with proper folder permissions. From my understanding while the pod is running as root the actual jupyter process is running as user 568 since I set the uid and gid to 568. * update IDs * some improvements * typo * update image repo * update questions * this is not needed, as users can select auto perms on persistance section * Update charts/incubator/jupyter/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/jupyter/Chart.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Kjeld Schouten-Lebbing Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros kois --- charts/incubator/jupyter/.helmignore | 30 ++++ charts/incubator/jupyter/CHANGELOG.md | 0 charts/incubator/jupyter/Chart.yaml | 29 +++ charts/incubator/jupyter/README.md | 0 charts/incubator/jupyter/icon.png | Bin 0 -> 26586 bytes charts/incubator/jupyter/questions.yaml | 170 ++++++++++++++++++ .../incubator/jupyter/templates/common.yaml | 2 + charts/incubator/jupyter/values.yaml | 68 +++++++ cspell.config.yaml | 5 + 9 files changed, 304 insertions(+) create mode 100644 charts/incubator/jupyter/.helmignore create mode 100644 charts/incubator/jupyter/CHANGELOG.md create mode 100644 charts/incubator/jupyter/Chart.yaml create mode 100644 charts/incubator/jupyter/README.md create mode 100644 charts/incubator/jupyter/icon.png create mode 100644 charts/incubator/jupyter/questions.yaml create mode 100644 charts/incubator/jupyter/templates/common.yaml create mode 100644 charts/incubator/jupyter/values.yaml diff --git a/charts/incubator/jupyter/.helmignore b/charts/incubator/jupyter/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/incubator/jupyter/.helmignore @@ -0,0 +1,30 @@ +# 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 +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/charts/incubator/jupyter/CHANGELOG.md b/charts/incubator/jupyter/CHANGELOG.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/charts/incubator/jupyter/Chart.yaml b/charts/incubator/jupyter/Chart.yaml new file mode 100644 index 00000000000..82085ad1949 --- /dev/null +++ b/charts/incubator/jupyter/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "latest" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.5.7 +deprecated: false +description: "Jupyter a web based IDE" +home: https://truecharts.org/docs/charts/incubator/jupyter +icon: https://truecharts.org/img/hotlink-ok/chart-icons/jupyter.png +keywords: + - Jupyter + - Notebook + - Lab +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: jupyter +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/juypter + - https://github.com/jupyter/docker-stacks +type: application +version: 0.0.3 +annotations: + truecharts.org/catagories: | + - Cloud + truecharts.org/SCALE-support: "true" diff --git a/charts/incubator/jupyter/README.md b/charts/incubator/jupyter/README.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/charts/incubator/jupyter/icon.png b/charts/incubator/jupyter/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4a4cac63897286d02da4124b99c8e1ffc06414 GIT binary patch literal 26586 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 k#AT3U{eK_-kwdy2q3%a)7;6^rzdX