From ff2570df89cc2e492183786600244cb9bc542049 Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Mon, 29 Aug 2022 02:41:44 +0300 Subject: [PATCH] feat(wireguard): add standalone wireguard (#3575) * feat(wireguard): add standalone wireguard * hmm * try * empty space * configmap * formatting * mount * full priv for testing * lint * see files * lint * actually mount it * see content * allow native helm users to pass conf file directly and update UI * test secret mount * disable /tmp * default mode * hmm * lets see * defaultMdoe * root for testing * configfilehostpath is required for scale * fix def mode * string * render secret * quote * first encode then ident * octal * try hostpath * rootless test * fake config * test normal run * root * rofs * fake key * fake key * add keys for ci * remvoe ci values --- charts/incubator/wireguard/.helmignore | 30 ++++ charts/incubator/wireguard/Chart.yaml | 26 +++ charts/incubator/wireguard/README.md | 0 charts/incubator/wireguard/icon.png | Bin 0 -> 31488 bytes charts/incubator/wireguard/questions.yaml | 151 ++++++++++++++++++ .../wireguard/templates/_configfilemount.tpl | 23 +++ .../wireguard/templates/_configmap.tpl | 28 ++++ .../incubator/wireguard/templates/_secret.tpl | 16 ++ .../incubator/wireguard/templates/common.yaml | 12 ++ charts/incubator/wireguard/values.yaml | 59 +++++++ cspell.config.yaml | 2 + 11 files changed, 347 insertions(+) create mode 100644 charts/incubator/wireguard/.helmignore create mode 100644 charts/incubator/wireguard/Chart.yaml create mode 100644 charts/incubator/wireguard/README.md create mode 100644 charts/incubator/wireguard/icon.png create mode 100644 charts/incubator/wireguard/questions.yaml create mode 100644 charts/incubator/wireguard/templates/_configfilemount.tpl create mode 100644 charts/incubator/wireguard/templates/_configmap.tpl create mode 100644 charts/incubator/wireguard/templates/_secret.tpl create mode 100644 charts/incubator/wireguard/templates/common.yaml create mode 100644 charts/incubator/wireguard/values.yaml diff --git a/charts/incubator/wireguard/.helmignore b/charts/incubator/wireguard/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/incubator/wireguard/.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/wireguard/Chart.yaml b/charts/incubator/wireguard/Chart.yaml new file mode 100644 index 00000000000..26d56c7df70 --- /dev/null +++ b/charts/incubator/wireguard/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.5.0 +description: WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. +home: https://truecharts.org/docs/charts/stable/wireguard +icon: https://truecharts.org/img/hotlink-ok/chart-icons/wireguard.png +keywords: + - wireguard + - vpn +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: wireguard +sources: + - https://github.com/k8s-at-home/container-images/tree/main/apps/wireguard +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - network + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/wireguard/README.md b/charts/incubator/wireguard/README.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/charts/incubator/wireguard/icon.png b/charts/incubator/wireguard/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc3b43223af62eb5a56c2a06e91f2a9a8b54dbd GIT binary patch literal 31488 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