chart-unifi_network_application: add
This commit is contained in:
23
charts/unifi-network-application/.helmignore
Normal file
23
charts/unifi-network-application/.helmignore
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# 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/
|
||||||
18
charts/unifi-network-application/Chart.yaml
Normal file
18
charts/unifi-network-application/Chart.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v2
|
||||||
|
name: unifi-network-application
|
||||||
|
description: >
|
||||||
|
Unifi Controller application using linuxservers Docker image. This
|
||||||
|
chart was originally created by Balazs Petrikovics and is available at
|
||||||
|
https://github.com/bpetrikovics/unifi-network-application. The chart
|
||||||
|
was modified and improved by Bertalan Z. Péter for personal use.
|
||||||
|
home: https://ui.com
|
||||||
|
type: application
|
||||||
|
version: 0.1.0
|
||||||
|
appVersion: 8.3.32-ls61
|
||||||
|
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- name: Bertalan Zoltán Péter
|
||||||
|
email: bertalan.peter@bp99.eu
|
||||||
|
url: https://bp99.eu
|
||||||
22
charts/unifi-network-application/LICENSE
Normal file
22
charts/unifi-network-application/LICENSE
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 Balázs Petrikovics
|
||||||
|
Copyright (c) 2024 Bertalan Zoltán Péter
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
62
charts/unifi-network-application/README.md
Normal file
62
charts/unifi-network-application/README.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# unifi-network-application
|
||||||
|
|
||||||
|
  
|
||||||
|
|
||||||
|
Unifi Controller application using linuxservers Docker image. This chart was originally created by Balazs Petrikovics and is available at https://github.com/bpetrikovics/unifi-network-application. The chart was modified and improved by Bertalan Z. Péter for personal use.
|
||||||
|
|
||||||
|
**Homepage:** <https://ui.com>
|
||||||
|
|
||||||
|
## Maintainers
|
||||||
|
|
||||||
|
| Name | Email | Url |
|
||||||
|
| ---- | ------ | --- |
|
||||||
|
| Bertalan Zoltán Péter | <bertalan.peter@bp99.eu> | <https://bp99.eu> |
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Key | Type | Default | Description |
|
||||||
|
|-----|------|---------|-------------|
|
||||||
|
| fullnameOverride | string | `""` | can be used to override the main app name; incorporates release name by default |
|
||||||
|
| global.storageClass | string | `""` | globally set the storage class for PVCs |
|
||||||
|
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||||
|
| image.repository | string | `"linuxserver/unifi-network-application"` | |
|
||||||
|
| image.tag | string | `""` | overrides the image tag whose default is the chart appVersion |
|
||||||
|
| ingress.annotations | object | `{}` | |
|
||||||
|
| ingress.hostname | string | `"unifi.local"` | |
|
||||||
|
| ingress.redirect.annotations | object | `{}` | |
|
||||||
|
| ingress.redirect.enabled | bool | `true` | deploys an additional ingress for http to https redirection, if needed |
|
||||||
|
| mongodb.adminpassword | string | `""` | |
|
||||||
|
| mongodb.adminuser | string | `""` | |
|
||||||
|
| mongodb.cacheSizeGB | string | `"0.25"` | |
|
||||||
|
| mongodb.dbname | string | `"unifi"` | main database name |
|
||||||
|
| mongodb.dbname_stat | string | `"unifi_stat"` | stat database name |
|
||||||
|
| mongodb.image | string | `"mongo"` | image to pull and use; for arm64 (eg Raspberry Pi 4), use "arm64v8/mongo" |
|
||||||
|
| mongodb.imageTag | string | `"7.0"` | |
|
||||||
|
| mongodb.password | string | `""` | |
|
||||||
|
| mongodb.persistence.accessModes | object | `{}` | |
|
||||||
|
| mongodb.persistence.annotations | object | `{}` | |
|
||||||
|
| mongodb.persistence.claimSuffix | string | `"config-claim"` | suffix string that will be appended to fullname |
|
||||||
|
| mongodb.persistence.create | bool | `true` | whether to create PVCs |
|
||||||
|
| mongodb.persistence.enabled | bool | `true` | whether to deal with persistence at all |
|
||||||
|
| mongodb.persistence.labels | object | `{}` | |
|
||||||
|
| mongodb.persistence.size | string | `"128Mi"` | size limit for the PVC |
|
||||||
|
| mongodb.persistence.storageClass | string | `""` | override storage class |
|
||||||
|
| mongodb.persistence.volumeName | string | `""` | |
|
||||||
|
| mongodb.podSecurityContext | object | `{}` | |
|
||||||
|
| mongodb.username | string | `""` | credentials for "normal" and admin user; MUST BE SET! |
|
||||||
|
| nameOverride | string | `""` | |
|
||||||
|
| persistence.accessModes | object | `{}` | |
|
||||||
|
| persistence.annotations | object | `{}` | |
|
||||||
|
| persistence.claimSuffix | string | `"config-claim"` | suffix string that will be appended to fullname |
|
||||||
|
| persistence.create | bool | `true` | whether to create PVCs |
|
||||||
|
| persistence.enabled | bool | `true` | whether to deal with persistence at all |
|
||||||
|
| persistence.labels | object | `{}` | |
|
||||||
|
| persistence.size | string | `"128Mi"` | size limit for the PVC |
|
||||||
|
| persistence.storageClass | string | `""` | override storage class |
|
||||||
|
| persistence.volumeName | string | `""` | |
|
||||||
|
| replicaCount | int | `1` | how many app replicas to run; only ever tested with 1 |
|
||||||
|
| resources | object | `{}` | |
|
||||||
|
| service.annotations | object | `{}` | |
|
||||||
|
| service.loadBalancerIp | string | `nil` | |
|
||||||
|
| service.type | string | `nil` | |
|
||||||
|
|
||||||
72
charts/unifi-network-application/templates/_helpers.tpl
Normal file
72
charts/unifi-network-application/templates/_helpers.tpl
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{{/*
|
||||||
|
Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "template.name" -}}
|
||||||
|
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a default fully qualified app name.
|
||||||
|
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||||
|
If release name contains chart name it will be used as a full name.
|
||||||
|
*/}}
|
||||||
|
{{- define "template.fullname" -}}
|
||||||
|
{{- if .Values.fullnameOverride }}
|
||||||
|
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||||
|
{{- if contains $name .Release.Name }}
|
||||||
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create chart name and version as used by the chart label.
|
||||||
|
*/}}
|
||||||
|
{{- define "template.chart" -}}
|
||||||
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Common labels
|
||||||
|
*/}}
|
||||||
|
{{- define "template.labels" -}}
|
||||||
|
helm.sh/chart: {{ include "template.chart" . }}
|
||||||
|
{{ include "template.selectorLabels" . }}
|
||||||
|
{{- if .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Selector labels
|
||||||
|
*/}}
|
||||||
|
{{- define "template.selectorLabels" -}}
|
||||||
|
app.kubernetes.io/name: {{ include "template.name" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the name of the service account to use
|
||||||
|
*/}}
|
||||||
|
{{- define "template.serviceAccountName" -}}
|
||||||
|
{{- if .Values.serviceAccount.create }}
|
||||||
|
{{- default (include "template.fullname" .) .Values.serviceAccount.name }}
|
||||||
|
{{- else }}
|
||||||
|
{{- default "default" .Values.serviceAccount.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Storage Class
|
||||||
|
*/}}
|
||||||
|
{{- define "template.persistence.storageClass" -}}
|
||||||
|
{{- $storageClass := (tpl ( default "" .Values.persistence.storageClass) .) | default (tpl ( default "" .Values.global.storageClass) .) }}
|
||||||
|
{{- if $storageClass }}
|
||||||
|
storageClassName: {{ $storageClass | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
24
charts/unifi-network-application/templates/configmap.yaml
Normal file
24
charts/unifi-network-application/templates/configmap.yaml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
kind: ConfigMap
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb-init-sh
|
||||||
|
data:
|
||||||
|
init-mongo.sh: |
|
||||||
|
if which mongosh > /dev/null 2>&1; then
|
||||||
|
mongo_init_bin='mongosh'
|
||||||
|
else
|
||||||
|
mongo_init_bin='mongo'
|
||||||
|
fi
|
||||||
|
"${mongo_init_bin}" <<EOF
|
||||||
|
use ${MONGO_AUTHSOURCE}
|
||||||
|
db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
|
||||||
|
db.createUser({
|
||||||
|
user: "${MONGO_USER}",
|
||||||
|
pwd: "${MONGO_PASS}",
|
||||||
|
roles: [
|
||||||
|
{ db: "${MONGO_DBNAME}", role: "dbOwner" },
|
||||||
|
{ db: "${MONGO_DBNAME}_stat", role: "dbOwner" }
|
||||||
|
]
|
||||||
|
})
|
||||||
|
EOF
|
||||||
152
charts/unifi-network-application/templates/deployment.yaml
Normal file
152
charts/unifi-network-application/templates/deployment.yaml
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
---
|
||||||
|
kind: Deployment
|
||||||
|
apiVersion: apps/v1
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb
|
||||||
|
labels:
|
||||||
|
{{- include "template.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb
|
||||||
|
labels:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb
|
||||||
|
spec:
|
||||||
|
securityContext:
|
||||||
|
{{ .Values.mongodb.podSecurityContext | toYaml | nindent 8 }}
|
||||||
|
volumes:
|
||||||
|
- name: {{ include "template.fullname" . }}-mongodb-init-volume
|
||||||
|
configMap:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb-init-sh
|
||||||
|
- name: {{ include "template.fullname" . }}-mongodb-data-volume
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: {{ include "template.fullname" . }}-{{ default "db-claim" .Values.mongodb.persistence.claimSuffix }}
|
||||||
|
|
||||||
|
containers:
|
||||||
|
- name: mongodb
|
||||||
|
image: "{{ .Values.mongodb.image }}:{{ .Values.mongodb.imageTag }}"
|
||||||
|
args: ["--wiredTigerCacheSizeGB", "{{ .Values.mongodb.cacheSizeGB }}"]
|
||||||
|
|
||||||
|
env:
|
||||||
|
- name: MONGO_INITDB_ROOT_USERNAME
|
||||||
|
value: {{ .Values.mongodb.adminuser }}
|
||||||
|
- name: MONGO_INITDB_ROOT_PASSWORD
|
||||||
|
value: {{ .Values.mongodb.adminpassword }}
|
||||||
|
- name: MONGO_AUTHSOURCE
|
||||||
|
value: admin
|
||||||
|
- name: MONGO_USER
|
||||||
|
value: {{ .Values.mongodb.username }}
|
||||||
|
- name: MONGO_PASS
|
||||||
|
value: {{ .Values.mongodb.password }}
|
||||||
|
- name: MONGO_DBNAME
|
||||||
|
value: {{ .Values.mongodb.dbname }}
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- name: 'mongo'
|
||||||
|
containerPort: 27017
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
volumeMounts:
|
||||||
|
- name: {{ include "template.fullname" . }}-mongodb-init-volume
|
||||||
|
mountPath: /docker-entrypoint-initdb.d/init-mongo.sh
|
||||||
|
- name: {{ include "template.fullname" . }}-mongodb-data-volume
|
||||||
|
mountPath: /data/db
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: Deployment
|
||||||
|
apiVersion: apps/v1
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-app
|
||||||
|
labels:
|
||||||
|
{{- include "template.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: {{ include "template.fullname" . }}-app
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-app
|
||||||
|
labels:
|
||||||
|
name: {{ include "template.fullname" . }}-app
|
||||||
|
spec:
|
||||||
|
volumes:
|
||||||
|
- name: {{ include "template.fullname" . }}-app-config-volume
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: {{ include "template.fullname" }}-{{ default "config-claim" .Values.persistence.claimSuffix }}
|
||||||
|
|
||||||
|
containers:
|
||||||
|
- name: {{ include "template.fullname" . }}-app
|
||||||
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||||
|
env:
|
||||||
|
- name: TZ
|
||||||
|
value: "Europe/Budapest"
|
||||||
|
- name: MEM_LIMIT
|
||||||
|
value: "1024"
|
||||||
|
- name: MEM_STARTUP
|
||||||
|
value: "1024"
|
||||||
|
- name: MONGO_HOST
|
||||||
|
value: {{ include "template.fullname" . }}-mongodb-service
|
||||||
|
- name: MONGO_PORT
|
||||||
|
value: "27017"
|
||||||
|
- name: MONGO_USER
|
||||||
|
value: {{ .Values.mongodb.username }}
|
||||||
|
- name: MONGO_PASS
|
||||||
|
value: {{ .Values.mongodb.password }}
|
||||||
|
- name: MONGO_DBNAME
|
||||||
|
value: {{ .Values.mongodb.dbname }}
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- name: 'l2-discoverable'
|
||||||
|
containerPort: 1900
|
||||||
|
protocol: UDP
|
||||||
|
- name: 'ap-discovery'
|
||||||
|
containerPort: 10001
|
||||||
|
protocol: UDP
|
||||||
|
- name: 'stun'
|
||||||
|
containerPort: 3478
|
||||||
|
protocol: UDP
|
||||||
|
- name: 'syslog'
|
||||||
|
containerPort: 5514
|
||||||
|
protocol: UDP
|
||||||
|
- name: 'speed-test'
|
||||||
|
containerPort: 6789
|
||||||
|
protocol: TCP
|
||||||
|
- name: 'internal-comms'
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
- name: 'https-web'
|
||||||
|
containerPort: 8443
|
||||||
|
protocol: TCP
|
||||||
|
- name: 'http-s-redirect'
|
||||||
|
containerPort: 8843
|
||||||
|
protocol: TCP
|
||||||
|
- name: 'http-redirect'
|
||||||
|
containerPort: 8880
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
volumeMounts:
|
||||||
|
- name: {{ include "template.fullname" . }}-app-config-volume
|
||||||
|
mountPath: /config
|
||||||
|
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /status
|
||||||
|
port: 8080
|
||||||
|
periodSeconds: 10
|
||||||
|
failureThreshold: 1
|
||||||
|
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /status
|
||||||
|
port: 8080
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 30
|
||||||
|
failureThreshold: 5
|
||||||
|
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
45
charts/unifi-network-application/templates/ingress.yaml
Normal file
45
charts/unifi-network-application/templates/ingress.yaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-ingress
|
||||||
|
{{- with .Values.ingress.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: {{ .Values.ingress.hostname }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: "/"
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: {{ include "template.fullname" . }}-service-tcp
|
||||||
|
port:
|
||||||
|
number: 8443
|
||||||
|
|
||||||
|
{{ if .Values.ingress.redirect.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-ingress-redirect
|
||||||
|
{{- with .Values.ingress.redirect.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: {{ .Values.ingress.hostname }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: "/"
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: {{ include "template.fullname" . }}-service-tcp
|
||||||
|
port:
|
||||||
|
number: 8443
|
||||||
|
{{ end }}
|
||||||
54
charts/unifi-network-application/templates/pvc.yaml
Normal file
54
charts/unifi-network-application/templates/pvc.yaml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{{- if and .Values.persistence.enabled .Values.persistence.create }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-{{ default "config-claim" .Values.persistence.claimSuffix }}
|
||||||
|
namespace: {{ $.Release.Namespace }}
|
||||||
|
annotations:
|
||||||
|
{{ .Values.persistence.annotations | toYaml | indent 4}}
|
||||||
|
labels:
|
||||||
|
{{ .Values.persistence.labels | toYaml | indent 4}}
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
{{- if gt .Values.replicaCount 1.0 }}
|
||||||
|
- ReadWriteMany
|
||||||
|
{{- else }}
|
||||||
|
{{- .Values.persistence.accessModes | toYaml | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
volumeMode: Filesystem
|
||||||
|
{{- include "template.persistence.storageClass" . | nindent 2 }}
|
||||||
|
{{- with .Values.persistence.volumeName }}
|
||||||
|
volumeName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .Values.persistence.size }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if and .Values.mongodb.persistence.enabled .Values.mongodb.persistence.create }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-{{ default "db-claim" .Values.mongodb.persistence.claimSuffix }}
|
||||||
|
namespace: {{ $.Release.Namespace }}
|
||||||
|
annotations:
|
||||||
|
{{ .Values.mongodb.persistence.annotations | toYaml | indent 4}}
|
||||||
|
labels:
|
||||||
|
{{ .Values.mongodb.persistence.labels | toYaml | indent 4}}
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
{{- if gt .Values.replicaCount 1.0 }}
|
||||||
|
- ReadWriteMany
|
||||||
|
{{- else }}
|
||||||
|
{{- .Values.mongodb.persistence.accessModes | toYaml | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
volumeMode: Filesystem
|
||||||
|
{{- include "template.persistence.storageClass" . | nindent 2 }}
|
||||||
|
{{- with .Values.mongodb.persistence.volumeName }}
|
||||||
|
volumeName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .Values.mongodb.persistence.size }}
|
||||||
|
{{- end }}
|
||||||
86
charts/unifi-network-application/templates/service.yaml
Normal file
86
charts/unifi-network-application/templates/service.yaml
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb-service
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: 'mongo'
|
||||||
|
protocol: TCP
|
||||||
|
port: 27017
|
||||||
|
targetPort: 27017
|
||||||
|
selector:
|
||||||
|
name: {{ include "template.fullname" . }}-mongodb
|
||||||
|
type: NodePort
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-service-tcp
|
||||||
|
{{- with .Values.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: 'internal-comms'
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
- name: 'https-web'
|
||||||
|
protocol: TCP
|
||||||
|
port: 8443
|
||||||
|
targetPort: 8443
|
||||||
|
- name: 'http-s-redirect'
|
||||||
|
protocol: TCP
|
||||||
|
port: 8843
|
||||||
|
targetPort: 8843
|
||||||
|
- name: 'http-redirect'
|
||||||
|
protocol: TCP
|
||||||
|
port: 8880
|
||||||
|
targetPort: 8880
|
||||||
|
- name: 'speedt-test'
|
||||||
|
protocol: TCP
|
||||||
|
port: 6789
|
||||||
|
targetPort: 6789
|
||||||
|
selector:
|
||||||
|
name: {{ include "template.fullname" . }}-app
|
||||||
|
type: {{ .Values.service.type }}
|
||||||
|
{{- if .Values.service.loadBalancerIP }}
|
||||||
|
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: {{ include "template.fullname" . }}-service-udp
|
||||||
|
{{- with .Values.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: '1900'
|
||||||
|
protocol: UDP
|
||||||
|
port: 1900
|
||||||
|
targetPort: 1900
|
||||||
|
- name: '3478'
|
||||||
|
protocol: UDP
|
||||||
|
port: 3478
|
||||||
|
targetPort: 3478
|
||||||
|
- name: '5514'
|
||||||
|
protocol: UDP
|
||||||
|
port: 5514
|
||||||
|
targetPort: 5514
|
||||||
|
- name: '10001'
|
||||||
|
protocol: UDP
|
||||||
|
port: 10001
|
||||||
|
targetPort: 10001
|
||||||
|
selector:
|
||||||
|
name: {{ include "template.fullname" . }}-app
|
||||||
|
type: {{ .Values.service.type }}
|
||||||
|
{{- if .Values.service.loadBalancerIP }}
|
||||||
|
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||||
|
{{ end }}
|
||||||
104
charts/unifi-network-application/values.yaml
Normal file
104
charts/unifi-network-application/values.yaml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
# -- how many app replicas to run; only ever tested with 1
|
||||||
|
replicaCount: 1
|
||||||
|
|
||||||
|
|
||||||
|
image:
|
||||||
|
repository: linuxserver/unifi-network-application
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
# -- overrides the image tag whose default is the chart appVersion
|
||||||
|
tag: ''
|
||||||
|
|
||||||
|
|
||||||
|
nameOverride: ''
|
||||||
|
# -- can be used to override the main app name; incorporates release name by default
|
||||||
|
fullnameOverride: ''
|
||||||
|
|
||||||
|
|
||||||
|
global:
|
||||||
|
# -- globally set the storage class for PVCs
|
||||||
|
storageClass: ''
|
||||||
|
|
||||||
|
|
||||||
|
service:
|
||||||
|
annotations: {}
|
||||||
|
type:
|
||||||
|
loadBalancerIp:
|
||||||
|
|
||||||
|
# Not optional - otherwise UI not accessible
|
||||||
|
ingress:
|
||||||
|
hostname: unifi.local
|
||||||
|
annotations: {}
|
||||||
|
# traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
|
# traefik.ingress.kubernetes.io/loadbalancer.server.scheme: https
|
||||||
|
redirect:
|
||||||
|
# -- deploys an additional ingress for http to https redirection, if needed
|
||||||
|
enabled: true
|
||||||
|
annotations: {}
|
||||||
|
# traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||||
|
# traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd
|
||||||
|
# ingress.kubernetes.io/custom-request-headers: X-Forwarded-Proto:https
|
||||||
|
|
||||||
|
|
||||||
|
resources: {}
|
||||||
|
# Suggested/tested resource settings
|
||||||
|
# requests:
|
||||||
|
# memory: 1Gi
|
||||||
|
# cpu: 0.5
|
||||||
|
# limits:
|
||||||
|
# memory: 1.5Gi
|
||||||
|
# cpu: 2
|
||||||
|
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
# -- whether to deal with persistence at all
|
||||||
|
enabled: true
|
||||||
|
# -- whether to create PVCs
|
||||||
|
create: true
|
||||||
|
# -- suffix string that will be appended to fullname
|
||||||
|
claimSuffix: config-claim
|
||||||
|
annotations: {}
|
||||||
|
labels: {}
|
||||||
|
accessModes: {}
|
||||||
|
# -- override storage class
|
||||||
|
storageClass: ''
|
||||||
|
volumeName: ''
|
||||||
|
# -- size limit for the PVC
|
||||||
|
size: 128Mi
|
||||||
|
|
||||||
|
|
||||||
|
mongodb:
|
||||||
|
# -- image to pull and use; for arm64 (eg Raspberry Pi 4), use "arm64v8/mongo"
|
||||||
|
image: mongo
|
||||||
|
imageTag: '7.0'
|
||||||
|
cacheSizeGB: '0.25'
|
||||||
|
# -- main database name
|
||||||
|
dbname: unifi
|
||||||
|
# -- stat database name
|
||||||
|
dbname_stat: unifi_stat
|
||||||
|
# -- credentials for "normal" and admin user; MUST BE SET!
|
||||||
|
username: ''
|
||||||
|
password: ''
|
||||||
|
adminuser: ''
|
||||||
|
adminpassword: ''
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
# -- whether to deal with persistence at all
|
||||||
|
enabled: true
|
||||||
|
# -- whether to create PVCs
|
||||||
|
create: true
|
||||||
|
# -- suffix string that will be appended to fullname
|
||||||
|
claimSuffix: config-claim
|
||||||
|
annotations: {}
|
||||||
|
labels: {}
|
||||||
|
accessModes: {}
|
||||||
|
# -- override storage class
|
||||||
|
storageClass: ''
|
||||||
|
volumeName: ''
|
||||||
|
# -- size limit for the PVC
|
||||||
|
size: 128Mi
|
||||||
|
|
||||||
|
podSecurityContext: {}
|
||||||
|
# Settings for NFS running as nobody(65534):
|
||||||
|
# runAsUser: 65534
|
||||||
|
# runAsGroup: 65534
|
||||||
Reference in New Issue
Block a user