From faad17c6564cac6dd57ba74f8499e4a49a257389 Mon Sep 17 00:00:00 2001 From: Kjeld Schouten-Lebbing Date: Sat, 27 Feb 2021 19:47:48 +0100 Subject: [PATCH] Add Unifi Controller (#186) Co-Authored-By: Co-Authored-By: Co-authored-by: whiskerz007 <2713522+whiskerz007@users.noreply.github.com> --- .github/CODEOWNERS | 1 + charts/traefik/{1.0.3 => 1.0.4}/.helmignore | 0 charts/traefik/{1.0.3 => 1.0.4}/Chart.lock | 0 charts/traefik/{1.0.3 => 1.0.4}/Chart.yaml | 2 +- charts/traefik/{1.0.3 => 1.0.4}/Guidelines.md | 0 charts/traefik/{1.0.3 => 1.0.4}/LICENSE | 0 charts/traefik/{1.0.3 => 1.0.4}/README.md | 0 charts/traefik/{1.0.3 => 1.0.4}/app-readme.md | 1 - .../charts/cert-manager-v1.2.0.tgz | Bin .../{1.0.3 => 1.0.4}/charts/common-1.3.1.tgz | Bin .../charts/reflector-5.4.17.tgz | Bin .../{1.0.3 => 1.0.4}/crds/ingressroute.yaml | 0 .../crds/ingressroutetcp.yaml | 0 .../crds/ingressrouteudp.yaml | 0 .../{1.0.3 => 1.0.4}/crds/middlewares.yaml | 0 .../crds/serverstransports.yaml | 0 .../{1.0.3 => 1.0.4}/crds/tlsoptions.yaml | 0 .../{1.0.3 => 1.0.4}/crds/tlsstores.yaml | 0 .../crds/traefikservices.yaml | 0 .../traefik/{1.0.3 => 1.0.4}/docs/CONFIG.md | 0 .../{1.0.3 => 1.0.4}/docs/CONFIG.md.gotmpl | 0 .../traefik/{1.0.3 => 1.0.4}/questions.yaml | 0 .../{1.0.3 => 1.0.4}/templates/_helpers.tpl | 0 .../templates/_podtemplate.tpl | 0 .../templates/custom/_appStorage.tpl | 0 .../templates/custom/appingress.yaml | 0 .../templates/custom/clusterissuer.yaml | 0 .../templates/custom/delay_postinstall.yaml | 0 .../templates/custom/middlewares.yaml | 0 .../templates/custom/tlsoptions.yaml | 0 .../templates/custom/wildcard.yaml | 0 .../{1.0.3 => 1.0.4}/templates/daemonset.yaml | 0 .../dashboard-hook-ingressroute.yaml | 0 .../templates/deployment.yaml | 0 .../{1.0.3 => 1.0.4}/templates/gateway.yaml | 0 .../templates/gatewayclass.yaml | 0 .../{1.0.3 => 1.0.4}/templates/hpa.yaml | 0 .../templates/ingressclass.yaml | 0 .../templates/poddisruptionbudget.yaml | 0 .../{1.0.3 => 1.0.4}/templates/pvc.yaml | 0 .../templates/rbac/clusterrole.yaml | 0 .../templates/rbac/clusterrolebinding.yaml | 0 .../templates/rbac/podsecuritypolicy.yaml | 0 .../{1.0.3 => 1.0.4}/templates/rbac/role.yaml | 0 .../templates/rbac/rolebinding.yaml | 0 .../templates/rbac/serviceaccount.yaml | 0 .../{1.0.3 => 1.0.4}/templates/service.yaml | 0 .../{1.0.3 => 1.0.4}/templates/tlsoption.yaml | 0 .../traefik/{1.0.3 => 1.0.4}/test_values.yaml | 24 +- charts/traefik/{1.0.3 => 1.0.4}/values.yaml | 24 +- charts/unifi/1.0.0/.helmignore | 24 + charts/unifi/1.0.0/Chart.lock | 6 + charts/unifi/1.0.0/Chart.yaml | 34 ++ charts/unifi/1.0.0/LICENSE | 201 ++++++++ charts/unifi/1.0.0/README.md | 69 +++ charts/unifi/1.0.0/app-readme.md | 1 + charts/unifi/1.0.0/charts/common-1.3.0.tgz | Bin 0 -> 33604 bytes charts/unifi/1.0.0/questions.yaml | 468 ++++++++++++++++++ charts/unifi/1.0.0/templates/common.yaml | 1 + charts/unifi/1.0.0/test_values.yaml | 51 ++ charts/unifi/1.0.0/values.yaml | 44 ++ charts/unifi/item.yaml | 3 + 62 files changed, 948 insertions(+), 6 deletions(-) rename charts/traefik/{1.0.3 => 1.0.4}/.helmignore (100%) rename charts/traefik/{1.0.3 => 1.0.4}/Chart.lock (100%) rename charts/traefik/{1.0.3 => 1.0.4}/Chart.yaml (98%) rename charts/traefik/{1.0.3 => 1.0.4}/Guidelines.md (100%) rename charts/traefik/{1.0.3 => 1.0.4}/LICENSE (100%) rename charts/traefik/{1.0.3 => 1.0.4}/README.md (100%) rename charts/traefik/{1.0.3 => 1.0.4}/app-readme.md (98%) rename charts/traefik/{1.0.3 => 1.0.4}/charts/cert-manager-v1.2.0.tgz (100%) rename charts/traefik/{1.0.3 => 1.0.4}/charts/common-1.3.1.tgz (100%) rename charts/traefik/{1.0.3 => 1.0.4}/charts/reflector-5.4.17.tgz (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/ingressroute.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/ingressroutetcp.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/ingressrouteudp.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/middlewares.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/serverstransports.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/tlsoptions.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/tlsstores.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/crds/traefikservices.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/docs/CONFIG.md (100%) rename charts/traefik/{1.0.3 => 1.0.4}/docs/CONFIG.md.gotmpl (100%) rename charts/traefik/{1.0.3 => 1.0.4}/questions.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/_helpers.tpl (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/_podtemplate.tpl (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/_appStorage.tpl (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/appingress.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/clusterissuer.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/delay_postinstall.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/middlewares.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/tlsoptions.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/custom/wildcard.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/daemonset.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/dashboard-hook-ingressroute.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/deployment.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/gateway.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/gatewayclass.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/hpa.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/ingressclass.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/poddisruptionbudget.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/pvc.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/rbac/clusterrole.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/rbac/clusterrolebinding.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/rbac/podsecuritypolicy.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/rbac/role.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/rbac/rolebinding.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/rbac/serviceaccount.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/service.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/templates/tlsoption.yaml (100%) rename charts/traefik/{1.0.3 => 1.0.4}/test_values.yaml (96%) rename charts/traefik/{1.0.3 => 1.0.4}/values.yaml (96%) create mode 100644 charts/unifi/1.0.0/.helmignore create mode 100644 charts/unifi/1.0.0/Chart.lock create mode 100644 charts/unifi/1.0.0/Chart.yaml create mode 100644 charts/unifi/1.0.0/LICENSE create mode 100644 charts/unifi/1.0.0/README.md create mode 100644 charts/unifi/1.0.0/app-readme.md create mode 100644 charts/unifi/1.0.0/charts/common-1.3.0.tgz create mode 100644 charts/unifi/1.0.0/questions.yaml create mode 100644 charts/unifi/1.0.0/templates/common.yaml create mode 100644 charts/unifi/1.0.0/test_values.yaml create mode 100644 charts/unifi/1.0.0/values.yaml create mode 100644 charts/unifi/item.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 62b7c53f955..c43f988afb5 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,3 +2,4 @@ * @ornias1993 /charts/esphome/* @tprelog +/charts/unifi/* @whiskerz007 diff --git a/charts/traefik/1.0.3/.helmignore b/charts/traefik/1.0.4/.helmignore similarity index 100% rename from charts/traefik/1.0.3/.helmignore rename to charts/traefik/1.0.4/.helmignore diff --git a/charts/traefik/1.0.3/Chart.lock b/charts/traefik/1.0.4/Chart.lock similarity index 100% rename from charts/traefik/1.0.3/Chart.lock rename to charts/traefik/1.0.4/Chart.lock diff --git a/charts/traefik/1.0.3/Chart.yaml b/charts/traefik/1.0.4/Chart.yaml similarity index 98% rename from charts/traefik/1.0.3/Chart.yaml rename to charts/traefik/1.0.4/Chart.yaml index fd199ee99a0..6eae19ce27a 100644 --- a/charts/traefik/1.0.3/Chart.yaml +++ b/charts/traefik/1.0.4/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: traefik -version: 1.0.3 +version: 1.0.4 upstream_version: 9.14.2 appVersion: 2.4.2 description: A Traefik based Reverse Proxy and Certificate Manager diff --git a/charts/traefik/1.0.3/Guidelines.md b/charts/traefik/1.0.4/Guidelines.md similarity index 100% rename from charts/traefik/1.0.3/Guidelines.md rename to charts/traefik/1.0.4/Guidelines.md diff --git a/charts/traefik/1.0.3/LICENSE b/charts/traefik/1.0.4/LICENSE similarity index 100% rename from charts/traefik/1.0.3/LICENSE rename to charts/traefik/1.0.4/LICENSE diff --git a/charts/traefik/1.0.3/README.md b/charts/traefik/1.0.4/README.md similarity index 100% rename from charts/traefik/1.0.3/README.md rename to charts/traefik/1.0.4/README.md diff --git a/charts/traefik/1.0.3/app-readme.md b/charts/traefik/1.0.4/app-readme.md similarity index 98% rename from charts/traefik/1.0.3/app-readme.md rename to charts/traefik/1.0.4/app-readme.md index a0eee9b953a..e9f33caacb9 100644 --- a/charts/traefik/1.0.3/app-readme.md +++ b/charts/traefik/1.0.4/app-readme.md @@ -1,2 +1 @@ A Traefik based Reverse Proxy and Certificate Manager - diff --git a/charts/traefik/1.0.3/charts/cert-manager-v1.2.0.tgz b/charts/traefik/1.0.4/charts/cert-manager-v1.2.0.tgz similarity index 100% rename from charts/traefik/1.0.3/charts/cert-manager-v1.2.0.tgz rename to charts/traefik/1.0.4/charts/cert-manager-v1.2.0.tgz diff --git a/charts/traefik/1.0.3/charts/common-1.3.1.tgz b/charts/traefik/1.0.4/charts/common-1.3.1.tgz similarity index 100% rename from charts/traefik/1.0.3/charts/common-1.3.1.tgz rename to charts/traefik/1.0.4/charts/common-1.3.1.tgz diff --git a/charts/traefik/1.0.3/charts/reflector-5.4.17.tgz b/charts/traefik/1.0.4/charts/reflector-5.4.17.tgz similarity index 100% rename from charts/traefik/1.0.3/charts/reflector-5.4.17.tgz rename to charts/traefik/1.0.4/charts/reflector-5.4.17.tgz diff --git a/charts/traefik/1.0.3/crds/ingressroute.yaml b/charts/traefik/1.0.4/crds/ingressroute.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/ingressroute.yaml rename to charts/traefik/1.0.4/crds/ingressroute.yaml diff --git a/charts/traefik/1.0.3/crds/ingressroutetcp.yaml b/charts/traefik/1.0.4/crds/ingressroutetcp.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/ingressroutetcp.yaml rename to charts/traefik/1.0.4/crds/ingressroutetcp.yaml diff --git a/charts/traefik/1.0.3/crds/ingressrouteudp.yaml b/charts/traefik/1.0.4/crds/ingressrouteudp.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/ingressrouteudp.yaml rename to charts/traefik/1.0.4/crds/ingressrouteudp.yaml diff --git a/charts/traefik/1.0.3/crds/middlewares.yaml b/charts/traefik/1.0.4/crds/middlewares.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/middlewares.yaml rename to charts/traefik/1.0.4/crds/middlewares.yaml diff --git a/charts/traefik/1.0.3/crds/serverstransports.yaml b/charts/traefik/1.0.4/crds/serverstransports.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/serverstransports.yaml rename to charts/traefik/1.0.4/crds/serverstransports.yaml diff --git a/charts/traefik/1.0.3/crds/tlsoptions.yaml b/charts/traefik/1.0.4/crds/tlsoptions.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/tlsoptions.yaml rename to charts/traefik/1.0.4/crds/tlsoptions.yaml diff --git a/charts/traefik/1.0.3/crds/tlsstores.yaml b/charts/traefik/1.0.4/crds/tlsstores.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/tlsstores.yaml rename to charts/traefik/1.0.4/crds/tlsstores.yaml diff --git a/charts/traefik/1.0.3/crds/traefikservices.yaml b/charts/traefik/1.0.4/crds/traefikservices.yaml similarity index 100% rename from charts/traefik/1.0.3/crds/traefikservices.yaml rename to charts/traefik/1.0.4/crds/traefikservices.yaml diff --git a/charts/traefik/1.0.3/docs/CONFIG.md b/charts/traefik/1.0.4/docs/CONFIG.md similarity index 100% rename from charts/traefik/1.0.3/docs/CONFIG.md rename to charts/traefik/1.0.4/docs/CONFIG.md diff --git a/charts/traefik/1.0.3/docs/CONFIG.md.gotmpl b/charts/traefik/1.0.4/docs/CONFIG.md.gotmpl similarity index 100% rename from charts/traefik/1.0.3/docs/CONFIG.md.gotmpl rename to charts/traefik/1.0.4/docs/CONFIG.md.gotmpl diff --git a/charts/traefik/1.0.3/questions.yaml b/charts/traefik/1.0.4/questions.yaml similarity index 100% rename from charts/traefik/1.0.3/questions.yaml rename to charts/traefik/1.0.4/questions.yaml diff --git a/charts/traefik/1.0.3/templates/_helpers.tpl b/charts/traefik/1.0.4/templates/_helpers.tpl similarity index 100% rename from charts/traefik/1.0.3/templates/_helpers.tpl rename to charts/traefik/1.0.4/templates/_helpers.tpl diff --git a/charts/traefik/1.0.3/templates/_podtemplate.tpl b/charts/traefik/1.0.4/templates/_podtemplate.tpl similarity index 100% rename from charts/traefik/1.0.3/templates/_podtemplate.tpl rename to charts/traefik/1.0.4/templates/_podtemplate.tpl diff --git a/charts/traefik/1.0.3/templates/custom/_appStorage.tpl b/charts/traefik/1.0.4/templates/custom/_appStorage.tpl similarity index 100% rename from charts/traefik/1.0.3/templates/custom/_appStorage.tpl rename to charts/traefik/1.0.4/templates/custom/_appStorage.tpl diff --git a/charts/traefik/1.0.3/templates/custom/appingress.yaml b/charts/traefik/1.0.4/templates/custom/appingress.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/custom/appingress.yaml rename to charts/traefik/1.0.4/templates/custom/appingress.yaml diff --git a/charts/traefik/1.0.3/templates/custom/clusterissuer.yaml b/charts/traefik/1.0.4/templates/custom/clusterissuer.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/custom/clusterissuer.yaml rename to charts/traefik/1.0.4/templates/custom/clusterissuer.yaml diff --git a/charts/traefik/1.0.3/templates/custom/delay_postinstall.yaml b/charts/traefik/1.0.4/templates/custom/delay_postinstall.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/custom/delay_postinstall.yaml rename to charts/traefik/1.0.4/templates/custom/delay_postinstall.yaml diff --git a/charts/traefik/1.0.3/templates/custom/middlewares.yaml b/charts/traefik/1.0.4/templates/custom/middlewares.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/custom/middlewares.yaml rename to charts/traefik/1.0.4/templates/custom/middlewares.yaml diff --git a/charts/traefik/1.0.3/templates/custom/tlsoptions.yaml b/charts/traefik/1.0.4/templates/custom/tlsoptions.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/custom/tlsoptions.yaml rename to charts/traefik/1.0.4/templates/custom/tlsoptions.yaml diff --git a/charts/traefik/1.0.3/templates/custom/wildcard.yaml b/charts/traefik/1.0.4/templates/custom/wildcard.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/custom/wildcard.yaml rename to charts/traefik/1.0.4/templates/custom/wildcard.yaml diff --git a/charts/traefik/1.0.3/templates/daemonset.yaml b/charts/traefik/1.0.4/templates/daemonset.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/daemonset.yaml rename to charts/traefik/1.0.4/templates/daemonset.yaml diff --git a/charts/traefik/1.0.3/templates/dashboard-hook-ingressroute.yaml b/charts/traefik/1.0.4/templates/dashboard-hook-ingressroute.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/dashboard-hook-ingressroute.yaml rename to charts/traefik/1.0.4/templates/dashboard-hook-ingressroute.yaml diff --git a/charts/traefik/1.0.3/templates/deployment.yaml b/charts/traefik/1.0.4/templates/deployment.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/deployment.yaml rename to charts/traefik/1.0.4/templates/deployment.yaml diff --git a/charts/traefik/1.0.3/templates/gateway.yaml b/charts/traefik/1.0.4/templates/gateway.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/gateway.yaml rename to charts/traefik/1.0.4/templates/gateway.yaml diff --git a/charts/traefik/1.0.3/templates/gatewayclass.yaml b/charts/traefik/1.0.4/templates/gatewayclass.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/gatewayclass.yaml rename to charts/traefik/1.0.4/templates/gatewayclass.yaml diff --git a/charts/traefik/1.0.3/templates/hpa.yaml b/charts/traefik/1.0.4/templates/hpa.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/hpa.yaml rename to charts/traefik/1.0.4/templates/hpa.yaml diff --git a/charts/traefik/1.0.3/templates/ingressclass.yaml b/charts/traefik/1.0.4/templates/ingressclass.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/ingressclass.yaml rename to charts/traefik/1.0.4/templates/ingressclass.yaml diff --git a/charts/traefik/1.0.3/templates/poddisruptionbudget.yaml b/charts/traefik/1.0.4/templates/poddisruptionbudget.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/poddisruptionbudget.yaml rename to charts/traefik/1.0.4/templates/poddisruptionbudget.yaml diff --git a/charts/traefik/1.0.3/templates/pvc.yaml b/charts/traefik/1.0.4/templates/pvc.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/pvc.yaml rename to charts/traefik/1.0.4/templates/pvc.yaml diff --git a/charts/traefik/1.0.3/templates/rbac/clusterrole.yaml b/charts/traefik/1.0.4/templates/rbac/clusterrole.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/rbac/clusterrole.yaml rename to charts/traefik/1.0.4/templates/rbac/clusterrole.yaml diff --git a/charts/traefik/1.0.3/templates/rbac/clusterrolebinding.yaml b/charts/traefik/1.0.4/templates/rbac/clusterrolebinding.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/rbac/clusterrolebinding.yaml rename to charts/traefik/1.0.4/templates/rbac/clusterrolebinding.yaml diff --git a/charts/traefik/1.0.3/templates/rbac/podsecuritypolicy.yaml b/charts/traefik/1.0.4/templates/rbac/podsecuritypolicy.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/rbac/podsecuritypolicy.yaml rename to charts/traefik/1.0.4/templates/rbac/podsecuritypolicy.yaml diff --git a/charts/traefik/1.0.3/templates/rbac/role.yaml b/charts/traefik/1.0.4/templates/rbac/role.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/rbac/role.yaml rename to charts/traefik/1.0.4/templates/rbac/role.yaml diff --git a/charts/traefik/1.0.3/templates/rbac/rolebinding.yaml b/charts/traefik/1.0.4/templates/rbac/rolebinding.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/rbac/rolebinding.yaml rename to charts/traefik/1.0.4/templates/rbac/rolebinding.yaml diff --git a/charts/traefik/1.0.3/templates/rbac/serviceaccount.yaml b/charts/traefik/1.0.4/templates/rbac/serviceaccount.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/rbac/serviceaccount.yaml rename to charts/traefik/1.0.4/templates/rbac/serviceaccount.yaml diff --git a/charts/traefik/1.0.3/templates/service.yaml b/charts/traefik/1.0.4/templates/service.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/service.yaml rename to charts/traefik/1.0.4/templates/service.yaml diff --git a/charts/traefik/1.0.3/templates/tlsoption.yaml b/charts/traefik/1.0.4/templates/tlsoption.yaml similarity index 100% rename from charts/traefik/1.0.3/templates/tlsoption.yaml rename to charts/traefik/1.0.4/templates/tlsoption.yaml diff --git a/charts/traefik/1.0.3/test_values.yaml b/charts/traefik/1.0.4/test_values.yaml similarity index 96% rename from charts/traefik/1.0.3/test_values.yaml rename to charts/traefik/1.0.4/test_values.yaml index 626d75efcfd..821d5e22bd3 100644 --- a/charts/traefik/1.0.3/test_values.yaml +++ b/charts/traefik/1.0.4/test_values.yaml @@ -302,6 +302,26 @@ ports: # nodePort: 32443 # Set TLS at the entrypoint # https://doc.traefik.io/traefik/routing/entrypoints/#tls + stun-tcp: + port: 3478 + # hostPort: 8443 + expose: true + exposedPort: 3478 + # The port protocol (TCP/UDP) + protocol: TCP + # nodePort: 32443 + # Set TLS at the entrypoint + # https://doc.traefik.io/traefik/routing/entrypoints/#tls + stun-udp: + port: 3478 + # hostPort: 8443 + expose: true + exposedPort: 3478 + # The port protocol (TCP/UDP) + protocol: UDP + # nodePort: 32443 + # Set TLS at the entrypoint + # https://doc.traefik.io/traefik/routing/entrypoints/#tls torrent-tcp: port: 51413 # hostPort: 8443 @@ -353,10 +373,10 @@ ports: # Set TLS at the entrypoint # https://doc.traefik.io/traefik/routing/entrypoints/#tls unificom: - port: 8081 + port: 8080 # hostPort: 8443 expose: true - exposedPort: 8081 + exposedPort: 8080 # The port protocol (TCP/UDP) protocol: TCP # nodePort: 32443 diff --git a/charts/traefik/1.0.3/values.yaml b/charts/traefik/1.0.4/values.yaml similarity index 96% rename from charts/traefik/1.0.3/values.yaml rename to charts/traefik/1.0.4/values.yaml index cdd761cc8e4..4450cf1a109 100644 --- a/charts/traefik/1.0.3/values.yaml +++ b/charts/traefik/1.0.4/values.yaml @@ -301,6 +301,26 @@ ports: # nodePort: 32443 # Set TLS at the entrypoint # https://doc.traefik.io/traefik/routing/entrypoints/#tls + stun-tcp: + port: 3478 + # hostPort: 8443 + expose: true + exposedPort: 3478 + # The port protocol (TCP/UDP) + protocol: TCP + # nodePort: 32443 + # Set TLS at the entrypoint + # https://doc.traefik.io/traefik/routing/entrypoints/#tls + stun-udp: + port: 3478 + # hostPort: 8443 + expose: true + exposedPort: 3478 + # The port protocol (TCP/UDP) + protocol: UDP + # nodePort: 32443 + # Set TLS at the entrypoint + # https://doc.traefik.io/traefik/routing/entrypoints/#tls torrent-tcp: port: 51413 # hostPort: 8443 @@ -352,10 +372,10 @@ ports: # Set TLS at the entrypoint # https://doc.traefik.io/traefik/routing/entrypoints/#tls unificom: - port: 8081 + port: 8080 # hostPort: 8443 expose: true - exposedPort: 8081 + exposedPort: 8080 # The port protocol (TCP/UDP) protocol: TCP # nodePort: 32443 diff --git a/charts/unifi/1.0.0/.helmignore b/charts/unifi/1.0.0/.helmignore new file mode 100644 index 00000000000..fcf9212f480 --- /dev/null +++ b/charts/unifi/1.0.0/.helmignore @@ -0,0 +1,24 @@ +# 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 diff --git a/charts/unifi/1.0.0/Chart.lock b/charts/unifi/1.0.0/Chart.lock new file mode 100644 index 00000000000..f2c4886b998 --- /dev/null +++ b/charts/unifi/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://charts.truecharts.org/ + version: 1.3.0 +digest: sha256:a8928a03fcb76273e4859e665534195ef86dfa8710d8cb04d06114ce97227692 +generated: "2021-02-21T10:52:48.201533475Z" diff --git a/charts/unifi/1.0.0/Chart.yaml b/charts/unifi/1.0.0/Chart.yaml new file mode 100644 index 00000000000..a648b4337d3 --- /dev/null +++ b/charts/unifi/1.0.0/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: unifi +version: 1.0.0 +upstream_version: 1.5.1 +appVersion: 5.14.23 +description: Ubiquiti Network's Unifi Controller +type: application +deprecated: false +home: https://github.com/truecharts/charts/tree/master/charts/unifi +icon: https://dl.ubnt.com/press/logo-UniFi.png +keywords: + - ubiquiti + - unifi +sources: + - https://github.com/truecharts/charts/tree/master/charts/unifi + - https://github.com/jacobalberty/unifi-docker + - https://unifi-network.ui.com +dependencies: + - name: common + repository: https://charts.truecharts.com/ + version: 1.3.0 + # condition: + # tags: + # import-values: + # alias: +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org + - name: whiskerz007 + email: whiskerz007@users.noreply.github.com + # url: +# annotations: diff --git a/charts/unifi/1.0.0/LICENSE b/charts/unifi/1.0.0/LICENSE new file mode 100644 index 00000000000..056d3dab356 --- /dev/null +++ b/charts/unifi/1.0.0/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 k8s@Home + + Licensed 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. diff --git a/charts/unifi/1.0.0/README.md b/charts/unifi/1.0.0/README.md new file mode 100644 index 00000000000..045363806ce --- /dev/null +++ b/charts/unifi/1.0.0/README.md @@ -0,0 +1,69 @@ +# Unifi Controller + +This is a helm chart for [unifi](https://unifi-network.ui.com/). + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** + +## TL;DR; + +```shell +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/grocy +``` + +## Installing the Chart + +To install the chart with the release name `my-release`: + +```console +helm install --name my-release k8s-at-home/grocy +``` + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```console +helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration +Read through the charts [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/grocy/values.yaml) +file. It has several commented out suggested values. +Additionally you can take a look at the common library [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/common/values.yaml) for more (advanced) configuration options. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, +```console +helm install grocy \ + --set env.TZ="America/New_York" \ + k8s-at-home/grocy +``` +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the +chart. For example, +```console +helm install grocy k8s-at-home/grocy --values values.yaml +``` + +```yaml +image: + tag: ... +``` + +--- +**NOTE** + +If you get +```console +Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: ...` +``` +it may be because you uninstalled the chart with `skipuninstall` enabled, you need to manually delete the pvc or use `existingClaim`. + +--- + +## Upgrading an existing Release to a new major version + +A major chart version change (like 4.0.1 -> 5.0.0) indicates that there is an incompatible breaking change potentially needing manual actions. + +Refer to the library values.yaml for more configuration options. diff --git a/charts/unifi/1.0.0/app-readme.md b/charts/unifi/1.0.0/app-readme.md new file mode 100644 index 00000000000..1f3a3b0c7f5 --- /dev/null +++ b/charts/unifi/1.0.0/app-readme.md @@ -0,0 +1 @@ +The Unifi App is designed to deploy Unifi Controller in a TrueNAS SCALE kubernetes cluster. diff --git a/charts/unifi/1.0.0/charts/common-1.3.0.tgz b/charts/unifi/1.0.0/charts/common-1.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c4b3e3cd1416a806da2155492f46c54a57521f16 GIT binary patch literal 33604 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