Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

filestash-helm-chart #284

Merged
merged 4 commits into from
Jul 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions charts/modules/apps/filestash-app/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
annotations:
category: Application
apiVersion: v2
appVersion: "1.0.0"
description: A Helm chart to deploy https://www.filestash.app/
name: filestash-app
version: "1.0.0"
home: https://github.com/luminartech/helm-charts-public
sources:
- https://github.com/luminartech/helm-charts-public/tree/main/charts/modules/apps/filestash-app
maintainers:
- name: Luminar IPE Team
email: ipe@luminartech.com
dependencies:
- name: common-gitops
version: "1.1.10"
repository: "oci://ghcr.io/luminartech/helm-charts-public"
- name: "common-res"
version: "1.0.18"
repository: "oci://ghcr.io/luminartech/helm-charts-public"
condition: "common-res.enabled"
2 changes: 2 additions & 0 deletions charts/modules/apps/filestash-app/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
NAMESPACE?=filestash-app
include ../../../../Makefile
14 changes: 14 additions & 0 deletions charts/modules/apps/filestash-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Parameters

### Global parameters

| Name | Description | Value |
| ---------------------------- | -------------------------------------------------------------------------------- | --------------------------------- |
| `global.chartNameOverride` | Overrides the chart name. | `""` |
| `global.releaseNameOverride` | Overrides the release name. | `""` |
| `global.tags` | Define common tags for all IAC and app resources generated by this chart. | `{}` |
| `global.labels` | Define common labels for all IAC and app resources generated by this chart. | `{}` |
| `global.annotations` | Define common annotations for all IAC and app resources generated by this chart. | `{}` |
| `global.ingressClassName` | Ingress Classname | `nginx` |
| `global.ingressUrl` | Ingress URL | `demo-filestash.luminarinfra.com` |
| `global.storageClassName` | Storage class name | `gp3` |
2 changes: 2 additions & 0 deletions charts/modules/apps/filestash-app/values-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
common-res:
enabled: true
212 changes: 212 additions & 0 deletions charts/modules/apps/filestash-app/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
---
## @section Global parameters
## Global parameters
## These variables are accessible to all dependency helm charts.
##

global:
## @param global.chartNameOverride Overrides the chart name.
##
chartNameOverride: ""
## @param global.releaseNameOverride Overrides the release name.
##
releaseNameOverride: ""
## @param global.tags Define common tags for all IAC and app resources generated by this chart.
##
tags: {}
## @param global.labels Define common labels for all IAC and app resources generated by this chart.
##
labels: {}
## @param global.annotations Define common annotations for all IAC and app resources generated by this chart.
##
annotations: {}
## @param global.ingressClassName Ingress Classname
##
ingressClassName: 'nginx'
## @param global.ingressUrl Ingress URL
##
ingressUrl: 'demo-filestash.luminarinfra.com'
## @param global.storageClassName Storage class name
##
storageClassName: 'gp3'


## @skip common-res
common-res:
enabled: true
PersistentVolumeClaim:
items:
_:
name: '{{ include "common-gitops.names.release" . }}-state'
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: "{{ .Values.global.storageClassName }}"

Deployment:
items:
_:
replicas: 1
revisionHistoryLimit: 3
strategy:
type: "RollingUpdate"
rollingUpdate:
maxUnavailable: "66%"
maxSurge: "33%"
selector: {}
podSpec:
spec:
automountServiceAccountToken: false
restartPolicy: Always
securityContext:
fsGroup: 1000
supplementalGroups: []
fsGroupChangePolicy: OnRootMismatch
containers:
- name: filestash-app
image: machines/filestash
imagePullPolicy: IfNotPresent
tty: false
stdin: false
ports:
- name: http
containerPort: 80
protocol: TCP
volumeMounts:
- name: devshm
mountPath: /dev/shm
readOnly: false
- name: shared
mountPath: /shared
readOnly: false
- name: tmp
mountPath: /tmp
readOnly: false
- name: varrun
mountPath: /var/run
readOnly: false
- name: '{{ include "common-gitops.names.release" . }}-state'
mountPath: /app/data/state
readOnly: false
livenessProbe:
httpGet:
port: 80
scheme: HTTP
path: "/"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
readinessProbe:
httpGet:
port: 80
scheme: HTTP
path: "/"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 2
startupProbe:
tcpSocket:
port: 80
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 60
successThreshold: 1
resources:
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: "1"
memory: 512Mi
securityContext:
runAsGroup: 1000
runAsUser: 1000
privileged: false
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
## Linux pod capabilities configurations
## https://man7.org/linux/man-pages/man7/capabilities.7.html
##
capabilities:
drop:
- ALL
add: []
envFrom:
- configMapRef:
name: '{{ include "common-gitops.names.release" . }}'
volumes:
- name: devshm
emptyDir:
medium: Memory
- name: varrun
emptyDir:
medium: Memory
- name: shared
emptyDir: {}
- name: tmp
emptyDir: {}
- name: '{{ include "common-gitops.names.release" . }}-state'
persistentVolumeClaim:
claimName: '{{ include "common-gitops.names.release" . }}-state'

ServiceAccount:
items:
_:
enabled: true

Service:
items:
_:
enabled: true
spec:
selector: {}
type: ClusterIP
ports:
- name: http
port: 8334
protocol: TCP
targetPort: http

Ingress:
enabled: true
items:
_:
annotations:
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/preserve-trailing-slash: "false"
nginx.ingress.kubernetes.io/server-snippet: |
proxy_ssl_verify off;
proxy_set_header X-Forwarded-Proto https;
nginx.ingress.kubernetes.io/ssl-redirect: "true"
# choosing 10G to accomodate possible large requests
nginx.ingress.kubernetes.io/proxy-body-size: "10G"
labels: {}
spec:
ingressClassName: "{{ .Values.global.ingressClassName }}"
rules:
- host: "{{ .Values.global.ingressUrl }}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: '{{ include "common-gitops.names.release" . }}'
port:
number: 8334
tls:
- secretName: tls-{{ .Values.global.ingressUrl }}
hosts:
- "{{ .Values.global.ingressUrl }}"