docs: provide K8s deploy
This commit is contained in:
parent
ffa03bfda1
commit
254b6b30e4
10
helm/alist/Chart.yaml
Normal file
10
helm/alist/Chart.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
name: alist
|
||||
description: A file list program that supports multiple storages, powered by Gin and Solidjs.
|
||||
version: v3.45.0
|
||||
apiVersion: v1
|
||||
keywords:
|
||||
- alist
|
||||
sources:
|
||||
- https://github.com/AlistGo/alist
|
||||
home: https://alistgo.com
|
||||
icon: https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg
|
59
helm/alist/README.md
Normal file
59
helm/alist/README.md
Normal file
@ -0,0 +1,59 @@
|
||||
# Alist Helm Chart
|
||||
|
||||
A file list program that supports multiple storages, powered by Gin and Solidjs.
|
||||
|
||||
## Introduction
|
||||
|
||||
This chart bootstraps alist on [Kubernetes](http://kubernetes.io) using the [Helm](https://helm.sh) package manager.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes cluster 1.20+
|
||||
- Helm v3.2.0+
|
||||
|
||||
## Configure Alist Helm repo
|
||||
|
||||
No Helm repository has been provided. Please `git clone` the code project, and install it manually in the `helm` directory.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/AlistGo/alist.git
|
||||
|
||||
cd alist/helm
|
||||
```
|
||||
|
||||
### Installing the Chart
|
||||
|
||||
Create the alist namespace.
|
||||
|
||||
```bash
|
||||
kubectl create namespace alist
|
||||
```
|
||||
|
||||
Install the helm chart into the alist namespace.
|
||||
|
||||
```bash
|
||||
helm install alist . --namespace alist
|
||||
```
|
||||
|
||||
### Values reference
|
||||
|
||||
The default values.yaml should be suitable for most basic deployments.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|----------------------------|--------------------------------------------------------------|---------------------------------|
|
||||
| `image.registry` | Imag registry | `docker.io` |
|
||||
| `image.repository` | Image name | `xhofe/alist` |
|
||||
| `image.tag` | Image tag | `latest` |
|
||||
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `replicaCount` | Number of scanner adapter Pods to run | `1` |
|
||||
| `persistence.storageClass` | Specify the storageClass used to provision the volume | |
|
||||
| `persistence.accessMode` | The access mode of the volume | `ReadWriteOnce` |
|
||||
| `persistence.size` | The size of the volume | `5Gi` |
|
||||
| `service.type` | Kubernetes service type | `ClusterIP` |
|
||||
| `service.loadBalancerIP` | Kubernetes service loadBalancerIP | |
|
||||
| `service.http.port` | Kubernetes service http port | `5244` |
|
||||
| `service.http.targetPort` | Kubernetes service http targetPort | `5244` |
|
||||
| `service.http.nodePort` | Kubernetes service http nodePort | `35244` |
|
||||
| `service.https.port` | Kubernetes service https port | `5245` |
|
||||
| `service.https.targetPort` | Kubernetes service https targetPort | `5245` |
|
||||
| `service.https.nodePort` | Kubernetes service https nodePort | `35245` |
|
32
helm/alist/templates/_helpers.tpl
Normal file
32
helm/alist/templates/_helpers.tpl
Normal file
@ -0,0 +1,32 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "alist.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 "alist.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 "alist.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
47
helm/alist/templates/alist-deployment.yaml
Normal file
47
helm/alist/templates/alist-deployment.yaml
Normal file
@ -0,0 +1,47 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "alist.name" . }}
|
||||
chart: {{ template "alist.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
name: {{ template "alist.fullname" . }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "alist.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "alist.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: PGID
|
||||
value: "0"
|
||||
- name: PUID
|
||||
value: "0"
|
||||
- name: TZ
|
||||
value: UTC
|
||||
- name: UMASK
|
||||
value: "022"
|
||||
name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.registry}}/{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: {{ .Values.service.http.port }}
|
||||
protocol: TCP
|
||||
- containerPort: {{ .Values.service.https.port }}
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /opt/alist/data
|
||||
name: alist-data
|
||||
restartPolicy: Always
|
||||
enableServiceLinks: false
|
||||
volumes:
|
||||
- name: alist-data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ template "alist.fullname" . }}
|
21
helm/alist/templates/alist-persistentvolumeclaim.yaml
Normal file
21
helm/alist/templates/alist-persistentvolumeclaim.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ template "alist.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "alist.name" . }}
|
||||
chart: {{ template "alist.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
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 }}
|
27
helm/alist/templates/alist-service.yaml
Normal file
27
helm/alist/templates/alist-service.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "alist.fullname" . }}
|
||||
spec:
|
||||
type: {{ .Values.service.type | default "ClusterIP" }}
|
||||
{{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }}
|
||||
loadBalancerIP: {{ default "" .Values.service.loadBalancerIP | quote }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
protocol: TCP
|
||||
port: {{ .Values.service.http.port }}
|
||||
targetPort: {{ .Values.service.http.targetPort }}
|
||||
{{- if (and (eq .Values.service.type "NodePort") ( .Values.service.http.nodePort)) }}
|
||||
nodePort: {{ .Values.service.http.nodePort }}
|
||||
{{- end }}
|
||||
- name: https
|
||||
protocol: TCP
|
||||
port: {{ .Values.service.https.port }}
|
||||
targetPort: {{ .Values.service.https.targetPort }}
|
||||
{{- if (and (eq .Values.service.type "NodePort") ( .Values.service.https.nodePort)) }}
|
||||
nodePort: {{ .Values.service.https.nodePort }}
|
||||
{{- end }}
|
||||
selector:
|
||||
app: {{ template "alist.name" . }}
|
||||
release: {{ .Release.Name }}
|
28
helm/alist/values.yaml
Normal file
28
helm/alist/values.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
nameOverride: ""
|
||||
|
||||
fullnameOverride: ""
|
||||
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: xhofe/alist
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
persistence:
|
||||
storageClass: ""
|
||||
accessMode: ReadWriteOnce
|
||||
size: 5Gi
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
loadBalancerIP: ~
|
||||
http:
|
||||
port: 5244
|
||||
targetPort: 5244
|
||||
nodePort: 35244
|
||||
https:
|
||||
port: 5245
|
||||
targetPort: 5245
|
||||
nodePort: 35245
|
Loading…
x
Reference in New Issue
Block a user