Compare commits

..

No commits in common. "master" and "jellyfin-0.2.2" have entirely different histories.

64 changed files with 43 additions and 2015 deletions

View File

@ -1,11 +0,0 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"

View File

@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
fetch-depth: 0
@ -24,14 +24,11 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Install Helm
uses: azure/setup-helm@v4.3.0 # using exact version because of https://github.com/Azure/setup-helm/issues/126
uses: azure/setup-helm@v3
with:
version: v3.17.3
- name: Add Bitnami Helm Repo
run: helm repo add bitnami https://charts.bitnami.com/bitnami
version: v3.12.0
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.7.0
uses: helm/chart-releaser-action@v1.5.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

View File

@ -10,14 +10,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@v4.3.0 # using exact version because of https://github.com/Azure/setup-helm/issues/126
uses: azure/setup-helm@v3
with:
version: v3.17.3
version: v3.12.0
- name: Lint charts
run: helm lint charts/*

View File

@ -31,11 +31,8 @@ I will generally only maintain the charts that I am currently using. See below f
|freshrss|RSS reader written in PHP|https://freshrss.org/|Yes|
|pgadmin|PostgreSQL database management tool|https://www.pgadmin.org/|Yes|
|unifi-controller|Unifi Controller (using linuxserver.io's image) for managing Unifi hardware||Yes|
|focalboard|Kanban board software by Mattermost|https://www.focalboard.com/|No|
|focalboard|Kanban board software by Mattermost|https://www.focalboard.com/|Yes|
|jellyfin|Open source media management system|https://jellyfin.org|Yes|
|tandoor-recipes|Digital Recipe managment|https://tandoor.dev/|Yes|
|silverbullet|Note-taking application optimized for people with a hacker mindset|https://silverbullet.md/|No|
|cyberchef|The Cyber Swiss Army Knife by GCHQ|https://gchq.github.io/CyberChef|Yes|
## Contributing

View File

@ -22,10 +22,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 3.6.0
version: 2.0.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v4.6.0"
appVersion: "v3.0.0"

View File

@ -1,6 +1,6 @@
# cinny
![Version: 3.6.0](https://img.shields.io/badge/Version-3.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v4.6.0](https://img.shields.io/badge/AppVersion-v4.6.0-informational?style=flat-square)
![Version: 1.0.3](https://img.shields.io/badge/Version-1.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.2.6](https://img.shields.io/badge/AppVersion-v2.2.6-informational?style=flat-square)
A Helm chart for the Cinny Matrix Client
@ -17,11 +17,11 @@ A Helm chart for the Cinny Matrix Client
| affinity | object | `{}` | |
| customConfig.data.allowCustomHomeservers | bool | `true` | Allow the user to enter a homeserver not in the list |
| customConfig.data.defaultHomeserver | int | `3` | Index (starting with 0) in homeserverList of the server to display by default |
| customConfig.data.homeserverList | list | `["converser.eu","envs.net","matrix.org","mozilla.org"]` | List of Matrix homeservers to display |
| customConfig.data.homeserverList | list | `["converser.eu","envs.net","halogen.city","matrix.org","mozilla.org"]` | List of Matrix homeservers to display |
| customConfig.enabled | bool | `false` | Enable the use of a custom config.json - see https://github.com/cinnyapp/cinny/blob/dev/config.json |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ghcr.io/cinnyapp/cinny"` | |
| image.repository | string | `"ajbura/cinny"` | |
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | |
@ -45,3 +45,5 @@ A Helm chart for the Cinny Matrix Client
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| tolerations | list | `[]` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

View File

@ -32,6 +32,7 @@ customConfig:
homeserverList:
- converser.eu
- envs.net
- halogen.city
- matrix.org
- mozilla.org
# -- Allow the user to enter a homeserver not in the list

View File

@ -1,23 +0,0 @@
# 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/

View File

@ -1,37 +0,0 @@
apiVersion: v2
name: cyberchef
description: A Helm chart for CyberChef, the Cyber Swiss Army Knife
home: https://gchq.github.io/CyberChef
sources:
- https://github.com/gchq/CyberChef
keywords:
- cyber
- cyberchef
- tools
- hashing
- encoding
- compression
- encrypytion
- parsing
- open source
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.2.2
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "10.19.4"

View File

@ -1,55 +0,0 @@
# cyberchef
![Version: 0.2.2](https://img.shields.io/badge/Version-0.2.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.19.4](https://img.shields.io/badge/AppVersion-10.19.4-informational?style=flat-square)
A Helm chart for CyberChef, the Cyber Swiss Army Knife
**Homepage:** <https://gchq.github.io/CyberChef>
## Source Code
* <https://github.com/gchq/CyberChef>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| autoscaling.enabled | bool | `false` | |
| autoscaling.maxReplicas | int | `100` | |
| autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ghcr.io/gchq/cyberchef"` | |
| image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | |
| ingress.className | string | `""` | |
| ingress.enabled | bool | `false` | |
| ingress.hosts[0].host | string | `"cyberchef.local"` | |
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | |
| ingress.tls | list | `[]` | |
| livenessProbe.httpGet.path | string | `"/"` | |
| livenessProbe.httpGet.port | string | `"http"` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| podAnnotations | object | `{}` | |
| podLabels | object | `{}` | |
| podSecurityContext | object | `{}` | |
| readinessProbe.httpGet.path | string | `"/"` | |
| readinessProbe.httpGet.port | string | `"http"` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | string | `nil` | |
| service.port | int | `80` | |
| service.type | string | `"ClusterIP"` | |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.automount | bool | `true` | |
| serviceAccount.create | bool | `true` | |
| serviceAccount.name | string | `""` | |
| tolerations | list | `[]` | |
| volumeMounts | list | `[]` | |
| volumes | list | `[]` | |

View File

@ -1,22 +0,0 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "cyberchef.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "cyberchef.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "cyberchef.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "cyberchef.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}

View File

@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "cyberchef.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "cyberchef.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "cyberchef.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "cyberchef.labels" -}}
helm.sh/chart: {{ include "cyberchef.chart" . }}
{{ include "cyberchef.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "cyberchef.selectorLabels" -}}
app.kubernetes.io/name: {{ include "cyberchef.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "cyberchef.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "cyberchef.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@ -1,68 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "cyberchef.fullname" . }}
labels:
{{- include "cyberchef.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "cyberchef.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "cyberchef.labels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "cyberchef.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
livenessProbe:
{{- toYaml .Values.livenessProbe | nindent 12 }}
readinessProbe:
{{- toYaml .Values.readinessProbe | nindent 12 }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.volumeMounts }}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@ -1,32 +0,0 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "cyberchef.fullname" . }}
labels:
{{- include "cyberchef.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "cyberchef.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}

View File

@ -1,61 +0,0 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "cyberchef.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
{{- end }}
{{- end }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "cyberchef.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "cyberchef.fullname" . }}
labels:
{{- include "cyberchef.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "cyberchef.selectorLabels" . | nindent 4 }}

View File

@ -1,13 +0,0 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "cyberchef.serviceAccountName" . }}
labels:
{{- include "cyberchef.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
{{- end }}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "cyberchef.fullname" . }}-test-connection"
labels:
{{- include "cyberchef.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "cyberchef.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -1,107 +0,0 @@
# Default values for cyberchef.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: ghcr.io/gchq/cyberchef
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Automatically mount a ServiceAccount's API credentials?
automount: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podLabels: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext:
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: cyberchef.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
# Additional volumes on the output Deployment definition.
volumes: []
# - name: foo
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true
nodeSelector: {}
tolerations: []
affinity: {}

View File

@ -23,10 +23,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.7.0
version: 1.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.26.1"
appVersion: "1.21.0"

View File

@ -1,6 +1,6 @@
# freshrss
![Version: 1.7.0](https://img.shields.io/badge/Version-1.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.26.1](https://img.shields.io/badge/AppVersion-1.26.1-informational?style=flat-square)
![Version: 1.1.0](https://img.shields.io/badge/Version-1.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.21.0](https://img.shields.io/badge/AppVersion-1.21.0-informational?style=flat-square)
A Helm chart for FreshRSS
@ -30,19 +30,6 @@ A Helm chart for FreshRSS
| freshrss.cron.cronMin | string | `"13,43"` | Minute(s) past the hour to run cron |
| freshrss.cron.enabled | bool | `false` | Enable Cron to periodically refresh feeds |
| freshrss.freshEnv | string | `"production"` | Enables additional development information if set to `development` (increases the level of logging and ensures that errors are displayed) |
| freshrss.oidc | object | `{"clientCryptoKey":"","clientId":"","clientSecret":"","enabled":false,"existingClientSecret":{"clientCryptoKeyKey":"clientCryptoKey","clientIdKey":"clientId","clientSecretKey":"clientSecret","name":""},"providerMetadataUrl":"","remoteUserClaim":"","scopes":[],"session":{"inactivityTimeout":300,"maxDuration":-1,"type":""},"xForwardedHeaders":[]}` | See Configuration Environment Variables at https://freshrss.github.io/FreshRSS/en/admins/16_OpenID-Connect.html |
| freshrss.oidc.clientCryptoKey | string | `""` | Sets OIDC_CLIENT_CRYPTO_KEY |
| freshrss.oidc.clientId | string | `""` | Sets OIDC_CLIENT_ID |
| freshrss.oidc.clientSecret | string | `""` | Sets OIDC_CLIENT_SECRET |
| freshrss.oidc.enabled | bool | `false` | Sets OIDC_ENABLED to true |
| freshrss.oidc.existingClientSecret | object | `{"clientCryptoKeyKey":"clientCryptoKey","clientIdKey":"clientId","clientSecretKey":"clientSecret","name":""}` | A Kubernetes secret that contains the clientId, clientSecret and clientCryptoKey |
| freshrss.oidc.providerMetadataUrl | string | `""` | Sets OIDC_PROVIDER_METADATA_URL |
| freshrss.oidc.remoteUserClaim | string | `""` | Sets OIDC_REMOTE_USER_CLAIM |
| freshrss.oidc.scopes | list | `[]` | Sets OIDC_SCOPES (list is concatenated) |
| freshrss.oidc.session.inactivityTimeout | int | `300` | Sets OIDC_SESSION_INACTIVITY_TIMEOUT |
| freshrss.oidc.session.maxDuration | int | `-1` | Sets OIDC_SESSION_MAX_DURATION |
| freshrss.oidc.session.type | string | `""` | Sets OIDC_SESSION_TYPE |
| freshrss.oidc.xForwardedHeaders | list | `[]` | Sets OIDC_X_FORWARDED_HEADERS (list is concatenated) |
| freshrss.timezone | string | `"UTC"` | PHP Timezone - see https://www.php.net/timezones |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
@ -77,3 +64,5 @@ A Helm chart for FreshRSS
| strategy.type | string | `"Recreate"` | |
| tolerations | list | `[]` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

View File

@ -70,76 +70,14 @@ spec:
{{- end }}
--language {{ .Values.freshrss.autoInstall.language }}
{{- end }}
{{- if .Values.freshrss.oidc.enabled }}
- name: OIDC_ENABLED
value: "1"
{{- with .Values.freshrss.oidc }}
- name: OIDC_PROVIDER_METADATA_URL
value: {{ .providerMetadataUrl }}
{{- if .existingClientSecret.name }}
- name: OIDC_CLIENT_ID
valueFrom:
secretKeyRef:
name: {{ .existingClientSecret.name }}
key: {{ .existingClientSecret.clientIdKey }}
- name: OIDC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: {{ .existingClientSecret.name }}
key: {{ .existingClientSecret.clientSecretKey }}
- name: OIDC_CLIENT_CRYPTO_KEY
valueFrom:
secretKeyRef:
name: {{ .existingClientSecret.name }}
key: {{ .existingClientSecret.clientCryptoKeyKey }}
{{- else }}
- name: OIDC_CLIENT_ID
value: {{ .clientId }}
- name: OIDC_CLIENT_SECRET
value: {{ .clientSecretKey }}
- name: OIDC_CLIENT_CRYPTO_KEY
value: {{ .clientCryptoKey }}
{{- end }}
{{- if .remoteUserClaim }}
- name: OIDC_REMOTE_USER_CLAIM
value: {{ .remoteUserClaim }}
{{- end }}
{{- if .scopes }}
- name: OIDC_SCOPES
value: {{ printf "%s" (join " " .scopes) }}
{{- end }}
{{- if .xForwardedHeaders }}
- name: OIDC_X_FORWARDED_HEADERS
value: {{ printf "%s" (join " " .xForwardedHeaders) }}
{{- end }}
- name: OIDC_SESSION_INACTIVITY_TIMEOUT
value: "{{ .session.inactivityTimeout }}"
{{- if ge .session.maxDuration 0.0 }}
- name: OIDC_SESSION_MAX_DURATION
value: "{{ .session.maxDuration }}"
{{- end }}
{{- if .session.type }}
- name: OIDC_SESSION_TYPE
value: {{ .session.type }}
{{- end }}
{{- end }}
{{- end }}
livenessProbe:
httpGet:
{{- if .Values.freshrss.oidc.enabled }}
path: /i/oidc/
{{- else }}
path: /i/
{{- end }}
port: http
initialDelaySeconds: 30
readinessProbe:
httpGet:
{{- if .Values.freshrss.oidc.enabled }}
path: /i/oidc/
{{- else }}
path: /i/
{{- end }}
port: http
resources:
{{- toYaml .Values.resources | nindent 12 }}

View File

@ -78,42 +78,6 @@ freshrss:
enabled: false
# -- Minute(s) past the hour to run cron
cronMin: "13,43"
# -- See Configuration Environment Variables at https://freshrss.github.io/FreshRSS/en/admins/16_OpenID-Connect.html
oidc:
# -- Sets OIDC_ENABLED to true
enabled: false
# -- Sets OIDC_PROVIDER_METADATA_URL
providerMetadataUrl: ""
# -- Sets OIDC_CLIENT_ID
clientId: ""
# -- Sets OIDC_CLIENT_SECRET
clientSecret: ""
# -- Sets OIDC_CLIENT_CRYPTO_KEY
clientCryptoKey: ""
# -- A Kubernetes secret that contains the clientId, clientSecret and clientCryptoKey
existingClientSecret:
name: ""
clientIdKey: clientId
clientSecretKey: clientSecret
clientCryptoKeyKey: clientCryptoKey
# -- Sets OIDC_REMOTE_USER_CLAIM
remoteUserClaim: ""
# -- Sets OIDC_SCOPES (list is concatenated)
scopes: []
# - openid
# -- Sets OIDC_X_FORWARDED_HEADERS (list is concatenated)
xForwardedHeaders: []
# - Forwarded
# - X-Forwarded-Host
# - X-Forwarded-Port
# - X-Forwarded-Proto
session:
# -- Sets OIDC_SESSION_INACTIVITY_TIMEOUT
inactivityTimeout: 300
# -- Sets OIDC_SESSION_MAX_DURATION
maxDuration: -1
# -- Sets OIDC_SESSION_TYPE
type: ""
persistence:
enabled: false

View File

@ -25,10 +25,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.3.3
version: 0.2.2
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "10.10.6"
appVersion: "10.8.11"

View File

@ -1,6 +1,6 @@
# jellyfin
![Version: 1.3.3](https://img.shields.io/badge/Version-1.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.10.6](https://img.shields.io/badge/AppVersion-10.10.6-informational?style=flat-square)
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.8.11](https://img.shields.io/badge/AppVersion-10.8.11-informational?style=flat-square)
A Helm chart for Jellyfin, the Free Software Media System that puts you in control of managing and streaming your media.
@ -27,7 +27,6 @@ A Helm chart for Jellyfin, the Free Software Media System that puts you in contr
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | |
| ingress.tls | list | `[]` | |
| jellyfin.publishedServerUrl | string | `""` | See PublishedServerUrl at https://jellyfin.org/docs/general/administration/configuration#main-configuration-options |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| persistence.cache | object | `{"accessMode":"ReadWriteOnce","annotations":{},"enabled":false,"existingClaim":"","size":"10Gi","storageClass":""}` | Persistence config for the /cache volume |
@ -35,9 +34,10 @@ A Helm chart for Jellyfin, the Free Software Media System that puts you in contr
| persistence.media | object | `{"accessMode":"ReadWriteOnce","annotations":{},"enabled":false,"existingClaim":"","size":"10Gi","storageClass":""}` | Persistence config for the /media volume |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext.fsGroup | int | `1000` | |
| securityContext.readOnlyRootFilesystem | bool | `false` | |
| securityContext.runAsGroup | int | `1000` | |
| securityContext.runAsNonRoot | bool | `true` | |
| securityContext.runAsUser | int | `1000` | |
| service.port | int | `8096` | |
@ -47,3 +47,5 @@ A Helm chart for Jellyfin, the Free Software Media System that puts you in contr
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| tolerations | list | `[]` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

View File

@ -39,12 +39,12 @@ spec:
protocol: TCP
livenessProbe:
httpGet:
path: /health
path: /
port: http
periodSeconds: 10
startupProbe:
httpGet:
path: /health
path: /
port: http
periodSeconds: 10
failureThreshold: 6

View File

@ -24,10 +24,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 2.8.0
version: 1.4.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "8.12"
appVersion: "7.8"

View File

@ -1,6 +1,6 @@
# pgadmin
![Version: 2.8.0](https://img.shields.io/badge/Version-2.8.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 8.12](https://img.shields.io/badge/AppVersion-8.12-informational?style=flat-square)
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.21](https://img.shields.io/badge/AppVersion-6.21-informational?style=flat-square)
A Helm chart for pgAdmin, the open source PostgreSQL administration tool.
@ -48,3 +48,5 @@ A Helm chart for pgAdmin, the open source PostgreSQL administration tool.
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| tolerations | list | `[]` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

View File

@ -1,23 +0,0 @@
# 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/

View File

@ -1,31 +0,0 @@
apiVersion: v2
name: silverbullet
description: A Helm chart for SilverBullet - a note-taking application optimized for people with a hacker mindset
home: https://silverbullet.md/
sources:
- https://github.com/silverbulletmd/silverbullet
keywords:
- silverbullet
- markdown
- notes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.2.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.9.2"

View File

@ -1,53 +0,0 @@
# silverbullet
![Version: 0.2.0](https://img.shields.io/badge/Version-0.2.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.9.2](https://img.shields.io/badge/AppVersion-0.9.2-informational?style=flat-square)
A Helm chart for SilverBullet - a note-taking application optimized for people with a hacker mindset
**Homepage:** <https://silverbullet.md/>
## Source Code
* <https://github.com/silverbulletmd/silverbullet>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"zefhemel/silverbullet"` | |
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | |
| ingress.className | string | `""` | |
| ingress.enabled | bool | `false` | |
| ingress.hosts[0].host | string | `"silverbullet.local"` | |
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | |
| ingress.tls | list | `[]` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| persistence.accessMode | string | `"ReadWriteOnce"` | |
| persistence.annotations | object | `{}` | |
| persistence.enabled | bool | `false` | Persistence config for the /space volume |
| persistence.existingClaim | string | `""` | |
| persistence.size | string | `"1Gi"` | |
| persistence.storageClass | string | `""` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
| resources | object | `{}` | |
| securityContext.readOnlyRootFilesystem | bool | `true` | |
| securityContext.runAsNonRoot | bool | `true` | |
| securityContext.runAsUser | int | `1000` | |
| service.port | int | `3000` | |
| service.type | string | `"ClusterIP"` | |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created |
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| silverbullet.authentication | bool | `true` | Enable/disable user and password authentication |
| silverbullet.pass | string | `"silverbullet"` | Password to use for logging in |
| silverbullet.user | string | `"admin"` | Username to use for logging in |
| tolerations | list | `[]` | |

View File

@ -1,22 +0,0 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "silverbullet.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "silverbullet.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "silverbullet.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "silverbullet.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}

View File

@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "silverbullet.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "silverbullet.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "silverbullet.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "silverbullet.labels" -}}
helm.sh/chart: {{ include "silverbullet.chart" . }}
{{ include "silverbullet.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "silverbullet.selectorLabels" -}}
app.kubernetes.io/name: {{ include "silverbullet.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "silverbullet.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "silverbullet.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@ -1,77 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "silverbullet.fullname" . }}
labels:
{{- include "silverbullet.labels" . | nindent 4 }}
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
{{- include "silverbullet.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "silverbullet.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "silverbullet.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
env:
{{- if .Values.silverbullet.authentication }}
- name: SB_USER
value: "{{ .Values.silverbullet.user }}:{{ .Values.silverbullet.pass }}"
{{- end }}
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
resources:
{{- toYaml .Values.resources | nindent 12 }}
volumeMounts:
- name: silverbullet-data
mountPath: /space
volumes:
- name: silverbullet-data
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ template "silverbullet.fullname" . }}-pvc{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@ -1,61 +0,0 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "silverbullet.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
{{- end }}
{{- end }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "silverbullet.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -1,32 +0,0 @@
{{- if .Values.persistence.enabled -}}
{{- if not .Values.persistence.existingClaim -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "silverbullet.fullname" . }}-pvc
labels:
{{- include "silverbullet.labels" . | nindent 4 }}
# app.kubernetes.io/name: {{ include "silverbullet.name" . }}
# helm.sh/chart: {{ include "silverbullet.chart" . }}
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/managed-by: {{ .Release.Service }}
# app.kubernetes.io/component: app
{{- if .Values.persistence.annotations }}
annotations:
{{ toYaml .Values.persistence.annotations | indent 4 }}
{{- end }}
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "silverbullet.fullname" . }}
labels:
{{- include "silverbullet.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "silverbullet.selectorLabels" . | nindent 4 }}

View File

@ -1,12 +0,0 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "silverbullet.serviceAccountName" . }}
labels:
{{- include "silverbullet.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "silverbullet.fullname" . }}-test-connection"
labels:
{{- include "silverbullet.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "silverbullet.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -1,89 +0,0 @@
# Default values for silverbullet.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
image:
repository: zefhemel/silverbullet
pullPolicy: IfNotPresent
# -- Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# -- Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# -- The name of the service account to use. If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
# capabilities:
# drop:
# - ALL
service:
type: ClusterIP
port: 3000
silverbullet:
# -- Enable/disable user and password authentication
authentication: true
# -- Username to use for logging in
user: admin
# -- Password to use for logging in
pass: silverbullet
persistence:
# -- Persistence config for the /space volume
enabled: false
existingClaim: ""
annotations: {}
accessMode: ReadWriteOnce
storageClass: ""
size: 1Gi
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: silverbullet.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: silverbullet-tls
# hosts:
# - silverbullet.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@ -1 +0,0 @@
charts/*.tgz

View File

@ -1,23 +0,0 @@
# 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/

View File

@ -1,6 +0,0 @@
dependencies:
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 15.5.38
digest: sha256:c133bfa16af929e2c75bbf00d0527d92feda59e14892fd9260f098b3e4a777c1
generated: "2025-02-11T19:49:24.230917816Z"

View File

@ -1,31 +0,0 @@
apiVersion: v2
name: tandoor-recipes
description: A Helm chart for Tandoor Recipes, a digital recipe manager
icon: https://github.com/vabene1111/recipes/raw/develop/docs/logo_color.svg
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.5.31"
dependencies:
- name: postgresql
version: ^15.5.38
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled

View File

@ -1,64 +0,0 @@
# tandoor-recipes
![Version: 1.1.0](https://img.shields.io/badge/Version-1.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.5.31](https://img.shields.io/badge/AppVersion-1.5.31-informational?style=flat-square)
A Helm chart for Tandoor Recipes, a digital recipe manager
## Requirements
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | postgresql | ^15.5.38 |
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| externalPostgresql.database | string | `"recipes"` | |
| externalPostgresql.enabled | bool | `false` | Use an external PostgreSQL database |
| externalPostgresql.port | int | `5432` | |
| externalPostgresql.username | string | `"recipes"` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ghcr.io/tandoorrecipes/recipes"` | |
| image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | |
| ingress.className | string | `""` | |
| ingress.enabled | bool | `false` | |
| ingress.hosts[0].host | string | `"recipes.local"` | |
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | |
| ingress.tls | list | `[]` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| persistence.media.accessMode | string | `"ReadWriteOnce"` | |
| persistence.media.annotations | object | `{}` | |
| persistence.media.enabled | bool | `false` | Enable persistence for media files |
| persistence.media.existingClaim | string | `""` | |
| persistence.media.size | string | `"1Gi"` | |
| persistence.media.storageClass | string | `""` | |
| persistence.static.accessMode | string | `"ReadWriteOnce"` | |
| persistence.static.annotations | object | `{}` | |
| persistence.static.enabled | bool | `false` | Enable persistence for static files |
| persistence.static.existingClaim | string | `""` | |
| persistence.static.size | string | `"1Gi"` | |
| persistence.static.storageClass | string | `""` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
| postgresql.auth.database | string | `"recipes"` | |
| postgresql.auth.password | string | `"recipes"` | |
| postgresql.auth.username | string | `"recipes"` | |
| postgresql.enabled | bool | `true` | Deploy Bitnami PostgreSQL sub-chart |
| recipes.secretKey | string | `""` | Secret key used by Djano - see https://docs.tandoor.dev/system/configuration/#secret-key |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | object | `{}` | |
| service.port | int | `8080` | |
| service.type | string | `"ClusterIP"` | |
| serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created |
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| tolerations | list | `[]` | |

View File

@ -1,22 +0,0 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "tandoor-recipes.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "tandoor-recipes.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "tandoor-recipes.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "tandoor-recipes.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}

View File

@ -1,140 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "tandoor-recipes.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "tandoor-recipes.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "tandoor-recipes.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "tandoor-recipes.labels" -}}
helm.sh/chart: {{ include "tandoor-recipes.chart" . }}
{{ include "tandoor-recipes.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "tandoor-recipes.selectorLabels" -}}
app.kubernetes.io/name: {{ include "tandoor-recipes.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "tandoor-recipes.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "tandoor-recipes.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "tandoor-recipes.postgresql.fullname" -}}
{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Set postgres host
*/}}
{{- define "tandoor-recipes.postgresql.host" -}}
{{- if .Values.postgresql.enabled -}}
{{- template "tandoor-recipes.postgresql.fullname" . -}}
{{- else -}}
{{ required "A valid externalPostgresql.host is required" .Values.externalPostgresql.host }}
{{- end -}}
{{- end -}}
{{/*
Set postgres secret
*/}}
{{- define "tandoor-recipes.postgresql.secret" -}}
{{- if .Values.postgresql.enabled -}}
{{- template "tandoor-recipes.postgresql.fullname" . -}}
{{- else -}}
{{- template "tandoor-recipes.fullname" . -}}
{{- end -}}
{{- end -}}
{{/*
Set postgres port
*/}}
{{- define "tandoor-recipes.postgresql.port" -}}
{{- if .Values.postgresql.enabled -}}
{{- if .Values.postgresql.service -}}
{{- .Values.postgresql.service.port | default 5432 }}
{{- else -}}
5432
{{- end -}}
{{- else -}}
{{- required "A valid externalPostgresql.port is required" .Values.externalPostgresql.port -}}
{{- end -}}
{{- end -}}
{{/*
Set postgresql username
*/}}
{{- define "tandoor-recipes.postgresql.username" -}}
{{- if .Values.postgresql.enabled -}}
{{ required "A valid postgresql.auth.username is required" .Values.postgresql.auth.username }}
{{- else -}}
{{ required "A valid externalPostgresql.username is required" .Values.externalPostgresql.username }}
{{- end -}}
{{- end -}}
{{/*
Set postgresql password
*/}}
{{- define "tandoor-recipes.postgresql.password" -}}
{{- if .Values.postgresql.enabled -}}
{{ required "A valid postgresql.auth.password is required" .Values.postgresql.auth.password }}
{{- else if not (and .Values.externalPostgresql.existingSecret .Values.externalPostgresql.existingSecretPasswordKey) -}}
{{ required "A valid externalPostgresql.password is required" .Values.externalPostgresql.password }}
{{- end -}}
{{- end -}}
{{/*
Set postgresql database
*/}}
{{- define "tandoor-recipes.postgresql.database" -}}
{{- if .Values.postgresql.enabled -}}
{{- .Values.postgresql.auth.database | default "recipes" }}
{{- else -}}
{{ required "A valid externalPostgresql.database is required" .Values.externalPostgresql.database }}
{{- end -}}
{{- end -}}

View File

@ -1,109 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "tandoor-recipes.fullname" . }}
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "tandoor-recipes.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "tandoor-recipes.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "tandoor-recipes.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
env:
- name: DB_ENGINE
value: django.db.backends.postgresql
- name: POSTGRES_HOST
value: {{ include "tandoor-recipes.postgresql.host" . }}
- name: POSTGRES_PORT
value: {{ include "tandoor-recipes.postgresql.port" . | quote }}
- name: POSTGRES_USER
value: {{ include "tandoor-recipes.postgresql.username" . }}
{{- if or .Values.postgresql.enabled .Values.externalPostgresql.existingSecret }}
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.postgresql.enabled }}
name: {{ .Values.postgresql.existingSecret | default (include "tandoor-recipes.postgresql.fullname" .) }}
key: password
{{- else }}
name: {{ .Values.externalPostgresql.existingSecret }}
key: {{ .Values.externalPostgresql.existingSecretPasswordKey }}
{{- end }}
{{- end }}
- name: POSTGRES_DB
value: {{ include "tandoor-recipes.postgresql.database" . }}
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: recipes-secret-key
key: password
livenessProbe:
httpGet:
path: /accounts/login/
port: http
readinessProbe:
httpGet:
path: /accounts/login/
port: http
resources:
{{- toYaml .Values.resources | nindent 12 }}
volumeMounts:
- name: static
mountPath: /opt/recipes/staticfiles
- name: media
mountPath: /opt/recipes/mediafiles
volumes:
- name: static
{{- if .Values.persistence.static.enabled }}
persistentVolumeClaim:
claimName: {{ if .Values.persistence.static.existingClaim }}{{ .Values.persistence.static.existingClaim }}{{- else }}{{ template "tandoor-recipes.fullname" . }}-static-pvc{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
- name: media
{{- if .Values.persistence.media.enabled }}
persistentVolumeClaim:
claimName: {{ if .Values.persistence.media.existingClaim }}{{ .Values.persistence.media.existingClaim }}{{- else }}{{ template "tandoor-recipes.fullname" . }}-media-pvc{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@ -1,61 +0,0 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "tandoor-recipes.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
{{- end }}
{{- end }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -1,32 +0,0 @@
{{- if .Values.persistence.media.enabled -}}
{{- if not .Values.persistence.media.existingClaim -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "tandoor-recipes.fullname" . }}-media-pvc
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
# app.kubernetes.io/name: {{ include "tandoor-recipes.name" . }}
# helm.sh/chart: {{ include "tandoor-recipes.chart" . }}
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/managed-by: {{ .Release.Service }}
# app.kubernetes.io/component: app
{{- if .Values.persistence.media.annotations }}
annotations:
{{ toYaml .Values.persistence.media.annotations | indent 4 }}
{{- end }}
spec:
accessModes:
- {{ .Values.persistence.media.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.media.size | quote }}
{{- if .Values.persistence.media.storageClass }}
{{- if (eq "-" .Values.persistence.media.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.media.storageClass }}"
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}

View File

@ -1,32 +0,0 @@
{{- if .Values.persistence.static.enabled -}}
{{- if not .Values.persistence.static.existingClaim -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "tandoor-recipes.fullname" . }}-static-pvc
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
# app.kubernetes.io/name: {{ include "tandoor-recipes.name" . }}
# helm.sh/chart: {{ include "tandoor-recipes.chart" . }}
# app.kubernetes.io/instance: {{ .Release.Name }}
# app.kubernetes.io/managed-by: {{ .Release.Service }}
# app.kubernetes.io/component: app
{{- if .Values.persistence.static.annotations }}
annotations:
{{ toYaml .Values.persistence.static.annotations | indent 4 }}
{{- end }}
spec:
accessModes:
- {{ .Values.persistence.static.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.static.size | quote }}
{{- if .Values.persistence.static.storageClass }}
{{- if (eq "-" .Values.persistence.static.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.static.storageClass }}"
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}

View File

@ -1,12 +0,0 @@
{{- if empty .Values.secretKey }}
apiVersion: v1
kind: Secret
metadata:
name: "recipes-secret-key"
type: Opaque
data:
{{- $secretObj := (lookup "v1" "Secret" .Release.Namespace "recipes-secret-key") | default dict }}
{{- $secretData := (get $secretObj "data") | default dict }}
{{- $secretKey := (get $secretData "recipes-secret-key") | default (randAlphaNum 64 | b64enc) }}
password: {{ $secretKey | quote }}
{{- end }}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "tandoor-recipes.fullname" . }}
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "tandoor-recipes.selectorLabels" . | nindent 4 }}

View File

@ -1,12 +0,0 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "tandoor-recipes.serviceAccountName" . }}
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "tandoor-recipes.fullname" . }}-test-connection"
labels:
{{- include "tandoor-recipes.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "tandoor-recipes.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -1,116 +0,0 @@
# Default values for tandoor-recipes.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: ghcr.io/tandoorrecipes/recipes
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# -- Specifies whether a service account should be created
create: true
# -- Annotations to add to the service account
annotations: {}
# -- The name of the service account to use. If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 8080
externalPostgresql:
# -- Use an external PostgreSQL database
enabled: false
# host: postgres
port: 5432
database: recipes
username: recipes
# password: recipes
# existingSecret: recipes
# existingSecretPasswordKey: password
postgresql:
# -- Deploy Bitnami PostgreSQL sub-chart
enabled: true
auth:
database: recipes
username: recipes
password: recipes
recipes:
# -- Secret key used by Djano - see https://docs.tandoor.dev/system/configuration/#secret-key
secretKey: ""
persistence:
static:
# -- Enable persistence for static files
enabled: false
existingClaim: ""
annotations: {}
accessMode: ReadWriteOnce
storageClass: ""
size: 1Gi
media:
# -- Enable persistence for media files
enabled: false
existingClaim: ""
annotations: {}
accessMode: ReadWriteOnce
storageClass: ""
size: 1Gi
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: recipes.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: recipes-tls
# hosts:
# - recipes.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@ -1,2 +1 @@
values.test.yaml
charts/*.tgz
values.test.yaml

View File

@ -1,6 +0,0 @@
dependencies:
- name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 15.3.0
digest: sha256:f6cc8e47d7f68e327889b4807f488a346c70c7da8c80ea623aa7a1a8c6d95877
generated: "2024-05-10T21:31:20.762106802+01:00"

View File

@ -15,16 +15,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 3.0.1
version: 1.2.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "8.1.127"
dependencies:
- name: mongodb
version: ^15.3.0
repository: https://charts.bitnami.com/bitnami
condition: mongodb.enabled
appVersion: "7.5.174"

View File

@ -1,15 +1,9 @@
# unifi-controller
![Version: 3.0.1](https://img.shields.io/badge/Version-3.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 8.1.127](https://img.shields.io/badge/AppVersion-8.1.127-informational?style=flat-square)
![Version: 1.1.0](https://img.shields.io/badge/Version-1.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 7.4.156](https://img.shields.io/badge/AppVersion-7.4.156-informational?style=flat-square)
A Helm chart for the Unifi Controller
## Requirements
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | mongodb | ^15.3.0 |
## Values
| Key | Type | Default | Description |
@ -18,13 +12,9 @@ A Helm chart for the Unifi Controller
| config.jvmMemory.limit | string | `"default"` | Integer value in MB or `default` for memory limit for JVM |
| config.jvmMemory.startup | string | `"default"` | Integer value in MB or `default` for startup memory for JVM |
| config.timezone | string | `"Etc/UTC"` | Timezone - see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List |
| externalMongodb.database | string | `"unifi"` | |
| externalMongodb.enabled | bool | `false` | Use an external MongoDB database |
| externalMongodb.port | int | `27017` | |
| externalMongodb.username | string | `"unifi"` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"lscr.io/linuxserver/unifi-network-application"` | |
| image.repository | string | `"quay.io/linuxserver.io/unifi-controller"` | |
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | |
@ -34,13 +24,6 @@ A Helm chart for the Unifi Controller
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | |
| ingress.tls | list | `[]` | |
| mongodb.auth.databases[0] | string | `"unifi"` | |
| mongodb.auth.passwords[0] | string | `"unifi"` | |
| mongodb.auth.rootPassword | string | `"unifi"` | |
| mongodb.auth.rootUser | string | `"root"` | |
| mongodb.auth.usernames[0] | string | `"unifi"` | |
| mongodb.enabled | bool | `true` | Deploy Bitnami MongoDB sub-chart |
| mongodb.initdbScriptsConfigMap | string | `"initdb-scripts"` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| persistence.accessMode | string | `"ReadWriteOnce"` | |
@ -61,3 +44,5 @@ A Helm chart for the Unifi Controller
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| tolerations | list | `[]` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)

View File

@ -60,81 +60,3 @@ Create the name of the service account to use
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "unifi-controller.mongodb.fullname" -}}
{{- printf "%s-%s" .Release.Name "mongodb" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Set mongodb host
*/}}
{{- define "unifi-controller.mongodb.host" -}}
{{- if .Values.mongodb.enabled -}}
{{- template "unifi-controller.mongodb.fullname" . -}}
{{- else -}}
{{ required "A valid externalMongodb.host is required" .Values.externalMongodb.host }}
{{- end -}}
{{- end -}}
{{/*
Set mongodb secret
*/}}
{{- define "unifi-controller.mongodb.secret" -}}
{{- if .Values.mongodb.enabled -}}
{{- template "unifi-controller.mongodb.fullname" . -}}
{{- else -}}
{{- template "unifi-controller.fullname" . -}}
{{- end -}}
{{- end -}}
{{/*
Set mongodb port
*/}}
{{- define "unifi-controller.mongodb.port" -}}
{{- if .Values.mongodb.enabled -}}
{{- if .Values.mongodb.service -}}
{{- .Values.mongodb.service.port | default 27017 }}
{{- else -}}
5432
{{- end -}}
{{- else -}}
{{- required "A valid externalMongodb.port is required" .Values.externalMongodb.port -}}
{{- end -}}
{{- end -}}
{{/*
Set mongodb username
*/}}
{{- define "unifi-controller.mongodb.username" -}}
{{- if .Values.mongodb.enabled -}}
{{ required "A valid mongodb.auth.usernames is required" (first .Values.mongodb.auth.usernames) }}
{{- else -}}
{{ required "A valid externalMongodb.username is required" .Values.externalMongodb.username }}
{{- end -}}
{{- end -}}
{{/*
Set mongodb password
*/}}
{{- define "unifi-controller.mongodb.password" -}}
{{- if .Values.mongodb.enabled -}}
{{ required "A valid mongodb.auth.passwords is required" (first .Values.mongodb.auth.passwords) }}
{{- else if not (and .Values.externalMongodb.existingSecret .Values.externalMongodb.existingSecretPasswordKey) -}}
{{ required "A valid externalMongodb.password is required" .Values.externalMongodb.password }}
{{- end -}}
{{- end -}}
{{/*
Set mongodb database
*/}}
{{- define "unifi-controller.mongodb.database" -}}
{{- if .Values.mongodb.enabled -}}
{{- (first .Values.mongodb.auth.databases) | default "unifi" }}
{{- else -}}
{{ required "A valid externalMongodb.database is required" .Values.externalMongodb.database }}
{{- end -}}
{{- end -}}

View File

@ -1,10 +0,0 @@
{{- if .Values.mongodb.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: initdb-scripts
data:
init-mongo.js: |
db = db.getSiblingDB("{{ include "unifi-controller.mongodb.database" . }}");
db.grantRolesToUser("{{ include "unifi-controller.mongodb.username" . }}", [{role: "dbOwner", db: "{{ include "unifi-controller.mongodb.database" . }}_stat"}])
{{- end }}

View File

@ -67,26 +67,6 @@ spec:
value: {{ .Values.config.jvmMemory.startup }}
- name: MEM_LIMIT
value: {{ .Values.config.jvmMemory.limit }}
- name: MONGO_HOST
value: {{ include "unifi-controller.mongodb.host" . }}
- name: MONGO_PORT
value: {{ include "unifi-controller.mongodb.port" . | quote }}
- name: MONGO_USER
value: {{ include "unifi-controller.mongodb.username" . }}
{{- if or .Values.mongodb.enabled .Values.externalMongodb.existingSecret }}
- name: MONGO_PASS
valueFrom:
secretKeyRef:
{{- if .Values.mongodb.enabled }}
name: {{ .Values.mongodb.existingSecret | default (include "unifi-controller.mongodb.fullname" .) }}
key: mongodb-passwords
{{- else }}
name: {{ .Values.externalMongodb.existingSecret }}
key: {{ .Values.externalMongodb.existingSecretPasswordKey }}
{{- end }}
{{- end }}
- name: MONGO_DBNAME
value: {{ include "unifi-controller.mongodb.database" . }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
volumeMounts:

View File

@ -3,7 +3,7 @@
# Declare variables to be passed into your templates.
image:
repository: lscr.io/linuxserver/unifi-network-application
repository: quay.io/linuxserver.io/unifi-controller
pullPolicy: IfNotPresent
# -- Overrides the image tag whose default is the chart appVersion.
tag: ""
@ -56,30 +56,6 @@ service:
combinedProtocols: true
annotations: {}
mongodb:
# -- Deploy Bitnami MongoDB sub-chart
enabled: true
auth:
rootUser: root
rootPassword: unifi
databases:
- unifi
usernames:
- unifi
passwords:
- unifi
initdbScriptsConfigMap: initdb-scripts
externalMongodb:
# -- Use an external MongoDB database
enabled: false
# host: mongodb
port: 27017
database: unifi
username: unifi
# existingSecret: unifi-mongodb
# existingSecretPasswordKey: password
ingress:
enabled: false
className: ""