Restructure repo to be a little cleaner (#445)

This commit is contained in:
Kjeld Schouten-Lebbing
2021-05-09 18:11:00 +02:00
committed by GitHub
parent 80a28c36a6
commit ffc823bccc
501 changed files with 358 additions and 564 deletions
+25
View File
@@ -0,0 +1,25 @@
# 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/
# OWNERS file for Kubernetes
OWNERS
+8
View File
@@ -0,0 +1,8 @@
# Configuration Options
##### Connecting to other apps
If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide:
https://truecharts.org/manual/linking/
##### Available config options
In the future this page is going to contain an automated list of options available in the installation/edit UI.
+34
View File
@@ -0,0 +1,34 @@
apiVersion: v2
kubeVersion: ">=1.16.0-0"
name: zwavejs2mqtt
version: 3.1.5
upstream_version: 1.1.0
appVersion: "auto"
description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue
type: application
deprecated: false
home: https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt
icon: https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/static/logo.png
keywords:
- zwavejs2mqtt
- zwave-js
- z-wave
- zwave
sources:
- https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt
- https://github.com/k8s-at-home/charts/tree/master/charts/zwavejs2mqtt
- https://github.com/zwave-js/zwavejs2mqtt
- https://hub.docker.com/r/zwavejs/zwavejs2mqtt
dependencies:
- name: common
repository: https://truecharts.org/
version: 3.5.5
# condition:
maintainers:
- name: TrueCharts
email: info@truecharts.org
url: truecharts.org
- name: tprelog
email: 35702532+tprelog@users.noreply.github.com
url: truecharts.org
# annotations:
+56
View File
@@ -0,0 +1,56 @@
# Introduction
![Version: 3.1.5](https://img.shields.io/badge/Version-3.1.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square)
Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
## Source Code
* <https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt>
* <https://github.com/k8s-at-home/charts/tree/master/charts/zwavejs2mqtt>
* <https://github.com/zwave-js/zwavejs2mqtt>
* <https://hub.docker.com/r/zwavejs/zwavejs2mqtt>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://truecharts.org/ | common | 3.5.5 |
## Installing the Chart
To install the chart with the release name `zwavejs2mqtt`
- Open TrueNAS SCALE
- Go to Apps
- Click "Install" for this specific Apps
- Fill out the configuration form
## Uninstalling the Chart
To uninstall the `zwavejs2mqtt` deployment
- Open TrueNAS SCALE
- Go to Apps
- Go to "Installed Apps"
- Expand the menu in the top-right corner of this App
- Click "Remove" for this specific Apps
The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release.
## Support
- See the [Wiki](https://truecharts.org)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
- Ask a [question](https://github.com/truecharts/apps/discussions)
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
All Rights Reserved - The TrueCharts Project
@@ -0,0 +1,3 @@
categories:
- tools
icon_url: https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/static/logo.png
@@ -0,0 +1,59 @@
##
# This file contains Values.yaml content that gets added to the output of questions.yaml
# It's ONLY meant for content that the user is NOT expected to change.
# Example: Everything under "image" is not included in questions.yaml but is included here.
##
image:
repository: zwavejs/zwavejs2mqtt
pullPolicy: IfNotPresent
tag: 2.4.1
probes:
liveness:
enabled: true
# custom: true
# spec:
# failureThreshold: 5
# httpGet:
# path: /health
# port: http
# httpHeaders:
# - name: Accept
# value: text/plain
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 10
readiness:
enabled: true
# custom: true
# spec:
# failureThreshold: 5
# httpGet:
# path: /health
# port: http
# httpHeaders:
# - name: Accept
# value: text/plain
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 10
startup:
enabled: false
# custom: true
# spec:
# failureThreshold: 5
# httpGet:
# path: /health
# port: http
# httpHeaders:
# - name: Accept
# value: text/plain
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 10
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##
@@ -0,0 +1,505 @@
groups:
- name: "Container Image"
description: "Image to be used for container"
- name: "Workload Configuration"
description: "Configure workload deployment"
- name: "Configuration"
description: "additional container configuration"
- name: "Networking"
description: "Configure / service for container"
- name: "Storage"
description: "Persist and share data that is separate from the lifecycle of the container"
- name: "Resources and Devices"
description: "Specify resources/devices to be allocated to workload"
- name: "Reverse Proxy Configuration"
description: "Reverse Proxy configuration"
- name: "Advanced"
description: "Advanced Configuration"
- name: "WARNING"
description: "WARNING"
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
questions:
- variable: portal
group: "Container Image"
label: "Configure Portal Button"
schema:
type: dict
hidden: true
attrs:
- variable: enabled
label: "Enable"
description: "enable the portal button"
schema:
hidden: true
editable: false
type: boolean
default: true
# Update Policy
- variable: strategyType
group: "Container Image"
label: "Update Strategy"
schema:
type: string
default: "Recreate"
enum:
- value: "RollingUpdate"
description: "Create new pods and then kill old ones"
- value: "Recreate"
description: "Kill existing pods before creating new ones"
# Configure Time Zone
- variable: timezone
group: "Container Image"
label: "Timezone"
schema:
type: string
default: "Etc/UTC"
$ref:
- "definitions/timezone"
# Service Configuration
# Enable Host Networking
- variable: hostNetwork
group: "Networking"
label: "Enable Host Networking"
schema:
type: boolean
default: false
- variable: services
group: "Networking"
label: "Configure Service"
schema:
type: dict
attrs:
- variable: main
label: "Main service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the service"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Service type"
description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System"
schema:
type: string
default: "ClusterIP"
enum:
- value: "NodePort"
description: "NodePort"
- value: "ClusterIP"
description: "ClusterIP"
- variable: port
label: "Port configuration"
schema:
type: dict
attrs:
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
hidden: false
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- variable: port
label: "container port"
schema:
type: int
default: 8091
editable: false
hidden: true
- variable: targetport
label: "Internal Service port"
description: "When connecting internally to this App, you'll need this port"
schema:
type: int
default: 8091
editable: false
hidden: true
- variable: nodePort
label: "(optional) host nodePort to expose to"
description: "only get used when nodePort is selected"
schema:
type: int
min: 9000
max: 65535
default: 36022
required: true
- variable: ws
label: "WebSocket service"
description: "This server is used to process WebSocket Connections"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the service"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Service type"
description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System"
schema:
type: string
default: "ClusterIP"
enum:
- value: "NodePort"
description: "NodePort"
- value: "ClusterIP"
description: "ClusterIP"
- variable: port
label: "Port configuration"
schema:
type: dict
attrs:
- variable: protocol
label: "Port Type"
schema:
type: string
default: "TCP"
hidden: true
enum:
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: port
label: "container port"
schema:
type: int
default: 3000
editable: false
hidden: true
- variable: targetport
label: "Internal Service port"
description: "When connecting internally to this App, you'll need this port"
schema:
type: int
default: 3000
editable: false
hidden: true
- variable: nodePort
label: "(optional) host nodePort to expose to"
description: "only get used when nodePort is selected"
schema:
type: int
min: 9000
max: 65535
default: 36023
required: true
# Configure app volumes
- variable: persistence
label: "Integrated Persistent Storage"
group: "Storage"
schema:
type: dict
attrs:
- variable: config
label: "App Config Storage"
description: "Stores the Application Configuration."
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
hidden: true
- variable: storageClass
label: "Type of Storage"
description: " Warning: Anything other than Internal will break rollback!"
schema:
type: string
default: ""
enum:
- value: ""
description: "Internal"
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/usr/src/app/store"
hidden: true
- variable: emptyDir
label: "Mount a ramdisk instead of actual storage"
schema:
type: boolean
default: false
hidden: true
- variable: accessMode
label: "Access Mode (Advanced)"
description: "Allow or disallow multiple PVC's writhing to the same PVC"
schema:
type: string
default: "ReadWriteOnce"
enum:
- value: "ReadWriteOnce"
description: "ReadWriteOnce"
- value: "ReadOnlyMany"
description: "ReadOnlyMany"
- value: "ReadWriteMany"
description: "ReadWriteMany"
- variable: size
label: "Size quotum of storage"
schema:
type: string
default: "100Gi"
- variable: customStorage
label: "Custom app storage"
group: "Storage"
schema:
type: list
default: []
items:
- variable: volumeMount
label: "Custom Storage"
schema:
type: dict
attrs:
- variable: enabled
label: "Enabled"
schema:
type: boolean
default: true
required: true
hidden: true
editable: false
- variable: setPermissions
label: "Automatic Permissions"
description: "Automatically set permissions on install"
schema:
type: boolean
default: true
hidden: false
- variable: readOnly
label: "Mount as ReadOnly"
description: "prevent any write from being done to the mounted volume"
schema:
type: boolean
default: false
hidden: false
- variable: emptyDir
label: "emptyDir"
schema:
type: boolean
default: false
hidden: true
editable: false
- variable: mountPath
label: "Mount Path"
description: "Path to mount inside the pod"
schema:
type: path
required: true
default: ""
editable: true
- variable: hostPath
label: "Host Path"
schema:
type: hostpath
required: true
- variable: deviceMounts
label: "Mount Devices"
group: "Resources and Devices"
schema:
type: list
default: []
items:
- variable: deviceMount
label: "Custom Storage"
schema:
type: dict
attrs:
- variable: enabled
label: "Enabled"
schema:
type: boolean
default: true
required: true
hidden: true
editable: false
- variable: emptyDir
label: "emptyDir"
schema:
type: boolean
default: false
hidden: true
editable: false
- variable: devicePath
label: "Device Path"
description: "Path to the device to mount inside the container"
schema:
type: path
required: true
default: "/dev/ttyACM0"
editable: true
- variable: ingress
label: ""
group: "Reverse Proxy Configuration"
schema:
type: dict
attrs:
- variable: main
label: "WebUI"
schema:
type: dict
attrs:
- variable: certType
label: "Select Reverse-Proxy Type"
schema:
type: string
default: "disabled"
enum:
- value: "disabled"
description: "Disabled"
- value: ""
description: "No Encryption/TLS/Certificates"
- value: "selfsigned"
description: "Self-Signed Certificate"
- value: "ixcert"
description: "TrueNAS SCALE Certificate"
- variable: type
label: "Reverse Proxy Type"
schema:
type: string
default: "HTTP"
hidden: true
editable: false
required: true
- variable: serviceName
label: "Service name to proxy to"
schema:
hidden: true
editable: false
type: string
default: ""
- variable: entrypoint
label: "Select Entrypoint"
schema:
show_if: [["certType", "!=", "disabled"]]
type: string
default: "websecure"
required: true
enum:
- value: "websecure"
description: "Websecure: HTTPS/TLS port 443"
- variable: hosts
label: "Hosts"
schema:
show_if: [["certType", "!=", "disabled"]]
type: list
default: []
items:
- variable: host
label: "Host"
schema:
type: dict
attrs:
- variable: host
label: "Domain Name"
required: true
schema:
type: string
- variable: path
label: "path"
schema:
type: string
required: true
hidden: true
default: "/"
- variable: certificate
label: "Select TrueNAS SCALE Certificate"
schema:
type: int
show_if: [["certType", "=", "ixcert"]]
$ref:
- "definitions/certificate"
- variable: authForwardURL
label: "Forward Authentication URL"
schema:
show_if: [["certType", "!=", "disabled"]]
type: string
default: ""
# Enable privileged
- variable: securityContext
group: "Advanced"
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Enable privileged mode for Common-Chart based charts"
schema:
type: boolean
default: false
# Set Pod Security Policy
- variable: podSecurityContext
group: "Advanced"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: true
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 568
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplementalGroups"
description: "Additional groups this App needs access to"
schema:
type: list
default: [5, 20, 24]
items:
- variable: Group
label: "Group"
schema:
type: int
default: 568
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
+2
View File
@@ -0,0 +1,2 @@
Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue
This App is supplied by TrueCharts, for more information please visit https://truecharts.org
@@ -0,0 +1 @@
{{ include "common.all" . }}
+113
View File
@@ -0,0 +1,113 @@
# Default values for zwavejs2mqtt.
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/charts/tree/master/charts/common
image:
repository: zwavejs/zwavejs2mqtt
pullPolicy: IfNotPresent
tag: 2.4.1
strategy:
type: Recreate
podSecurityContext:
runAsNonRoot: true
runAsUser: 568
runAsGroup: 568
fsGroup: 568
supplementalGroups: [5, 20, 24]
# # See more environment variables in the zwavejs2mqtt documentation
# https://zwave-js.github.io/zwavejs2mqtt/#/guide/env-vars
env: {}
# OZW_NETWORK_KEY:
probes:
liveness:
enabled: true
# custom: true
# spec:
# failureThreshold: 5
# httpGet:
# path: /health
# port: http
# httpHeaders:
# - name: Accept
# value: text/plain
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 10
readiness:
enabled: true
# custom: true
# spec:
# failureThreshold: 5
# httpGet:
# path: /health
# port: http
# httpHeaders:
# - name: Accept
# value: text/plain
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 10
startup:
enabled: false
# custom: true
# spec:
# failureThreshold: 5
# httpGet:
# path: /health
# port: http
# httpHeaders:
# - name: Accept
# value: text/plain
# initialDelaySeconds: 30
# periodSeconds: 10
# timeoutSeconds: 10
services:
main:
port:
port: 8091
ws:
enabled: true
type: ClusterIP
port:
port: 3000
protocol: TCP
targetPort: 3000
# Privileged may be required if USB controller is accessed directly through the host machine
# securityContext:
# privileged: true
persistence:
config:
enabled: true
mountPath: "/config"
emptyDir: true
accessMode: ReadWriteOnce
size: 1Gi
storageClass: ""
# Path to your zwave device in the container
additionalVolumeMounts: []
# - name: usb
# mountPath: /dev/serial/by-id/usb-0658_0200-if00
# Path to your zwave device on the host
additionalVolumes: []
# - name: usb
# hostPath:
# path: /dev/serial/by-id/usb-0658_0200-if00
# affinity:
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: app
# operator: In
# values:
# - zwave-controller