feat(homebox) add homebox (#5554)

* feat(homebox) add homebox

* update container repo

* scer

* lint

Co-authored-by: Stavros kois <s.kois@outlook.com>
This commit is contained in:
Xstar97 2022-12-24 04:50:20 -05:00 committed by GitHub
parent 106680819a
commit 8a804251ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 338 additions and 0 deletions

View File

@ -0,0 +1,30 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png

View File

@ -0,0 +1 @@
# Changelog

View File

@ -0,0 +1,29 @@
apiVersion: v2
appVersion: "0.6.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 11.0.7
deprecated: false
description: Inventory and organization system built for the Home User.
home: https://truecharts.org/docs/charts/incubator/homebox
icon: https://truecharts.org/img/hotlink-ok/chart-icons/homebox.png
keywords:
- homebox
- inventory
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: homebox
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/homebox
- https://github.com/hay-kot/homebox
type: application
version: 0.0.1
annotations:
truecharts.org/catagories: |
- inventory
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@ -0,0 +1 @@
# homebox

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -0,0 +1,201 @@
# Include{groups}
portals:
open:
# Include{portalLink}
questions:
# Include{global}
# Include{controller}
# Include{replicas}
# Include{replica1}
# Include{controllerExpertExtraArgs}
- variable: homebox
group: App Configuration
label: Homebox Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: allow_registration
label: Options Allow Registration
description: Allow users to register themselves.
schema:
type: boolean
default: true
- variable: auto_increment_asset_id
label: Options Auto Increment Asset ID
description: Auto increments the asset_id field for new items.
schema:
type: boolean
default: true
- variable: max_upload_size
label: Web Max Upload Size
description: Maximum file upload size supported in MB.
schema:
type: int
default: 10
- variable: log_level
label: Log Level
description: Log level to use.
schema:
type: string
default: info
enum:
- value: trace
description: Trace
- value: debug
description: Debug
- value: info
description: Info
- value: warn
description: Warn
- value: error
description: Error
- value: critical
description: Critical
- variable: log_format
label: Log Format
description: Log format to use
schema:
type: string
default: text
enum:
- value: text
description: Text
- value: json
description: Json
- variable: mailer_host
label: Mailer Host
description: Email host to use.
schema:
type: string
default: ""
- variable: mailer_port
label: Mailer Port
description: Email port to use.
schema:
type: int
show_if: [["mailer_host", "!=", ""]]
required: true
default: 587
- variable: mailer_from
label: Mailer From
description: Email from address to use.
schema:
type: string
show_if: [["mailer_host", "!=", ""]]
required: true
default: ""
- variable: mailer_username
label: Mailer Username
description: Email user to use.
schema:
type: string
show_if: [["mailer_host", "!=", ""]]
required: true
default: ""
- variable: mailer_password
label: Mailer Password
description: Email password to use.
schema:
type: string
show_if: [["mailer_host", "!=", ""]]
private: true
required: true
default: ""
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: Main Service
description: The Primary service on which the healthcheck runs, often the webUI
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: Main Service Port Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: Port
description: This port exposes the container port on the service
schema:
type: int
default: 10603
required: true
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: App Data Storage
description: Stores the Application Data.
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: Main Ingress
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: Privileged mode
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: ReadOnly Root Filesystem
schema:
type: boolean
default: true
- variable: allowPrivilegeEscalation
label: Allow Privilege Escalation
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: runAsNonRoot
schema:
type: boolean
default: true
# Include{podSecurityContextRoot}
- variable: runAsUser
label: runAsUser
description: The UserID of the user running the application
schema:
type: int
default: 568
- variable: runAsGroup
label: runAsGroup
description: The groupID this App of the user running the application
schema:
type: int
default: 568
- variable: fsGroup
label: fsGroup
description: The group that should own ALL storage.
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{vpn}
# Include{documentation}

View File

@ -0,0 +1,33 @@
{{/* Define the secret */}}
{{- define "homebox.secret" -}}
{{- $secretName := printf "%s-homebox-secret" (include "tc.common.names.fullname" .) }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $secretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
stringData:
HBOX_MODE: production
HBOX_SWAGGER_SCHEMA: {{ .Values.service.main.ports.main.protocol | lower }}
HBOX_STORAGE_DATA: {{ .Values.persistence.data.mountPath }}
HBOX_WEB_PORT: {{ .Values.service.main.ports.main.port | quote }}
HBOX_SWAGGER_HOST: {{ .Values.service.main.ports.main.port | quote }}
{{/* User Defined */}}
HBOX_OPTIONS_ALLOWREGISTRATION: {{ .Values.homebox.allow_registration | quote }}
HBOX_OPTIONS_AUTO_INCREMENT_ASSET_ID: {{ .Values.homebox.auto_increment_asset_id | quote }}
HBOX_WEB_MAX_UPLOAD_SIZE: {{ (.Values.homebox.max_upload_size | default 10) | quote }}
HBOX_LOG_LEVEL: {{ .Values.homebox.log_level | default "info" }}
HBOX_LOG_FORMAT: {{ .Values.homebox.log_format | default "text" }}
{{- if .Values.homebox.mailer_host }}
HBOX_MAILER_HOST: {{ .Values.homebox.mailer_host }}
HBOX_MAILER_PORT: {{ .Values.homebox.mailer_port }}
HBOX_MAILER_FROM: {{ .Values.homebox.mailer_from }}
HBOX_MAILER_USERNAME: {{ .Values.homebox.mailer_username }}
HBOX_MAILER_PASSWORD: {{ .Values.homebox.mailer_password }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,8 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.common.loader.init" . }}
{{/* Render secret */}}
{{- include "homebox.secret" . }}
{{/* Render the templates */}}
{{ include "tc.common.loader.apply" . }}

View File

@ -0,0 +1,35 @@
image:
repository: tccr.io/truecharts/homebox
pullPolicy: IfNotPresent
tag: 0.6.0@sha256:97dad0bc2e0683c22f1b29416ef2caa70fedc83688d1ee9dc57d7d862204a396
homebox:
allow_registration: true
auto_increment_asset_id: true
max_upload_size: 10
log_level: info
log_format: text
mailer_host: ""
mailer_port: 587
mailer_from: ""
mailer_username: ""
mailer_password: ""
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-homebox-secret'
service:
main:
ports:
main:
protocol: HTTP
port: 10603
persistence:
data:
enabled: true
mountPath: /data
portal:
enabled: true