feat(apps): add a bunch of mariaDB backed Apps (#1407)

* feat(apps): add  a bunch of Apps, mostly mariadb-backed

* move new apps to incubator
This commit is contained in:
Kjeld Schouten-Lebbing
2021-11-30 14:33:15 +01:00
committed by GitHub
parent 8779b53a53
commit 90b5511e0f
54 changed files with 5108 additions and 37 deletions
+26
View File
@@ -0,0 +1,26 @@
# 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
+29
View File
@@ -0,0 +1,29 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "Protect your email from spam using disposable addresses."
home: https://github.com/truechartsapps/tree/master/charts/stable/anonaddy
icon: https://avatars.githubusercontent.com/u/51450862?s=200&v=4?sanitize=true
keywords:
- anonaddy
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: anonaddy
sources:
- https://github.com/anonaddy/docker
version: 6.0.0
annotations:
truecharts.org/catagories: |
- email
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+411
View File
@@ -0,0 +1,411 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
- variable: PUID
label: "PUID"
schema:
type: int
default: 568
required: true
- variable: ANONADDY_DOMAIN
label: "ANONADDY_DOMAIN"
schema:
type: string
default: ""
required: true
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10110
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 8000
- variable: smtp
label: "smtp Service"
description: "The smtp service"
schema:
type: dict
attrs:
# Include{serviceSelector}
- variable: smtp
label: "smtp Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 25
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 25
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/config"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,28 @@
{{/*
This template generates a random password and ensures it persists across updates/edits to the chart
*/}}
{{- define "anonaddy.appkey" -}}
---
apiVersion: v1
kind: Secret
metadata:
labels:
{{- include "common.labels" . | nindent 4 }}
name: appkey
{{- $keyprevious := lookup "v1" "Secret" .Release.Namespace "appkey" }}
{{- $appkey := "" }}
{{- $secret := "" }}
data:
{{- if $keyprevious }}
{{- $appkey = ( index $keyprevious.data "appkey" ) | b64dec }}
{{- $secret = ( index $keyprevious.data "secret" ) | b64dec }}
appkey: {{ ( index $keyprevious.data "appkey" ) }}
secret: {{ ( index $keyprevious.data "secret" ) }}
{{- else }}
{{- $appkey = randAlphaNum 32 | b64enc }}
{{- $secret = randAlphaNum 32 | b64enc }}
appkey: {{ $appkey | b64enc | quote }}
secret: {{ $secret | b64enc | quote }}
{{- end }}
type: Opaque
{{- end -}}
@@ -0,0 +1,9 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.setup" . }}
{{/* Render appkey for anonaddy */}}
{{- include "anonaddy.appkey" . }}
{{/* Render the templates */}}
{{ include "common.postSetup" . }}
+86
View File
@@ -0,0 +1,86 @@
image:
repository: anonaddy/anonaddy
tag: 0.8.7@sha256:739e9d5953abd6736918559220badb76fcc03d94ff87308a3ca461479a6191fc
pullPolicy: IfNotPresent
strategy:
type: Recreate
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- environment variables. See more environment variables in the [anonaddy documentation](https://github.com/anonaddy/docker#environment-variables).
# @default -- See below
env:
PUID: 568
# -- Root domain to receive email from
ANONADDY_DOMAIN: chart-example.local
DB_DATABASE: anonaddy
DB_USERNAME: anonaddy
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
main:
port: 10110
targetPort: 8000
smtp:
enabled: true
ports:
smtp:
enabled: true
port: 25
targetPort: 25
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
varrun:
enabled: true
config:
enabled: true
envValueFrom:
DB_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
DB_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
REDIS_HOST:
secretKeyRef:
name: rediscreds
key: plainhost
REDIS_PASSWORD:
secretKeyRef:
name: rediscreds
key: redis-password
APP_KEY:
secretKeyRef:
name: appkey
key: appkey
ANONADDY_SECRET:
secretKeyRef:
name: appkey
key: secret
redis:
enabled: true
existingSecret: "rediscreds"
mariadb:
enabled: true
mariadbUsername: anonaddy
mariadbDatabase: anonaddy
existingSecret: "mariadbcreds"
+23
View 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/
+34
View File
@@ -0,0 +1,34 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: postgresql.enabled
name: postgresql
repository: https://truecharts.org/
version: 6.0.10
description: "Lightweight self-hosted facebook-styled PHP blog."
home: https://github.com/truechartsapps/tree/master/charts/stable/blog
icon: https://demo.photoprism.org/static/img/logo-avatar.svg
keywords:
- blog
- php
- self
- hosted
- facebook
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: blog
sources:
- https://github.com/m1k1o/blog
- https://github.com/nicholaswilde/docker-blog
version: 0.0.1
annotations:
truecharts.org/catagories: |
- hosting
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+359
View File
@@ -0,0 +1,359 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
- variable: BLOG_TITLE
label: "Blog Title"
schema:
type: string
default: ""
required: true
- variable: BLOG_NAME
label: "Blog Name"
schema:
type: string
default: ""
required: true
- variable: BLOG_LANG
label: "Blog Language"
schema:
type: string
default: ""
required: true
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10111
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
schema:
type: dict
attrs:
- variable: data
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/var/www/html/data"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,2 @@
{{ include "common.all" . }}
+56
View File
@@ -0,0 +1,56 @@
image:
repository: m1k1o/blog
pullPolicy: IfNotPresent
tag: latest@sha256:8a859e44c66159e0ac4b959cd9255012d159328bbdaf977e01f3db739fe0203a
secret:
BLOG_NICK: username
BLOG_PASS: password
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# See more environment variables in the blog documentation
# https://github.com/nicholaswilde/docker-blog
env:
BLOG_TITLE: Blog
BLOG_NAME: Max Musermann
BLOG_LANG: en
BLOG_DB_CONNECTION: postgres
BLOG_POSTGRES_USER: blog
BLOG_POSTGRES_PORT: 5432
BLOG_DB_NAME: blog
service:
main:
ports:
main:
port: 10111
targetPort: 80
persistence:
data:
enabled: true
mountPath: /var/www/html/data
envValueFrom:
BLOG_POSTGRES_PASS:
secretKeyRef:
name: dbcreds
key: postgresql-password
BLOG_POSTGRES_HOST:
secretKeyRef:
name: dbcreds
key: plainhost
# Enabled postgres
postgresql:
enabled: true
existingSecret: "dbcreds"
postgresqlUsername: blog
postgresqlDatabase: blog
+26
View File
@@ -0,0 +1,26 @@
# 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
+35
View File
@@ -0,0 +1,35 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "A simple, self-hosted, easy-to-use platform for organising and storing information."
home: https://github.com/truechartsapps/tree/master/charts/stable/bookstack
icon: https://avatars3.githubusercontent.com/u/20912696?s=400&v=4?sanitize=true
keywords:
- bookstack
- book
- stack
- organizer
- server
- hosted
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: bookstack
sources:
- https://www.bookstackapp.com/
- https://hub.docker.com/r/linuxserver/bookstack
version: 0.0.1
annotations:
truecharts.org/catagories: |
- media
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+347
View File
@@ -0,0 +1,347 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
- variable: PUID
label: "PUID"
schema:
type: int
default: 568
required: true
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10112
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/config"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1 @@
{{ include "common.all" . }}
+53
View File
@@ -0,0 +1,53 @@
image:
repository: ghcr.io/linuxserver/bookstack
pullPolicy: IfNotPresent
tag: 21.11.1@sha256:c7a571a05e2940846f112b115f967da931c32de9ca926fc10f07666a80ec30e7
# -- environment variables. See more environment variables in the [bookstack documentation](https://hub.docker.com/r/linuxserver/bookstack)
# @default -- See below
env:
DB_USER: bookstack
DB_DATABASE: bookstack
PUID: 568
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
main:
port: 10112
targetPort: 80
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
varrun:
enabled: true
config:
enabled: true
mountPath: /config
envValueFrom:
DB_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
DB_PASS:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
mariadb:
enabled: true
mariadbUsername: bookstack
mariadbDatabase: bookstack
existingSecret: "mariadbcreds"
+23
View 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/
+34
View File
@@ -0,0 +1,34 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "A web-based dashboard application that gives you a neat and clean interface for logging your fuel fill-ups for all of your vehicles."
home: https://github.com/truechartsapps/tree/master/charts/stable/clarkson
icon: "https://github.com/linuxserver/Clarkson/raw/master/src/mstile-150x150.png"
keywords:
- fuel
- car
- log
- fill-up
- vehicle
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: clarkson
sources:
- https://github.com/linuxserver/Clarkson
- https://hub.docker.com/r/linuxserver/clarkson
version: 0.0.1
annotations:
truecharts.org/catagories: |
- vehicle
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+285
View File
@@ -0,0 +1,285 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
- variable: PUID
label: "PUID"
schema:
type: int
default: 568
required: true
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10113
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 3000
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1 @@
{{ include "common.all" . }}
+50
View File
@@ -0,0 +1,50 @@
image:
repository: ghcr.io/linuxserver/clarkson
pullPolicy: IfNotPresent
tag: 1.1.2@sha256:c9c19c229d636d6819711542942d0a9831ba0a851827e6c0188eee5dab58c2b0
strategy:
type: Recreate
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
service:
main:
ports:
main:
port: 10113
targetPort: 3000
# See more environment variables in the clarkson documentation
# https://github.com/linuxserver/docker-clarkson#parameters
env:
PUID: 568
MYSQL_USERNAME: clarkson
envValueFrom:
MYSQL_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
MYSQL_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
persistence:
varrun:
enabled: true
mariadb:
enabled: true
mariadbUsername: clarkson
mariadbDatabase: clarkson
existingSecret: "mariadbcreds"
+23
View 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/
+31
View File
@@ -0,0 +1,31 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "Welcome to the free social web"
home: https://github.com/truechartsapps/tree/master/charts/stable/friendica
icon: "https://d1q6f0aelx0por.cloudfront.net/product-logos/library-friendica-logo.png"
keywords:
- friend
- social
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: friendica
sources:
- https://friendi.ca/
- https://hub.docker.com/_/friendica
version: 0.0.1
annotations:
truecharts.org/catagories: |
- social
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+341
View File
@@ -0,0 +1,341 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10058
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/var/www/html"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,2 @@
{{ include "common.all" . }}
+59
View File
@@ -0,0 +1,59 @@
image:
repository: friendica
pullPolicy: IfNotPresent
tag: 2021.09@sha256:e4f70bcc0d11715de7708cb5f798451c2149705ce79162428479422d6111efca
securityContext:
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# See more environment variables in the friendica documentation
# https://hub.docker.com/_/friendica
env:
MYSQL_USER: friendica
MYSQL_DATABASE: friendica
service:
main:
ports:
main:
port: 10058
targetPort: 80
persistence:
varrun:
enabled: true
config:
enabled: true
mountPath: /var/www/html
envValueFrom:
MYSQL_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
MYSQL_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
REDIS_HOST:
secretKeyRef:
name: rediscreds
key: plainhost
REDIS_PW:
secretKeyRef:
name: rediscreds
key: redis-password
redis:
enabled: true
existingSecret: "rediscreds"
mariadb:
enabled: true
mariadbUsername: friendica
mariadbDatabase: friendica
existingSecret: "mariadbcreds"
+26
View File
@@ -0,0 +1,26 @@
# 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
+31
View File
@@ -0,0 +1,31 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "A monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting."
home: https://github.com/truechartsapps/tree/master/charts/stable/icinga2
icon: https://avatars.githubusercontent.com/u/835441?s=200&v=4
keywords:
- icinga2
- monitoring
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: icinga2
sources:
- https://github.com/jjethwa/icinga2
- https://icinga.com/
version: 0.0.1
annotations:
truecharts.org/catagories: |
- monitoring
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+625
View File
@@ -0,0 +1,625 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10114
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: https
label: "https Service"
description: "The https service"
schema:
type: dict
attrs:
# Include{serviceSelector}
- variable: https
label: "https Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10115
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 443
- variable: api
label: "api Service"
description: "The api service"
schema:
type: dict
attrs:
# Include{serviceSelector}
- variable: api
label: "api Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10116
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 5665
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/etc/icinga2"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
- variable: data
label: "App data Storage"
description: "Stores the Application data."
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/var/lib/icinga2"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
- variable: web
label: "App web Storage"
description: "Stores the Application web data."
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/etc/icingaweb2"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
- variable: ssmtp
label: "App ssmtp Storage"
description: "Stores the Application ssmtp Configuration."
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/etc/ssmtp"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1 @@
{{ include "common.all" . }}
+84
View File
@@ -0,0 +1,84 @@
image:
repository: jordan/icinga2
tag: 2.13.1@sha256:00a826bee739d06be6999b493254d9e474875de8c842219a18cee99c01e84760
pullPolicy: IfNotPresent
# -- environment variables. See more environment variables in the [icinga2 documentation](https://github.com/jjethwa/icinga2#environment-variables-reference).
# @default -- See below
env:
DEFAULT_MYSQL_USER: icinga2
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
main:
port: 10114
targetPort: 80
https:
enabled: true
ports:
https:
enabled: true
port: 10115
targetPort: 443
api:
enabled: true
ports:
api:
enabled: true
port: 10116
targetPort: 5665
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
# -- Icinga2 configuration folder
# @default -- Disabled
config:
enabled: true
mountPath: /etc/icinga2
# -- Icinga2 Data
# @default -- Disabled
data:
enabled: true
mountPath: /var/lib/icinga2
# -- Icingaweb2 configuration folder
# @default -- Disabled
web:
enabled: true
mountPath: /etc/icingaweb2
# -- ssmtp folder
# @default -- Disabled
ssmtp:
enabled: true
mountPath: /etc/ssmtp
envValueFrom:
DEFAULT_MYSQL_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
DEFAULT_MYSQL_PASS:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
MYSQL_ROOT_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-root-password
mariadb:
enabled: true
mariadbUsername: icinga2
mariadbDatabase: icinga2
existingSecret: "mariadbcreds"
+23
View 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/
+32
View File
@@ -0,0 +1,32 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "Straightforward open source project management system to make your ideas reality."
home: https://github.com/truechartsapps/tree/master/charts/stable/leantime
icon: "https://github.com/nicholaswilde/helm-charts/raw/main/images/leantime.jpg"
keywords:
- leantime
- project
- management
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: leantime
sources:
- https://leantime.io/
- https://hub.docker.com/r/nicholaswilde/leantime
version: 0.0.1
annotations:
truecharts.org/catagories: |
- management
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+399
View File
@@ -0,0 +1,399 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10117
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: extra
label: "extra Service"
description: "The extra service "
schema:
type: dict
attrs:
# Include{serviceSelector}
- variable: extra
label: "extra Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10118
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 9000
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
schema:
type: dict
attrs:
- variable: sessions
label: "App sessions Storage"
description: "Stores the Application sessions."
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/sessions"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,2 @@
{{ include "common.all" . }}
+53
View File
@@ -0,0 +1,53 @@
image:
repository: ghcr.io/nicholaswilde/leantime
pullPolicy: IfNotPresent
tag: 2.1.7-ls6@sha256:60e3485f98d71f814f593c1c4d39cac78fc2748f7a1a4baacbbfa439ae031237
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
env:
LEAN_DB_DATABASE: "leantime"
LEAN_DB_USER: leantime
service:
main:
ports:
main:
port: 10117
targetPort: 80
extra:
enabled: true
ports:
extra:
enabled: true
port: 10118
targetPort: 9000
protocol: UDP
persistence:
sessions:
enabled: true
mountPath: /sessions
envValueFrom:
LEAN_DB_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
LEAN_DB_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
mariadb:
enabled: true
mariadbUsername: leantime
mariadbDatabase: leantime
existingSecret: "mariadbcreds"
+26
View File
@@ -0,0 +1,26 @@
# 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
+30
View File
@@ -0,0 +1,30 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "Straightforward open source project management system to make your ideas reality."
home: https://github.com/truechartsapps/tree/master/charts/stable/monica
icon: https://pbs.twimg.com/profile_images/951820722191720450/mtCNuIXX.jpg
keywords:
- crm
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: monica
sources:
- https://github.com/monicahq/monica
- https://hub.docker.com/_/monica
version: 0.0.1
annotations:
truecharts.org/catagories: |
- crm
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+355
View File
@@ -0,0 +1,355 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
- variable: APP_ENV
label: "APP_ENV"
description: "Use `local` if you want to install Monica as a development version. Use `production` otherwise."
schema:
type: string
default: "production"
required: true
- variable: APP_URL
label: "APP_URL"
description: "The URL of your application."
schema:
type: string
default: ""
required: true
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10119
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/var/www/html/storage"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,23 @@
{{/*
This template generates a random password and ensures it persists across updates/edits to the chart
*/}}
{{- define "monica.appkey" -}}
---
apiVersion: v1
kind: Secret
metadata:
labels:
{{- include "common.labels" . | nindent 4 }}
name: appkey
{{- $keyprevious := lookup "v1" "Secret" .Release.Namespace "appkey" }}
{{- $appkey := "" }}
data:
{{- if $keyprevious }}
{{- $appkey = ( index $keyprevious.data "appkey" ) | b64dec }}
appkey: {{ ( index $keyprevious.data "appkey" ) }}
{{- else }}
{{- $appkey = randAlphaNum 32 | b64enc }}
appkey: {{ $appkey | b64enc | quote }}
{{- end }}
type: Opaque
{{- end -}}
@@ -0,0 +1,9 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.setup" . }}
{{/* Render appkey for monica */}}
{{- include "monica.appkey" . }}
{{/* Render the templates */}}
{{ include "common.postSetup" . }}
+58
View File
@@ -0,0 +1,58 @@
image:
repository: monica
tag: 3.5.0@sha256:04ff6eccd653e7fc2c9875130e572662b4a78bbd3f80011aeb79f1f3d55f39eb
pullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- environment variables. See [monica documentation](https://raw.githubusercontent.com/monicahq/monica/master/.env.example) for more details.
# @default -- See below
env:
# -- Use `local` if you want to install Monica as a development version. Use `production` otherwise.
APP_ENV: production
# -- The URL of your application.
APP_URL: https://crm.k8s-at-home.com
DB_DATABASE: monica
DB_USERNAME: monica
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
main:
port: 10119
targetPort: 80
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
config:
enabled: true
mountPath: /var/www/html/storage
envValueFrom:
DB_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
DB_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
APP_KEY:
secretKeyRef:
name: appkey
key: appkey
mariadb:
enabled: true
mariadbUsername: monica
mariadbDatabase: monica
existingSecret: "mariadbcreds"
+23
View 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/
+33
View File
@@ -0,0 +1,33 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "Open source asset management"
home: https://github.com/truechartsapps/tree/master/charts/stable/snipe-it
icon: "https://github.com/nicholaswilde/helm-charts/raw/main/images/snipe-it.jpg"
keywords:
- snipeit
- snipe
- asset
- management
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: snipe-it
sources:
- https://snipeitapp.com/
- https://hub.docker.com/r/linuxserver/
version: 0.0.1
annotations:
truecharts.org/catagories: |
- management
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+347
View File
@@ -0,0 +1,347 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
- variable: PUID
label: "PUID"
schema:
type: int
default: 568
required: true
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10120
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/config"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,2 @@
{{ include "common.all" . }}
+53
View File
@@ -0,0 +1,53 @@
image:
repository: ghcr.io/linuxserver/snipe-it
pullPolicy: IfNotPresent
tag: 5.3.3@sha256:24610b729fe6595f1ead1e225f4e030fd3013c738987f2c095a2297746d0effb
secret: {}
# See more environment variables in the snipe documentation
# https://github.com/linuxserver/docker-snipe-it#parameters
env:
PUID: 568
NGINX_APP_URL: '{{ include "common.names.fullname" . }}:8080'
MYSQL_USER: snipe-it
MYSQL_DATABASE: "snipe-it"
MYSQL_PORT_3306_TCP_PORT: "3306"
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
service:
main:
ports:
main:
port: 10120
targetPort: 80
persistence:
varrun:
enabled: true
config:
enabled: true
mountPath: /config
envValueFrom:
MYSQL_PORT_3306_TCP_ADDR:
secretKeyRef:
name: mariadbcreds
key: plainhost
MYSQL_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
mariadb:
enabled: true
mariadbUsername: snipe-it
mariadbDatabase: snipe-it
existingSecret: "mariadbcreds"
+26
View File
@@ -0,0 +1,26 @@
# 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
+31
View File
@@ -0,0 +1,31 @@
apiVersion: v2
appVersion: "20211018"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.9.4
- condition: mariadb.enabled
name: mariadb
repository: https://truecharts.org/
version: 1.0.14
description: "XBackBone is a simple, self-hosted, lightweight PHP file manager"
home: https://github.com/truechartsapps/tree/master/charts/stable/xbackbone
icon: https://github.com/SergiX44/XBackBone/raw/master/.github/xbackbone.png
keywords:
- xbackbone
- xshare
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: xbackbone
sources:
- https://github.com/SergiX44/XBackBone
- https://hub.docker.com/r/pe46dro/xbackbone-docker
version: 0.0.1
annotations:
truecharts.org/catagories: |
- files
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+341
View File
@@ -0,0 +1,341 @@
# Include{groups}
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
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
# Include{fixedEnv}
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10121
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
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: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/app/config"
hidden: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1 @@
{{ include "common.all" . }}
+52
View File
@@ -0,0 +1,52 @@
image:
repository: pe46dro/xbackbone-docker
tag: 3.3.3@sha256:09dfe3aa10f61ce1da5e60a282be62f139f267f44a073862feda67cd960fa71e
pullPolicy: IfNotPresent
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
# -- environment variables. See [image repo](https://github.com/Pe46dro/XBackBone-docker#environment-variables) for more details.
# @default -- See below
env:
DB_TYPE: mysql
MYSQL_DATABASE: xbackbone
MYSQL_USER: xbackbone
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
main:
port: 10121
targetPort: 80
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
config:
enabled: true
mountPath: /app/config
envValueFrom:
MYSQL_HOST:
secretKeyRef:
name: mariadbcreds
key: plainhost
MYSQL_PASSWORD:
secretKeyRef:
name: mariadbcreds
key: mariadb-password
mariadb:
enabled: true
mariadbUsername: xbackbone
mariadbDatabase: xbackbone
existingSecret: "mariadbcreds"
+17 -16
View File
@@ -90,6 +90,10 @@ _This list is to track `App Requests` from one place._
- [ ] sharry ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] olivetin ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] writefreely ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] baikal ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] formalms ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] projectsend ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] chyrp-lite
##### TODO: Requires Postgresql customisation
- [ ] Keycloack #1106
@@ -102,21 +106,7 @@ _This list is to track `App Requests` from one place._
##### TODO: Requires MariaDB to be added first
- [ ] FreePBX #1111
- [ ] anonaddy ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] baikal ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] bookstack ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] icinga2 ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] monica ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] openemr ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] xbackbone ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [ ] clarkson ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] friendica ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] projectsend ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] snipe-it ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] formalms ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] leantime ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] blog ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [ ] bookstack ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
##### TODO: Requires Prometheus to be added first
@@ -329,7 +319,6 @@ _These Apps have specific requirements or need specific customisation and care_
- [x] shiori
- [x] firefox-syncserver
- [x] gotify
- [x] chyrp-lite
- [x] mariadb ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [x] promcord ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] speedtest-exporter ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
@@ -338,3 +327,15 @@ _These Apps have specific requirements or need specific customisation and care_
- [x] Logitech Media Server #1062
- [x] Grafana #4
- [x] Prometheus #275
- [x] anonaddy ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] bookstack ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] icinga2 ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] monica ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] openemr ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] xbackbone ( example helm-chart available from [ k8s-at-home ](https://github.com/k8s-at-home/charts) )
- [x] clarkson ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [x] friendica ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [x] snipe-it ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [x] leantime ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [x] blog ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
- [x] bookstack ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) )
+31 -21
View File
@@ -9,15 +9,15 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
|:------------|:------------:|:------------:|:-----:|:--------:|:----------------------------------------:|
| k8s-gateway | main | main | 53 | UDP | Potential conflict with pihole |
| traefik | main | main | 9000 | HTTP | Potential conflict with minio (Official) |
| traefik | tcp | web | 9080 | HTTP | |
| traefik | tcp | web | 9080 | HTTP | Adviced to be moved to port 80 |
| traefik | metrics | metrics | 9100 | HTTP | |
| traefik | tcp | websecure | 9443 | HTTPS | |
| traefik | tcp | websecure | 9443 | HTTPS | Adviced to be moved to port 443 |
| prometheus | main | main | 10086 | HTTP | |
| prometheus | alertmanager | alertmanager | 10087 | HTTP | |
| prometheus | promop | promop | 10089 | HTTP | |
| prometheus | thanos | thanos | 10901 | HTTP | |
## Stable Apps
## Stable and Incubator Apps
| App | Service | Port Name | Port | Protocol | Note |
|:---------------------------|:---------------:|:---------------:|:-----:|:--------:|:---------------------------------------:|
@@ -29,7 +29,8 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| unpackerr | main | main | - | - | Service disabled |
| unpoller | main | main | - | - | Service disabled |
| uptimerobot-prometheus | main | main | - | - | Service disabled |
| protonmail-bridge | smtp | smtp | 25 | TCP | |
| protonmail-bridge | smtp | smtp | 25 | TCP | Potential conflict with other smtp apps |
| anonaddy | smtp | smtp | 25 | TCP | Potential conflict with other smtp apps |
| pihole | dns-tcp | dns-tcp | 53 | TCP | Potential conflict with k8s-gateway |
| pihole | dns | dns | 53 | UDP | Potential conflict with k8s-gateway |
| openldap | main | main | 389 | TCP | |
@@ -71,6 +72,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| haste-server | main | main | 7777 | TCP | |
| nextcloud | hpb | hpb | 7867 | TCP | |
| radarr | main | main | 7878 | TCP | |
| omada-controller | main | main | 8043 | TCP | |
| odoo | main | main | 8069 | TCP | |
| odoo | odoo | odoo-1 | 8071 | TCP | |
| odoo | odoo | odoo-2 | 8072 | TCP | |
@@ -86,6 +88,9 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| tautulli | main | main | 8181 | TCP | |
| flaresolverr | main | main | 8191 | TCP | |
| duplicati | main | main | 8200 | TCP | |
| tdarr | main | main | 8265 | TCP | |
| tdarr | comm | comm | 8266 | TCP | |
| tdarr-node | main | main | 8267 | TCP | |
| beets | main | main | 8337 | TCP | |
| syncthing | main | main | 8384 | TCP | |
| unifi | main | main | 8443 | HTTPS | |
@@ -138,6 +143,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| pgadmin | main | main | 10024 | TCP | |
| photoshow | main | main | 10025 | TCP | |
| phpldapadmin | main | main | 10026 | TCP | |
| piwigo | main | main | 10027 | TCP | |
| pixapop | main | main | 10028 | TCP | |
| recipes | main | main | 10029 | TCP | |
| smokeping | main | main | 10030 | TCP | |
@@ -168,6 +174,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| handbrake | vnc | vnc | 10055 | TCP | |
| jdownloader2 | vnc | vnc | 10056 | TCP | |
| nzbget | main | main | 10057 | TCP | |
| friendica | main | main | 10058 | TCP | |
| logitech-media-server | cli | cli | 10059 | TCP | |
| etherpad | main | main | 10060 | TCP | |
| thelounge | main | main | 10061 | TCP | |
@@ -215,6 +222,18 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| minio | main | main | 10106 | TCP | |
| minio | console | console | 10107 | TCP | |
| transmission | main | main | 10109 | TCP | |
| anonaddy | main | main | 10110 | TCP | |
| blog | main | main | 10111 | TCP | |
| bookstack | main | main | 10112 | TCP | |
| clarkson | main | main | 10113 | TCP | |
| icinga2 | main | main | 10114 | TCP | |
| icinga2 | https | https | 10115 | TCP | |
| icinga2 | api | api | 10116 | TCP | |
| leantime | main | main | 10117 | TCP | |
| leantime | extra | extra | 10118 | UDP | |
| monica | main | main | 10119 | TCP | |
| snipe-it | main | main | 10120 | TCP | |
| xbackbone | main | main | 10121 | TCP | |
| hyperion-ng | boblightservice | boblightservice | 19333 | TCP | |
| hyperion-ng | jsonservice | jsonservice | 19444 | TCP | |
| hyperion-ng | protobufservice | protobufservice | 19445 | TCP | |
@@ -222,6 +241,14 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| syncthing | listeners | tcp | 22000 | TCP | |
| syncthing | listeners-udp | udp | 22000 | UDP | |
| joplin-server | main | main | 22300 | TCP | |
| omada-controller | omada-tcp | omada-tcp1 | 29810 | TCP | |
| omada-controller | omada-udp | omada-udp1 | 29810 | UDP | |
| omada-controller | omada-tcp | omada-tcp2 | 29811 | TCP | |
| omada-controller | omada-udp | omada-udp2 | 29811 | UDP | |
| omada-controller | omada-tcp | omada-tcp3 | 29812 | TCP | |
| omada-controller | omada-udp | omada-udp3 | 29812 | UDP | |
| omada-controller | omada-tcp | omada-tcp4 | 29813 | TCP | |
| omada-controller | omada-udp | omada-udp4 | 29813 | UDP | |
| teamspeak3 | files | files | 30033 | TCP | |
| plex | main | main | 32400 | TCP | Potential conflict with plex (Official) |
| xteve | main | main | 34400 | TCP | |
@@ -244,23 +271,6 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
| redis | main | main | 6379 | TCP | |
| memcached | main | main | 11211 | TCP | |
## Incubator Apps
| App | Service | Port Name | Port | Protocol | Note |
|:-----------------|:---------:|:----------:|:-----:|:--------:|:----:|
| omada-controller | main | main | 8043 | TCP | |
| tdarr | main | main | 8265 | TCP | |
| tdarr | comm | comm | 8266 | TCP | |
| tdarr-node | main | main | 8267 | TCP | |
| piwigo | main | main | 10027 | TCP | |
| omada-controller | omada-tcp | omada-tcp1 | 29810 | TCP | |
| omada-controller | omada-udp | omada-udp1 | 29810 | UDP | |
| omada-controller | omada-tcp | omada-tcp2 | 29811 | TCP | |
| omada-controller | omada-udp | omada-udp2 | 29811 | UDP | |
| omada-controller | omada-tcp | omada-tcp3 | 29812 | TCP | |
| omada-controller | omada-udp | omada-udp3 | 29812 | UDP | |
| omada-controller | omada-tcp | omada-tcp4 | 29813 | TCP | |
| omada-controller | omada-udp | omada-udp4 | 29813 | UDP | |
## Official Apps