mirror of
https://github.com/rubenhensen/k8scd.git
synced 2026-11-15 14:29:09 +01:00
Remove the disabled apps and a stray Argo CD patch copy
Nothing deploys disable/: the apps in it (ente-photos, minio, mist, owntracks, traccar, ttrss, whisper and others) are gone from the cluster apart from some old TLS secrets. git history keeps them. The argocd-cm patch copy was an old leftover that kustomize never used.
This commit is contained in:
1 parent
d747530f52
commit
416356b4d5
78 files changed
-5935
No files matched your search
@@ -1,14 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: argocd-cm
|
||||
labels:
|
||||
app.kubernetes.io/name: argocd-cm
|
||||
app.kubernetes.io/part-of: argocd
|
||||
data:
|
||||
# kustomize.buildOptions: "--enable-helm"
|
||||
resource.exclusions: |
|
||||
- apiGroups:
|
||||
- "velero.io"
|
||||
kinds:
|
||||
- "Backup"
|
||||
@@ -1,35 +0,0 @@
|
||||
apiVersion: velero.io/v1
|
||||
kind: Schedule
|
||||
metadata:
|
||||
name: daily-backup
|
||||
namespace: velero
|
||||
annotations:
|
||||
velero.io/csi-volumesnapshot-class_driver.longhorn.io: "longhorn-backup-vsc"
|
||||
spec:
|
||||
schedule: "0 1 * * *" # Daily at 1 AM
|
||||
template:
|
||||
# includedNamespaces:
|
||||
# - immich
|
||||
# - nextcloud
|
||||
# - home-assistant
|
||||
# - ttrss
|
||||
ttl: 30d # 30 days
|
||||
defaultVolumesToFsBackup: true
|
||||
---
|
||||
apiVersion: velero.io/v1
|
||||
kind: Schedule
|
||||
metadata:
|
||||
name: weekly-backup
|
||||
namespace: velero
|
||||
annotations:
|
||||
velero.io/csi-volumesnapshot-class_driver.longhorn.io: "longhorn-backup-vsc"
|
||||
spec:
|
||||
schedule: "0 0 * * 0" # Weekly on Sunday at midnight
|
||||
template:
|
||||
# includedNamespaces:
|
||||
# - immich
|
||||
# - nextcloud
|
||||
# - home-assistant
|
||||
# - ttrss
|
||||
ttl: 90d # 90 days
|
||||
defaultVolumesToFsBackup: true
|
||||
@@ -1,131 +0,0 @@
|
||||
# apiVersion: argoproj.io/v1alpha1
|
||||
# kind: Application
|
||||
# metadata:
|
||||
# name: blog-helm
|
||||
# namespace: argocd
|
||||
# finalizers:
|
||||
# - resources-finalizer.argocd.argoproj.io
|
||||
# spec:
|
||||
# destination:
|
||||
# namespace: blog
|
||||
# server: https://kubernetes.default.svc
|
||||
# project: default
|
||||
# source:
|
||||
# repoURL: registry-1.docker.io/bitnamicharts
|
||||
# targetRevision: 19.9.0
|
||||
# chart: ghost
|
||||
# helm:
|
||||
# values: |
|
||||
# image:
|
||||
# # repository: ghost
|
||||
# # tag: 5.114.1
|
||||
# debug: true
|
||||
# ghostUsername: Ruben
|
||||
# ## @param existingSecret Name of existing secret containing Ghost credentials
|
||||
# ## NOTE: Must contain key `ghost-password`
|
||||
# ## NOTE: When it's set, the `ghostPassword` parameter is ignored
|
||||
# existingSecret: ghost-es
|
||||
# ghostEmail: ruben@hensen.io
|
||||
# ghostBlogTitle: Catch && Compile
|
||||
# ghostHost: "blog.hensen.io"
|
||||
# ghostPath: /
|
||||
# ghostEnableHttps: true
|
||||
# ## SMTP mail delivery configuration
|
||||
# ## ref: https://github.com/bitnami/containers/tree/main/bitnami/ghost/#smtp-configuration
|
||||
# ## @param smtpHost SMTP server host
|
||||
# ## @param smtpPort SMTP server port
|
||||
# ## @param smtpUser SMTP username
|
||||
# ## @param smtpPassword SMTP user password
|
||||
# ## @param smtpService SMTP service
|
||||
# ## @param smtpProtocol SMTP protocol (ssl or tls)
|
||||
# ##
|
||||
# smtpHost: smtp.hostinger.com
|
||||
# smtpPort: 587
|
||||
# smtpUser: ruben@hensen.io
|
||||
# smtpPassword: "ignored-but-hast-to-exist-else-password-isnt-passed"
|
||||
# smtpProtocol: tls
|
||||
# smtpService: hostinger
|
||||
# ## @param smtpExistingSecret The name of an existing secret with SMTP credentials
|
||||
# ## NOTE: Must contain key `smtp-password`
|
||||
# ## NOTE: When it's set, the `smtpPassword` parameter is ignored
|
||||
# ##
|
||||
# ## @param extraEnvVars Array with extra environment variables to add to the Ghost container
|
||||
# ## e.g:
|
||||
# ## extraEnvVars:
|
||||
# ## - name: FOO
|
||||
# ## value: "bar"
|
||||
# ##
|
||||
# # extraEnvVars:
|
||||
# # - name: mail__options__secure
|
||||
# # value: "false"
|
||||
# ## @param allowEmptyPassword Allow the container to be started with blank passwords
|
||||
# allowEmptyPassword: false
|
||||
# resourcesPreset: "micro"
|
||||
# containerPorts:
|
||||
# http: 2368
|
||||
# https: 2368
|
||||
# service:
|
||||
# type: ClusterIP
|
||||
# ports:
|
||||
# http: 80
|
||||
# https: 443
|
||||
# ingress:
|
||||
# enabled: true
|
||||
# ingressClassName: nginx
|
||||
# hostname: blog.hensen.io
|
||||
# path: /
|
||||
# annotations:
|
||||
# cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# nginx.ingress.kubernetes.io/proxy-body-size: 1G
|
||||
# tls: true
|
||||
# tlsWwwPrefix: false
|
||||
# selfSigned: false
|
||||
# persistence:
|
||||
# enabled: true
|
||||
# accessModes:
|
||||
# - ReadWriteOnce
|
||||
# size: 8Gi
|
||||
# mysql:
|
||||
# enabled: true
|
||||
# architecture: standalone
|
||||
# ## MySQL Authentication parameters
|
||||
# ## @param mysql.auth.rootPassword MySQL root password
|
||||
# ## @param mysql.auth.database MySQL custom database
|
||||
# ## @param mysql.auth.username MySQL custom user name
|
||||
# ## @param mysql.auth.password MySQL custom user password
|
||||
# ## @param mysql.auth.existingSecret Existing secret with MySQL credentials
|
||||
# ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#setting-the-root-password-on-first-run
|
||||
# ## https://github.com/bitnami/containers/tree/main/bitnami/mysql/#creating-a-database-on-first-run
|
||||
# ## https://github.com/bitnami/containers/tree/main/bitnami/mysql/#creating-a-database-user-on-first-run
|
||||
# auth:
|
||||
# database: bitnami_ghost
|
||||
# username: bn_ghost
|
||||
# existingSecret: ghost-es
|
||||
# primary:
|
||||
# ## MySQL Primary Persistence parameters
|
||||
# ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
|
||||
# ## @param mysql.primary.persistence.enabled Enable persistence on MySQL using PVC(s)
|
||||
# ## @param mysql.primary.persistence.storageClass Persistent Volume storage class
|
||||
# ## @param mysql.primary.persistence.accessModes [array] Persistent Volume access modes
|
||||
# ## @param mysql.primary.persistence.size Persistent Volume size
|
||||
# ##
|
||||
# persistence:
|
||||
# enabled: true
|
||||
# storageClass: ""
|
||||
# accessModes:
|
||||
# - ReadWriteOnce
|
||||
# size: 8Gi
|
||||
# ## MySQL primary container's resource requests and limits
|
||||
# ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
|
||||
# ## 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:'.
|
||||
# ## @param mysql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production)
|
||||
# resourcesPreset: "small"
|
||||
|
||||
# syncPolicy:
|
||||
# syncOptions:
|
||||
# - CreateNamespace=true
|
||||
# automated:
|
||||
# selfHeal: true
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: velero.io/v1
|
||||
kind: Schedule
|
||||
metadata:
|
||||
name: daily-backup3
|
||||
spec:
|
||||
schedule: "*/1 * * * *" # Daily at 1 AM
|
||||
template:
|
||||
ttl: 1h # 30 days
|
||||
defaultVolumesToFsBackup: true
|
||||
snapshotVolumes: true
|
||||
snapshotMoveData: true
|
||||
includedNamespaces:
|
||||
- ttrss
|
||||
@@ -1,18 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: ente-photos-folder
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
path: ente-photos
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: ente-photos
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: custom-logs
|
||||
name: custom-logs
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,83 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: museum
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: ente
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: ente
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: ENTE_DB_HOST
|
||||
value: "helm-postgresql"
|
||||
- name: ENTE_DB_PORT
|
||||
value: "5432"
|
||||
- name: ENTE_DB_NAME
|
||||
value: "ente_db"
|
||||
- name: ENTE_DB_USER
|
||||
value: "pguser"
|
||||
- name: ENTE_DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: ente-photos-config
|
||||
key: pgpass
|
||||
- name: ENTE_S3_ARE_LOCAL_BUCKETS
|
||||
value: "false"
|
||||
- name: ENTE_S3_ENTE-PHOTOS_KEY
|
||||
value: "ente-photos-user"
|
||||
- name: ENTE_S3_ENTE-PHOTOS_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: ente-photos-config
|
||||
key: miniopass
|
||||
- name: ENTE_S3_ENTE-PHOTOS_ENDPOINT
|
||||
value: "minio.hensen.io:3200"
|
||||
- name: ENTE_S3_ENTE-PHOTOS_REGION
|
||||
value: "nl"
|
||||
- name: ENTE_S3_ENTE-PHOTOS_BUCKET
|
||||
value: "ente-photos"
|
||||
image: ghcr.io/ente-io/server
|
||||
name: museum
|
||||
# command: [ "sh", "-c"]
|
||||
# # loop forever, outputting "yo" every 5 seconds
|
||||
# args: ["while true; do echo 'yo' && sleep 5; done;"]
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
- containerPort: 2112
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /var/logs
|
||||
name: custom-logs
|
||||
- mountPath: /museum.yaml
|
||||
name: museum-claim1
|
||||
readOnly: true
|
||||
- mountPath: /data
|
||||
name: museum-claim3
|
||||
readOnly: true
|
||||
# - args:
|
||||
# - TCP-LISTEN:3200,fork,reuseaddr
|
||||
# - TCP:minio:3200
|
||||
# image: alpine/socat
|
||||
# name: socat
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: custom-logs
|
||||
persistentVolumeClaim:
|
||||
claimName: custom-logs
|
||||
- name: museum-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: museum-claim1
|
||||
readOnly: true
|
||||
- name: museum-claim3
|
||||
persistentVolumeClaim:
|
||||
claimName: museum-claim3
|
||||
readOnly: true
|
||||
@@ -1,36 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: ente-server-ingress
|
||||
annotations:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:3000/"
|
||||
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
|
||||
# If you encounter a redirect loop or are getting a 307 response code
|
||||
# then you need to force the nginx ingress to connect to the backend using HTTPS.
|
||||
#
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
namespace: ente-photos
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: ente-server.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: ente-service
|
||||
port:
|
||||
name: "eightyeighty"
|
||||
|
||||
# TLS configuration for HTTPS
|
||||
tls:
|
||||
# TLS secretName used on ClusterIssuer
|
||||
- secretName: letsencrypt-prod
|
||||
hosts:
|
||||
- ente-server.hensen.io
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: template
|
||||
spec:
|
||||
refreshInterval: "15s"
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: ente-photos-config
|
||||
data:
|
||||
- secretKey: pgpass
|
||||
remoteRef:
|
||||
key: ente-photos-postgres
|
||||
property: password
|
||||
- secretKey: miniopass
|
||||
remoteRef:
|
||||
key: minio-ente-photos-user
|
||||
property: password
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: ente-web
|
||||
labels:
|
||||
app: ente-web
|
||||
# docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: ente-web
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: ente-web
|
||||
spec:
|
||||
containers:
|
||||
- name: ente-web
|
||||
image: hebury/ente-web:0.2
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
protocol: TCP
|
||||
@@ -1,36 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: ente-web-ingress
|
||||
annotations:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
|
||||
# nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
# nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:3000/"
|
||||
# nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
|
||||
# If you encounter a redirect loop or are getting a 307 response code
|
||||
# then you need to force the nginx ingress to connect to the backend using HTTPS.
|
||||
#
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
namespace: ente-photos
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: ente.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: ente-service
|
||||
port:
|
||||
name: "https"
|
||||
|
||||
# TLS configuration for HTTPS
|
||||
tls:
|
||||
# TLS secretName used on ClusterIssuer
|
||||
- secretName: letsencrypt-prod2
|
||||
hosts:
|
||||
- ente.hensen.io
|
||||
@@ -1,11 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ente-web-service
|
||||
spec:
|
||||
ports:
|
||||
- name: https
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
selector:
|
||||
app: ente-web
|
||||
@@ -1,25 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: helm-postgresql
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
project: default
|
||||
sources:
|
||||
- chart: postgresql
|
||||
repoURL: registry-1.docker.io/bitnamicharts
|
||||
targetRevision: 15.5.29
|
||||
helm:
|
||||
valueFiles:
|
||||
- $values/ente-photos/postgres-values.yaml
|
||||
- repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: ente-photos
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: museum-claim1
|
||||
name: museum-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: museum-claim3
|
||||
name: museum-claim3
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,14 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ente-service
|
||||
spec:
|
||||
selector:
|
||||
app: ente
|
||||
ports:
|
||||
- name: "eightyeighty"
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
- name: "2112"
|
||||
port: 2112
|
||||
targetPort: 2112
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: pgadmin-es
|
||||
namespace: ente-photos
|
||||
spec:
|
||||
refreshInterval: "15s"
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: pgadmin-secret
|
||||
|
||||
dataFrom:
|
||||
- extract:
|
||||
key: pgadmin
|
||||
@@ -1,45 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pgadmin
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pgadmin
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pgadmin
|
||||
spec:
|
||||
containers:
|
||||
|
||||
- name: pgadmin4
|
||||
image: dpage/pgadmin4
|
||||
env:
|
||||
- name: PGADMIN_DEFAULT_EMAIL
|
||||
value: "admin@admin.com"
|
||||
- name: PGADMIN_DEFAULT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: pgadmin-secret
|
||||
key: pgadmin-default-password
|
||||
- name: PGADMIN_PORT
|
||||
value: "80"
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: pgadminport
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pgadmin
|
||||
labels:
|
||||
app: pgadmin
|
||||
spec:
|
||||
selector:
|
||||
app: pgadmin
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 80
|
||||
nodePort: 30200
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,16 +0,0 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: postgresql-es
|
||||
namespace: ente-photos
|
||||
spec:
|
||||
refreshInterval: "15s"
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: postgres-config
|
||||
|
||||
dataFrom:
|
||||
- extract:
|
||||
key: ente-photos-postgres
|
||||
@@ -1,95 +0,0 @@
|
||||
# apiVersion: argoproj.io/v1alpha1
|
||||
# kind: Application
|
||||
# metadata:
|
||||
# name: mbg-helm
|
||||
# namespace: argocd
|
||||
# finalizers:
|
||||
# - resources-finalizer.argocd.argoproj.io
|
||||
# spec:
|
||||
# destination:
|
||||
# namespace: mbg
|
||||
# server: https://kubernetes.default.svc
|
||||
# project: default
|
||||
# source:
|
||||
# repoURL: registry-1.docker.io/bitnamicharts
|
||||
# targetRevision: 24.1.13
|
||||
# chart: wordpress
|
||||
# helm:
|
||||
# values: |
|
||||
# service:
|
||||
# ## @param service.type WordPress service type
|
||||
# ##
|
||||
# type: ClusterIP
|
||||
# ingress:
|
||||
# enabled: true
|
||||
# ingressClassName: nginx
|
||||
# hostname: scoutingmbg.nl
|
||||
# path: /
|
||||
# annotations:
|
||||
# cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# nginx.ingress.kubernetes.io/proxy-body-size: 1G
|
||||
# tls: true
|
||||
# tlsWwwPrefix: false
|
||||
# selfSigned: false
|
||||
# extraHosts:
|
||||
# - name: www.scoutingmbg.nl
|
||||
# extraPaths: []
|
||||
# extraTls:
|
||||
# - secretName: letsencrypt-prod
|
||||
# hosts:
|
||||
# - scoutingmbg.nl
|
||||
# - www.scoutingmbg.nl
|
||||
# secrets: []
|
||||
# extraRules: []
|
||||
|
||||
# persistence:
|
||||
# ## @param persistence.enabled Enable persistence using Persistent Volume Claims
|
||||
# ##
|
||||
# enabled: true
|
||||
# ## @param persistence.storageClass Persistent Volume storage class
|
||||
# ## If defined, storageClassName: <storageClass>
|
||||
# ## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
# ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
|
||||
# ##
|
||||
# storageClass: ""
|
||||
# ## @param persistence.accessModes [array] Persistent Volume access modes
|
||||
# ##
|
||||
# accessModes:
|
||||
# - ReadWriteOnce
|
||||
# ## @param persistence.accessMode Persistent Volume access mode (DEPRECATED: use `persistence.accessModes` instead)
|
||||
# ##
|
||||
# accessMode: ReadWriteOnce
|
||||
# ## @param persistence.size Persistent Volume size
|
||||
# ##
|
||||
# size: 10Gi
|
||||
# ## @param persistence.dataSource Custom PVC data source
|
||||
# ##
|
||||
# dataSource: {}
|
||||
# ## @param persistence.existingClaim The name of an existing PVC to use for persistence
|
||||
# ##
|
||||
# existingClaim: ""
|
||||
# ## @param persistence.selector Selector to match an existing Persistent Volume for WordPress data PVC
|
||||
# ## If set, the PVC can't have a PV dynamically provisioned for it
|
||||
# ## E.g.
|
||||
# ## selector:
|
||||
# ## matchLabels:
|
||||
# ## app: my-app
|
||||
# ##
|
||||
# selector: {}
|
||||
# ## @param persistence.annotations Persistent Volume Claim annotations
|
||||
# ##
|
||||
# annotations: {}
|
||||
# allowEmptyPassword: false
|
||||
# existingSecret: wordpress-credentials
|
||||
# wordpressUsername: rubenhensen
|
||||
# smtpExistingSecret: wordpress-credentials
|
||||
# customHTAccessCM: prod-wordpress-cm
|
||||
# resourcesPreset: "large"
|
||||
# livenessProbe:
|
||||
# enabled: false
|
||||
|
||||
# syncPolicy:
|
||||
# syncOptions:
|
||||
# - CreateNamespace=true
|
||||
# automated:
|
||||
# selfHeal: true
|
||||
@@ -1,20 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: minio-folder
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
path: minio
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: minio
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,28 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: minio-operator
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
prune: true
|
||||
project: default
|
||||
sources:
|
||||
- chart: operator
|
||||
repoURL: https://operator.min.io
|
||||
targetRevision: 6.0.3
|
||||
helm:
|
||||
valueFiles:
|
||||
- $values/minio/values-operator.yaml
|
||||
- repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: minio-operator
|
||||
@@ -1,30 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: minio-tenant
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
prune: true
|
||||
project: default
|
||||
sources:
|
||||
- chart: tenant
|
||||
repoURL: https://operator.min.io
|
||||
targetRevision: 6.0.3
|
||||
helm:
|
||||
valueFiles:
|
||||
- $values/minio/values-tenant.yaml
|
||||
- repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: minio-tenant
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: minio-tenant-es
|
||||
namespace: minio-tenant
|
||||
spec:
|
||||
refreshInterval: "15s"
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: minio-env-configuration
|
||||
|
||||
data:
|
||||
- secretKey: config.env
|
||||
remoteRef:
|
||||
key: minio-tenant-root
|
||||
property: config.env
|
||||
|
||||
# # metadataPolicy to fetch all the labels in JSON format
|
||||
# - secretKey: tags
|
||||
# remoteRef:
|
||||
# metadataPolicy: Fetch
|
||||
# key: foo
|
||||
|
||||
# # metadataPolicy to fetch a specific label (dev) from the source secret
|
||||
# - secretKey: developer
|
||||
# remoteRef:
|
||||
# metadataPolicy: Fetch
|
||||
# key: foo
|
||||
# property: dev
|
||||
@@ -1,319 +0,0 @@
|
||||
###
|
||||
# Root key for Operator Helm Chart
|
||||
operator:
|
||||
###
|
||||
# An array of environment variables to pass to the Operator deployment.
|
||||
# Pass an empty array to start Operator with defaults.
|
||||
#
|
||||
# For example:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# env:
|
||||
# - name: MINIO_OPERATOR_DEPLOYMENT_NAME
|
||||
# valueFrom:
|
||||
# fieldRef:
|
||||
# fieldPath: metadata.labels['app.kubernetes.io/name']
|
||||
# - name: MINIO_CONSOLE_TLS_ENABLE
|
||||
# value: "off"
|
||||
# - name: CLUSTER_DOMAIN
|
||||
# value: "cluster.domain"
|
||||
# - name: WATCHED_NAMESPACE
|
||||
# value: ""
|
||||
# - name: MINIO_OPERATOR_RUNTIME
|
||||
# value: "OpenShift"
|
||||
#
|
||||
# See `Operator environment variables <https://github.com/minio/operator/blob/master/docs/env-variables.md>`__ for a list of all supported values.
|
||||
env:
|
||||
- name: OPERATOR_STS_ENABLED
|
||||
value: "on"
|
||||
###
|
||||
# Specify the Operator container image to use for the deployment.
|
||||
# ``image.tag``
|
||||
# For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v5.0.11 tag.
|
||||
# The container pulls the image if not already present:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# image:
|
||||
# repository: quay.io/minio/operator
|
||||
# tag: v5.0.11
|
||||
# pullPolicy: IfNotPresent
|
||||
#
|
||||
# The chart also supports specifying an image based on digest value:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# image:
|
||||
# repository: quay.io/minio/operator@sha256
|
||||
# digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
|
||||
# pullPolicy: IfNotPresent
|
||||
#
|
||||
image:
|
||||
repository: quay.io/minio/operator
|
||||
tag: v5.0.11
|
||||
pullPolicy: IfNotPresent
|
||||
###
|
||||
#
|
||||
# An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.
|
||||
# Only one array element is supported at this time.
|
||||
imagePullSecrets: [ ]
|
||||
###
|
||||
#
|
||||
# The name of a custom `Container Runtime <https://kubernetes.io/docs/concepts/containers/runtime-class/>`__ to use for the Operator pods.
|
||||
runtimeClassName: ~
|
||||
###
|
||||
# An array of `initContainers <https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`__ to start up before the Operator pods.
|
||||
# Exercise care as ``initContainer`` failures prevent Operator pods from starting.
|
||||
# Pass an empty array to start the Operator normally.
|
||||
initContainers: [ ]
|
||||
###
|
||||
# The number of Operator pods to deploy.
|
||||
# Higher values increase availability in the event of worker node failures.
|
||||
#
|
||||
# The cluster must have sufficient number of available worker nodes to fulfill the request.
|
||||
# Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node.
|
||||
replicaCount: 1
|
||||
###
|
||||
# The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator resources.
|
||||
#
|
||||
# You may need to modify these values to meet your cluster's security and access settings.
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
runAsNonRoot: true
|
||||
fsGroup: 1000
|
||||
###
|
||||
# The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator containers.
|
||||
# You may need to modify these values to meet your cluster's security and access settings.
|
||||
containerSecurityContext:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
runAsNonRoot: true
|
||||
###
|
||||
# An array of `Volumes <https://kubernetes.io/docs/concepts/storage/volumes/>`__ which the Operator can mount to pods.
|
||||
#
|
||||
# The volumes must exist *and* be accessible to the Operator pods.
|
||||
volumes: [ ]
|
||||
###
|
||||
# An array of volume mount points associated to each Operator container.
|
||||
#
|
||||
# Specify each item in the array as follows:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# volumeMounts:
|
||||
# - name: volumename
|
||||
# mountPath: /path/to/mount
|
||||
#
|
||||
# The ``name`` field must correspond to an entry in the ``volumes`` array.
|
||||
volumeMounts: [ ]
|
||||
###
|
||||
# Any `Node Selectors <https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/>`__ to apply to Operator pods.
|
||||
#
|
||||
# The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods.
|
||||
#
|
||||
# If no worker nodes match the specified selectors, the Operator deployment will fail.
|
||||
nodeSelector: { }
|
||||
###
|
||||
#
|
||||
# The `Pod Priority <https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/>`__ to assign to Operator pods.
|
||||
priorityClassName: ""
|
||||
###
|
||||
#
|
||||
# The `affinity <https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/>`__ or anti-affinity settings to apply to Operator pods.
|
||||
#
|
||||
# These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: name
|
||||
operator: In
|
||||
values:
|
||||
- minio-operator
|
||||
topologyKey: kubernetes.io/hostname
|
||||
###
|
||||
#
|
||||
# An array of `Toleration labels <https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/>`__ to associate to Operator pods.
|
||||
#
|
||||
# These settings determine the distribution of pods across worker nodes.
|
||||
tolerations: [ ]
|
||||
###
|
||||
#
|
||||
# An array of `Topology Spread Constraints <https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/>`__ to associate to Operator pods.
|
||||
#
|
||||
# These settings determine the distribution of pods across worker nodes.
|
||||
topologySpreadConstraints: [ ]
|
||||
###
|
||||
#
|
||||
# The `Requests or Limits <https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/>`__ for resources to associate to Operator pods.
|
||||
#
|
||||
# These settings can control the minimum and maximum resources requested for each pod.
|
||||
# If no worker nodes can meet the specified requests, the Operator may fail to deploy.
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
ephemeral-storage: 500Mi
|
||||
|
||||
###
|
||||
# Root key for Operator Console
|
||||
console:
|
||||
###
|
||||
# Specify ``false`` to disable the Operator Console.
|
||||
#
|
||||
# If the Operator Console is disabled, all management of Operator Tenants must be done through the Kubernetes API.
|
||||
enabled: true
|
||||
###
|
||||
# Specify the Operator Console container image to use for the deployment.
|
||||
# ``image.tag``
|
||||
# For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v5.0.11 tag.
|
||||
# The container pulls the image if not already present:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# image:
|
||||
# repository: quay.io/minio/operator
|
||||
# tag: v5.0.11
|
||||
# pullPolicy: IfNotPresent
|
||||
#
|
||||
# The chart also supports specifying an image based on digest value:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# image:
|
||||
# repository: quay.io/minio/operator@sha256
|
||||
# digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
|
||||
# pullPolicy: IfNotPresent
|
||||
#
|
||||
# The specified values should match that of ``operator.image`` to ensure predictable operations.
|
||||
image:
|
||||
repository: quay.io/minio/operator
|
||||
tag: v5.0.11
|
||||
pullPolicy: IfNotPresent
|
||||
###
|
||||
# An array of environment variables to pass to the Operator Console deployment.
|
||||
# Pass an empty array to start Operator Console with defaults.
|
||||
env: [ ]
|
||||
###
|
||||
#
|
||||
# An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.
|
||||
imagePullSecrets: [ ]
|
||||
###
|
||||
#
|
||||
# The name of a custom `Container Runtime <https://kubernetes.io/docs/concepts/containers/runtime-class/>`__ to use for the Operator Console pods.
|
||||
runtimeClassName: ~
|
||||
###
|
||||
# An array of `initContainers <https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`__ to start up before the Operator Console pods.
|
||||
# Exercise care as ``initContainer`` failures prevent Console pods from starting.
|
||||
# Pass an empty array to start the Console normally.
|
||||
initContainers: [ ]
|
||||
###
|
||||
# The number of Operator Console pods to deploy.
|
||||
# Higher values increase availability in the event of worker node failures.
|
||||
#
|
||||
# The cluster must have sufficient number of available worker nodes to fulfill the request.
|
||||
# Console pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node.
|
||||
replicaCount: 1
|
||||
###
|
||||
# Any `Node Selectors <https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/>`__ to apply to Operator Console pods.
|
||||
#
|
||||
# The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Console pods.
|
||||
#
|
||||
# If no worker nodes match the specified selectors, the Console deployment will fail.
|
||||
nodeSelector: { }
|
||||
###
|
||||
#
|
||||
# The `affinity <https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/>`__ or anti-affinity settings to apply to Operator Console pods.
|
||||
#
|
||||
# These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: name
|
||||
operator: In
|
||||
values:
|
||||
- minio-operator
|
||||
topologyKey: kubernetes.io/hostname
|
||||
###
|
||||
#
|
||||
# An array of `Toleration labels <https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/>`__ to associate to Operator Console pods.
|
||||
#
|
||||
# These settings determine the distribution of pods across worker nodes.
|
||||
tolerations: [ ]
|
||||
###
|
||||
#
|
||||
# An array of `Topology Spread Constraints <https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/>`__ to associate to Operator Console pods.
|
||||
#
|
||||
# These settings determine the distribution of pods across worker nodes.
|
||||
topologySpreadConstraints: [ ]
|
||||
###
|
||||
#
|
||||
# The `Requests or Limits <https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/>`__ for resources to associate to Operator Console pods.
|
||||
#
|
||||
# These settings can control the minimum and maximum resources requested for each pod.
|
||||
# If no worker nodes can meet the specified requests, the Console may fail to deploy.
|
||||
resources:
|
||||
requests:
|
||||
cpu: 0.25
|
||||
memory: 512Mi
|
||||
###
|
||||
# The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator Console resources.
|
||||
#
|
||||
# You may need to modify these values to meet your cluster's security and access settings.
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
runAsNonRoot: true
|
||||
###
|
||||
# The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator Console containers.
|
||||
# You may need to modify these values to meet your cluster's security and access settings.
|
||||
containerSecurityContext:
|
||||
runAsUser: 1000
|
||||
runAsNonRoot: true
|
||||
###
|
||||
# Configures `Ingress <https://kubernetes.io/docs/concepts/services-networking/ingress/>`__ for the Operator Console.
|
||||
#
|
||||
# Set the keys to conform to the Ingress controller and configuration of your choice.
|
||||
# ingress:
|
||||
# enabled: true
|
||||
# ingressClassName: nginx
|
||||
# labels: { }
|
||||
# annotations:
|
||||
# cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# # nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
# tls:
|
||||
# # TLS secretName used on ClusterIssuer
|
||||
# - secretName: letsencrypt-prod
|
||||
# hosts:
|
||||
# - minio-console.hensen.io
|
||||
# host: minio-console.hensen.io
|
||||
# path: /
|
||||
# pathType: Prefix
|
||||
###
|
||||
# An array of `Volumes <https://kubernetes.io/docs/concepts/storage/volumes/>`__ which the Operator Console can mount to pods.
|
||||
#
|
||||
# The volumes must exist *and* be accessible to the Console pods.
|
||||
volumes:
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
###
|
||||
# An array of volume mount points associated to each Operator Console container.
|
||||
#
|
||||
# Specify each item in the array as follows:
|
||||
#
|
||||
# .. code-block:: yaml
|
||||
#
|
||||
# volumeMounts:
|
||||
# - name: volumename
|
||||
# mountPath: /path/to/mount
|
||||
#
|
||||
# The ``name`` field must correspond to an entry in the ``volumes`` array.
|
||||
volumeMounts:
|
||||
- name: tmp
|
||||
readOnly: false
|
||||
mountPath: /tmp/certs/CAs
|
||||
@@ -1,120 +0,0 @@
|
||||
tenant:
|
||||
name: myminio
|
||||
image:
|
||||
repository: quay.io/minio/minio
|
||||
tag: RELEASE.2024-08-17T01-24-54Z
|
||||
pullPolicy: IfNotPresent
|
||||
imagePullSecret: { }
|
||||
scheduler: { }
|
||||
configuration:
|
||||
name: minio-env-configuration
|
||||
|
||||
configSecret:
|
||||
existingSecret: true
|
||||
|
||||
pools:
|
||||
- servers: 1
|
||||
name: pool-0
|
||||
volumesPerServer: 1
|
||||
size: 10Gi
|
||||
storageAnnotations: { }
|
||||
annotations: { }
|
||||
labels: { }
|
||||
tolerations: [ ]
|
||||
nodeSelector: { }
|
||||
affinity: { }
|
||||
resources: { }
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
fsGroup: 1000
|
||||
fsGroupChangePolicy: "OnRootMismatch"
|
||||
runAsNonRoot: true
|
||||
containerSecurityContext:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
runAsNonRoot: true
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
topologySpreadConstraints: [ ]
|
||||
mountPath: /export
|
||||
subPath: /data
|
||||
metrics:
|
||||
enabled: false
|
||||
port: 9000
|
||||
protocol: http
|
||||
|
||||
certificate:
|
||||
externalCaCertSecret: [ ]
|
||||
externalCertSecret: [ ]
|
||||
requestAutoCert: true
|
||||
certConfig: { }
|
||||
features:
|
||||
bucketDNS: false
|
||||
domains: { }
|
||||
enableSFTP: false
|
||||
buckets: [ ]
|
||||
users: [ ]
|
||||
podManagementPolicy: Parallel
|
||||
liveness: { }
|
||||
readiness: { }
|
||||
startup: { }
|
||||
lifecycle: { }
|
||||
exposeServices: { }
|
||||
serviceAccountName: ""
|
||||
prometheusOperator: false
|
||||
logging: { }
|
||||
serviceMetadata: { }
|
||||
env: [ ]
|
||||
priorityClassName: ""
|
||||
additionalVolumes: [ ]
|
||||
additionalVolumeMounts: [ ]
|
||||
|
||||
ingress:
|
||||
api:
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
# labels: { }
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
tls:
|
||||
- secretName: letsencrypt-prod
|
||||
hosts:
|
||||
- minio.hensen.io
|
||||
host: minio.hensen.io
|
||||
path: /
|
||||
pathType: Prefix
|
||||
console:
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
# labels: { }
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
tls:
|
||||
- secretName: letsencrypt-prod-2
|
||||
hosts:
|
||||
- minio-console.hensen.io
|
||||
host: minio-console.hensen.io
|
||||
path: /
|
||||
pathType: Prefix
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: mist-folder
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
path: mist
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: mist
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,32 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: rowing-webcam-ingress
|
||||
namespace: default
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: "nginx"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# Add basic auth to protect the webcam
|
||||
# nginx.ingress.kubernetes.io/auth-type: basic
|
||||
# nginx.ingress.kubernetes.io/auth-secret: rowing-webcam-auth
|
||||
# nginx.ingress.kubernetes.io/auth-realm: "Rowing Club Webcam"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: mist.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: rowing-webcam-service
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- mist.hensen.io
|
||||
secretName: mist-hensen-io-tls # Make sure this TLS secret exists
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: rowing-webcam-service
|
||||
namespace: default
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
# This is an ExternalName service that points to your Raspberry Pi
|
||||
type: ExternalName
|
||||
externalName: 192.168.1.201
|
||||
@@ -1,108 +0,0 @@
|
||||
# apiVersion: argoproj.io/v1alpha1
|
||||
# kind: Application
|
||||
# metadata:
|
||||
# name: nextcloud-helm
|
||||
# namespace: argocd
|
||||
# finalizers:
|
||||
# - resources-finalizer.argocd.argoproj.io
|
||||
# spec:
|
||||
# destination:
|
||||
# namespace: nextcloud
|
||||
# server: https://kubernetes.default.svc
|
||||
# project: default
|
||||
# source:
|
||||
# repoURL: https://nextcloud.github.io/helm/
|
||||
# targetRevision: 6.6.3
|
||||
# chart: nextcloud
|
||||
# helm:
|
||||
# values: |
|
||||
# persistence:
|
||||
# # Nextcloud Data (/var/www/html)
|
||||
# enabled: true
|
||||
# accessMode: ReadWriteOnce
|
||||
# size: 100Gi
|
||||
|
||||
|
||||
# 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
|
||||
# nextcloud:
|
||||
# host: drive.hensen.io
|
||||
# configs:
|
||||
# proxy.config.php: |
|
||||
# <?php
|
||||
# $CONFIG = array (
|
||||
# 'trusted_proxies' => ['10.0.0.0/8', '192.168.1.1/32'],
|
||||
# );
|
||||
# phone.config.php: |
|
||||
# <?php
|
||||
# $CONFIG = array (
|
||||
# 'default_phone_region' => 'NL',
|
||||
# );
|
||||
# phpConfigs:
|
||||
# user.ini: |-
|
||||
# upload_max_filesize=16G
|
||||
# post_max_size=16G
|
||||
# livenessProbe:
|
||||
# enabled: false
|
||||
# readinessProbe:
|
||||
# enabled: false
|
||||
# phpClientHttpsFix:
|
||||
# enabled: true
|
||||
# protocol: https
|
||||
# ingress:
|
||||
# enabled: true
|
||||
# className: nginx
|
||||
# annotations:
|
||||
# nginx.ingress.kubernetes.io/proxy-body-size: 100G
|
||||
# nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
# more_set_headers "Strict-Transport-Security: max-age=15768000; includeSubDomains";
|
||||
# # kubernetes.io/tls-acme: "true"
|
||||
# cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# # # Keep this in sync with the README.md:
|
||||
# # nginx.ingress.kubernetes.io/server-snippet: |
|
||||
# # server_tokens off
|
||||
# # proxy_hide_header X-Powered-By;
|
||||
# # rewrite ^/.well-known/webfinger /index.php/.well-known/webfinger last;
|
||||
# # rewrite ^/.well-known/nodeinfo /index.php/.well-known/nodeinfo last;
|
||||
# # rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
|
||||
# # rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json;
|
||||
# # location = /.well-known/carddav {
|
||||
# # return 301 $scheme://$host/remote.php/dav;
|
||||
# # }
|
||||
# # location = /.well-known/caldav {
|
||||
# # return 301 $scheme://$host/remote.php/dav;
|
||||
# # }
|
||||
# # location = /robots.txt {
|
||||
# # allow all;
|
||||
# # log_not_found off;
|
||||
# # access_log off;
|
||||
# # }
|
||||
# # location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
|
||||
# # deny all;
|
||||
# # }
|
||||
# # location ~ ^/(?:autotest|occ|issue|indie|db_|console) {
|
||||
# # deny all;
|
||||
# # }
|
||||
# tls:
|
||||
# - secretName: nextcloud-tls
|
||||
# hosts:
|
||||
# - drive.hensen.io
|
||||
# labels: {}
|
||||
# path: /
|
||||
# pathType: Prefix
|
||||
|
||||
|
||||
# syncPolicy:
|
||||
# syncOptions:
|
||||
# - CreateNamespace=true
|
||||
# automated:
|
||||
# selfHeal: true
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: owntracks-folder
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
path: owntracks
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: owntracks
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,167 +0,0 @@
|
||||
# apiVersion: argoproj.io/v1alpha1
|
||||
# kind: Application
|
||||
# metadata:
|
||||
# name: mosquitto-helm
|
||||
# namespace: argocd
|
||||
# finalizers:
|
||||
# - resources-finalizer.argocd.argoproj.io
|
||||
# spec:
|
||||
# syncPolicy:
|
||||
# syncOptions:
|
||||
# - CreateNamespace=true
|
||||
# automated:
|
||||
# prune: true
|
||||
# selfHeal: true
|
||||
# project: default
|
||||
# sources:
|
||||
# - chart: mosquitto
|
||||
# repoURL: https://storage.googleapis.com/t3n-helm-charts
|
||||
# targetRevision: v2.4.1 # Replace with the Longhorn version you'd like to install or upgrade to
|
||||
# helm:
|
||||
# values: |
|
||||
# replicaCount: 1
|
||||
# strategyType: Recreate
|
||||
|
||||
# image:
|
||||
# repository: eclipse-mosquitto
|
||||
# tag: 1.6.12
|
||||
# pullPolicy: IfNotPresent
|
||||
|
||||
# imagePullSecrets: []
|
||||
# nameOverride: ""
|
||||
# fullnameOverride: ""
|
||||
|
||||
# serviceAccount:
|
||||
# # Specifies whether a service account should be created
|
||||
# create: true
|
||||
# # The name of the service account to use.
|
||||
# # If not set and create is true, a name is generated using the fullname template
|
||||
# name:
|
||||
|
||||
# service:
|
||||
# type: ClusterIP
|
||||
# externalTrafficPolicy: null
|
||||
# annotations: {}
|
||||
# # metallb.universe.tf/allow-shared-ip: pi-hole
|
||||
|
||||
# ports:
|
||||
# mqtt:
|
||||
# port: 1883
|
||||
# # sets consistent nodePort, required to set service.type=NodePort
|
||||
# # nodePort: 31883
|
||||
# protocol: TCP
|
||||
# websocket:
|
||||
# port: 9090
|
||||
# protocol: TCP
|
||||
|
||||
# persistence:
|
||||
# enabled: true
|
||||
# accessMode: ReadWriteOnce
|
||||
# existingClaim: ""
|
||||
# mountPath: /mosquitto/data
|
||||
# subPath: ""
|
||||
# ## database data Persistent Volume Storage Class
|
||||
# ## If defined, storageClassName: <storageClass>
|
||||
# ## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
# ## If undefined (the default) or set to null, no storageClassName spec is
|
||||
# ## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
# ## GKE, AWS & OpenStack)
|
||||
# ##
|
||||
# # storageClass: "-"
|
||||
# size: 1Gi
|
||||
|
||||
# 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
|
||||
|
||||
# podSecurityContext: {}
|
||||
# # runAsUser: 1001
|
||||
# # fsGroup: 10000
|
||||
|
||||
# securityContext: {}
|
||||
# # runAsUser: 1001
|
||||
# # fsGroup: 10000
|
||||
|
||||
# nodeSelector: {}
|
||||
|
||||
# tolerations: []
|
||||
|
||||
# affinity: {}
|
||||
|
||||
# authentication:
|
||||
# passwordEntries: ""
|
||||
# # To use authentication with mosquitto, you can set a list of password entries to be used.
|
||||
# # reference https://mosquitto.org/man/mosquitto_passwd-1.html to generate these entries.
|
||||
# # For example:
|
||||
# # passwordEntries: |-
|
||||
# # user1:$6$BKzw0RKerxV4Esbj$Uz5slWGB1TiOtYIEokEl0eR1YSEQAdKpcdRYMsLYbwjktlVzdLyGk41YCPGyMLnBePtdwPhkcm8kjGI0R9s57w==
|
||||
# # user2:$6$b5vYuHrSLj48Ii32$NjlbnatIaUQSsNvxxTpawpav6NPyZ8QhGrdEVGtyU1rgEGjNzVGKlstRg29FV6MFTPs/ugPA8D5I5+qRcIMXSg==
|
||||
# passwordFilePath: "/etc/mosquitto/passwordfile"
|
||||
|
||||
# authorization:
|
||||
# acls: ""
|
||||
# # To use authorizations with mosquitto, you can set a list of per user or pattern-based rules.
|
||||
# # reference https://mosquitto.org/man/mosquitto-conf-5.html for further information.
|
||||
# # For example:
|
||||
# # acls: |-
|
||||
# # zigbee2mqtt ACLs
|
||||
# # user zigbee2mqtt
|
||||
# # topic readwrite zigbee2mqtt/#
|
||||
# # topic readwrite homeassistant/#
|
||||
# # Tasmota-compatible ACLs
|
||||
# # pattern read cmnd/%u/#
|
||||
# # pattern write stat/%u/#
|
||||
# # pattern write tele/%u/#
|
||||
# aclfilePath: "/etc/mosquitto/aclfile"
|
||||
|
||||
# existingConfigMap: ""
|
||||
# config: |
|
||||
# persistence true
|
||||
# persistence_location /mosquitto/data/
|
||||
# log_dest stdout
|
||||
# listener 1883
|
||||
# listener 9090
|
||||
# protocol websockets
|
||||
|
||||
# ## Additional volumes.
|
||||
# extraVolumes: []
|
||||
# # - name: tls
|
||||
# # secret:
|
||||
# # secretName: mosquitto-certs
|
||||
|
||||
# ## Additional volumeMounts to the main container.
|
||||
# extraVolumeMounts: []
|
||||
# # - name: tls
|
||||
# # mountPath: /certs
|
||||
# # subPath: cafile
|
||||
|
||||
# monitoring:
|
||||
# podMonitor:
|
||||
# enabled: false
|
||||
# sidecar:
|
||||
# enabled: false
|
||||
# port: 9234
|
||||
# # nodePort: 32234
|
||||
# image:
|
||||
# repository: nolte/mosquitto-exporter
|
||||
# tag: v0.6.3
|
||||
# pullPolicy: IfNotPresent
|
||||
# resources:
|
||||
# limits:
|
||||
# cpu: 300m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 64Mi
|
||||
|
||||
# destination:
|
||||
# server: https://kubernetes.default.svc
|
||||
# namespace: owntracks
|
||||
@@ -1,279 +0,0 @@
|
||||
---
|
||||
# PersistentVolumeClaim for OwnTracks Recorder
|
||||
# apiVersion: v1
|
||||
# kind: PersistentVolumeClaim
|
||||
# metadata:
|
||||
# name: otrecorder-config-pvc
|
||||
# spec:
|
||||
# accessModes:
|
||||
# - ReadWriteOnce
|
||||
# resources:
|
||||
# requests:
|
||||
# storage: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: otrecorder-store-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
---
|
||||
# PersistentVolumeClaim for Mosquitto
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mosquitto-data-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mosquitto-logs-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
# ExternalSecret for OwnTracks Recorder password
|
||||
# apiVersion: external-secrets.io/v1beta1
|
||||
# kind: ExternalSecret
|
||||
# metadata:
|
||||
# name: owntracks-mqtt-credentials
|
||||
# spec:
|
||||
# refreshInterval: "15m"
|
||||
# secretStoreRef:
|
||||
# name: vault-backend
|
||||
# kind: ClusterSecretStore
|
||||
# target:
|
||||
# name: owntracks-mqtt-password
|
||||
# creationPolicy: Owner
|
||||
# data:
|
||||
# - secretKey: password
|
||||
# remoteRef:
|
||||
# key: kv/mqtt
|
||||
# property: password
|
||||
|
||||
---
|
||||
# Deployment for OwnTracks Recorder
|
||||
# apiVersion: apps/v1
|
||||
# kind: Deployment
|
||||
# metadata:
|
||||
# name: otrecorder
|
||||
# spec:
|
||||
# replicas: 1
|
||||
# selector:
|
||||
# matchLabels:
|
||||
# app: otrecorder
|
||||
# template:
|
||||
# metadata:
|
||||
# labels:
|
||||
# app: otrecorder
|
||||
# spec:
|
||||
# containers:
|
||||
# - name: otrecorder
|
||||
# image: owntracks/recorder
|
||||
# ports:
|
||||
# - containerPort: 8083
|
||||
# env:
|
||||
# - name: OTR_HOST
|
||||
# value: "mqtt"
|
||||
# - name: OTR_PORT
|
||||
# value: "8883"
|
||||
# - name: OTR_USER
|
||||
# value: "ruben"
|
||||
# # - name: TZ
|
||||
# # value: "Europe/Berlin"
|
||||
# # - name: VIRTUAL_HOST
|
||||
# # value: "owntracks.hensen.io"
|
||||
# # - name: VIRTUAL_PORT
|
||||
# # value: 8883
|
||||
# # - name: OTR_CLIENTID
|
||||
# # value: ""
|
||||
# - name: OTR_PASS
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: owntracks-mqtt-password
|
||||
# key: password
|
||||
# volumeMounts:
|
||||
# - name: store
|
||||
# mountPath: /store
|
||||
# volumes:
|
||||
# - name: store
|
||||
# persistentVolumeClaim:
|
||||
# claimName: otrecorder-store-pvc
|
||||
---
|
||||
# Service for OwnTracks Recorder
|
||||
# apiVersion: v1
|
||||
# kind: Service
|
||||
# metadata:
|
||||
# name: otrecorder
|
||||
# spec:
|
||||
# selector:
|
||||
# app: otrecorder
|
||||
# ports:
|
||||
# - port: 8083
|
||||
# targetPort: 8083
|
||||
# type: ClusterIP
|
||||
---
|
||||
# ExternalSecret to fetch MQTT password file from Vault
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: mqtt-password-file
|
||||
spec:
|
||||
refreshInterval: "15m"
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: mqtt-password-secret
|
||||
creationPolicy: Owner
|
||||
data:
|
||||
- secretKey: password_file
|
||||
remoteRef:
|
||||
key: kv/mqtt
|
||||
property: secret
|
||||
|
||||
---
|
||||
# ConfigMap for MQTT configuration
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: mqtt-config
|
||||
data:
|
||||
mosquitto.conf: |
|
||||
listener 8883
|
||||
allow_anonymous false
|
||||
password_file /mosquitto/config/password_file
|
||||
# Add other MQTT configuration options here
|
||||
listener 8083
|
||||
protocol websockets
|
||||
---
|
||||
# MQTT Deployment
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mqtt
|
||||
labels:
|
||||
app: mqtt
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mqtt
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mqtt
|
||||
spec:
|
||||
containers:
|
||||
- name: mqtt
|
||||
image: eclipse-mosquitto:latest
|
||||
ports:
|
||||
- containerPort: 8883
|
||||
name: mqtt
|
||||
- containerPort: 8083
|
||||
name: websocket
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /mosquitto/config/mosquitto.conf
|
||||
subPath: mosquitto.conf
|
||||
- name: password-file
|
||||
mountPath: /mosquitto/config/password_file
|
||||
subPath: password_file
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: mqtt-config
|
||||
- name: password-file
|
||||
secret:
|
||||
secretName: mqtt-password-secret
|
||||
|
||||
---
|
||||
# MQTT Service
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mqtt
|
||||
spec:
|
||||
selector:
|
||||
app: mqtt
|
||||
ports:
|
||||
- port: 8883
|
||||
targetPort: 8883
|
||||
name: mqtt
|
||||
- port: 8083
|
||||
targetPort: 8083
|
||||
name: websocket
|
||||
---
|
||||
# External access with Ingress for OwnTracks Recorder
|
||||
# apiVersion: networking.k8s.io/v1
|
||||
# kind: Ingress
|
||||
# metadata:
|
||||
# name: otrecorder-ingress
|
||||
# annotations:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
# cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# spec:
|
||||
# ingressClassName: nginx
|
||||
# tls:
|
||||
# - hosts:
|
||||
# - owntracks.hensen.io
|
||||
# secretName: owntracks-tls-secret
|
||||
# rules:
|
||||
# - host: owntracks.hensen.io
|
||||
# http:
|
||||
# paths:
|
||||
# - path: /
|
||||
# pathType: Prefix
|
||||
# backend:
|
||||
# service:
|
||||
# name: otrecorder
|
||||
# port:
|
||||
# number: 8083
|
||||
---
|
||||
# Corrected MQTT Ingress:
|
||||
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: mqtt-ingress
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# Add NGINX TCP passthrough annotations
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "TCP"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- mqtt.hensen.io
|
||||
secretName: mqtt-tls-secret
|
||||
rules:
|
||||
- host: mqtt.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: mqtt
|
||||
port:
|
||||
number: 8083
|
||||
|
||||
# Note: For proper MQTT over TLS, consider these alternatives:
|
||||
# 1. Use a TCP Load Balancer instead of an Ingress
|
||||
# 2. Configure the MQTT broker to use TLS directly (port 8883)
|
||||
# 3. Use NGINX TCP ingress controller configuration
|
||||
@@ -1 +0,0 @@
|
||||
Example container to restore files. See `Obsidian > Cluster > Restore longhorn backup` for more
|
||||
@@ -1,30 +0,0 @@
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: restore-ubuntu
|
||||
labels:
|
||||
app: restore-ubuntu
|
||||
# namespace: immich # edit in apps folder
|
||||
# docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: restore-ubuntu
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: restore-ubuntu
|
||||
spec:
|
||||
containers:
|
||||
- name: restore-ubuntu
|
||||
image: ubuntu:plucky
|
||||
volumeMounts:
|
||||
- name: restorevol
|
||||
mountPath: /mnt/restorevol/
|
||||
command: [ "/bin/bash", "-c", "--" ] # Let container sleep, so it does not close because of 'completion'
|
||||
args: [ "while true; do sleep 30; done;" ]
|
||||
volumes:
|
||||
- name: restorevol
|
||||
persistentVolumeClaim:
|
||||
claimName: backupofimmich
|
||||
@@ -1,17 +0,0 @@
|
||||
apiVersion: velero.io/v1
|
||||
kind: Schedule
|
||||
metadata:
|
||||
name: test-backup
|
||||
namespace: velero
|
||||
# annotations:
|
||||
# velero.io/csi-volumesnapshot-class_driver.longhorn.io: "longhorn-backup-vsc"
|
||||
spec:
|
||||
schedule: "*/5 * * * *" # Daily at 1 AM
|
||||
template:
|
||||
includedNamespaces:
|
||||
# - immich
|
||||
# - nextcloud
|
||||
# - home-assistant
|
||||
- ttrss
|
||||
ttl: 15m # 30 days
|
||||
defaultVolumesToFsBackup: true
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: traccar-folder
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
path: traccar
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: traccar
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,951 +0,0 @@
|
||||
kind: Application
|
||||
metadata:
|
||||
name: traccar
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
destination:
|
||||
namespace: traccar
|
||||
server: https://kubernetes.default.svc
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://traccar.github.io/traccar-helm/
|
||||
targetRevision: 1.9.0
|
||||
chart: traccar
|
||||
helm:
|
||||
values: |
|
||||
traccar:
|
||||
# server:
|
||||
# statistics:
|
||||
# web:
|
||||
# enable: "true"
|
||||
# address: "0.0.0.0"
|
||||
# port: "8082"
|
||||
# # path:
|
||||
# debug: "false"
|
||||
# console: "true"
|
||||
# timeout:
|
||||
# old:
|
||||
# application:
|
||||
# geocoder:
|
||||
# enable:
|
||||
# type:
|
||||
# url:
|
||||
# onRequest:
|
||||
# ignorePositions:
|
||||
# processInvalidPositions:
|
||||
# format:
|
||||
# reuseDistance:
|
||||
# geolocation:
|
||||
# enable:
|
||||
# type:
|
||||
# key:
|
||||
# mcc:
|
||||
# mnc:
|
||||
# processInvalidPositions:
|
||||
filter:
|
||||
enable: "false"
|
||||
# skipLimit: 5
|
||||
# invalid: "true"
|
||||
# zero: "true"
|
||||
# duplicate: "true"
|
||||
# distance: 80
|
||||
# future: 86400
|
||||
# maxSpeed: 200
|
||||
# skipAttributes:
|
||||
# enable: "true"
|
||||
# attributes: "alarm,result,driverUniqueId"
|
||||
distance:
|
||||
enable: "false"
|
||||
logger:
|
||||
enable: "true"
|
||||
level: "info"
|
||||
processing:
|
||||
remoteAddress:
|
||||
enable: "false"
|
||||
copyAttributes:
|
||||
enable: "false"
|
||||
# attributes: "io83,io84,io87,io89"
|
||||
# database:
|
||||
# driverFile:
|
||||
# driver:
|
||||
# url:
|
||||
# user:
|
||||
# password:
|
||||
# changelog:
|
||||
# checkConnection:
|
||||
# ignoreUnknown:
|
||||
# registerUnknown:
|
||||
# enable:
|
||||
# defaultGroupId:
|
||||
# xml:
|
||||
# saveOriginal:
|
||||
# selectDevicesAll:
|
||||
# insertPosition:
|
||||
# updateLatestPosition:
|
||||
# globalsat:
|
||||
# format0:
|
||||
# format1:
|
||||
# coordinates:
|
||||
# filter:
|
||||
# minError:
|
||||
# maxError:
|
||||
event:
|
||||
enable: "false"
|
||||
# overspeed:
|
||||
# notRepeat:
|
||||
# motion:
|
||||
# speedThreshold:
|
||||
# forward:
|
||||
# enable:
|
||||
# url:
|
||||
# header:
|
||||
# speedLimit:
|
||||
# devicemanager:
|
||||
# lookupGroupsAttribute:
|
||||
# forward:
|
||||
# url:
|
||||
# json:
|
||||
# mail:
|
||||
# templates:
|
||||
# report:
|
||||
# minimalParkingDuration: 500
|
||||
# minimalNoDataDuration: 500
|
||||
# minimalTripDuration: 500
|
||||
# minimalTripDistance: 500
|
||||
# wialon:
|
||||
# status:
|
||||
# timeout:
|
||||
# sms:
|
||||
|
||||
mysql:
|
||||
enabled: true
|
||||
auth:
|
||||
database: "traccar"
|
||||
username: "traccar"
|
||||
password: "traccar"
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
secondary:
|
||||
persistence:
|
||||
enabled: false
|
||||
|
||||
# NOTE: When using multiple replicas, you must configure broadcast.type and broadcast.address
|
||||
# This can be done via configOverride. See https://www.traccar.org/configuration-file/#:~:text=attributes%20to%20log.-,broadcast.type,-config
|
||||
# Or by setting redis.enabled=true
|
||||
replicaCount: 1
|
||||
|
||||
deploymentStrategy:
|
||||
# Recreate has been the default until chart version 1.6.0 and is required if running a non-HA compatible setup
|
||||
type: Recreate
|
||||
# rollingUpdate:
|
||||
# maxSurge: 25%
|
||||
# maxUnavailable: 25%
|
||||
# type: RollingUpdate
|
||||
|
||||
image:
|
||||
repository: traccar/traccar
|
||||
pullPolicy: IfNotPresent
|
||||
# flavor: "" # available are alpine, debian or ubuntu
|
||||
# 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: {}
|
||||
|
||||
podLabels: {}
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: false
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
|
||||
# A list of initContainers to run before the pod starts
|
||||
initContainers: []
|
||||
|
||||
command: ["java", "-Xms512m", "-Xmx512m", "-Djava.net.preferIPv4Stack=true"]
|
||||
args: ["-jar", "tracker-server.jar", "conf/traccar.xml"]
|
||||
|
||||
# This allows you to use environment variables (i.e. referenced from Secrets) to use in your configuration
|
||||
# The names of the keys are identical. But, a dot (.), you'll have to use an underscore (_) and define everything in UPPERCASE
|
||||
env: []
|
||||
# - name: "CONFIG_USE_ENVIRONMENT_VARIABLES"
|
||||
# value: "true"
|
||||
# - name: "DATABASE_USER"
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: "postgres-secrets"
|
||||
# key: "username"
|
||||
# - name: "DATABASE_PASSWORD"
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: "postgres-secrets"
|
||||
# key: "password"
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx
|
||||
extraAnnotations: {}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
# cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
# nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
# nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
hosts:
|
||||
- host: traccar.hensen.io
|
||||
paths:
|
||||
- /
|
||||
tls:
|
||||
- secretName: traccar-tls
|
||||
hosts:
|
||||
- traccar.hensen.io
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 8088
|
||||
|
||||
externalService:
|
||||
type: LoadBalancer
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# metallb.universe.tf/loadBalancerIPs: 192.168.1.100
|
||||
# loadBalancerIP: ""
|
||||
# loadBalancerSourceRanges: []
|
||||
|
||||
# -- Enable node port allocation for the external controller service or not. Applies to type `LoadBalancer` only.
|
||||
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
|
||||
# allocateLoadBalancerNodePorts: true
|
||||
|
||||
protocolPorts:
|
||||
- name: gps103
|
||||
port: 5001
|
||||
targetPort: gps103
|
||||
- name: tk103
|
||||
port: 5002
|
||||
targetPort: tk103
|
||||
- name: gl100
|
||||
port: 5003
|
||||
targetPort: gl100
|
||||
- name: gl200
|
||||
port: 5004
|
||||
targetPort: gl200
|
||||
- name: t55
|
||||
port: 5005
|
||||
targetPort: t55
|
||||
- name: xexun
|
||||
port: 5006
|
||||
targetPort: xexun
|
||||
- name: totem
|
||||
port: 5007
|
||||
targetPort: totem
|
||||
- name: enfora
|
||||
port: 5008
|
||||
targetPort: enfora
|
||||
- name: meiligao
|
||||
port: 5009
|
||||
targetPort: meiliago
|
||||
- name: trv
|
||||
port: 5010
|
||||
targetPort: trv
|
||||
- name: suntech
|
||||
port: 5011
|
||||
targetPort: suntech
|
||||
- name: progress
|
||||
port: 5012
|
||||
targetPort: progress
|
||||
- name: h02
|
||||
port: 5013
|
||||
targetPort: h02
|
||||
- name: jt600
|
||||
port: 5014
|
||||
targetPort: jt600
|
||||
- name: huabao
|
||||
port: 5015
|
||||
targetPort: huabao
|
||||
- name: v680
|
||||
port: 5016
|
||||
targetPort: v680
|
||||
- name: pt502
|
||||
port: 5017
|
||||
targetPort: pt502
|
||||
- name: tr20
|
||||
port: 5018
|
||||
targetPort: tr20
|
||||
- name: navis
|
||||
port: 5019
|
||||
targetPort: navis
|
||||
- name: meitrack
|
||||
port: 5020
|
||||
targetPort: meitrack
|
||||
- name: skypatrol
|
||||
port: 5021
|
||||
targetPort: skypatrol
|
||||
- name: gt02
|
||||
port: 5022
|
||||
targetPort: gt02
|
||||
- name: gt06
|
||||
port: 5023
|
||||
targetPort: gt06
|
||||
- name: megastek
|
||||
port: 5024
|
||||
targetPort: megastek
|
||||
- name: navigil
|
||||
port: 5025
|
||||
targetPort: navigil
|
||||
- name: gpsgate
|
||||
port: 5026
|
||||
targetPort: gpsgate
|
||||
- name: teltonika
|
||||
port: 5027
|
||||
targetPort: teltonika
|
||||
- name: mta6
|
||||
port: 5028
|
||||
targetPort: mta6
|
||||
- name: tzone
|
||||
port: 5029
|
||||
targetPort: tzone
|
||||
- name: tlt2h
|
||||
port: 5030
|
||||
targetPort: tlt2h
|
||||
- name: taip
|
||||
port: 5031
|
||||
targetPort: taip
|
||||
- name: wondex
|
||||
port: 5032
|
||||
targetPort: wondex
|
||||
- name: cellocator
|
||||
port: 5033
|
||||
targetPort: cellocator
|
||||
- name: galileo
|
||||
port: 5034
|
||||
targetPort: galileo
|
||||
- name: ywt
|
||||
port: 5035
|
||||
targetPort: ywt
|
||||
- name: intellitrac
|
||||
port: 5037
|
||||
targetPort: intellitrac
|
||||
- name: gpsmta
|
||||
port: 5038
|
||||
targetPort: gpsmta
|
||||
- name: wialon
|
||||
port: 5039
|
||||
targetPort: wialon
|
||||
- name: carscop
|
||||
port: 5040
|
||||
targetPort: carscop
|
||||
- name: apel
|
||||
port: 5041
|
||||
targetPort: apel
|
||||
- name: manpower
|
||||
port: 5042
|
||||
targetPort: manpower
|
||||
- name: globalsat
|
||||
port: 5043
|
||||
targetPort: globalsat
|
||||
- name: atrack
|
||||
port: 5044
|
||||
targetPort: atrack
|
||||
- name: pt3000
|
||||
port: 5045
|
||||
targetPort: pt3000
|
||||
- name: ruptela
|
||||
port: 5046
|
||||
targetPort: ruptela
|
||||
- name: topflytech
|
||||
port: 5047
|
||||
targetPort: topflytech
|
||||
- name: laipac
|
||||
port: 5048
|
||||
targetPort: laipac
|
||||
- name: aplicom
|
||||
port: 5049
|
||||
targetPort: aplicom
|
||||
- name: gotop
|
||||
port: 5050
|
||||
targetPort: gotop
|
||||
- name: sanav
|
||||
port: 5051
|
||||
targetPort: sannav
|
||||
- name: gator
|
||||
port: 5052
|
||||
targetPort: gator
|
||||
- name: noran
|
||||
port: 5053
|
||||
targetPort: noran
|
||||
- name: m2m
|
||||
port: 5054
|
||||
targetPort: m2m
|
||||
- name: osmand
|
||||
port: 5055
|
||||
targetPort: osmand
|
||||
- name: easytrack
|
||||
port: 5056
|
||||
targetPort: easytrack
|
||||
- name: gpsmaker
|
||||
port: 5057
|
||||
targetPort: gpsmaker
|
||||
- name: khd
|
||||
port: 5058
|
||||
targetPort: khd
|
||||
- name: piligrim
|
||||
port: 5059
|
||||
targetPort: pilgrim
|
||||
- name: stl060
|
||||
port: 5060
|
||||
targetPort: stl060
|
||||
- name: cartrack
|
||||
port: 5061
|
||||
targetPort: cartrack
|
||||
- name: minifinder
|
||||
port: 5062
|
||||
targetPort: minifinder
|
||||
- name: haicom
|
||||
port: 5063
|
||||
targetPort: haicom
|
||||
- name: eelink
|
||||
port: 5064
|
||||
targetPort: eelink
|
||||
- name: box
|
||||
port: 5065
|
||||
targetPort: box
|
||||
- name: freedom
|
||||
port: 5066
|
||||
targetPort: freedom
|
||||
- name: telic
|
||||
port: 5067
|
||||
targetPort: telic
|
||||
- name: trackbox
|
||||
port: 5068
|
||||
targetPort: trackbox
|
||||
- name: visiontek
|
||||
port: 5069
|
||||
targetPort: visiontek
|
||||
- name: orion
|
||||
port: 5070
|
||||
targetPort: orion
|
||||
- name: riti
|
||||
port: 5071
|
||||
targetPort: riti
|
||||
- name: ulbotech
|
||||
port: 5072
|
||||
targetPort: ulbotech
|
||||
- name: tramigo
|
||||
port: 5073
|
||||
targetPort: tramigo
|
||||
- name: tr900
|
||||
port: 5074
|
||||
targetPort: tr900
|
||||
- name: ardi01
|
||||
port: 5075
|
||||
targetPort: ardi01
|
||||
- name: xt013
|
||||
port: 5076
|
||||
targetPort: xt013
|
||||
- name: autofon
|
||||
port: 5077
|
||||
targetPort: autofon
|
||||
- name: gosafe
|
||||
port: 5078
|
||||
targetPort: gosafe
|
||||
- name: bce
|
||||
port: 5080
|
||||
targetPort: bce
|
||||
- name: xirgo
|
||||
port: 5081
|
||||
targetPort: xirgo
|
||||
- name: calamp
|
||||
port: 5082
|
||||
targetPort: calamp
|
||||
- name: mtx
|
||||
port: 5083
|
||||
targetPort: mtx
|
||||
- name: tytan
|
||||
port: 5084
|
||||
targetPort: tytan
|
||||
- name: avl301
|
||||
port: 5085
|
||||
targetPort: avl301
|
||||
- name: castel
|
||||
port: 5086
|
||||
targetPort: castel
|
||||
- name: mxt
|
||||
port: 5087
|
||||
targetPort: mxt
|
||||
- name: cityeasy
|
||||
port: 5088
|
||||
targetPort: cityeasy
|
||||
- name: aquila
|
||||
port: 5089
|
||||
targetPort: aquila
|
||||
- name: flextrack
|
||||
port: 5090
|
||||
targetPort: flextrack
|
||||
- name: blackkite
|
||||
port: 5091
|
||||
targetPort: blackkite
|
||||
- name: adm
|
||||
port: 5092
|
||||
targetPort: adm
|
||||
- name: watch
|
||||
port: 5093
|
||||
targetPort: watch
|
||||
- name: t800x
|
||||
port: 5094
|
||||
targetPort: t800x
|
||||
- name: upro
|
||||
port: 5095
|
||||
targetPort: upro
|
||||
- name: auro
|
||||
port: 5096
|
||||
targetPort: auro
|
||||
- name: disha
|
||||
port: 5097
|
||||
targetPort: disha
|
||||
- name: thinkrace
|
||||
port: 5098
|
||||
targetPort: thinkrace
|
||||
- name: pathaway
|
||||
port: 5099
|
||||
targetPort: pathaway
|
||||
- name: arnavi
|
||||
port: 5100
|
||||
targetPort: arnavi
|
||||
- name: nvs
|
||||
port: 5101
|
||||
targetPort: nvs
|
||||
- name: kenji
|
||||
port: 5102
|
||||
targetPort: kenji
|
||||
- name: astra
|
||||
port: 5103
|
||||
targetPort: astra
|
||||
- name: homtecs
|
||||
port: 5104
|
||||
targetPort: homtecs
|
||||
- name: fox
|
||||
port: 5105
|
||||
targetPort: fox
|
||||
- name: gnx
|
||||
port: 5106
|
||||
targetPort: gnx
|
||||
- name: arknav
|
||||
port: 5107
|
||||
targetPort: arknav
|
||||
- name: supermate
|
||||
port: 5108
|
||||
targetPort: supermate
|
||||
- name: appello
|
||||
port: 5109
|
||||
targetPort: appello
|
||||
- name: idpl
|
||||
port: 5110
|
||||
targetPort: idpl
|
||||
- name: huahsheng
|
||||
port: 5111
|
||||
targetPort: huahsheng
|
||||
- name: granit
|
||||
port: 5112
|
||||
targetPort: granit
|
||||
- name: granit-2
|
||||
port: 5113
|
||||
targetPort: granit-2
|
||||
- name: carcell
|
||||
port: 5114
|
||||
targetPort: carcell
|
||||
- name: raveon
|
||||
port: 5117
|
||||
targetPort: raveon
|
||||
- name: cradlepoint
|
||||
port: 5118
|
||||
targetPort: cradlepoint
|
||||
- name: arknavx8
|
||||
port: 5119
|
||||
targetPort: arknavx8
|
||||
- name: autograde
|
||||
port: 5120
|
||||
targetPort: autograde
|
||||
- name: oigo
|
||||
port: 5121
|
||||
targetPort: oigo
|
||||
- name: jpkorjar
|
||||
port: 5122
|
||||
targetPort: jpkorjar
|
||||
- name: cguard
|
||||
port: 5123
|
||||
targetPort: cguard
|
||||
- name: fifotrack
|
||||
port: 5124
|
||||
targetPort: fifotrack
|
||||
- name: extremtrac
|
||||
port: 5126
|
||||
targetPort: extremtrac
|
||||
- name: trakmate
|
||||
port: 5127
|
||||
targetPort: trakmate
|
||||
- name: at2000
|
||||
port: 5128
|
||||
targetPort: at2000
|
||||
- name: maestro
|
||||
port: 5129
|
||||
targetPort: maestro
|
||||
- name: ais
|
||||
port: 5130
|
||||
targetPort: ais
|
||||
- name: gt30
|
||||
port: 5131
|
||||
targetPort: gt30
|
||||
- name: tmg
|
||||
port: 5132
|
||||
targetPort: tmg
|
||||
- name: pretrace
|
||||
port: 5133
|
||||
targetPort: pretrace
|
||||
- name: pricol
|
||||
port: 5134
|
||||
targetPort: pricol
|
||||
- name: siwi
|
||||
port: 5135
|
||||
targetPort: siwi
|
||||
- name: starlink
|
||||
port: 5136
|
||||
targetPort: starlink
|
||||
- name: dmt
|
||||
port: 5137
|
||||
targetPort: dmt
|
||||
- name: xt2400
|
||||
port: 5138
|
||||
targetPort: xt2400
|
||||
- name: dmthttp
|
||||
port: 5139
|
||||
targetPort: dmthttp
|
||||
- name: alematics
|
||||
port: 5140
|
||||
targetPort: alematics
|
||||
- name: gps056
|
||||
port: 5141
|
||||
targetPort: gps056
|
||||
- name: flexcomm
|
||||
port: 5142
|
||||
targetPort: flexcomm
|
||||
- name: vt200
|
||||
port: 5143
|
||||
targetPort: vt200
|
||||
- name: owntracks
|
||||
port: 5144
|
||||
targetPort: owntracks
|
||||
- name: vtfms
|
||||
port: 5145
|
||||
targetPort: vtfms
|
||||
- name: tlv
|
||||
port: 5146
|
||||
targetPort: tlv
|
||||
- name: esky
|
||||
port: 5147
|
||||
targetPort: esky
|
||||
- name: genx
|
||||
port: 5148
|
||||
targetPort: genx
|
||||
- name: flespi
|
||||
port: 5149
|
||||
targetPort: flespi
|
||||
- name: dway
|
||||
port: 5150
|
||||
targetPort: dway
|
||||
- name: recoda
|
||||
port: 5151
|
||||
targetPort: recoda
|
||||
- name: oko
|
||||
port: 5152
|
||||
targetPort: oko
|
||||
- name: ivt401
|
||||
port: 5153
|
||||
targetPort: ivt401
|
||||
- name: sigfox
|
||||
port: 5154
|
||||
targetPort: sigfox
|
||||
- name: t57
|
||||
port: 5155
|
||||
targetPort: t57
|
||||
- name: spot
|
||||
port: 5156
|
||||
targetPort: spot
|
||||
- name: m2c
|
||||
port: 5157
|
||||
targetPort: m2c
|
||||
- name: globekeeper
|
||||
port: 5158
|
||||
targetPort: globekeeper
|
||||
- name: opengts
|
||||
port: 5159
|
||||
targetPort: opengts
|
||||
- name: cautela
|
||||
port: 5160
|
||||
targetPort: cautela
|
||||
- name: continental
|
||||
port: 5161
|
||||
targetPort: continental
|
||||
- name: egts
|
||||
port: 5162
|
||||
targetPort: egts
|
||||
- name: robotrack
|
||||
port: 5163
|
||||
targetPort: robotrack
|
||||
- name: pt60
|
||||
port: 5164
|
||||
targetPort: pt60
|
||||
- name: telemax
|
||||
port: 5165
|
||||
targetPort: telemax
|
||||
- name: sabertek
|
||||
port: 5166
|
||||
targetPort: sabertek
|
||||
- name: retranslator
|
||||
port: 5167
|
||||
targetPort: retranslator
|
||||
- name: svias
|
||||
port: 5168
|
||||
targetPort: svias
|
||||
- name: eseal
|
||||
port: 5169
|
||||
targetPort: eseal
|
||||
- name: freematics
|
||||
port: 5170
|
||||
targetPort: freematics
|
||||
- name: avema
|
||||
port: 5171
|
||||
targetPort: avema
|
||||
- name: autotrack
|
||||
port: 5172
|
||||
targetPort: autotrack
|
||||
- name: tek
|
||||
port: 5173
|
||||
targetPort: tek
|
||||
- name: wristband
|
||||
port: 5174
|
||||
targetPort: wristband
|
||||
- name: milesmate
|
||||
port: 5176
|
||||
targetPort: milesmate
|
||||
- name: anytrek
|
||||
port: 5177
|
||||
targetPort: anytrek
|
||||
- name: smartsole
|
||||
port: 5178
|
||||
targetPort: smartsole
|
||||
- name: its
|
||||
port: 5179
|
||||
targetPort: its
|
||||
- name: xrb28
|
||||
port: 5180
|
||||
targetPort: xrb28
|
||||
- name: c2stek
|
||||
port: 5181
|
||||
targetPort: c2stek
|
||||
- name: nyitech
|
||||
port: 5182
|
||||
targetPort: nyitech
|
||||
- name: neos
|
||||
port: 5183
|
||||
targetPort: neos
|
||||
- name: satsol
|
||||
port: 5184
|
||||
targetPort: satsol
|
||||
- name: globalstar
|
||||
port: 5185
|
||||
targetPort: globalstar
|
||||
- name: sanul
|
||||
port: 5186
|
||||
targetPort: sanul
|
||||
- name: minifinder2
|
||||
port: 5187
|
||||
targetPort: minifinder2
|
||||
- name: radar
|
||||
port: 5188
|
||||
targetPort: radar
|
||||
- name: techtlt
|
||||
port: 5189
|
||||
targetPort: techtlt
|
||||
- name: starcom
|
||||
port: 5190
|
||||
targetPort: starcom
|
||||
- name: mictrack
|
||||
port: 5191
|
||||
targetPort: mictrack
|
||||
- name: plugin
|
||||
port: 5192
|
||||
targetPort: plugin
|
||||
- name: leafspy
|
||||
port: 5193
|
||||
targetPort: leafspy
|
||||
- name: naviset
|
||||
port: 5194
|
||||
targetPort: naviset
|
||||
- name: racedynamics
|
||||
port: 5195
|
||||
targetPort: racedynamics
|
||||
- name: rst
|
||||
port: 5196
|
||||
targetPort: rst
|
||||
- name: pt215
|
||||
port: 5197
|
||||
targetPort: pt215
|
||||
- name: pacifictrack
|
||||
port: 5198
|
||||
targetPort: pacifictrack
|
||||
- name: topin
|
||||
port: 5199
|
||||
targetPort: topin
|
||||
- name: outsafe
|
||||
port: 5200
|
||||
targetPort: outsafe
|
||||
- name: solarpowered
|
||||
port: 5201
|
||||
targetPort: solarpowered
|
||||
- name: motor
|
||||
port: 5202
|
||||
targetPort: motor
|
||||
- name: omnicomm
|
||||
port: 5203
|
||||
targetPort: omnicom
|
||||
- name: s168
|
||||
port: 5204
|
||||
targetPort: s168
|
||||
- name: vnet
|
||||
port: 5205
|
||||
targetPort: vnet
|
||||
- name: blue
|
||||
port: 5206
|
||||
targetPort: blue
|
||||
- name: pst
|
||||
port: 5207
|
||||
targetPort: pst
|
||||
- name: dingtek
|
||||
port: 5208
|
||||
targetPort: dingtek
|
||||
- name: wli
|
||||
port: 5209
|
||||
targetPort: wli
|
||||
- name: niot
|
||||
port: 5210
|
||||
targetPort: niot
|
||||
- name: portman
|
||||
port: 5211
|
||||
targetPort: portman
|
||||
- name: moovbox
|
||||
port: 5212
|
||||
targetPort: moovbox
|
||||
- name: futureway
|
||||
port: 5213
|
||||
targetPort: futureway
|
||||
- name: polte
|
||||
port: 5214
|
||||
targetPort: polte
|
||||
- name: net
|
||||
port: 5215
|
||||
targetPort: net
|
||||
- name: mobilogix
|
||||
port: 5216
|
||||
targetPort: mobilogix
|
||||
- name: swiftech
|
||||
port: 5217
|
||||
targetPort: swiftech
|
||||
- name: iotm
|
||||
port: 5218
|
||||
targetPort: iotm
|
||||
- name: dolphin
|
||||
port: 5219
|
||||
targetPort: dolphin
|
||||
- name: ennfu
|
||||
port: 5220
|
||||
targetPort: ennfu
|
||||
- name: navtelecom
|
||||
port: 5221
|
||||
targetPort: navtelecom
|
||||
- name: startek
|
||||
port: 5222
|
||||
targetPort: startek
|
||||
- name: gs100
|
||||
port: 5223
|
||||
targetPort: gs100
|
||||
- name: mavlink2
|
||||
port: 5224
|
||||
targetPort: mavlink2
|
||||
- name: uux
|
||||
port: 5225
|
||||
targetPort: uux
|
||||
- name: r12w
|
||||
port: 5226
|
||||
targetPort: r12w
|
||||
- name: flexiblereport
|
||||
port: 5227
|
||||
targetPort: flexiblereport
|
||||
- name: thinkpower
|
||||
port: 5228
|
||||
targetPort: thinkpower
|
||||
|
||||
# This allows you to provide the entire config from scratch.
|
||||
# configOverride: |
|
||||
# <?xml version='1.0' encoding='UTF-8'?>
|
||||
# <!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
|
||||
# <properties>
|
||||
# <entry key='config.default'>./conf/default.xml</entry>
|
||||
# <entry key='web.enable'>true</entry>
|
||||
# <entry key='web.disableHealthCheck'>true</entry>
|
||||
# <entry key='....'>....</entry>
|
||||
# </properties>
|
||||
|
||||
resources: {}
|
||||
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 100
|
||||
targetCPUUtilizationPercentage: 80
|
||||
# targetMemoryUtilizationPercentage: 80
|
||||
|
||||
nodeSelector:
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
redis-ha:
|
||||
# enables the redis subchart
|
||||
enabled: false
|
||||
persistentVolume:
|
||||
enabled: false
|
||||
redis:
|
||||
masterGroupName: traccar
|
||||
config:
|
||||
save: '""'
|
||||
haproxy:
|
||||
enabled: true
|
||||
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
# Service for Traccar
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: traccar-osmand
|
||||
namespace: traccar
|
||||
labels:
|
||||
app.kubernetes.io/name: traccar
|
||||
app.kubernetes.io/instance: traccar
|
||||
app.kubernetes.io/version: '5.10'
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 5055
|
||||
targetPort: 5055
|
||||
protocol: TCP
|
||||
name: osmand
|
||||
selector:
|
||||
app.kubernetes.io/name: traccar
|
||||
app.kubernetes.io/instance: traccar
|
||||
---
|
||||
# Ingress for Traccar OsmAnd port
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: traccar-osmand-ingress
|
||||
namespace: traccar
|
||||
labels:
|
||||
app.kubernetes.io/name: traccar
|
||||
app.kubernetes.io/instance: traccar
|
||||
app.kubernetes.io/version: '5.10'
|
||||
annotations:
|
||||
# You may want to add annotations based on your ingress controller
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
kubernetes.io/ingress.class: "nginx"
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "TCP"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: traccar-client.hensen.io # Replace with your actual domain
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: traccar-osmand
|
||||
port:
|
||||
number: 5055
|
||||
# Uncomment and configure if you need TLS
|
||||
tls:
|
||||
- hosts:
|
||||
- traccar-client.hensen.io
|
||||
secretName: traccar-osmand-tls-secret
|
||||
@@ -1,47 +0,0 @@
|
||||
# Put any local modifications here.
|
||||
|
||||
# Run FPM under this UID/GID.
|
||||
# OWNER_UID=1000
|
||||
# OWNER_GID=1000
|
||||
|
||||
# FPM settings.
|
||||
#PHP_WORKER_MAX_CHILDREN=5
|
||||
#PHP_WORKER_MEMORY_LIMIT=256M
|
||||
|
||||
# ADMIN_USER_* settings are applied on every startup.
|
||||
|
||||
# Set admin user password to this value. If not set, random password
|
||||
# will be generated on startup, look for it in the 'app' container logs.
|
||||
#ADMIN_USER_PASS=
|
||||
|
||||
# Sets admin user access level to this value. Valid values:
|
||||
# -2 - forbidden to login
|
||||
# -1 - readonly
|
||||
# 0 - default user
|
||||
# 10 - admin
|
||||
#ADMIN_USER_ACCESS_LEVEL=
|
||||
|
||||
# Auto create another user (in addition to built-in admin) unless it already exists.
|
||||
#AUTO_CREATE_USER=
|
||||
#AUTO_CREATE_USER_PASS=
|
||||
#AUTO_CREATE_USER_ACCESS_LEVEL=0
|
||||
|
||||
# Default database credentials.
|
||||
TTRSS_DB_USER=postgres
|
||||
TTRSS_DB_NAME=postgres
|
||||
TTRSS_DB_PASS=password
|
||||
|
||||
# You can customize other config.php defines by setting overrides here.
|
||||
# See tt-rss/.docker/app/Dockerfile for a complete list.
|
||||
|
||||
# You probably shouldn't disable auth_internal unless you know what you're doing.
|
||||
# TTRSS_PLUGINS=auth_internal,auth_remote
|
||||
# TTRSS_SINGLE_USER_MODE=true
|
||||
# TTRSS_SESSION_COOKIE_LIFETIME=2592000
|
||||
# TTRSS_FORCE_ARTICLE_PURGE=30
|
||||
# ...
|
||||
|
||||
# Bind exposed port to 127.0.0.1 to run behind reverse proxy on the same host.
|
||||
# If you plan to expose the container, remove "127.0.0.1:".
|
||||
HTTP_PORT=127.0.0.1:8280
|
||||
#HTTP_PORT=8280
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: app-claim1
|
||||
name: app-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,66 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
name: app
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: app
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: HTTP_PORT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: HTTP_PORT
|
||||
name: env
|
||||
- name: TTRSS_DB_NAME
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_NAME
|
||||
name: env
|
||||
- name: TTRSS_DB_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_PASS
|
||||
name: env
|
||||
- name: TTRSS_DB_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_USER
|
||||
name: env
|
||||
image: cthulhoo/ttrss-fpm-pgsql-static:latest
|
||||
name: app
|
||||
ports:
|
||||
- containerPort: 80
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
name: app
|
||||
- mountPath: /opt/tt-rss/config.d
|
||||
name: app-claim1
|
||||
readOnly: true
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: app
|
||||
persistentVolumeClaim:
|
||||
claimName: app
|
||||
- name: app-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: app-claim1
|
||||
readOnly: true
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
name: app
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
name: app
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: app
|
||||
@@ -1,52 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: db
|
||||
name: db
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: db
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: db
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_NAME
|
||||
name: env
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_PASS
|
||||
name: env
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_USER
|
||||
name: env
|
||||
image: postgres:15-alpine
|
||||
name: db
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql/data
|
||||
subPath: postgres
|
||||
name: db
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: db
|
||||
persistentVolumeClaim:
|
||||
claimName: db
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: db
|
||||
name: db
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: db
|
||||
name: db
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 5432
|
||||
targetPort: 5432
|
||||
selector:
|
||||
io.kompose.service: db
|
||||
@@ -1,11 +0,0 @@
|
||||
apiVersion: v1
|
||||
data:
|
||||
HTTP_PORT: 127.0.0.1:8280
|
||||
TTRSS_DB_NAME: postgres
|
||||
TTRSS_DB_PASS: password
|
||||
TTRSS_DB_USER: postgres
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: app-env
|
||||
name: env
|
||||
@@ -1,34 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: ttrss-ingress
|
||||
annotations:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||
# If you encounter a redirect loop or are getting a 307 response code
|
||||
# then you need to force the nginx ingress to connect to the backend using HTTPS.
|
||||
#
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
namespace: ttrss
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: rss.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: web-nginx
|
||||
port:
|
||||
name: http
|
||||
|
||||
# TLS configuration for HTTPS
|
||||
tls:
|
||||
# TLS secretName used on ClusterIssuer
|
||||
- secretName: letsencrypt-prod
|
||||
hosts:
|
||||
- rss.hensen.io
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: updater-claim1
|
||||
name: updater-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
@@ -1,65 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: updater
|
||||
name: updater
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: updater
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: updater
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- /opt/tt-rss/updater.sh
|
||||
env:
|
||||
- name: HTTP_PORT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: HTTP_PORT
|
||||
name: env
|
||||
- name: TTRSS_DB_NAME
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_NAME
|
||||
name: env
|
||||
- name: TTRSS_DB_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_PASS
|
||||
name: env
|
||||
- name: TTRSS_DB_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_USER
|
||||
name: env
|
||||
image: cthulhoo/ttrss-fpm-pgsql-static:latest
|
||||
name: updater
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
name: app
|
||||
- mountPath: /opt/tt-rss/config.d
|
||||
name: updater-claim1
|
||||
readOnly: true
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: app
|
||||
persistentVolumeClaim:
|
||||
claimName: app
|
||||
- name: updater-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: updater-claim1
|
||||
readOnly: true
|
||||
@@ -1,65 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: web-nginx
|
||||
name: web-nginx
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: web-nginx
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: web-nginx
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: APP_UPSTREAM
|
||||
value: app.ttrss.svc.cluster.local
|
||||
- name: RESOLVER
|
||||
value: kube-dns.kube-system.svc.cluster.local
|
||||
- name: HTTP_PORT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: HTTP_PORT
|
||||
name: env
|
||||
- name: TTRSS_DB_NAME
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_NAME
|
||||
name: env
|
||||
- name: TTRSS_DB_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_PASS
|
||||
name: env
|
||||
- name: TTRSS_DB_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: TTRSS_DB_USER
|
||||
name: env
|
||||
image: cthulhoo/ttrss-web-nginx:latest
|
||||
name: web-nginx
|
||||
ports:
|
||||
- containerPort: 80
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /var/www/html
|
||||
name: app
|
||||
readOnly: true
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: app
|
||||
persistentVolumeClaim:
|
||||
claimName: app
|
||||
readOnly: true
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: web-nginx
|
||||
name: web-nginx
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: web-nginx
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: whisper-webui-folder
|
||||
namespace: argocd
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/rubenhensen/k8scd.git
|
||||
targetRevision: HEAD
|
||||
path: whisper-webui
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: whisper-webui
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
selfHeal: true
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: app-claim0
|
||||
name: app-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: app-claim1
|
||||
name: app-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,61 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
name: app
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: app
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
# Replace the original file with a symlink to our writable version
|
||||
if [ -f /Whisper-WebUI/configs/default_parameters.yaml ]; then
|
||||
rm /Whisper-WebUI/configs/default_parameters.yaml
|
||||
fi
|
||||
cp /myconfig/default_parameters.yaml /Whisper-WebUI/configs/default_parameters.yaml
|
||||
# Start the application
|
||||
python app.py --server_port 7860 --server_name 0.0.0.0
|
||||
image: hebury/whisper-webui:latest
|
||||
name: app
|
||||
ports:
|
||||
- containerPort: 7860
|
||||
protocol: TCP
|
||||
stdin: true
|
||||
tty: true
|
||||
volumeMounts:
|
||||
- mountPath: /Whisper-WebUI/models
|
||||
name: app-claim0
|
||||
- mountPath: /Whisper-WebUI/outputs
|
||||
name: app-claim1
|
||||
- name: config-volume
|
||||
mountPath: /myconfig
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: app-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: app-claim0
|
||||
- name: app-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: app-claim1
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: whisper-webui-config
|
||||
@@ -1,43 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: whisper-webui-ingress
|
||||
annotations:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
# type of authentication
|
||||
# nginx.ingress.kubernetes.io/auth-type: basic
|
||||
# name of the secret that contains the user/password definitions
|
||||
# nginx.ingress.kubernetes.io/auth-secret: whisper-basic-auth
|
||||
# message to display with an appropriate context why the authentication is required
|
||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required '
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
# nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:3000/"
|
||||
# nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
|
||||
# If you encounter a redirect loop or are getting a 307 response code
|
||||
# then you need to force the nginx ingress to connect to the backend using HTTPS.
|
||||
#
|
||||
# nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
# namespace: ente-photos
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: alv.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: app
|
||||
port:
|
||||
number: 7860
|
||||
|
||||
# TLS configuration for HTTPS
|
||||
tls:
|
||||
# TLS secretName used on ClusterIssuer
|
||||
- secretName: letsencrypt-prod
|
||||
hosts:
|
||||
- alv.hensen.io
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: app
|
||||
name: app
|
||||
spec:
|
||||
ports:
|
||||
- name: "7860"
|
||||
port: 7860
|
||||
targetPort: 7860
|
||||
selector:
|
||||
io.kompose.service: app
|
||||
@@ -1,29 +0,0 @@
|
||||
# services:
|
||||
# app:
|
||||
# build: .
|
||||
# image: jhj0517/whisper-webui:latest
|
||||
|
||||
# volumes:
|
||||
# # You can mount the container's volume paths to directory paths on your local machine.
|
||||
# # Models will be stored in the `./models' directory on your machine.
|
||||
# # Similarly, all output files will be stored in the `./outputs` directory.
|
||||
# - ./models:/Whisper-WebUI/models
|
||||
# - ./outputs:/Whisper-WebUI/outputs
|
||||
|
||||
# ports:
|
||||
# - "7860:7860"
|
||||
|
||||
# stdin_open: true
|
||||
# tty: true
|
||||
|
||||
# entrypoint: ["python", "app.py", "--server_port", "7860", "--server_name", "0.0.0.0",]
|
||||
|
||||
# # If you're not using nvidia GPU, Update device to match yours.
|
||||
# # See more info at : https://docs.docker.com/compose/compose-file/deploy/#driver
|
||||
# deploy:
|
||||
# resources:
|
||||
# reservations:
|
||||
# devices:
|
||||
# - driver: nvidia
|
||||
# count: all
|
||||
# capabilities: [ gpu ]
|
||||
@@ -1,73 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: whisper-webui-config
|
||||
data:
|
||||
default_parameters.yaml: |
|
||||
whisper:
|
||||
model_size: "large-v3"
|
||||
file_format: "SRT"
|
||||
lang: "dutch"
|
||||
is_translate: false
|
||||
beam_size: 5
|
||||
log_prob_threshold: -0.8
|
||||
no_speech_threshold: 0.7
|
||||
best_of: 5
|
||||
patience: 1
|
||||
condition_on_previous_text: true
|
||||
prompt_reset_on_temperature: 0.5
|
||||
initial_prompt: "Dit is een zakelijke algemene leden vergadering in het Nederlands op studentenroeivereniging Phocas."
|
||||
temperature: 0
|
||||
compression_ratio_threshold: 2.0
|
||||
chunk_length: 30
|
||||
batch_size: 24
|
||||
length_penalty: 1
|
||||
repetition_penalty: 1.2
|
||||
no_repeat_ngram_size: 3
|
||||
prefix: null
|
||||
suppress_blank: true
|
||||
suppress_tokens: "[-1]"
|
||||
max_initial_timestamp: 1
|
||||
word_timestamps: true
|
||||
prepend_punctuations: "\"'“¿([{-"
|
||||
append_punctuations: "\"'.。,,!!??::”)]}、"
|
||||
max_new_tokens: null
|
||||
hallucination_silence_threshold: 0.2
|
||||
hotwords: null
|
||||
language_detection_threshold: 0.8
|
||||
language_detection_segments: 2
|
||||
add_timestamp: true
|
||||
enable_offload: true
|
||||
|
||||
vad:
|
||||
vad_filter: true
|
||||
threshold: 0.6
|
||||
min_speech_duration_ms: 250
|
||||
max_speech_duration_s: 9999
|
||||
min_silence_duration_ms: 1000
|
||||
speech_pad_ms: 2000
|
||||
|
||||
diarization:
|
||||
is_diarize: false
|
||||
hf_token: ""
|
||||
enable_offload: true
|
||||
|
||||
bgm_separation:
|
||||
is_separate_bgm: false
|
||||
uvr_model_size: "UVR-MDX-NET-Inst_HQ_4"
|
||||
segment_size: 256
|
||||
save_file: false
|
||||
enable_offload: true
|
||||
|
||||
translation:
|
||||
deepl:
|
||||
api_key: ""
|
||||
is_pro: false
|
||||
source_lang: "Automatic Detection"
|
||||
target_lang: "English"
|
||||
nllb:
|
||||
model_size: "facebook/nllb-200-1.3B"
|
||||
source_lang: null
|
||||
target_lang: null
|
||||
max_length: 200
|
||||
add_timestamp: false
|
||||
@@ -1,70 +0,0 @@
|
||||
# version: "3.9"
|
||||
|
||||
# services:
|
||||
# mongo:
|
||||
# image: mongo
|
||||
# env_file:
|
||||
# - .env
|
||||
# restart: unless-stopped
|
||||
# volumes:
|
||||
# - ./whishper_data/db_data:/data/db
|
||||
# - ./whishper_data/db_data/logs/:/var/log/mongodb/
|
||||
# environment:
|
||||
# MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
|
||||
# MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
|
||||
# expose:
|
||||
# - 27017
|
||||
# command: ['--logpath', '/var/log/mongodb/mongod.log']
|
||||
|
||||
# translate:
|
||||
# container_name: whisper-libretranslate
|
||||
# image: libretranslate/libretranslate:latest
|
||||
# restart: unless-stopped
|
||||
# volumes:
|
||||
# - ./whishper_data/libretranslate/data:/home/libretranslate/.local/share
|
||||
# - ./whishper_data/libretranslate/cache:/home/libretranslate/.local/cache
|
||||
# env_file:
|
||||
# - .env
|
||||
# tty: true
|
||||
# environment:
|
||||
# LT_DISABLE_WEB_UI: True
|
||||
# LT_UPDATE_MODELS: True
|
||||
# expose:
|
||||
# - 5000
|
||||
# networks:
|
||||
# default:
|
||||
# aliases:
|
||||
# - translate
|
||||
# healthcheck:
|
||||
# test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
|
||||
# interval: 2s
|
||||
# timeout: 3s
|
||||
# retries: 5
|
||||
|
||||
# whishper:
|
||||
# pull_policy: always
|
||||
# image: pluja/whishper:${WHISHPER_VERSION:-latest}
|
||||
# env_file:
|
||||
# - .env
|
||||
# volumes:
|
||||
# - ./whishper_data/uploads:/app/uploads
|
||||
# - ./whishper_data/logs:/var/log/whishper
|
||||
# container_name: whishper
|
||||
# restart: unless-stopped
|
||||
# networks:
|
||||
# default:
|
||||
# aliases:
|
||||
# - whishper
|
||||
# ports:
|
||||
# - 8082:80
|
||||
# depends_on:
|
||||
# - mongo
|
||||
# - translate
|
||||
# environment:
|
||||
# PUBLIC_INTERNAL_API_HOST: "http://127.0.0.1:80"
|
||||
# PUBLIC_TRANSLATION_API_HOST: ""
|
||||
# PUBLIC_API_HOST: ${WHISHPER_HOST:-}
|
||||
# PUBLIC_WHISHPER_PROFILE: cpu
|
||||
# WHISPER_MODELS_DIR: /app/models
|
||||
# UPLOAD_DIR: /app/uploads
|
||||
# CPU_THREADS: 4
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
data:
|
||||
DB_PASS: whishper
|
||||
DB_USER: whishper
|
||||
LT_LOAD_ONLY: es,en,fr,nl
|
||||
WHISHPER_HOST: http://127.0.0.1:8082
|
||||
WHISPER_MODELS: tiny, tiny.en, small, small.en, base, base.en, medium, medium.en, large-v2, large-v3
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: mongo-env
|
||||
name: env
|
||||
@@ -1,43 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: whisper-ingress
|
||||
annotations:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
cert-manager.io/cluster-issuer: prod-cluster-issuer
|
||||
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
# type of authentication
|
||||
nginx.ingress.kubernetes.io/auth-type: basic
|
||||
# name of the secret that contains the user/password definitions
|
||||
nginx.ingress.kubernetes.io/auth-secret: whisper-basic-auth
|
||||
# message to display with an appropriate context why the authentication is required
|
||||
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required '
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
# nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:3000/"
|
||||
# nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
|
||||
# If you encounter a redirect loop or are getting a 307 response code
|
||||
# then you need to force the nginx ingress to connect to the backend using HTTPS.
|
||||
#
|
||||
# nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
# namespace: ente-photos
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: alv.hensen.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: whishper
|
||||
port:
|
||||
number: 8082
|
||||
|
||||
# TLS configuration for HTTPS
|
||||
tls:
|
||||
# TLS secretName used on ClusterIssuer
|
||||
- secretName: letsencrypt-prod
|
||||
hosts:
|
||||
- alv.hensen.io
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: mongo-claim2
|
||||
name: mongo-claim2
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: mongo-claim3
|
||||
name: mongo-claim3
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,73 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: mongo
|
||||
name: mongo
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: mongo
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: mongo
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: DB_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: DB_PASS
|
||||
name: env
|
||||
- name: DB_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: DB_USER
|
||||
name: env
|
||||
- name: LT_LOAD_ONLY
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: LT_LOAD_ONLY
|
||||
name: env
|
||||
- name: MONGO_INITDB_ROOT_PASSWORD
|
||||
value: whishper
|
||||
- name: MONGO_INITDB_ROOT_USERNAME
|
||||
value: whishper
|
||||
- name: WHISHPER_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: WHISHPER_HOST
|
||||
name: env
|
||||
- name: WHISPER_MODELS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: WHISPER_MODELS
|
||||
name: env
|
||||
image: mongo
|
||||
name: mongo
|
||||
ports:
|
||||
- containerPort: 27017
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /data/db
|
||||
name: mongo-claim2
|
||||
# - mountPath: /var/log/mongodb
|
||||
# name: mongo-claim3
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: mongo-claim2
|
||||
persistentVolumeClaim:
|
||||
claimName: mongo-claim2
|
||||
# - name: mongo-claim3
|
||||
# persistentVolumeClaim:
|
||||
# claimName: mongo-claim3
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: mongo
|
||||
name: mongo
|
||||
spec:
|
||||
ports:
|
||||
- name: "27017"
|
||||
port: 27017
|
||||
targetPort: 27017
|
||||
selector:
|
||||
io.kompose.service: mongo
|
||||
@@ -1,35 +0,0 @@
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
gzip on;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location /api/video {
|
||||
alias /app/uploads/;
|
||||
}
|
||||
|
||||
location /languages {
|
||||
proxy_pass http://translate:5000;
|
||||
}
|
||||
|
||||
location /api {
|
||||
client_max_body_size 0;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
}
|
||||
|
||||
location /ws {
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: translate-claim0
|
||||
name: translate-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: translate-claim1
|
||||
name: translate-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,83 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: translate
|
||||
name: translate
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: translate
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: translate
|
||||
spec:
|
||||
securityContext:
|
||||
fsGroup: 2000
|
||||
containers:
|
||||
- env:
|
||||
- name: DB_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: DB_PASS
|
||||
name: env
|
||||
- name: DB_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: DB_USER
|
||||
name: env
|
||||
- name: LT_DISABLE_WEB_UI
|
||||
value: "true"
|
||||
- name: LT_LOAD_ONLY
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: LT_LOAD_ONLY
|
||||
name: env
|
||||
- name: LT_UPDATE_MODELS
|
||||
value: "true"
|
||||
- name: WHISHPER_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: WHISHPER_HOST
|
||||
name: env
|
||||
- name: WHISPER_MODELS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: WHISPER_MODELS
|
||||
name: env
|
||||
image: libretranslate/libretranslate:latest
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- ./venv/bin/python scripts/healthcheck.py
|
||||
failureThreshold: 5
|
||||
periodSeconds: 2
|
||||
timeoutSeconds: 3
|
||||
name: whisper-libretranslate
|
||||
ports:
|
||||
- containerPort: 5000
|
||||
protocol: TCP
|
||||
tty: true
|
||||
volumeMounts:
|
||||
- mountPath: /home/libretranslate/.local/share
|
||||
name: translate-claim0
|
||||
- mountPath: /home/libretranslate/.local/cache
|
||||
name: translate-claim1
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: translate-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: translate-claim0
|
||||
- name: translate-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: translate-claim1
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: translate
|
||||
name: translate
|
||||
spec:
|
||||
ports:
|
||||
- name: "5000"
|
||||
port: 5000
|
||||
targetPort: 5000
|
||||
selector:
|
||||
io.kompose.service: translate
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: whishper-claim0
|
||||
name: whishper-claim0
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
io.kompose.service: whishper-claim1
|
||||
name: whishper-claim1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -1,83 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: whishper
|
||||
name: whishper
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
io.kompose.service: whishper
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: whishper
|
||||
spec:
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
containers:
|
||||
- env:
|
||||
- name: CPU_THREADS
|
||||
value: "4"
|
||||
- name: DB_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: DB_PASS
|
||||
name: env
|
||||
- name: DB_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: DB_USER
|
||||
name: env
|
||||
- name: LT_LOAD_ONLY
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: LT_LOAD_ONLY
|
||||
name: env
|
||||
- name: PUBLIC_API_HOST
|
||||
- name: PUBLIC_INTERNAL_API_HOST
|
||||
value: http://127.0.0.1:80
|
||||
- name: PUBLIC_TRANSLATION_API_HOST
|
||||
- name: PUBLIC_WHISHPER_PROFILE
|
||||
value: cpu
|
||||
- name: UPLOAD_DIR
|
||||
value: /app/uploads
|
||||
- name: WHISHPER_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: WHISHPER_HOST
|
||||
name: env
|
||||
- name: WHISPER_MODELS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: WHISPER_MODELS
|
||||
name: env
|
||||
- name: WHISPER_MODELS_DIR
|
||||
value: /app/models
|
||||
image: pluja/whishper:latest
|
||||
name: whishper
|
||||
ports:
|
||||
- containerPort: 80
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /app/uploads
|
||||
name: whishper-claim0
|
||||
- mountPath: /var/log/whishper
|
||||
name: whishper-claim1
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: whishper-claim0
|
||||
persistentVolumeClaim:
|
||||
claimName: whishper-claim0
|
||||
- name: whishper-claim1
|
||||
persistentVolumeClaim:
|
||||
claimName: whishper-claim1
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert
|
||||
kompose.version: 1.34.0 (cbf2835db)
|
||||
labels:
|
||||
io.kompose.service: whishper
|
||||
name: whishper
|
||||
spec:
|
||||
ports:
|
||||
- name: "8082"
|
||||
port: 8082
|
||||
targetPort: 80
|
||||
selector:
|
||||
io.kompose.service: whishper
|
||||
Reference in new issue
Block a user