Émilien (perso)
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with
1 additions and
257 deletions
-
kubernetes/.gitignore
-
kubernetes/Chart.lock
-
kubernetes/Chart.yaml
-
kubernetes/README.md
-
kubernetes/templates/_helpers.tpl
-
kubernetes/templates/configmap.yaml
-
kubernetes/templates/deployment.yaml
-
kubernetes/templates/hpa.yaml
-
kubernetes/templates/service.yaml
-
kubernetes/values.yaml
|
|
|
@ -1 +0,0 @@ |
|
|
|
/charts/*.tgz |
|
|
|
@ -1,6 +0,0 @@ |
|
|
|
dependencies: |
|
|
|
- name: postgresql |
|
|
|
repository: https://charts.bitnami.com/bitnami/ |
|
|
|
version: 12.11.1 |
|
|
|
digest: sha256:3c10008175c4f5c1cec38782f5a7316154b89074c77ebbd9bcc4be4f5ff21122 |
|
|
|
generated: "2023-09-14T22:40:43.171275362Z" |
|
|
|
@ -1,22 +0,0 @@ |
|
|
|
apiVersion: v2 |
|
|
|
name: invidious |
|
|
|
description: Invidious is an alternative front-end to YouTube |
|
|
|
version: 1.1.1 |
|
|
|
appVersion: 0.20.1 |
|
|
|
keywords: |
|
|
|
- youtube |
|
|
|
- proxy |
|
|
|
- video |
|
|
|
- privacy |
|
|
|
home: https://invidio.us/ |
|
|
|
icon: https://raw.githubusercontent.com/iv-org/invidious/05988c1c49851b7d0094fca16aeaf6382a7f64ab/assets/favicon-32x32.png |
|
|
|
sources: |
|
|
|
- https://github.com/iv-org/invidious |
|
|
|
maintainers: |
|
|
|
- name: Leon Klingele |
|
|
|
email: mail@leonklingele.de |
|
|
|
dependencies: |
|
|
|
- name: postgresql |
|
|
|
version: ~12.11.0 |
|
|
|
repository: "https://charts.bitnami.com/bitnami/" |
|
|
|
engine: gotpl |
|
|
|
@ -1,41 +1 @@ |
|
|
|
# Invidious Helm chart |
|
|
|
|
|
|
|
Easily deploy Invidious to Kubernetes. |
|
|
|
|
|
|
|
## Installing Helm chart |
|
|
|
|
|
|
|
```sh |
|
|
|
# Build Helm dependencies |
|
|
|
$ helm dep build |
|
|
|
|
|
|
|
# Add PostgreSQL init scripts |
|
|
|
$ kubectl create configmap invidious-postgresql-init \ |
|
|
|
--from-file=../config/sql/channels.sql \ |
|
|
|
--from-file=../config/sql/videos.sql \ |
|
|
|
--from-file=../config/sql/channel_videos.sql \ |
|
|
|
--from-file=../config/sql/users.sql \ |
|
|
|
--from-file=../config/sql/session_ids.sql \ |
|
|
|
--from-file=../config/sql/nonces.sql \ |
|
|
|
--from-file=../config/sql/annotations.sql \ |
|
|
|
--from-file=../config/sql/playlists.sql \ |
|
|
|
--from-file=../config/sql/playlist_videos.sql |
|
|
|
|
|
|
|
# Install Helm app to your Kubernetes cluster |
|
|
|
$ helm install invidious ./ |
|
|
|
``` |
|
|
|
|
|
|
|
## Upgrading |
|
|
|
|
|
|
|
```sh |
|
|
|
# Upgrading is easy, too! |
|
|
|
$ helm upgrade invidious ./ |
|
|
|
``` |
|
|
|
|
|
|
|
## Uninstall |
|
|
|
|
|
|
|
```sh |
|
|
|
# Get rid of everything (except database) |
|
|
|
$ helm delete invidious |
|
|
|
|
|
|
|
# To also delete the database, remove all invidious-postgresql PVCs |
|
|
|
``` |
|
|
|
The Helm chart has moved to a dedicated GitHub repository: https://github.com/iv-org/invidious-helm-chart/tree/master/invidious |
|
|
|
@ -1,16 +0,0 @@ |
|
|
|
{{/* vim: set filetype=mustache: */}} |
|
|
|
{{/* |
|
|
|
Expand the name of the chart. |
|
|
|
*/}} |
|
|
|
{{- define "invidious.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). |
|
|
|
*/}} |
|
|
|
{{- define "invidious.fullname" -}} |
|
|
|
{{- $name := default .Chart.Name .Values.nameOverride -}} |
|
|
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} |
|
|
|
{{- end -}} |
|
|
|
@ -1,11 +0,0 @@ |
|
|
|
apiVersion: v1 |
|
|
|
kind: ConfigMap |
|
|
|
metadata: |
|
|
|
name: {{ template "invidious.fullname" . }} |
|
|
|
labels: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" |
|
|
|
release: {{ .Release.Name }} |
|
|
|
data: |
|
|
|
INVIDIOUS_CONFIG: | |
|
|
|
{{ toYaml .Values.config | indent 4 }} |
|
|
|
@ -1,61 +0,0 @@ |
|
|
|
apiVersion: apps/v1 |
|
|
|
kind: Deployment |
|
|
|
metadata: |
|
|
|
name: {{ template "invidious.fullname" . }} |
|
|
|
labels: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" |
|
|
|
release: {{ .Release.Name }} |
|
|
|
spec: |
|
|
|
replicas: {{ .Values.replicaCount }} |
|
|
|
selector: |
|
|
|
matchLabels: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
release: {{ .Release.Name }} |
|
|
|
template: |
|
|
|
metadata: |
|
|
|
labels: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" |
|
|
|
release: {{ .Release.Name }} |
|
|
|
spec: |
|
|
|
securityContext: |
|
|
|
runAsUser: {{ .Values.securityContext.runAsUser }} |
|
|
|
runAsGroup: {{ .Values.securityContext.runAsGroup }} |
|
|
|
fsGroup: {{ .Values.securityContext.fsGroup }} |
|
|
|
initContainers: |
|
|
|
- name: wait-for-postgresql |
|
|
|
image: postgres |
|
|
|
args: |
|
|
|
- /bin/sh |
|
|
|
- -c |
|
|
|
- until pg_isready -h {{ .Values.config.db.host }} -p {{ .Values.config.db.port }} -U {{ .Values.config.db.user }}; do echo waiting for database; sleep 2; done; |
|
|
|
containers: |
|
|
|
- name: {{ .Chart.Name }} |
|
|
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" |
|
|
|
imagePullPolicy: {{ .Values.image.pullPolicy }} |
|
|
|
ports: |
|
|
|
- containerPort: 3000 |
|
|
|
env: |
|
|
|
- name: INVIDIOUS_CONFIG |
|
|
|
valueFrom: |
|
|
|
configMapKeyRef: |
|
|
|
key: INVIDIOUS_CONFIG |
|
|
|
name: {{ template "invidious.fullname" . }} |
|
|
|
securityContext: |
|
|
|
allowPrivilegeEscalation: {{ .Values.securityContext.allowPrivilegeEscalation }} |
|
|
|
capabilities: |
|
|
|
drop: |
|
|
|
- ALL |
|
|
|
resources: |
|
|
|
{{ toYaml .Values.resources | indent 10 }} |
|
|
|
readinessProbe: |
|
|
|
httpGet: |
|
|
|
port: 3000 |
|
|
|
path: / |
|
|
|
livenessProbe: |
|
|
|
httpGet: |
|
|
|
port: 3000 |
|
|
|
path: / |
|
|
|
initialDelaySeconds: 15 |
|
|
|
restartPolicy: Always |
|
|
|
@ -1,18 +0,0 @@ |
|
|
|
{{- if .Values.autoscaling.enabled }} |
|
|
|
apiVersion: autoscaling/v1 |
|
|
|
kind: HorizontalPodAutoscaler |
|
|
|
metadata: |
|
|
|
name: {{ template "invidious.fullname" . }} |
|
|
|
labels: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" |
|
|
|
release: {{ .Release.Name }} |
|
|
|
spec: |
|
|
|
scaleTargetRef: |
|
|
|
apiVersion: apps/v1 |
|
|
|
kind: Deployment |
|
|
|
name: {{ template "invidious.fullname" . }} |
|
|
|
minReplicas: {{ .Values.autoscaling.minReplicas }} |
|
|
|
maxReplicas: {{ .Values.autoscaling.maxReplicas }} |
|
|
|
targetCPUUtilizationPercentage: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} |
|
|
|
{{- end }} |
|
|
|
@ -1,20 +0,0 @@ |
|
|
|
apiVersion: v1 |
|
|
|
kind: Service |
|
|
|
metadata: |
|
|
|
name: {{ template "invidious.fullname" . }} |
|
|
|
labels: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
chart: {{ .Chart.Name }} |
|
|
|
release: {{ .Release.Name }} |
|
|
|
spec: |
|
|
|
type: {{ .Values.service.type }} |
|
|
|
ports: |
|
|
|
- name: http |
|
|
|
port: {{ .Values.service.port }} |
|
|
|
targetPort: 3000 |
|
|
|
selector: |
|
|
|
app: {{ template "invidious.name" . }} |
|
|
|
release: {{ .Release.Name }} |
|
|
|
{{- if .Values.service.loadBalancerIP }} |
|
|
|
loadBalancerIP: {{ .Values.service.loadBalancerIP }} |
|
|
|
{{- end }} |
|
|
|
@ -1,61 +0,0 @@ |
|
|
|
name: invidious |
|
|
|
|
|
|
|
image: |
|
|
|
repository: quay.io/invidious/invidious |
|
|
|
tag: latest |
|
|
|
pullPolicy: Always |
|
|
|
|
|
|
|
replicaCount: 1 |
|
|
|
|
|
|
|
autoscaling: |
|
|
|
enabled: false |
|
|
|
minReplicas: 1 |
|
|
|
maxReplicas: 16 |
|
|
|
targetCPUUtilizationPercentage: 50 |
|
|
|
|
|
|
|
service: |
|
|
|
type: ClusterIP |
|
|
|
port: 3000 |
|
|
|
#loadBalancerIP: |
|
|
|
|
|
|
|
resources: {} |
|
|
|
#requests: |
|
|
|
# cpu: 100m |
|
|
|
# memory: 64Mi |
|
|
|
#limits: |
|
|
|
# cpu: 800m |
|
|
|
# memory: 512Mi |
|
|
|
|
|
|
|
securityContext: |
|
|
|
allowPrivilegeEscalation: false |
|
|
|
runAsUser: 1000 |
|
|
|
runAsGroup: 1000 |
|
|
|
fsGroup: 1000 |
|
|
|
|
|
|
|
# See https://github.com/bitnami/charts/tree/master/bitnami/postgresql |
|
|
|
postgresql: |
|
|
|
image: |
|
|
|
tag: 13 |
|
|
|
auth: |
|
|
|
username: kemal |
|
|
|
password: kemal |
|
|
|
database: invidious |
|
|
|
primary: |
|
|
|
initdb: |
|
|
|
username: kemal |
|
|
|
password: kemal |
|
|
|
scriptsConfigMap: invidious-postgresql-init |
|
|
|
|
|
|
|
# Adapted from ../config/config.yml |
|
|
|
config: |
|
|
|
channel_threads: 1 |
|
|
|
feed_threads: 1 |
|
|
|
db: |
|
|
|
user: kemal |
|
|
|
password: kemal |
|
|
|
host: invidious-postgresql |
|
|
|
port: 5432 |
|
|
|
dbname: invidious |
|
|
|
full_refresh: false |
|
|
|
https_only: false |
|
|
|
domain: |