update backup password
This commit is contained in:
parent
58b7de330b
commit
ebf31c52dd
@ -21,10 +21,14 @@ spec:
|
|||||||
command: ["curl"]
|
command: ["curl"]
|
||||||
args:
|
args:
|
||||||
- "-H"
|
- "-H"
|
||||||
- "Title: $(cat /proc/sys/kernel/hostname)"
|
- "Title: $OPERATION"
|
||||||
- "-d"
|
- "-d"
|
||||||
- "Restic operation to gdrive finished"
|
- "Finished successfully"
|
||||||
- "https://ntfy.kluster.moll.re/backup"
|
- "https://ntfy.kluster.moll.re/backup"
|
||||||
|
env:
|
||||||
|
- name: OPERATION
|
||||||
|
value: "PLACEHOLDER"
|
||||||
|
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: restic-base-container
|
- name: restic-base-container
|
||||||
image: restic/restic:latest
|
image: restic/restic:latest
|
||||||
|
@ -23,3 +23,8 @@ spec:
|
|||||||
&&
|
&&
|
||||||
restic
|
restic
|
||||||
list snapshots
|
list snapshots
|
||||||
|
containers:
|
||||||
|
- name: ntfy-command-send
|
||||||
|
env:
|
||||||
|
- name: OPERATION
|
||||||
|
value: "Restic backup to gdrive"
|
@ -22,3 +22,8 @@ spec:
|
|||||||
--verbose=2
|
--verbose=2
|
||||||
--keep-daily 7 --keep-weekly 5
|
--keep-daily 7 --keep-weekly 5
|
||||||
--prune
|
--prune
|
||||||
|
containers:
|
||||||
|
- name: ntfy-command-send
|
||||||
|
env:
|
||||||
|
- name: OPERATION
|
||||||
|
value: "Restic prune on gdrive"
|
@ -1,2 +0,0 @@
|
|||||||
export RESTIC_REPOSITORY=rest:http://127.0.0.1:8000/kluster
|
|
||||||
export RESTIC_PASSWORD="2r,TE0.,U@gni3e%xr)_LC64"
|
|
@ -16,7 +16,7 @@
|
|||||||
"type": "Opaque"
|
"type": "Opaque"
|
||||||
},
|
},
|
||||||
"encryptedData": {
|
"encryptedData": {
|
||||||
"restic-password": "AgB5b+dgVUtVo5QPPFBYWuqNZd7vMSbTapVh7SIl1ogy+/WWpzDDSgsPvki2Qtxv11tljTQkhkhonil0aYcHgA/4LDEt9yuvB2SNpEkl+C2N5NO1Fn3sUtaDRVBT/eaUhEjXTlRN6XiYfDRgNwBVpH3AUwKHa3dqxCJ6fQazUEhn3Xymxpo/GZkScf5k+fhkBi2/YnzM9Kdl3C9r8Ekw1eg2Pan7KSkFRk1rkGuDJKdhsYBrmu632yU7x8no7rGAIzxYJpDYqJnXp6Y3nUTBMpwNibOszAwTdP+ShgnILSmi0izZrIzvvvwAjNu6hKrhPlcTx3ZA2NrClRYtXx1gqCgVmGRzonqLuzVnWzd2efWDHkb8S0QnYjN0aAeAvR6x77TdIm8b9WMhAqeheikXh9zrrB4GqLoSxpkgmRezJFBVQ01vZrjkpu+KHHfVZqKg+3ChfjdbS4CQoK7IgUSguAifOaHH6Kb81LsraKKCDEr5vynHKL6jsuvgOPSkgPtzxasQQGR7CDNHnvm1ekFTbDpQ2KyHl3Ep5LCqlB79RhuPytprePHxQJa3qxv/EEIL8zxV1qhAvKa55RQIV3pLqDbPrj9EbD7LAYMbmIsFg3nSbZZaZV55gATN4PX86EZCIaC5/WTXSNIEmyedpcyhSzCZvpQOVjWggtCzUDsgCBADmmFAtuqd/POXXNbgPprEOJXyCdLvbL9cp3lG01sw+gqq08RqPlhKn5Q="
|
"restic-password": "AgApoTzU3zoGZPcDxXwtF8/ZsPlzZH+WvL2E3yImCwfJQm/mMp4cLWqupn6mJLIJhewduM/9EWI/Yfe194Y6oY1wFlZChADa17nZbaWrbSlVAe5pNnkWUs/oB8D11Hnbw6fom5TnVjDxejG7GuitIVyVbpjETDrS7tCE2zhR1Xt3CjlpcM6BOcfCA/GOySixWGhN8CQlx9ujiQkofFZdB7GomcNbBlwo1SOc61un7casWPfGUEORObIQGqAc7APcUovpY/66iJ0IzZG9y+LNnnKgp2Vr91Oek2/S02S5HU+L5J6UO1KtAcCJGL4N0fhoHgstUqvycV4Aup24J3qnruzz1D83doghuHJEWx52wlMGiTNyK4ZCqaA19d6dFgpVNKiR/g0Qd/hx65/K4+U0nqm0GXCMmjUi3E0rx5u3KI2hUTwiffAPcfRZR7YBgFLAB1Gm+vanh23Qp2kdEojM63I/E35XD5ibr+HiEP6zFLgZw8KI4uJMxvCRiDFlYyQ3dXqTsi8sg7AzMwTtLsTAAmTCZdoD54SYYeLJ6nVW6FPznGF6CmMG/2ZpApZS8hsBsPclf3yipxON30dFmrDXDax9OSBPseucpZsJN2Vjikpuv5Lst2b+vL7/Bq/cfho58zFRHyc42G4xe5N+Evzv6jb/MaFWKmV5mBkMYdLZ0ANgFjrTXhI0T9zZTcgj4ohmHg7Z8v+1DgOgvAI6jo/kQSp4zJi69Q=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: aio
|
|
||||||
namespace: aio
|
|
||||||
labels:
|
|
||||||
app: aio
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: aio
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: aio
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: aio
|
|
||||||
image: mollre/aio:latest
|
|
||||||
tty: true
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /keys/
|
|
||||||
name: aio-nfs
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: "250Mi"
|
|
||||||
cpu: 0.5
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: aio-nfs
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: aio-nfs
|
|
@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: aio
|
|
||||||
name: "aio-nfs"
|
|
||||||
labels:
|
|
||||||
directory: "aio"
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "100Mi"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /aio
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: aio
|
|
||||||
name: "aio-nfs"
|
|
||||||
spec:
|
|
||||||
storageClassName: "fast"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "100Mi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: "aio"
|
|
@ -1,114 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: anki
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: anki
|
|
||||||
namespace: anki
|
|
||||||
labels:
|
|
||||||
app: anki
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: anki
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: anki
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: anki-server
|
|
||||||
image: ankicommunity/anki-sync-server:20220516
|
|
||||||
tty: true
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /app/data
|
|
||||||
name: anki-data-nfs
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: "250Mi"
|
|
||||||
cpu: 0.5
|
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/arch: amd64
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: anki-data-nfs
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: anki-data-nfs
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: anki-http
|
|
||||||
namespace: anki
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: anki
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 27701
|
|
||||||
targetPort: 27701
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: anki
|
|
||||||
name: "anki-data-nfs"
|
|
||||||
labels:
|
|
||||||
directory: "anki"
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "100Mi"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /anki
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: anki
|
|
||||||
name: "anki-data-nfs"
|
|
||||||
spec:
|
|
||||||
storageClassName: "fast"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "100Mi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: "anki"
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: anki-ingress
|
|
||||||
namespace: anki
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`anki.kluster.moll.re`)
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: anki-http
|
|
||||||
port: 27701
|
|
||||||
tls:
|
|
||||||
certResolver: default-tls
|
|
||||||
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
|||||||
#
|
|
||||||
# IMPORTANT NOTE
|
|
||||||
#
|
|
||||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
|
||||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
|
||||||
#
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- image repository
|
|
||||||
repository: anonaddy/anonaddy
|
|
||||||
# -- image tag
|
|
||||||
tag: 0.11.2
|
|
||||||
# -- image pull policy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
|
|
||||||
# -- environment variables. See more environment variables in the [anonaddy documentation](https://github.com/anonaddy/docker#environment-variables).
|
|
||||||
# @default -- See below
|
|
||||||
env:
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
# -- Application key for encrypter service
|
|
||||||
# You can generate one through `anonaddy key:generate --show` or `echo "base64:$(openssl rand -base64 32)"`
|
|
||||||
APP_KEY:
|
|
||||||
# -- Root domain to receive email from
|
|
||||||
ANONADDY_DOMAIN: anonaddy.kluster.moll.re
|
|
||||||
# -- Long random string used when hashing data for the anonymous replies
|
|
||||||
ANONADDY_SECRET:
|
|
||||||
|
|
||||||
# -- Configures service settings for the chart.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 8000
|
|
||||||
smtp:
|
|
||||||
enabled: true
|
|
||||||
port: 25
|
|
||||||
type: LoadBalancer
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
# -- Enable and configure ingress settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
main:
|
|
||||||
enabled: true
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
hosts:
|
|
||||||
- host: anonaddy.kluster.moll.re
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
service:
|
|
||||||
port: 8000
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- anonaddy.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
|
|
||||||
# -- Configure persistence settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
persistence:
|
|
||||||
config:
|
|
||||||
enabled: false
|
|
||||||
emptydir:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# https://github.com/bitnami/charts/tree/master/bitnami/mariadb/#installing-the-chart
|
|
||||||
mariadb:
|
|
||||||
enabled: true
|
|
||||||
image:
|
|
||||||
name: arm64v8/mariadb:latest
|
|
||||||
pullSecrets: []
|
|
||||||
# primary:
|
|
||||||
# persistence:
|
|
||||||
# enabled: true
|
|
||||||
# auth:
|
|
||||||
# username: "username"
|
|
||||||
# password: "password"
|
|
||||||
# database: database
|
|
||||||
|
|
||||||
# -- Enable and configure redis subchart under this key.
|
|
||||||
# For more options see [redis chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/redis)
|
|
||||||
# @default -- See values.yaml
|
|
||||||
redis:
|
|
||||||
enabled: false
|
|
||||||
# auth:
|
|
||||||
# enabled: false
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: archive
|
|
||||||
labels:
|
|
||||||
app: archive
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: archive
|
|
||||||
name: archive-data-nfs
|
|
||||||
labels:
|
|
||||||
directory: archive
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "100Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /helbing_archive
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: archive
|
|
||||||
name: archive-data-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "100Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: archive
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: archive
|
|
||||||
namespace: archive
|
|
||||||
labels:
|
|
||||||
app: archive
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: archive
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: archive
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: archive
|
|
||||||
image: archivebox/archivebox
|
|
||||||
tty: true
|
|
||||||
ports:
|
|
||||||
- containerPort: 8000
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: archive-data
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: archive-data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: archive-data-nfs
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: archive
|
|
||||||
namespace: archive
|
|
||||||
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8000
|
|
||||||
selector:
|
|
||||||
app: archive
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: archive
|
|
||||||
name: archive-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- archive.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: archive.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: archive
|
|
||||||
port:
|
|
||||||
number: 8000
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: authelia
|
|
||||||
name: authelia-config-nfs
|
|
||||||
labels:
|
|
||||||
directory: authelia
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "1Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /authelia
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: authelia
|
|
||||||
name: authelia-config-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "1Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: authelia
|
|
File diff suppressed because it is too large
Load Diff
@ -1,34 +0,0 @@
|
|||||||
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: authentik-ingress
|
|
||||||
namespace: authentik
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`authentik.kluster.moll.re`)
|
|
||||||
kind: Rule
|
|
||||||
middlewares:
|
|
||||||
- name: authentik-websocket
|
|
||||||
services:
|
|
||||||
- name: authentik
|
|
||||||
port: 80
|
|
||||||
tls:
|
|
||||||
certResolver: default-tls
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: Middleware
|
|
||||||
metadata:
|
|
||||||
name: authentik-websocket
|
|
||||||
namespace: authentik
|
|
||||||
spec:
|
|
||||||
headers:
|
|
||||||
customRequestHeaders:
|
|
||||||
X-Forwarded-Proto: "https"
|
|
||||||
Upgrade: "websocket"
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: authentik
|
|
||||||
name: authentik-postgres-nfs
|
|
||||||
labels:
|
|
||||||
directory: authentik
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
capacity:
|
|
||||||
storage: "5Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /export/kluster/authentik
|
|
||||||
server: 192.168.1.157
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: authentik
|
|
||||||
name: authentik-postgres-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "5Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: authentik
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,172 +0,0 @@
|
|||||||
# -- Server replicas
|
|
||||||
replicas: 1
|
|
||||||
# -- Custom priority class for different treatment by the scheduler
|
|
||||||
priorityClassName:
|
|
||||||
# -- server securityContext
|
|
||||||
securityContext: {}
|
|
||||||
|
|
||||||
worker:
|
|
||||||
# -- worker replicas
|
|
||||||
replicas: 1
|
|
||||||
# -- Custom priority class for different treatment by the scheduler
|
|
||||||
priorityClassName:
|
|
||||||
# -- worker securityContext
|
|
||||||
securityContext: {}
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: ghcr.io/goauthentik/server
|
|
||||||
tag: 2023.4.1
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
pullSecrets: []
|
|
||||||
|
|
||||||
# -- See https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#values
|
|
||||||
initContainers: {}
|
|
||||||
|
|
||||||
# -- See https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#values
|
|
||||||
additionalContainers: {}
|
|
||||||
|
|
||||||
authentik:
|
|
||||||
# -- Log level for server and worker
|
|
||||||
log_level: info
|
|
||||||
# -- Secret key used for cookie singing and unique user IDs,
|
|
||||||
# don't change this after the first install
|
|
||||||
secret_key: "K9F5uNx1gzsk3q5tnjwFabBYgjBJcAv0qM135QRgzL81hRg4"
|
|
||||||
# -- Path for the geoip database. If the file doesn't exist, GeoIP features are disabled.
|
|
||||||
geoip: /geoip/GeoLite2-City.mmdb
|
|
||||||
# -- Mode for the avatars. Defaults to gravatar. Possible options 'gravatar' and 'none'
|
|
||||||
avatars: gravatar
|
|
||||||
|
|
||||||
outposts:
|
|
||||||
# -- Template used for managed outposts. The following placeholders can be used
|
|
||||||
# %(type)s - the type of the outpost
|
|
||||||
# %(version)s - version of your authentik install
|
|
||||||
# %(build_hash)s - only for beta versions, the build hash of the image
|
|
||||||
container_image_base: ghcr.io/goauthentik/%(type)s:%(version)s
|
|
||||||
error_reporting:
|
|
||||||
# -- This sends anonymous usage-data, stack traces on errors and
|
|
||||||
# performance data to sentry.beryju.org, and is fully opt-in
|
|
||||||
enabled: false
|
|
||||||
# -- This is a string that is sent to sentry with your error reports
|
|
||||||
environment: "k8s"
|
|
||||||
# -- Send PII (Personally identifiable information) data to sentry
|
|
||||||
send_pii: false
|
|
||||||
|
|
||||||
|
|
||||||
postgresql:
|
|
||||||
# -- set the postgresql hostname to talk to
|
|
||||||
# if unset and .Values.postgresql.enabled == true, will generate the default
|
|
||||||
# @default -- `{{ .Release.Name }}-postgresql`
|
|
||||||
host: 'postgres-postgresql.postgres'
|
|
||||||
# -- postgresql Database name
|
|
||||||
# @default -- `authentik`
|
|
||||||
name: "authentik"
|
|
||||||
# -- postgresql Username
|
|
||||||
# @default -- `authentik`
|
|
||||||
user: "authentik"
|
|
||||||
password: "authentik"
|
|
||||||
port: 5432
|
|
||||||
|
|
||||||
|
|
||||||
redis:
|
|
||||||
# -- set the redis hostname to talk to
|
|
||||||
# @default -- `{{ .Release.Name }}-redis-master`
|
|
||||||
host: '{{ .Release.Name }}-redis-master'
|
|
||||||
password: ""
|
|
||||||
|
|
||||||
# -- see configuration options at https://goauthentik.io/docs/installation/configuration/
|
|
||||||
env: {}
|
|
||||||
# AUTHENTIK_VAR_NAME: VALUE
|
|
||||||
|
|
||||||
envFrom: []
|
|
||||||
# - configMapRef:
|
|
||||||
# name: special-config
|
|
||||||
|
|
||||||
envValueFrom: {}
|
|
||||||
# AUTHENTIK_VAR_NAME:
|
|
||||||
# secretKeyRef:
|
|
||||||
# key: password
|
|
||||||
# name: my-secret
|
|
||||||
|
|
||||||
service:
|
|
||||||
# -- Service that is created to access authentik
|
|
||||||
enabled: true
|
|
||||||
type: ClusterIP
|
|
||||||
port: 80
|
|
||||||
name: http
|
|
||||||
protocol: TCP
|
|
||||||
labels: {}
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
volumes: []
|
|
||||||
|
|
||||||
volumeMounts: []
|
|
||||||
|
|
||||||
# -- affinity applied to the deployments
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- nodeSelector applied to the deployments
|
|
||||||
|
|
||||||
resources:
|
|
||||||
server: {}
|
|
||||||
worker: {}
|
|
||||||
|
|
||||||
# WARNING! When initially deploying, authentik has to do a few DB migrations. This may cause it to die from probe
|
|
||||||
# failure, but will continue on reboot. You can disable this during deployment if this is not desired
|
|
||||||
livenessProbe:
|
|
||||||
# -- enables or disables the livenessProbe
|
|
||||||
enabled: true
|
|
||||||
httpGet:
|
|
||||||
# -- liveness probe url path
|
|
||||||
path: /-/health/live/
|
|
||||||
port: http
|
|
||||||
initialDelaySeconds: 50
|
|
||||||
periodSeconds: 10
|
|
||||||
|
|
||||||
readinessProbe:
|
|
||||||
enabled: true
|
|
||||||
httpGet:
|
|
||||||
path: /-/health/ready/
|
|
||||||
port: http
|
|
||||||
initialDelaySeconds: 50
|
|
||||||
periodSeconds: 10
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
# -- Service account is needed for managed outposts
|
|
||||||
create: true
|
|
||||||
|
|
||||||
prometheus:
|
|
||||||
serviceMonitor:
|
|
||||||
create: false
|
|
||||||
interval: 30s
|
|
||||||
scrapeTimeout: 3s
|
|
||||||
rules:
|
|
||||||
create: false
|
|
||||||
|
|
||||||
geoip:
|
|
||||||
# -- optional GeoIP, deploys a cronjob to download the maxmind database
|
|
||||||
enabled: false
|
|
||||||
# -- sign up under https://www.maxmind.com/en/geolite2/signup
|
|
||||||
accountId: ""
|
|
||||||
# -- sign up under https://www.maxmind.com/en/geolite2/signup
|
|
||||||
licenseKey: ""
|
|
||||||
editionIds: "GeoLite2-City"
|
|
||||||
image: maxmindinc/geoipupdate:v4.8
|
|
||||||
# -- number of hours between update runs
|
|
||||||
updateInterval: 8
|
|
||||||
|
|
||||||
postgresql:
|
|
||||||
# -- enable the bundled bitnami postgresql chart
|
|
||||||
enabled: false
|
|
||||||
postgresqlUsername: "authentik"
|
|
||||||
postgresqlPassword: "authentik"
|
|
||||||
postgresqlDatabase: "authentik"
|
|
||||||
# persistence:
|
|
||||||
# enabled: true
|
|
||||||
# existingClaim: authentik-postgres-nfs
|
|
||||||
redis:
|
|
||||||
# -- enable the bundled bitnami redis chart
|
|
||||||
enabled: true
|
|
||||||
architecture: standalone
|
|
||||||
auth:
|
|
||||||
enabled: false
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: backup
|
|
||||||
name: backup-nfs-access
|
|
||||||
labels:
|
|
||||||
directory: backup
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadOnlyMany
|
|
||||||
capacity:
|
|
||||||
storage: "5M"
|
|
||||||
|
|
||||||
nfs:
|
|
||||||
path: /export/kluster
|
|
||||||
server: 192.168.1.157
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: backup
|
|
||||||
name: backup-nfs-access
|
|
||||||
spec:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "5M"
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadOnlyMany
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: backup
|
|
@ -1,64 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: restic-backblaze
|
|
||||||
|
|
||||||
spec:
|
|
||||||
schedule: "0 2 * * *"
|
|
||||||
# at 2:00, every tuesday and saturday
|
|
||||||
successfulJobsHistoryLimit: 2
|
|
||||||
failedJobsHistoryLimit: 2
|
|
||||||
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
# nodeSelector:
|
|
||||||
# kubernetes.io/arch: arm64
|
|
||||||
# TODO no arm64 nodes anymore
|
|
||||||
restartPolicy: Never
|
|
||||||
hostname: restic-k3s-pod
|
|
||||||
# used by restic to identify the host
|
|
||||||
containers:
|
|
||||||
- name: restic-base-container
|
|
||||||
image: restic/restic:latest
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
# >- strips newlines
|
|
||||||
# RESTIC_ARGS Can be for instance: --verbose --dry-run
|
|
||||||
args: []
|
|
||||||
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: backup-nfs-access
|
|
||||||
- mountPath: /credentials
|
|
||||||
name: restic-credentials
|
|
||||||
|
|
||||||
env:
|
|
||||||
- name: RESTIC_REPOSITORY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: restic-credentials
|
|
||||||
key: RESTIC_REPOSITORY
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: restic-credentials
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: restic-credentials
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
- name: RESTIC_PASSWORD_FILE
|
|
||||||
value: /credentials/restic-password
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: backup-nfs-access
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: backup-nfs-access
|
|
||||||
- name: restic-credentials
|
|
||||||
secret:
|
|
||||||
secretName: restic-credentials
|
|
||||||
optional: false
|
|
@ -1,5 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- ./cronjob.yaml
|
|
||||||
- ./restic-credentials.secret.yaml
|
|
@ -1,8 +0,0 @@
|
|||||||
```
|
|
||||||
k kustomize backup/overlays/backup | k apply -f -
|
|
||||||
> secret/restic-credentials-backup created
|
|
||||||
> cronjob.batch/restic-backblaze-backup created
|
|
||||||
k kustomize backup/overlays/prune | k apply -f -
|
|
||||||
> secret/restic-credentials-prune created
|
|
||||||
> cronjob.batch/restic-backblaze-prune created
|
|
||||||
```
|
|
@ -1,16 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: backup
|
|
||||||
nameSuffix: -backup
|
|
||||||
resources:
|
|
||||||
- ../../base
|
|
||||||
# - ./restic-commands.yaml
|
|
||||||
|
|
||||||
|
|
||||||
# patch the cronjob args field:
|
|
||||||
patches:
|
|
||||||
- path: ./restic-commands.yaml
|
|
||||||
target:
|
|
||||||
kind: CronJob
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: backup-patch
|
|
||||||
spec:
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: restic-base-container
|
|
||||||
args:
|
|
||||||
# >- strips newlines
|
|
||||||
# RESTIC_ARGS Can be for instance: --verbose --dry-run
|
|
||||||
# restic_reository is set in the secret
|
|
||||||
- >-
|
|
||||||
restic backup
|
|
||||||
-r $(RESTIC_REPOSITORY)
|
|
||||||
--verbose=2
|
|
||||||
/data
|
|
||||||
--exclude=s3/
|
|
||||||
# &&
|
|
||||||
# restic
|
|
||||||
# -r $(RESTIC_REPOSITORY)
|
|
||||||
# list snapshots
|
|
||||||
# Add command to copy existing backups to here!
|
|
@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: backup
|
|
||||||
nameSuffix: -prune
|
|
||||||
resources:
|
|
||||||
- ../../base
|
|
||||||
# - ./restic-commands.yaml
|
|
||||||
|
|
||||||
|
|
||||||
# patch the cronjob args field:
|
|
||||||
patches:
|
|
||||||
- path: ./restic-commands.yaml
|
|
||||||
target:
|
|
||||||
kind: CronJob
|
|
@ -1,23 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: prune-patch
|
|
||||||
spec:
|
|
||||||
schedule: "0 0 1/15 * *"
|
|
||||||
# at midnight, the first and 15. of every month
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: restic-base-container
|
|
||||||
args:
|
|
||||||
# >- strips newlines
|
|
||||||
# RESTIC_ARGS Can be for instance: --verbose --dry-run
|
|
||||||
# RESTIC_REPOSITORY is set in the secret
|
|
||||||
- >-
|
|
||||||
restic forget
|
|
||||||
-r $(RESTIC_REPOSITORY)
|
|
||||||
--verbose=2
|
|
||||||
--keep-daily 7 --keep-weekly 5
|
|
||||||
--prune
|
|
@ -1,54 +0,0 @@
|
|||||||
# apiVersion: v1
|
|
||||||
# kind: Secret
|
|
||||||
# metadata:
|
|
||||||
# name: cloudflare-api-token-secret
|
|
||||||
# namespace: cert-manager
|
|
||||||
# type: Opaque
|
|
||||||
# stringData:
|
|
||||||
# api-token:
|
|
||||||
|
|
||||||
|
|
||||||
# ---
|
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: ClusterIssuer
|
|
||||||
metadata:
|
|
||||||
name: cloudflare-letsencrypt-staging
|
|
||||||
spec:
|
|
||||||
acme:
|
|
||||||
email: me@moll.re
|
|
||||||
server: https://acme-staging-v02.api.letsencrypt.org/directory
|
|
||||||
privateKeySecretRef:
|
|
||||||
# Secret resource that will be used to store the account's private key.
|
|
||||||
name: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
solvers:
|
|
||||||
- dns01:
|
|
||||||
cloudflare:
|
|
||||||
email: mollator2@gmail.com
|
|
||||||
apiTokenSecretRef:
|
|
||||||
# Name of the secret created on the other resource
|
|
||||||
name: cloudflare-api-token-secret
|
|
||||||
key: api-token
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: ClusterIssuer
|
|
||||||
metadata:
|
|
||||||
name: cloudflare-letsencrypt-prod
|
|
||||||
spec:
|
|
||||||
acme:
|
|
||||||
email: me@moll.re
|
|
||||||
server: https://acme-v02.api.letsencrypt.org/directory
|
|
||||||
privateKeySecretRef:
|
|
||||||
# Secret resource that will be used to store the account's private key.
|
|
||||||
name: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
solvers:
|
|
||||||
- dns01:
|
|
||||||
cloudflare:
|
|
||||||
email: mollator2@gmail.com
|
|
||||||
apiTokenSecretRef:
|
|
||||||
# Name of the secret created on the other resource
|
|
||||||
name: cloudflare-api-token-secret
|
|
||||||
key: api-token
|
|
||||||
|
|
@ -1,494 +0,0 @@
|
|||||||
# Default values for cert-manager.
|
|
||||||
# This is a YAML-formatted file.
|
|
||||||
# Declare variables to be passed into your templates.
|
|
||||||
global:
|
|
||||||
## Reference to one or more secrets to be used when pulling images
|
|
||||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
||||||
##
|
|
||||||
imagePullSecrets: []
|
|
||||||
# - name: "image-pull-secret"
|
|
||||||
|
|
||||||
# Optional priority class to be used for the cert-manager pods
|
|
||||||
priorityClassName: ""
|
|
||||||
rbac:
|
|
||||||
create: true
|
|
||||||
|
|
||||||
podSecurityPolicy:
|
|
||||||
enabled: false
|
|
||||||
useAppArmor: true
|
|
||||||
|
|
||||||
# Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose.
|
|
||||||
logLevel: 2
|
|
||||||
|
|
||||||
leaderElection:
|
|
||||||
# Override the namespace used to store the ConfigMap for leader election
|
|
||||||
namespace: "kube-system"
|
|
||||||
|
|
||||||
# The duration that non-leader candidates will wait after observing a
|
|
||||||
# leadership renewal until attempting to acquire leadership of a led but
|
|
||||||
# unrenewed leader slot. This is effectively the maximum duration that a
|
|
||||||
# leader can be stopped before it is replaced by another candidate.
|
|
||||||
# leaseDuration: 60s
|
|
||||||
|
|
||||||
# The interval between attempts by the acting master to renew a leadership
|
|
||||||
# slot before it stops leading. This must be less than or equal to the
|
|
||||||
# lease duration.
|
|
||||||
# renewDeadline: 40s
|
|
||||||
|
|
||||||
# The duration the clients should wait between attempting acquisition and
|
|
||||||
# renewal of a leadership.
|
|
||||||
# retryPeriod: 15s
|
|
||||||
|
|
||||||
installCRDs: false
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
strategy: {}
|
|
||||||
# type: RollingUpdate
|
|
||||||
# rollingUpdate:
|
|
||||||
# maxSurge: 0
|
|
||||||
# maxUnavailable: 1
|
|
||||||
|
|
||||||
# Comma separated list of feature gates that should be enabled on the
|
|
||||||
# controller pod.
|
|
||||||
featureGates: ""
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: quay.io/jetstack/cert-manager-controller
|
|
||||||
# You can manage a registry with
|
|
||||||
# registry: quay.io
|
|
||||||
# repository: jetstack/cert-manager-controller
|
|
||||||
|
|
||||||
# Override the image tag to deploy by setting this variable.
|
|
||||||
# If no value is set, the chart's appVersion will be used.
|
|
||||||
# tag: canary
|
|
||||||
|
|
||||||
# Setting a digest will override any tag
|
|
||||||
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
# Override the namespace used to store DNS provider credentials etc. for ClusterIssuer
|
|
||||||
# resources. By default, the same namespace as cert-manager is deployed within is
|
|
||||||
# used. This namespace will not be automatically created by the Helm chart.
|
|
||||||
clusterResourceNamespace: ""
|
|
||||||
|
|
||||||
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: ""
|
|
||||||
# Optional additional annotations to add to the controller's ServiceAccount
|
|
||||||
# annotations: {}
|
|
||||||
# Automount API credentials for a Service Account.
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
|
|
||||||
# Optional additional arguments
|
|
||||||
extraArgs: []
|
|
||||||
# Use this flag to set a namespace that cert-manager will use to store
|
|
||||||
# supporting resources required for each ClusterIssuer (default is kube-system)
|
|
||||||
# - --cluster-resource-namespace=kube-system
|
|
||||||
# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted
|
|
||||||
# - --enable-certificate-owner-ref=true
|
|
||||||
# Use this flag to enabled or disable arbitrary controllers, for example, disable the CertificiateRequests approver
|
|
||||||
# - --controllers=*,-certificaterequests-approver
|
|
||||||
|
|
||||||
extraEnv: []
|
|
||||||
# - name: SOME_VAR
|
|
||||||
# value: 'some value'
|
|
||||||
|
|
||||||
resources: {}
|
|
||||||
# requests:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 32Mi
|
|
||||||
|
|
||||||
# Pod Security Context
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
# legacy securityContext parameter format: if enabled is set to true, only fsGroup and runAsUser are supported
|
|
||||||
# securityContext:
|
|
||||||
# enabled: false
|
|
||||||
# fsGroup: 1001
|
|
||||||
# runAsUser: 1001
|
|
||||||
# to support additional securityContext parameters, omit the `enabled` parameter and simply specify the parameters
|
|
||||||
# you want to set, e.g.
|
|
||||||
# securityContext:
|
|
||||||
# fsGroup: 1000
|
|
||||||
# runAsUser: 1000
|
|
||||||
# runAsNonRoot: true
|
|
||||||
|
|
||||||
# Container Security Context to be set on the controller component container
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
containerSecurityContext: {}
|
|
||||||
# capabilities:
|
|
||||||
# drop:
|
|
||||||
# - ALL
|
|
||||||
# readOnlyRootFilesystem: true
|
|
||||||
# runAsNonRoot: true
|
|
||||||
|
|
||||||
|
|
||||||
volumes: []
|
|
||||||
|
|
||||||
volumeMounts: []
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the controller Deployment
|
|
||||||
# deploymentAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the controller Pods
|
|
||||||
# podAnnotations: {}
|
|
||||||
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
# Optional additional labels to add to the controller Service
|
|
||||||
# serviceLabels: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the controller service
|
|
||||||
# serviceAnnotations: {}
|
|
||||||
|
|
||||||
# Optional DNS settings, useful if you have a public and private DNS zone for
|
|
||||||
# the same domain on Route 53. What follows is an example of ensuring
|
|
||||||
# cert-manager can access an ingress or DNS TXT records at all times.
|
|
||||||
# NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
|
|
||||||
# the cluster to work.
|
|
||||||
# podDnsPolicy: "None"
|
|
||||||
# podDnsConfig:
|
|
||||||
# nameservers:
|
|
||||||
# - "1.1.1.1"
|
|
||||||
# - "8.8.8.8"
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
ingressShim: {}
|
|
||||||
# defaultIssuerName: ""
|
|
||||||
# defaultIssuerKind: ""
|
|
||||||
# defaultIssuerGroup: ""
|
|
||||||
|
|
||||||
prometheus:
|
|
||||||
enabled: true
|
|
||||||
servicemonitor:
|
|
||||||
enabled: false
|
|
||||||
prometheusInstance: default
|
|
||||||
targetPort: 9402
|
|
||||||
path: /metrics
|
|
||||||
interval: 60s
|
|
||||||
scrapeTimeout: 30s
|
|
||||||
labels: {}
|
|
||||||
|
|
||||||
# Use these variables to configure the HTTP_PROXY environment variables
|
|
||||||
# http_proxy: "http://proxy:8080"
|
|
||||||
# https_proxy: "https://proxy:8080"
|
|
||||||
# no_proxy: 127.0.0.1,localhost
|
|
||||||
|
|
||||||
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
|
|
||||||
# for example:
|
|
||||||
# affinity:
|
|
||||||
# nodeAffinity:
|
|
||||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
# nodeSelectorTerms:
|
|
||||||
# - matchExpressions:
|
|
||||||
# - key: foo.bar.com/role
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - master
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
|
|
||||||
# for example:
|
|
||||||
# tolerations:
|
|
||||||
# - key: foo.bar.com/role
|
|
||||||
# operator: Equal
|
|
||||||
# value: master
|
|
||||||
# effect: NoSchedule
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
webhook:
|
|
||||||
replicaCount: 1
|
|
||||||
timeoutSeconds: 10
|
|
||||||
|
|
||||||
strategy: {}
|
|
||||||
# type: RollingUpdate
|
|
||||||
# rollingUpdate:
|
|
||||||
# maxSurge: 0
|
|
||||||
# maxUnavailable: 1
|
|
||||||
|
|
||||||
# Pod Security Context to be set on the webhook component Pod
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
|
|
||||||
# Container Security Context to be set on the webhook component container
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
containerSecurityContext: {}
|
|
||||||
# capabilities:
|
|
||||||
# drop:
|
|
||||||
# - ALL
|
|
||||||
# readOnlyRootFilesystem: true
|
|
||||||
# runAsNonRoot: true
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the webhook Deployment
|
|
||||||
# deploymentAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the webhook Pods
|
|
||||||
# podAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the webhook MutatingWebhookConfiguration
|
|
||||||
# mutatingWebhookConfigurationAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the webhook ValidatingWebhookConfiguration
|
|
||||||
# validatingWebhookConfigurationAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the webhook service
|
|
||||||
# serviceAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional arguments for webhook
|
|
||||||
extraArgs: []
|
|
||||||
|
|
||||||
resources: {}
|
|
||||||
# requests:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 32Mi
|
|
||||||
|
|
||||||
## Liveness and readiness probe values
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
|
||||||
##
|
|
||||||
livenessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 1
|
|
||||||
readinessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 5
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 1
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
# Optional additional labels to add to the Webhook Pods
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
# Optional additional labels to add to the Webhook Service
|
|
||||||
serviceLabels: {}
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: quay.io/jetstack/cert-manager-webhook
|
|
||||||
# You can manage a registry with
|
|
||||||
# registry: quay.io
|
|
||||||
# repository: jetstack/cert-manager-webhook
|
|
||||||
|
|
||||||
# Override the image tag to deploy by setting this variable.
|
|
||||||
# If no value is set, the chart's appVersion will be used.
|
|
||||||
# tag: canary
|
|
||||||
|
|
||||||
# Setting a digest will override any tag
|
|
||||||
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
|
|
||||||
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
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: ""
|
|
||||||
# Optional additional annotations to add to the controller's ServiceAccount
|
|
||||||
# annotations: {}
|
|
||||||
# Automount API credentials for a Service Account.
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
|
|
||||||
# The port that the webhook should listen on for requests.
|
|
||||||
# In GKE private clusters, by default kubernetes apiservers are allowed to
|
|
||||||
# talk to the cluster nodes only on 443 and 10250. so configuring
|
|
||||||
# securePort: 10250, will work out of the box without needing to add firewall
|
|
||||||
# rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000
|
|
||||||
securePort: 10250
|
|
||||||
|
|
||||||
# Specifies if the webhook should be started in hostNetwork mode.
|
|
||||||
#
|
|
||||||
# Required for use in some managed kubernetes clusters (such as AWS EKS) with custom
|
|
||||||
# CNI (such as calico), because control-plane managed by AWS cannot communicate
|
|
||||||
# with pods' IP CIDR and admission webhooks are not working
|
|
||||||
#
|
|
||||||
# Since the default port for the webhook conflicts with kubelet on the host
|
|
||||||
# network, `webhook.securePort` should be changed to an available port if
|
|
||||||
# running in hostNetwork mode.
|
|
||||||
hostNetwork: false
|
|
||||||
|
|
||||||
# Specifies how the service should be handled. Useful if you want to expose the
|
|
||||||
# webhook to outside of the cluster. In some cases, the control plane cannot
|
|
||||||
# reach internal services.
|
|
||||||
serviceType: ClusterIP
|
|
||||||
# loadBalancerIP:
|
|
||||||
|
|
||||||
# Overrides the mutating webhook and validating webhook so they reach the webhook
|
|
||||||
# service using the `url` field instead of a service.
|
|
||||||
url: {}
|
|
||||||
# host:
|
|
||||||
|
|
||||||
cainjector:
|
|
||||||
enabled: true
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
strategy: {}
|
|
||||||
# type: RollingUpdate
|
|
||||||
# rollingUpdate:
|
|
||||||
# maxSurge: 0
|
|
||||||
# maxUnavailable: 1
|
|
||||||
|
|
||||||
# Pod Security Context to be set on the cainjector component Pod
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
|
|
||||||
# Container Security Context to be set on the cainjector component container
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
containerSecurityContext: {}
|
|
||||||
# capabilities:
|
|
||||||
# drop:
|
|
||||||
# - ALL
|
|
||||||
# readOnlyRootFilesystem: true
|
|
||||||
# runAsNonRoot: true
|
|
||||||
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the cainjector Deployment
|
|
||||||
# deploymentAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the cainjector Pods
|
|
||||||
# podAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional arguments for cainjector
|
|
||||||
extraArgs: []
|
|
||||||
|
|
||||||
resources: {}
|
|
||||||
# requests:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 32Mi
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
# Optional additional labels to add to the CA Injector Pods
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: quay.io/jetstack/cert-manager-cainjector
|
|
||||||
# You can manage a registry with
|
|
||||||
# registry: quay.io
|
|
||||||
# repository: jetstack/cert-manager-cainjector
|
|
||||||
|
|
||||||
# Override the image tag to deploy by setting this variable.
|
|
||||||
# If no value is set, the chart's appVersion will be used.
|
|
||||||
# tag: canary
|
|
||||||
|
|
||||||
# Setting a digest will override any tag
|
|
||||||
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
|
|
||||||
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
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: ""
|
|
||||||
# Optional additional annotations to add to the controller's ServiceAccount
|
|
||||||
# annotations: {}
|
|
||||||
# Automount API credentials for a Service Account.
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
|
|
||||||
# This startupapicheck is a Helm post-install hook that waits for the webhook
|
|
||||||
# endpoints to become available.
|
|
||||||
# The check is implemented using a Kubernetes Job- if you are injecting mesh
|
|
||||||
# sidecar proxies into cert-manager pods, you probably want to ensure that they
|
|
||||||
# are not injected into this Job's pod. Otherwise the installation may time out
|
|
||||||
# due to the Job never being completed because the sidecar proxy does not exit.
|
|
||||||
# See https://github.com/jetstack/cert-manager/pull/4414 for context.
|
|
||||||
startupapicheck:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# Pod Security Context to be set on the startupapicheck component Pod
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
|
|
||||||
# Timeout for 'kubectl check api' command
|
|
||||||
timeout: 1m
|
|
||||||
|
|
||||||
# Job backoffLimit
|
|
||||||
backoffLimit: 4
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the startupapicheck Job
|
|
||||||
jobAnnotations:
|
|
||||||
helm.sh/hook: post-install
|
|
||||||
helm.sh/hook-weight: "1"
|
|
||||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the startupapicheck Pods
|
|
||||||
# podAnnotations: {}
|
|
||||||
|
|
||||||
# Optional additional arguments for startupapicheck
|
|
||||||
extraArgs: []
|
|
||||||
|
|
||||||
resources: {}
|
|
||||||
# requests:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 32Mi
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
# Optional additional labels to add to the startupapicheck Pods
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: quay.io/jetstack/cert-manager-ctl
|
|
||||||
# You can manage a registry with
|
|
||||||
# registry: quay.io
|
|
||||||
# repository: jetstack/cert-manager-ctl
|
|
||||||
|
|
||||||
# Override the image tag to deploy by setting this variable.
|
|
||||||
# If no value is set, the chart's appVersion will be used.
|
|
||||||
# tag: canary
|
|
||||||
|
|
||||||
# Setting a digest will override any tag
|
|
||||||
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
|
|
||||||
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
rbac:
|
|
||||||
# annotations for the startup API Check job RBAC and PSP resources
|
|
||||||
annotations:
|
|
||||||
helm.sh/hook: post-install
|
|
||||||
helm.sh/hook-weight: "-5"
|
|
||||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
|
||||||
|
|
||||||
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: ""
|
|
||||||
|
|
||||||
# Optional additional annotations to add to the Job's ServiceAccount
|
|
||||||
annotations:
|
|
||||||
helm.sh/hook: post-install
|
|
||||||
helm.sh/hook-weight: "-5"
|
|
||||||
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
|
||||||
|
|
||||||
# Automount API credentials for a Service Account.
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: crowdsec
|
|
||||||
name: crowdsec-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- crowdsec.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: crowdsec.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: crowdsec-service
|
|
||||||
port:
|
|
||||||
number: 3000
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,30 +0,0 @@
|
|||||||
controller:
|
|
||||||
extraVolumes:
|
|
||||||
- name: crowdsec-bouncer-plugin
|
|
||||||
emptyDir: {}
|
|
||||||
extraInitContainers:
|
|
||||||
- name: init-clone-crowdsec-bouncer
|
|
||||||
image: crowdsecurity/lua-bouncer-plugin
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
env:
|
|
||||||
- name: API_URL
|
|
||||||
value: "http://crowdsec-service.crowdsec.svc.cluster.local:8080" # crowdsec lapi service-name
|
|
||||||
- name: API_KEY
|
|
||||||
value: "6cc4c975f123f4f24174e2d544e81282" # generated with `cscli bouncers add -n <bouncer_name>
|
|
||||||
- name: BOUNCER_CONFIG
|
|
||||||
value: "/crowdsec/crowdsec-bouncer.conf"
|
|
||||||
- name: BAN_TEMPLATE_PATH
|
|
||||||
value: /etc/nginx/lua/plugins/crowdsec/templates/ban.html
|
|
||||||
- name: CAPTCHA_TEMPLATE_PATH
|
|
||||||
value: /etc/nginx/lua/plugins/crowdsec/templates/captcha.html
|
|
||||||
command: ['sh', '-c', "sh /docker_start.sh; mkdir -p /lua_plugins/crowdsec/; cp -R /crowdsec/* /lua_plugins/crowdsec/"]
|
|
||||||
volumeMounts:
|
|
||||||
- name: crowdsec-bouncer-plugin
|
|
||||||
mountPath: /lua_plugins
|
|
||||||
extraVolumeMounts:
|
|
||||||
- name: crowdsec-bouncer-plugin
|
|
||||||
mountPath: /etc/nginx/lua/plugins/crowdsec
|
|
||||||
subPath: crowdsec
|
|
||||||
config:
|
|
||||||
plugins: "crowdsec"
|
|
||||||
lua-shared-dicts: "crowdsec_cache: 50m"
|
|
@ -1,178 +0,0 @@
|
|||||||
# Default values for crowdsec-chart.
|
|
||||||
# This is a YAML-formatted file.
|
|
||||||
# Declare variables to be passed into your templates.
|
|
||||||
|
|
||||||
# -- for raw logs format: json or cri (docker|containerd)
|
|
||||||
container_runtime: containerd
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- docker image repository name
|
|
||||||
repository: crowdsecurity/crowdsec
|
|
||||||
# -- pullPolicy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- docker image tag
|
|
||||||
tag: ""
|
|
||||||
|
|
||||||
# If you want to specify secrets that will be used for all your crowdsec-agents
|
|
||||||
# secrets can be provided be env variables
|
|
||||||
secrets:
|
|
||||||
# -- agent username (default is generated randomly)
|
|
||||||
username: ""
|
|
||||||
# -- agent password (default is generated randomly)
|
|
||||||
password: ""
|
|
||||||
|
|
||||||
# lapi will deploy pod with crowdsec lapi and dashboard as deployment
|
|
||||||
lapi:
|
|
||||||
# -- environment variables from crowdsecurity/crowdsec docker image
|
|
||||||
env: []
|
|
||||||
# by default disable the agent because it only the local API.
|
|
||||||
#- name: DISABLE_AGENT
|
|
||||||
# value: "true"
|
|
||||||
dashboard:
|
|
||||||
# -- Enable Metabase Dashboard (by default disabled)
|
|
||||||
enabled: true
|
|
||||||
image:
|
|
||||||
# -- docker image repository name
|
|
||||||
repository: loancrate/metabase
|
|
||||||
# -- pullPolicy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- docker image tag
|
|
||||||
tag: "latest"
|
|
||||||
# -- Metabase SQLite static DB containing Dashboards
|
|
||||||
assetURL: https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/metabase_sqlite.zip
|
|
||||||
|
|
||||||
# -- Enable ingress object
|
|
||||||
ingress:
|
|
||||||
enabled: false
|
|
||||||
annotations:
|
|
||||||
# metabase only supports http so we need this annotation
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
|
||||||
# labels: {}
|
|
||||||
ingressClassName: "nginx"
|
|
||||||
host: "" # metabase.example.com
|
|
||||||
# tls: {}
|
|
||||||
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 100Mi
|
|
||||||
requests:
|
|
||||||
cpu: 150m
|
|
||||||
memory: 100Mi
|
|
||||||
# -- Enable persistent volumes
|
|
||||||
persistentVolume:
|
|
||||||
# -- Persistent volume for data folder. Stores e.g. registered bouncer api keys
|
|
||||||
data:
|
|
||||||
enabled: true
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: ""
|
|
||||||
size: 1Gi
|
|
||||||
# -- Persistent volume for config folder. Stores e.g. online api credentials
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: ""
|
|
||||||
size: 100Mi
|
|
||||||
|
|
||||||
# -- nodeSelector for lapi
|
|
||||||
nodeSelector: {}
|
|
||||||
# -- tolerations for lapi
|
|
||||||
tolerations: {}
|
|
||||||
|
|
||||||
# -- Enable service monitoring (exposes "metrics" port "6060" for Prometheus)
|
|
||||||
metrics:
|
|
||||||
enabled: false
|
|
||||||
# -- Creates a ServiceMonitor so Prometheus will monitor this service
|
|
||||||
# -- Prometheus needs to be configured to watch on all namespaces for ServiceMonitors
|
|
||||||
# -- See the documentation: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#prometheusioscrape
|
|
||||||
# -- See also: https://github.com/prometheus-community/helm-charts/issues/106#issuecomment-700847774
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
type: RollingUpdate
|
|
||||||
|
|
||||||
# agent will deploy pod on every node as daemonSet to read wanted pods logs
|
|
||||||
agent:
|
|
||||||
acquisition:
|
|
||||||
# -- Specify each pod you want to process it logs (namespace, podName and program)
|
|
||||||
- namespace: kube-system
|
|
||||||
# -- to select pod logs to process
|
|
||||||
podName: nginx-nginx-ingress-*
|
|
||||||
# -- program name related to specific parser you will use (see https://hub.crowdsec.net/author/crowdsecurity/configurations/docker-logs)
|
|
||||||
program: nginx
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 100Mi
|
|
||||||
requests:
|
|
||||||
cpu: 150m
|
|
||||||
memory: 100Mi
|
|
||||||
# -- Enable persistent volumes
|
|
||||||
persistentVolume:
|
|
||||||
# -- Persistent volume for config folder. Stores local config (parsers, scenarios etc.)
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: ""
|
|
||||||
size: 100Mi
|
|
||||||
# -- environment variables from crowdsecurity/crowdsec docker image
|
|
||||||
env: []
|
|
||||||
# by default we the docker-logs parser to be able to parse docker logs in k8s
|
|
||||||
# by default we disable local API on the agent pod
|
|
||||||
# - name: SCENARIOS
|
|
||||||
# value: "scenario/name otherScenario/name"
|
|
||||||
# - name: PARSERS
|
|
||||||
# value: "parser/name otherParser/name"
|
|
||||||
# - name: POSTOVERFLOWS
|
|
||||||
# value: "postoverflow/name otherPostoverflow/name"
|
|
||||||
# - name: CONFIG_FILE
|
|
||||||
# value: "/etc/crowdsec/config.yaml"
|
|
||||||
# - name: DSN
|
|
||||||
# value: "file:///var/log/toto.log"
|
|
||||||
# - name: TYPE
|
|
||||||
# value: "Labels.type_for_time-machine_mode"
|
|
||||||
# - name: TEST_MODE
|
|
||||||
# value: "false"
|
|
||||||
# - name: TZ
|
|
||||||
# value: ""
|
|
||||||
# - name: DISABLE_AGENT
|
|
||||||
# value: "false"
|
|
||||||
# - name: DISABLE_ONLINE_API
|
|
||||||
# value: "false"
|
|
||||||
# - name: LEVEL_TRACE
|
|
||||||
# value: "false"
|
|
||||||
# - name: LEVEL_DEBUG
|
|
||||||
# value: "false"
|
|
||||||
# - name: LEVEL_INFO
|
|
||||||
# value: "false"
|
|
||||||
|
|
||||||
# -- nodeSelector for agent
|
|
||||||
nodeSelector: {}
|
|
||||||
# -- tolerations for agent
|
|
||||||
tolerations: {}
|
|
||||||
|
|
||||||
# -- Enable service monitoring (exposes "metrics" port "6060" for Prometheus)
|
|
||||||
metrics:
|
|
||||||
enabled: false
|
|
||||||
# -- Creates a ServiceMonitor so Prometheus will monitor this service
|
|
||||||
# -- Prometheus needs to be configured to watch on all namespaces for ServiceMonitors
|
|
||||||
# -- See the documentation: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#prometheusioscrape
|
|
||||||
# -- See also: https://github.com/prometheus-community/helm-charts/issues/106#issuecomment-700847774
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# -- wait-for-lapi init container
|
|
||||||
wait_for_lapi:
|
|
||||||
image:
|
|
||||||
# -- docker image repository name
|
|
||||||
repository: busybox
|
|
||||||
# -- pullPolicy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- docker image tag
|
|
||||||
tag: "1.28"
|
|
||||||
|
|
||||||
#service: {}
|
|
||||||
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
namespace: ddns
|
|
||||||
name: cloudflare-ddns
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: cloudflare-ddns
|
|
||||||
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: cloudflare-ddns
|
|
||||||
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: cloudflare-ddns
|
|
||||||
image: timothyjmiller/cloudflare-ddns:latest
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: "32Mi"
|
|
||||||
cpu: "50m"
|
|
||||||
env:
|
|
||||||
- name: CONFIG_PATH
|
|
||||||
value: "/etc/cloudflare-ddns/"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: "/etc/cloudflare-ddns"
|
|
||||||
name: config-cloudflare-ddns
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: config-cloudflare-ddns
|
|
||||||
secret:
|
|
||||||
secretName: config-cloudflare-ddns
|
|
@ -1,32 +0,0 @@
|
|||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: focalboard-ingress
|
|
||||||
namespace: focalboard
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`focalboard.kluster.moll.re`)
|
|
||||||
middlewares:
|
|
||||||
- name: focalboard-websocket
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: focalboard
|
|
||||||
port: 8000
|
|
||||||
tls:
|
|
||||||
certResolver: default-tls
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: Middleware
|
|
||||||
metadata:
|
|
||||||
name: focalboard-websocket
|
|
||||||
namespace: focalboard
|
|
||||||
spec:
|
|
||||||
headers:
|
|
||||||
customRequestHeaders:
|
|
||||||
X-Forwarded-Proto: "https"
|
|
||||||
Upgrade: "websocket"
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: focalboard
|
|
||||||
name: focalboard-nfs
|
|
||||||
labels:
|
|
||||||
directory: focalboard
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "5Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /focalboard
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: focalboard
|
|
||||||
name: focalboard-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "5Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: focalboard
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
|||||||
#
|
|
||||||
# IMPORTANT NOTE
|
|
||||||
#
|
|
||||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
|
||||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
|
||||||
#
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- image repository
|
|
||||||
repository: flyskype2021/focalboard
|
|
||||||
# -- image pull policy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- image tag
|
|
||||||
tag: latest
|
|
||||||
|
|
||||||
|
|
||||||
enableServiceLinks: false
|
|
||||||
|
|
||||||
# -- environment variables.
|
|
||||||
# @default -- See below
|
|
||||||
env: {}
|
|
||||||
|
|
||||||
# See the Administrator's Guide for config reference: https://www.focalboard.com/guide/admin/
|
|
||||||
config: |
|
|
||||||
{
|
|
||||||
"serverRoot": "https://focalboard.kluster.moll.re",
|
|
||||||
"port": 8000,
|
|
||||||
"dbtype": "sqlite3",
|
|
||||||
"dbconfig": "/data/focalboard.db",
|
|
||||||
"postgres_dbconfig": "dbname=focalboard sslmode=disable",
|
|
||||||
"useSSL": false,
|
|
||||||
"webpath": "./pack",
|
|
||||||
"filespath": "/data/files",
|
|
||||||
"telemetry": false,
|
|
||||||
"session_expire_time": 2592000,
|
|
||||||
"session_refresh_time": 18000,
|
|
||||||
"localOnly": false,
|
|
||||||
"enableLocalMode": true,
|
|
||||||
"localModeSocketLocation": "/var/tmp/focalboard_local.socket"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# -- Configures service settings for the chart.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 8000
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
# -- Enable and configure ingress settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
main:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# -- Configure persistence settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
persistence:
|
|
||||||
data:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: focalboard-nfs
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
#
|
|
||||||
# IMPORTANT NOTE
|
|
||||||
#
|
|
||||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
|
||||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
|
||||||
#
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- image repository
|
|
||||||
repository: linuxserver/freshrss
|
|
||||||
# -- image pull policy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- image tag
|
|
||||||
tag: version-1.18.1
|
|
||||||
|
|
||||||
# -- environment variables. See more environment variables in the [freshrss documentation](https://github.com/linuxserver/docker-freshrss#parameters).
|
|
||||||
# @default -- See below
|
|
||||||
env:
|
|
||||||
# -- Set the container timezone
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
# -- Set the container user id
|
|
||||||
PUID: "1001"
|
|
||||||
# -- Set the container group id
|
|
||||||
PGID: "1001"
|
|
||||||
|
|
||||||
# -- Configures service settings for the chart.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
# -- Enable and configure ingress settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
main:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# -- Configure persistence settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
persistence:
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
useExisting: true
|
|
||||||
name: freshrss-nfs
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
|||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: freshrss
|
|
||||||
name: freshrss-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- rss.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: rss.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: freshrss
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: freshrss
|
|
||||||
name: freshrss-nfs
|
|
||||||
labels:
|
|
||||||
directory: freshrss
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
capacity:
|
|
||||||
storage: "1Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /freshrss
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: freshrss
|
|
||||||
name: freshrss-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "1Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: freshrss
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: gcloud-backup
|
|
||||||
namespace: backup
|
|
||||||
|
|
||||||
spec:
|
|
||||||
schedule: "0 2 15 * *"
|
|
||||||
# at 2:00, the 1. and 15. of every month
|
|
||||||
successfulJobsHistoryLimit: 2
|
|
||||||
failedJobsHistoryLimit: 2
|
|
||||||
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
restartPolicy: Never
|
|
||||||
containers:
|
|
||||||
- name: gcloud-backup
|
|
||||||
image: shirakiya/gcloud-sdk:latest
|
|
||||||
command: ["/bin/bash", "-c", "--"]
|
|
||||||
args:
|
|
||||||
- |
|
|
||||||
ln -s /config/.boto /root/.boto &&
|
|
||||||
gsutil -m rsync -x "^(jellyfin|config|webtop|other root folder)/.*$" -U -r -e -d /data gs://kluster-backup
|
|
||||||
# command:
|
|
||||||
# -m multithreaded
|
|
||||||
# -U skip unsupported objects
|
|
||||||
# -e don't follow symlinks
|
|
||||||
# -r recursively follow folder structure
|
|
||||||
# -d deletes files from dst if they are not in src anymore
|
|
||||||
# -n dry runs
|
|
||||||
# This command runs with the knowledge the gs-bucket is set up with versioning. Rsync therefore serves as an incremental backup whose individual stages can be recovered
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: backup-nfs-access
|
|
||||||
- mountPath: /config
|
|
||||||
name: gcloud-credentials
|
|
||||||
# entry .boto in the secret is mounted as /root/.boto
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: backup-nfs-access
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: backup-nfs-access
|
|
||||||
- name: gcloud-credentials
|
|
||||||
secret:
|
|
||||||
secretName: gcloud-credentials
|
|
||||||
optional: false
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,749 +0,0 @@
|
|||||||
## nginx configuration
|
|
||||||
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/index.md
|
|
||||||
##
|
|
||||||
|
|
||||||
## Overrides for generated resource names
|
|
||||||
# See templates/_helpers.tpl
|
|
||||||
# nameOverride:
|
|
||||||
# fullnameOverride:
|
|
||||||
|
|
||||||
## Labels to apply to all resources
|
|
||||||
##
|
|
||||||
commonLabels: {}
|
|
||||||
# scmhash: abc123
|
|
||||||
# myLabel: aakkmd
|
|
||||||
|
|
||||||
controller:
|
|
||||||
name: controller
|
|
||||||
image:
|
|
||||||
## Keep false as default for now!
|
|
||||||
chroot: false
|
|
||||||
registry: registry.k8s.io
|
|
||||||
image: ingress-nginx/controller
|
|
||||||
## for backwards compatibility consider setting the full image url via the repository value below
|
|
||||||
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
|
||||||
## repository:
|
|
||||||
tag: "v1.3.0"
|
|
||||||
digest: sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
|
||||||
digestChroot: sha256:0fcb91216a22aae43b374fc2e6a03b8afe9e8c78cbf07a09d75636dc4ea3c191
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# www-data -> uid 101
|
|
||||||
runAsUser: 101
|
|
||||||
allowPrivilegeEscalation: true
|
|
||||||
|
|
||||||
# -- Use an existing PSP instead of creating one
|
|
||||||
existingPsp: ""
|
|
||||||
|
|
||||||
# -- Configures the controller container name
|
|
||||||
containerName: controller
|
|
||||||
|
|
||||||
# -- Configures the ports that the nginx-controller listens on
|
|
||||||
containerPort:
|
|
||||||
http: 80
|
|
||||||
https: 443
|
|
||||||
|
|
||||||
# -- Will add custom configuration options to Nginx https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
|
|
||||||
config: {}
|
|
||||||
|
|
||||||
# -- Annotations to be added to the controller config configuration configmap.
|
|
||||||
configAnnotations: {}
|
|
||||||
|
|
||||||
# -- Will add custom headers before sending traffic to backends according to https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/custom-headers
|
|
||||||
proxySetHeaders: {}
|
|
||||||
|
|
||||||
# -- Will add custom headers before sending response traffic to the client according to: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#add-headers
|
|
||||||
addHeaders: {}
|
|
||||||
|
|
||||||
# -- Optionally customize the pod dnsConfig.
|
|
||||||
dnsConfig: {}
|
|
||||||
|
|
||||||
# -- Optionally customize the pod hostname.
|
|
||||||
hostname: {}
|
|
||||||
|
|
||||||
# -- Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'.
|
|
||||||
# By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller
|
|
||||||
# to keep resolving names inside the k8s network, use ClusterFirstWithHostNet.
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
|
|
||||||
# -- Bare-metal considerations via the host network https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network
|
|
||||||
# Ingress status was blank because there is no Service exposing the NGINX Ingress controller in a configuration using the host network, the default --publish-service flag used in standard cloud setups does not apply
|
|
||||||
reportNodeInternalIp: false
|
|
||||||
|
|
||||||
# -- Process Ingress objects without ingressClass annotation/ingressClassName field
|
|
||||||
# Overrides value for --watch-ingress-without-class flag of the controller binary
|
|
||||||
# Defaults to false
|
|
||||||
watchIngressWithoutClass: false
|
|
||||||
|
|
||||||
# -- Process IngressClass per name (additionally as per spec.controller).
|
|
||||||
ingressClassByName: false
|
|
||||||
|
|
||||||
# -- This configuration defines if Ingress Controller should allow users to set
|
|
||||||
# their own *-snippet annotations, otherwise this is forbidden / dropped
|
|
||||||
# when users add those annotations.
|
|
||||||
# Global snippets in ConfigMap are still respected
|
|
||||||
allowSnippetAnnotations: true
|
|
||||||
|
|
||||||
# -- Required for use with CNI based kubernetes installations (such as ones set up by kubeadm),
|
|
||||||
# since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920
|
|
||||||
# is merged
|
|
||||||
hostNetwork: false
|
|
||||||
|
|
||||||
## Use host ports 80 and 443
|
|
||||||
## Disabled by default
|
|
||||||
hostPort:
|
|
||||||
# -- Enable 'hostPort' or not
|
|
||||||
enabled: false
|
|
||||||
ports:
|
|
||||||
# -- 'hostPort' http port
|
|
||||||
http: 80
|
|
||||||
# -- 'hostPort' https port
|
|
||||||
https: 443
|
|
||||||
|
|
||||||
# -- Election ID to use for status update
|
|
||||||
electionID: ingress-controller-leader
|
|
||||||
|
|
||||||
## This section refers to the creation of the IngressClass resource
|
|
||||||
## IngressClass resources are supported since k8s >= 1.18 and required since k8s >= 1.19
|
|
||||||
ingressClassResource:
|
|
||||||
# -- Name of the ingressClass
|
|
||||||
name: nginx-new
|
|
||||||
# -- Is this ingressClass enabled or not
|
|
||||||
enabled: true
|
|
||||||
# -- Is this the default ingressClass for the cluster
|
|
||||||
default: false
|
|
||||||
# -- Controller-value of the controller that is processing this ingressClass
|
|
||||||
controllerValue: "k8s.io/ingress-nginx"
|
|
||||||
|
|
||||||
# -- Parameters is a link to a custom resource containing additional
|
|
||||||
# configuration for the controller. This is optional if the controller
|
|
||||||
# does not require extra parameters.
|
|
||||||
parameters: {}
|
|
||||||
|
|
||||||
# -- For backwards compatibility with ingress.class annotation, use ingressClass.
|
|
||||||
# Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
|
|
||||||
ingressClass: nginx
|
|
||||||
|
|
||||||
# -- Labels to add to the pod container metadata
|
|
||||||
podLabels: {}
|
|
||||||
# key: value
|
|
||||||
|
|
||||||
# -- Security Context policies for controller pods
|
|
||||||
podSecurityContext: {}
|
|
||||||
|
|
||||||
# -- See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls
|
|
||||||
sysctls: {}
|
|
||||||
# sysctls:
|
|
||||||
# "net.core.somaxconn": "8192"
|
|
||||||
|
|
||||||
# -- Allows customization of the source of the IP address or FQDN to report
|
|
||||||
# in the ingress status field. By default, it reads the information provided
|
|
||||||
# by the service. If disable, the status field reports the IP address of the
|
|
||||||
# node or nodes where an ingress controller pod is running.
|
|
||||||
publishService:
|
|
||||||
# -- Enable 'publishService' or not
|
|
||||||
enabled: true
|
|
||||||
# -- Allows overriding of the publish service to bind to
|
|
||||||
# Must be <namespace>/<service_name>
|
|
||||||
pathOverride: ""
|
|
||||||
|
|
||||||
# Limit the scope of the controller to a specific namespace
|
|
||||||
scope:
|
|
||||||
# -- Enable 'scope' or not
|
|
||||||
enabled: false
|
|
||||||
# -- Namespace to limit the controller to; defaults to $(POD_NAMESPACE)
|
|
||||||
namespace: ""
|
|
||||||
# -- When scope.enabled == false, instead of watching all namespaces, we watching namespaces whose labels
|
|
||||||
# only match with namespaceSelector. Format like foo=bar. Defaults to empty, means watching all namespaces.
|
|
||||||
namespaceSelector: ""
|
|
||||||
|
|
||||||
# -- Allows customization of the configmap / nginx-configmap namespace; defaults to $(POD_NAMESPACE)
|
|
||||||
configMapNamespace: ""
|
|
||||||
|
|
||||||
tcp:
|
|
||||||
# -- Allows customization of the tcp-services-configmap; defaults to $(POD_NAMESPACE)
|
|
||||||
configMapNamespace: ""
|
|
||||||
# -- Annotations to be added to the tcp config configmap
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
udp:
|
|
||||||
# -- Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE)
|
|
||||||
configMapNamespace: ""
|
|
||||||
# -- Annotations to be added to the udp config configmap
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
# -- Maxmind license key to download GeoLite2 Databases.
|
|
||||||
## https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases
|
|
||||||
maxmindLicenseKey: ""
|
|
||||||
|
|
||||||
# -- Additional command line arguments to pass to nginx-ingress-controller
|
|
||||||
# E.g. to specify the default SSL certificate you can use
|
|
||||||
extraArgs: {}
|
|
||||||
## extraArgs:
|
|
||||||
## default-ssl-certificate: "<namespace>/<secret_name>"
|
|
||||||
|
|
||||||
# -- Additional environment variables to set
|
|
||||||
extraEnvs: []
|
|
||||||
# extraEnvs:
|
|
||||||
# - name: FOO
|
|
||||||
# valueFrom:
|
|
||||||
# secretKeyRef:
|
|
||||||
# key: FOO
|
|
||||||
# name: secret-resource
|
|
||||||
|
|
||||||
# -- Use a `DaemonSet` or `Deployment`
|
|
||||||
kind: Deployment
|
|
||||||
|
|
||||||
# -- Annotations to be added to the controller Deployment or DaemonSet
|
|
||||||
##
|
|
||||||
annotations: {}
|
|
||||||
# keel.sh/pollSchedule: "@every 60m"
|
|
||||||
|
|
||||||
# -- Labels to be added to the controller Deployment or DaemonSet and other resources that do not have option to specify labels
|
|
||||||
##
|
|
||||||
labels: {}
|
|
||||||
# keel.sh/policy: patch
|
|
||||||
# keel.sh/trigger: poll
|
|
||||||
|
|
||||||
|
|
||||||
# -- The update strategy to apply to the Deployment or DaemonSet
|
|
||||||
##
|
|
||||||
updateStrategy: {}
|
|
||||||
# rollingUpdate:
|
|
||||||
# maxUnavailable: 1
|
|
||||||
# type: RollingUpdate
|
|
||||||
|
|
||||||
# -- `minReadySeconds` to avoid killing pods before we are ready
|
|
||||||
##
|
|
||||||
minReadySeconds: 0
|
|
||||||
|
|
||||||
|
|
||||||
# -- Node tolerations for server scheduling to nodes with taints
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
|
||||||
##
|
|
||||||
tolerations: []
|
|
||||||
# - key: "key"
|
|
||||||
# operator: "Equal|Exists"
|
|
||||||
# value: "value"
|
|
||||||
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
|
|
||||||
|
|
||||||
# -- Affinity and anti-affinity rules for server scheduling to nodes
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
|
||||||
##
|
|
||||||
affinity: {}
|
|
||||||
# # An example of preferred pod anti-affinity, weight is in the range 1-100
|
|
||||||
# podAntiAffinity:
|
|
||||||
# preferredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
# - weight: 100
|
|
||||||
# podAffinityTerm:
|
|
||||||
# labelSelector:
|
|
||||||
# matchExpressions:
|
|
||||||
# - key: app.kubernetes.io/name
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - ingress-nginx
|
|
||||||
# - key: app.kubernetes.io/instance
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - ingress-nginx
|
|
||||||
# - key: app.kubernetes.io/component
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - controller
|
|
||||||
# topologyKey: kubernetes.io/hostname
|
|
||||||
|
|
||||||
# # An example of required pod anti-affinity
|
|
||||||
# podAntiAffinity:
|
|
||||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
# - labelSelector:
|
|
||||||
# matchExpressions:
|
|
||||||
# - key: app.kubernetes.io/name
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - ingress-nginx
|
|
||||||
# - key: app.kubernetes.io/instance
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - ingress-nginx
|
|
||||||
# - key: app.kubernetes.io/component
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - controller
|
|
||||||
# topologyKey: "kubernetes.io/hostname"
|
|
||||||
|
|
||||||
# -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
|
||||||
##
|
|
||||||
topologySpreadConstraints: []
|
|
||||||
# - maxSkew: 1
|
|
||||||
# topologyKey: topology.kubernetes.io/zone
|
|
||||||
# whenUnsatisfiable: DoNotSchedule
|
|
||||||
# labelSelector:
|
|
||||||
# matchLabels:
|
|
||||||
# app.kubernetes.io/instance: ingress-nginx-internal
|
|
||||||
|
|
||||||
# -- `terminationGracePeriodSeconds` to avoid killing pods before we are ready
|
|
||||||
## wait up to five minutes for the drain of connections
|
|
||||||
##
|
|
||||||
terminationGracePeriodSeconds: 300
|
|
||||||
|
|
||||||
# -- Node labels for controller pod assignment
|
|
||||||
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
|
|
||||||
##
|
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/os: linux
|
|
||||||
|
|
||||||
## Liveness and readiness probe values
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
|
||||||
##
|
|
||||||
## startupProbe:
|
|
||||||
## httpGet:
|
|
||||||
## # should match container.healthCheckPath
|
|
||||||
## path: "/healthz"
|
|
||||||
## port: 10254
|
|
||||||
## scheme: HTTP
|
|
||||||
## initialDelaySeconds: 5
|
|
||||||
## periodSeconds: 5
|
|
||||||
## timeoutSeconds: 2
|
|
||||||
## successThreshold: 1
|
|
||||||
## failureThreshold: 5
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
# should match container.healthCheckPath
|
|
||||||
path: "/healthz"
|
|
||||||
port: 10254
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 1
|
|
||||||
successThreshold: 1
|
|
||||||
failureThreshold: 5
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
# should match container.healthCheckPath
|
|
||||||
path: "/healthz"
|
|
||||||
port: 10254
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 1
|
|
||||||
successThreshold: 1
|
|
||||||
failureThreshold: 3
|
|
||||||
|
|
||||||
|
|
||||||
# -- Path of the health check endpoint. All requests received on the port defined by
|
|
||||||
# the healthz-port parameter are forwarded internally to this path.
|
|
||||||
healthCheckPath: "/healthz"
|
|
||||||
|
|
||||||
# -- Address to bind the health check endpoint.
|
|
||||||
# It is better to set this option to the internal node address
|
|
||||||
# if the ingress nginx controller is running in the `hostNetwork: true` mode.
|
|
||||||
healthCheckHost: ""
|
|
||||||
|
|
||||||
# -- Annotations to be added to controller pods
|
|
||||||
##
|
|
||||||
podAnnotations: {}
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
minAvailable: 1
|
|
||||||
|
|
||||||
## Define requests resources to avoid probe issues due to CPU utilization in busy nodes
|
|
||||||
## ref: https://github.com/kubernetes/ingress-nginx/issues/4735#issuecomment-551204903
|
|
||||||
## Ideally, there should be no limits.
|
|
||||||
## https://engineering.indeedblog.com/blog/2019/12/cpu-throttling-regression-fix/
|
|
||||||
resources:
|
|
||||||
## limits:
|
|
||||||
## cpu: 100m
|
|
||||||
## memory: 90Mi
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 90Mi
|
|
||||||
|
|
||||||
# Mutually exclusive with keda autoscaling
|
|
||||||
autoscaling:
|
|
||||||
enabled: false
|
|
||||||
minReplicas: 1
|
|
||||||
maxReplicas: 11
|
|
||||||
targetCPUUtilizationPercentage: 50
|
|
||||||
targetMemoryUtilizationPercentage: 50
|
|
||||||
behavior: {}
|
|
||||||
# scaleDown:
|
|
||||||
# stabilizationWindowSeconds: 300
|
|
||||||
# policies:
|
|
||||||
# - type: Pods
|
|
||||||
# value: 1
|
|
||||||
# periodSeconds: 180
|
|
||||||
# scaleUp:
|
|
||||||
# stabilizationWindowSeconds: 300
|
|
||||||
# policies:
|
|
||||||
# - type: Pods
|
|
||||||
# value: 2
|
|
||||||
# periodSeconds: 60
|
|
||||||
|
|
||||||
autoscalingTemplate: []
|
|
||||||
# Custom or additional autoscaling metrics
|
|
||||||
# ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-custom-metrics
|
|
||||||
# - type: Pods
|
|
||||||
# pods:
|
|
||||||
# metric:
|
|
||||||
# name: nginx_ingress_controller_nginx_process_requests_total
|
|
||||||
# target:
|
|
||||||
# type: AverageValue
|
|
||||||
# averageValue: 10000m
|
|
||||||
|
|
||||||
# Mutually exclusive with hpa autoscaling
|
|
||||||
|
|
||||||
# -- Enable mimalloc as a drop-in replacement for malloc.
|
|
||||||
## ref: https://github.com/microsoft/mimalloc
|
|
||||||
##
|
|
||||||
enableMimalloc: true
|
|
||||||
|
|
||||||
## Override NGINX template
|
|
||||||
customTemplate:
|
|
||||||
configMapName: ""
|
|
||||||
configMapKey: ""
|
|
||||||
|
|
||||||
service:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# -- If enabled is adding an appProtocol option for Kubernetes service. An appProtocol field replacing annotations that were
|
|
||||||
# using for setting a backend protocol. Here is an example for AWS: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
|
|
||||||
# It allows choosing the protocol for each backend specified in the Kubernetes service.
|
|
||||||
# See the following GitHub issue for more details about the purpose: https://github.com/kubernetes/kubernetes/issues/40244
|
|
||||||
# Will be ignored for Kubernetes versions older than 1.20
|
|
||||||
##
|
|
||||||
appProtocol: true
|
|
||||||
|
|
||||||
annotations: {}
|
|
||||||
labels: {}
|
|
||||||
# clusterIP: ""
|
|
||||||
|
|
||||||
# -- List of IP addresses at which the controller services are available
|
|
||||||
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
|
|
||||||
##
|
|
||||||
externalIPs: []
|
|
||||||
|
|
||||||
# -- Used by cloud providers to connect the resulting `LoadBalancer` to a pre-existing static IP according to https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
|
|
||||||
loadBalancerSourceRanges: []
|
|
||||||
|
|
||||||
enableHttp: true
|
|
||||||
enableHttps: true
|
|
||||||
|
|
||||||
## Set external traffic policy to: "Local" to preserve source IP on providers supporting it.
|
|
||||||
## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
|
|
||||||
# externalTrafficPolicy: ""
|
|
||||||
|
|
||||||
## Must be either "None" or "ClientIP" if set. Kubernetes will default to "None".
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
||||||
# sessionAffinity: ""
|
|
||||||
|
|
||||||
## Specifies the health check node port (numeric port number) for the service. If healthCheckNodePort isn’t specified,
|
|
||||||
## the service controller allocates a port from your cluster’s NodePort range.
|
|
||||||
## Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
|
||||||
# healthCheckNodePort: 0
|
|
||||||
|
|
||||||
# -- Represents the dual-stack-ness requested or required by this Service. Possible values are
|
|
||||||
# SingleStack, PreferDualStack or RequireDualStack.
|
|
||||||
# The ipFamilies and clusterIPs fields depend on the value of this field.
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
|
|
||||||
ipFamilyPolicy: "SingleStack"
|
|
||||||
|
|
||||||
# -- List of IP families (e.g. IPv4, IPv6) assigned to the service. This field is usually assigned automatically
|
|
||||||
# based on cluster configuration and the ipFamilyPolicy field.
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
|
|
||||||
ipFamilies:
|
|
||||||
- IPv4
|
|
||||||
|
|
||||||
ports:
|
|
||||||
http: 80
|
|
||||||
https: 443
|
|
||||||
|
|
||||||
targetPorts:
|
|
||||||
http: http
|
|
||||||
https: https
|
|
||||||
|
|
||||||
type: LoadBalancer
|
|
||||||
loadBalancerIP: "192.168.1.4"
|
|
||||||
|
|
||||||
## type: NodePort
|
|
||||||
## nodePorts:
|
|
||||||
## http: 32080
|
|
||||||
## https: 32443
|
|
||||||
## tcp:
|
|
||||||
## 8080: 32808
|
|
||||||
|
|
||||||
|
|
||||||
# shareProcessNamespace enables process namespace sharing within the pod.
|
|
||||||
# This can be used for example to signal log rotation using `kill -USR1` from a sidecar.
|
|
||||||
shareProcessNamespace: false
|
|
||||||
|
|
||||||
|
|
||||||
extraContainers: []
|
|
||||||
# - name: my-sidecar
|
|
||||||
# image: nginx:latest
|
|
||||||
# - name: lemonldap-ng-controller
|
|
||||||
# image: lemonldapng/lemonldap-ng-controller:0.2.0
|
|
||||||
# args:
|
|
||||||
# - /lemonldap-ng-controller
|
|
||||||
# - --alsologtostderr
|
|
||||||
# - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration
|
|
||||||
# env:
|
|
||||||
# - name: POD_NAME
|
|
||||||
# valueFrom:
|
|
||||||
# fieldRef:
|
|
||||||
# fieldPath: metadata.name
|
|
||||||
# - name: POD_NAMESPACE
|
|
||||||
# valueFrom:
|
|
||||||
# fieldRef:
|
|
||||||
# fieldPath: metadata.namespace
|
|
||||||
# volumeMounts:
|
|
||||||
# - name: copy-portal-skins
|
|
||||||
# mountPath: /srv/var/lib/lemonldap-ng/portal/skins
|
|
||||||
|
|
||||||
# -- Additional volumeMounts to the controller main container.
|
|
||||||
extraVolumeMounts: []
|
|
||||||
|
|
||||||
# - name: copy-portal-skins
|
|
||||||
# mountPath: /var/lib/lemonldap-ng/portal/skins
|
|
||||||
|
|
||||||
# -- Additional volumes to the controller pod.
|
|
||||||
extraVolumes: []
|
|
||||||
# - name: copy-portal-skins
|
|
||||||
# emptyDir: {}
|
|
||||||
|
|
||||||
# -- Containers, which are run before the app containers are started.
|
|
||||||
extraInitContainers: []
|
|
||||||
# - name: init-myservice
|
|
||||||
# image: busybox
|
|
||||||
# command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
|
|
||||||
|
|
||||||
extraModules: []
|
|
||||||
## Modules, which are mounted into the core nginx image
|
|
||||||
# - name: opentelemetry
|
|
||||||
# image: registry.k8s.io/ingress-nginx/opentelemetry:v20220801-g00ee51f09@sha256:482562feba02ad178411efc284f8eb803a185e3ea5588b6111ccbc20b816b427
|
|
||||||
#
|
|
||||||
# The image must contain a `/usr/local/bin/init_module.sh` executable, which
|
|
||||||
# will be executed as initContainers, to move its config files within the
|
|
||||||
# mounted volume.
|
|
||||||
|
|
||||||
admissionWebhooks:
|
|
||||||
annotations: {}
|
|
||||||
# ignore-check.kube-linter.io/no-read-only-rootfs: "This deployment needs write access to root filesystem".
|
|
||||||
|
|
||||||
## Additional annotations to the admission webhooks.
|
|
||||||
## These annotations will be added to the ValidatingWebhookConfiguration and
|
|
||||||
## the Jobs Spec of the admission webhooks.
|
|
||||||
enabled: true
|
|
||||||
# -- Additional environment variables to set
|
|
||||||
extraEnvs: []
|
|
||||||
# extraEnvs:
|
|
||||||
# - name: FOO
|
|
||||||
# valueFrom:
|
|
||||||
# secretKeyRef:
|
|
||||||
# key: FOO
|
|
||||||
# name: secret-resource
|
|
||||||
# -- Admission Webhook failure policy to use
|
|
||||||
failurePolicy: Fail
|
|
||||||
# timeoutSeconds: 10
|
|
||||||
port: 8443
|
|
||||||
certificate: "/usr/local/certificates/cert"
|
|
||||||
key: "/usr/local/certificates/key"
|
|
||||||
namespaceSelector: {}
|
|
||||||
objectSelector: {}
|
|
||||||
# -- Labels to be added to admission webhooks
|
|
||||||
labels: {}
|
|
||||||
|
|
||||||
# -- Use an existing PSP instead of creating one
|
|
||||||
existingPsp: ""
|
|
||||||
networkPolicyEnabled: false
|
|
||||||
|
|
||||||
service:
|
|
||||||
annotations: {}
|
|
||||||
# clusterIP: ""
|
|
||||||
externalIPs: []
|
|
||||||
# loadBalancerIP: ""
|
|
||||||
loadBalancerSourceRanges: []
|
|
||||||
servicePort: 443
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
createSecretJob:
|
|
||||||
resources: {}
|
|
||||||
# limits:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 20Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 20Mi
|
|
||||||
|
|
||||||
patchWebhookJob:
|
|
||||||
resources: {}
|
|
||||||
|
|
||||||
patch:
|
|
||||||
enabled: true
|
|
||||||
image:
|
|
||||||
registry: registry.k8s.io
|
|
||||||
image: ingress-nginx/kube-webhook-certgen
|
|
||||||
## for backwards compatibility consider setting the full image url via the repository value below
|
|
||||||
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
|
||||||
## repository:
|
|
||||||
tag: v1.3.0
|
|
||||||
digest: sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- Provide a priority class name to the webhook patching job
|
|
||||||
##
|
|
||||||
priorityClassName: ""
|
|
||||||
podAnnotations: {}
|
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/os: linux
|
|
||||||
tolerations: []
|
|
||||||
# -- Labels to be added to patch job resources
|
|
||||||
labels: {}
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 2000
|
|
||||||
fsGroup: 2000
|
|
||||||
|
|
||||||
|
|
||||||
metrics:
|
|
||||||
port: 10254
|
|
||||||
# if this port is changed, change healthz-port: in extraArgs: accordingly
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
service:
|
|
||||||
annotations: {}
|
|
||||||
# prometheus.io/scrape: "true"
|
|
||||||
# prometheus.io/port: "10254"
|
|
||||||
|
|
||||||
# clusterIP: ""
|
|
||||||
|
|
||||||
# -- List of IP addresses at which the stats-exporter service is available
|
|
||||||
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
|
|
||||||
##
|
|
||||||
externalIPs: []
|
|
||||||
|
|
||||||
# loadBalancerIP: ""
|
|
||||||
loadBalancerSourceRanges: []
|
|
||||||
servicePort: 10254
|
|
||||||
type: ClusterIP
|
|
||||||
# externalTrafficPolicy: ""
|
|
||||||
# nodePort: ""
|
|
||||||
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: false
|
|
||||||
additionalLabels: {}
|
|
||||||
## The label to use to retrieve the job name from.
|
|
||||||
## jobLabel: "app.kubernetes.io/name"
|
|
||||||
namespace: ""
|
|
||||||
namespaceSelector: {}
|
|
||||||
## Default: scrape .Release.Namespace only
|
|
||||||
## To scrape all, use the following:
|
|
||||||
## namespaceSelector:
|
|
||||||
## any: true
|
|
||||||
scrapeInterval: 30s
|
|
||||||
# honorLabels: true
|
|
||||||
targetLabels: []
|
|
||||||
relabelings: []
|
|
||||||
metricRelabelings: []
|
|
||||||
|
|
||||||
prometheusRule:
|
|
||||||
enabled: false
|
|
||||||
additionalLabels: {}
|
|
||||||
# namespace: ""
|
|
||||||
rules: []
|
|
||||||
# # These are just examples rules, please adapt them to your needs
|
|
||||||
# - alert: NGINXConfigFailed
|
|
||||||
# expr: count(nginx_ingress_controller_config_last_reload_successful == 0) > 0
|
|
||||||
# for: 1s
|
|
||||||
# labels:
|
|
||||||
# severity: critical
|
|
||||||
# annotations:
|
|
||||||
# description: bad ingress config - nginx config test failed
|
|
||||||
# summary: uninstall the latest ingress changes to allow config reloads to resume
|
|
||||||
# - alert: NGINXCertificateExpiry
|
|
||||||
# expr: (avg(nginx_ingress_controller_ssl_expire_time_seconds) by (host) - time()) < 604800
|
|
||||||
# for: 1s
|
|
||||||
# labels:
|
|
||||||
# severity: critical
|
|
||||||
# annotations:
|
|
||||||
# description: ssl certificate(s) will expire in less then a week
|
|
||||||
# summary: renew expiring certificates to avoid downtime
|
|
||||||
# - alert: NGINXTooMany500s
|
|
||||||
# expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"5.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
|
|
||||||
# for: 1m
|
|
||||||
# labels:
|
|
||||||
# severity: warning
|
|
||||||
# annotations:
|
|
||||||
# description: Too many 5XXs
|
|
||||||
# summary: More than 5% of all requests returned 5XX, this requires your attention
|
|
||||||
# - alert: NGINXTooMany400s
|
|
||||||
# expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
|
|
||||||
# for: 1m
|
|
||||||
# labels:
|
|
||||||
# severity: warning
|
|
||||||
# annotations:
|
|
||||||
# description: Too many 4XXs
|
|
||||||
# summary: More than 5% of all requests returned 4XX, this requires your attention
|
|
||||||
|
|
||||||
# -- Improve connection draining when ingress controller pod is deleted using a lifecycle hook:
|
|
||||||
# With this new hook, we increased the default terminationGracePeriodSeconds from 30 seconds
|
|
||||||
# to 300, allowing the draining of connections up to five minutes.
|
|
||||||
# If the active connections end before that, the pod will terminate gracefully at that time.
|
|
||||||
# To effectively take advantage of this feature, the Configmap feature
|
|
||||||
# worker-shutdown-timeout new value is 240s instead of 10s.
|
|
||||||
##
|
|
||||||
lifecycle:
|
|
||||||
preStop:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- /wait-shutdown
|
|
||||||
|
|
||||||
priorityClassName: ""
|
|
||||||
|
|
||||||
# -- Rollback limit
|
|
||||||
##
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
|
|
||||||
|
|
||||||
## Enable RBAC as per https://github.com/kubernetes/ingress-nginx/blob/main/docs/deploy/rbac.md and https://github.com/kubernetes/ingress-nginx/issues/266
|
|
||||||
rbac:
|
|
||||||
create: true
|
|
||||||
scope: false
|
|
||||||
|
|
||||||
## If true, create & use Pod Security Policy resources
|
|
||||||
## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
|
|
||||||
podSecurityPolicy:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
create: true
|
|
||||||
name: ""
|
|
||||||
automountServiceAccountToken: true
|
|
||||||
# -- Annotations for the controller service account
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
# -- Optional array of imagePullSecrets containing private registry credentials
|
|
||||||
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
||||||
imagePullSecrets: []
|
|
||||||
# - name: secretName
|
|
||||||
|
|
||||||
# -- TCP service key-value pairs
|
|
||||||
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
|
|
||||||
##
|
|
||||||
tcp: {}
|
|
||||||
# 8080: "default/example-tcp-svc:9000"
|
|
||||||
|
|
||||||
# -- UDP service key-value pairs
|
|
||||||
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
|
|
||||||
##
|
|
||||||
udp: {}
|
|
||||||
# 53: "kube-system/kube-dns:53"
|
|
||||||
|
|
||||||
# -- Prefix for TCP and UDP ports names in ingress controller service
|
|
||||||
## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
|
|
||||||
portNamePrefix: ""
|
|
||||||
|
|
||||||
# -- (string) A base64-encoded Diffie-Hellman parameter.
|
|
||||||
# This can be generated with: `openssl dhparam 4096 2> /dev/null | base64`
|
|
||||||
## Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param
|
|
||||||
dhParam:
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: gitea
|
|
||||||
name: jenkins-data-nfs
|
|
||||||
labels:
|
|
||||||
directory: jenkins
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "10Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /jenkins
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: gitea
|
|
||||||
name: jenkins-data-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "10Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: jenkins
|
|
@ -1,669 +0,0 @@
|
|||||||
# Default values for jenkins.
|
|
||||||
# This is a YAML-formatted file.
|
|
||||||
# Declare name/value pairs to be passed into your templates.
|
|
||||||
# name: value
|
|
||||||
|
|
||||||
## Overrides for generated resource names
|
|
||||||
# See templates/_helpers.tpl
|
|
||||||
# nameOverride:
|
|
||||||
# fullnameOverride:
|
|
||||||
# namespaceOverride:
|
|
||||||
|
|
||||||
# For FQDN resolving of the controller service. Change this value to match your existing configuration.
|
|
||||||
# ref: https://github.com/kubernetes/dns/blob/master/docs/specification.md
|
|
||||||
clusterZone: "cluster.local"
|
|
||||||
|
|
||||||
renderHelmLabels: true
|
|
||||||
|
|
||||||
controller:
|
|
||||||
# Used for label app.kubernetes.io/component
|
|
||||||
componentName: "jenkins-controller"
|
|
||||||
image: "jenkins/jenkins"
|
|
||||||
# tag: "2.346.1-jdk11"
|
|
||||||
tagLabel: jdk11
|
|
||||||
imagePullPolicy: "Always"
|
|
||||||
imagePullSecretName:
|
|
||||||
# Optionally configure lifetime for controller-container
|
|
||||||
lifecycle:
|
|
||||||
# postStart:
|
|
||||||
# exec:
|
|
||||||
# command:
|
|
||||||
# - "uname"
|
|
||||||
# - "-a"
|
|
||||||
disableRememberMe: false
|
|
||||||
numExecutors: 0
|
|
||||||
# configures the executor mode of the Jenkins node. Possible values are: NORMAL or EXCLUSIVE
|
|
||||||
executorMode: "NORMAL"
|
|
||||||
# This is ignored if enableRawHtmlMarkupFormatter is true
|
|
||||||
markupFormatter: plainText
|
|
||||||
customJenkinsLabels: []
|
|
||||||
# The default configuration uses this secret to configure an admin user
|
|
||||||
# If you don't need that user or use a different security realm then you can disable it
|
|
||||||
adminSecret: true
|
|
||||||
|
|
||||||
hostNetworking: false
|
|
||||||
# When enabling LDAP or another non-Jenkins identity source, the built-in admin account will no longer exist.
|
|
||||||
# If you disable the non-Jenkins identity store and instead use the Jenkins internal one,
|
|
||||||
# you should revert controller.adminUser to your preferred admin user:
|
|
||||||
adminUser: "admin"
|
|
||||||
# adminPassword: <defaults to random>
|
|
||||||
admin:
|
|
||||||
existingSecret: ""
|
|
||||||
userKey: jenkins-admin-user
|
|
||||||
passwordKey: jenkins-admin-password
|
|
||||||
# This values should not be changed unless you use your custom image of jenkins or any devired from. If you want to use
|
|
||||||
# Cloudbees Jenkins Distribution docker, you should set jenkinsHome: "/var/cloudbees-jenkins-distribution"
|
|
||||||
jenkinsHome: "/var/jenkins_home"
|
|
||||||
# This values should not be changed unless you use your custom image of jenkins or any devired from. If you want to use
|
|
||||||
# Cloudbees Jenkins Distribution docker, you should set jenkinsRef: "/usr/share/cloudbees-jenkins-distribution/ref"
|
|
||||||
jenkinsRef: "/usr/share/jenkins/ref"
|
|
||||||
# Path to the jenkins war file which is used by jenkins-plugin-cli.
|
|
||||||
jenkinsWar: "/usr/share/jenkins/jenkins.war"
|
|
||||||
# Overrides the default arguments passed to the war
|
|
||||||
# overrideArgs:
|
|
||||||
# - --httpPort=8080
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "50m"
|
|
||||||
memory: "256Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "2000m"
|
|
||||||
memory: "4096Mi"
|
|
||||||
# Overrides the init container default values
|
|
||||||
# initContainerResources:
|
|
||||||
# requests:
|
|
||||||
# cpu: "50m"
|
|
||||||
# memory: "256Mi"
|
|
||||||
# limits:
|
|
||||||
# cpu: "2000m"
|
|
||||||
# memory: "4096Mi"
|
|
||||||
# Environment variables that get added to the init container (useful for e.g. http_proxy)
|
|
||||||
# initContainerEnv:
|
|
||||||
# - name: http_proxy
|
|
||||||
# value: "http://192.168.64.1:3128"
|
|
||||||
# containerEnv:
|
|
||||||
# - name: http_proxy
|
|
||||||
# value: "http://192.168.64.1:3128"
|
|
||||||
# Set min/max heap here if needed with:
|
|
||||||
# javaOpts: "-Xms512m -Xmx512m"
|
|
||||||
# jenkinsOpts: ""
|
|
||||||
# If you are using the ingress definitions provided by this chart via the `controller.ingress` block the configured hostname will be the ingress hostname starting with `https://` or `http://` depending on the `tls` configuration.
|
|
||||||
# The Protocol can be overwritten by specifying `controller.jenkinsUrlProtocol`.
|
|
||||||
# jenkinsUrlProtocol: "https"
|
|
||||||
# If you are not using the provided ingress you can specify `controller.jenkinsUrl` to change the url definition.
|
|
||||||
# jenkinsUrl: ""
|
|
||||||
# If you set this prefix and use ingress controller then you might want to set the ingress path below
|
|
||||||
# jenkinsUriPrefix: "/jenkins"
|
|
||||||
# Enable pod security context (must be `true` if podSecurityContextOverride, runAsUser or fsGroup are set)
|
|
||||||
usePodSecurityContext: true
|
|
||||||
# Note that `runAsUser`, `fsGroup`, and `securityContextCapabilities` are
|
|
||||||
# being deprecated and replaced by `podSecurityContextOverride`.
|
|
||||||
# Set runAsUser to 1000 to let Jenkins run as non-root user 'jenkins' which exists in 'jenkins/jenkins' docker image.
|
|
||||||
# When setting runAsUser to a different value than 0 also set fsGroup to the same value:
|
|
||||||
runAsUser: 1000
|
|
||||||
fsGroup: 1000
|
|
||||||
# If you have PodSecurityPolicies that require dropping of capabilities as suggested by CIS K8s benchmark, put them here
|
|
||||||
securityContextCapabilities: {}
|
|
||||||
# drop:
|
|
||||||
# - NET_RAW
|
|
||||||
# Completely overwrites the contents of the `securityContext`, ignoring the
|
|
||||||
# values provided for the deprecated fields: `runAsUser`, `fsGroup`, and
|
|
||||||
# `securityContextCapabilities`. In the case of mounting an ext4 filesystem,
|
|
||||||
# it might be desirable to use `supplementalGroups` instead of `fsGroup` in
|
|
||||||
# the `securityContext` block: https://github.com/kubernetes/kubernetes/issues/67014#issuecomment-589915496
|
|
||||||
# podSecurityContextOverride:
|
|
||||||
# runAsUser: 1000
|
|
||||||
# runAsNonRoot: true
|
|
||||||
# supplementalGroups: [1000]
|
|
||||||
# # capabilities: {}
|
|
||||||
# Container securityContext
|
|
||||||
containerSecurityContext:
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
servicePort: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
# For minikube, set this to NodePort, elsewhere use LoadBalancer
|
|
||||||
# Use ClusterIP if your setup includes ingress controller
|
|
||||||
serviceType: ClusterIP
|
|
||||||
# Use Local to preserve the client source IP and avoids a second hop for LoadBalancer and Nodeport type services,
|
|
||||||
# but risks potentially imbalanced traffic spreading.
|
|
||||||
serviceExternalTrafficPolicy:
|
|
||||||
# Jenkins controller service annotations
|
|
||||||
serviceAnnotations: {}
|
|
||||||
# Jenkins controller custom labels
|
|
||||||
statefulSetLabels: {}
|
|
||||||
# foo: bar
|
|
||||||
# bar: foo
|
|
||||||
# Jenkins controller service labels
|
|
||||||
serviceLabels: {}
|
|
||||||
# service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
|
|
||||||
# Put labels on Jenkins controller pod
|
|
||||||
podLabels: {}
|
|
||||||
# Used to create Ingress record (should used with ServiceType: ClusterIP)
|
|
||||||
# nodePort: <to set explicitly, choose port between 30000-32767
|
|
||||||
# Enable Kubernetes Startup, Liveness and Readiness Probes
|
|
||||||
# if Startup Probe is supported, enable it too
|
|
||||||
# ~ 2 minutes to allow Jenkins to restart when upgrading plugins. Set ReadinessTimeout to be shorter than LivenessTimeout.
|
|
||||||
healthProbes: true
|
|
||||||
probes:
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
|
|
||||||
port: http
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 5
|
|
||||||
failureThreshold: 12
|
|
||||||
livenessProbe:
|
|
||||||
failureThreshold: 5
|
|
||||||
httpGet:
|
|
||||||
path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
|
|
||||||
port: http
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 5
|
|
||||||
# If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.
|
|
||||||
# It delays the initial liveness probe while Jenkins is starting
|
|
||||||
# initialDelaySeconds: 60
|
|
||||||
readinessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
|
|
||||||
port: http
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 5
|
|
||||||
# If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.
|
|
||||||
# It delays the initial readyness probe while Jenkins is starting
|
|
||||||
# initialDelaySeconds: 60
|
|
||||||
|
|
||||||
# PodDisruptionBudget config
|
|
||||||
podDisruptionBudget:
|
|
||||||
enabled: false
|
|
||||||
# For Kubernetes v1.5+, use 'policy/v1beta1'
|
|
||||||
# For Kubernetes v1.21+, use 'policy/v1'
|
|
||||||
apiVersion: "policy/v1beta1"
|
|
||||||
annotations: {}
|
|
||||||
labels: {}
|
|
||||||
# maxUnavailable: "0"
|
|
||||||
|
|
||||||
agentListenerEnabled: true
|
|
||||||
agentListenerPort: 50000
|
|
||||||
agentListenerHostPort:
|
|
||||||
agentListenerNodePort:
|
|
||||||
agentListenerExternalTrafficPolicy:
|
|
||||||
agentListenerLoadBalancerSourceRanges:
|
|
||||||
- 0.0.0.0/0
|
|
||||||
disabledAgentProtocols:
|
|
||||||
- JNLP-connect
|
|
||||||
- JNLP2-connect
|
|
||||||
csrf:
|
|
||||||
defaultCrumbIssuer:
|
|
||||||
enabled: true
|
|
||||||
proxyCompatability: true
|
|
||||||
# Kubernetes service type for the JNLP agent service
|
|
||||||
# agentListenerServiceType is the Kubernetes Service type for the JNLP agent service,
|
|
||||||
# either 'LoadBalancer', 'NodePort', or 'ClusterIP'
|
|
||||||
# Note if you set this to 'LoadBalancer', you *must* define annotations to secure it. By default
|
|
||||||
# this will be an external load balancer and allowing inbound 0.0.0.0/0, a HUGE
|
|
||||||
# security risk: https://github.com/kubernetes/charts/issues/1341
|
|
||||||
agentListenerServiceType: "ClusterIP"
|
|
||||||
# Optionally assign an IP to the LoadBalancer agentListenerService LoadBalancer
|
|
||||||
# GKE users: only regional static IPs will work for Service Load balancer.
|
|
||||||
agentListenerLoadBalancerIP:
|
|
||||||
agentListenerServiceAnnotations: {}
|
|
||||||
|
|
||||||
# Example of 'LoadBalancer' type of agent listener with annotations securing it
|
|
||||||
# agentListenerServiceType: LoadBalancer
|
|
||||||
# agentListenerServiceAnnotations:
|
|
||||||
# service.beta.kubernetes.io/aws-load-balancer-internal: "True"
|
|
||||||
# service.beta.kubernetes.io/load-balancer-source-ranges: "172.0.0.0/8, 10.0.0.0/8"
|
|
||||||
|
|
||||||
# LoadBalancerSourcesRange is a list of allowed CIDR values, which are combined with ServicePort to
|
|
||||||
# set allowed inbound rules on the security group assigned to the controller load balancer
|
|
||||||
loadBalancerSourceRanges:
|
|
||||||
- 0.0.0.0/0
|
|
||||||
# Optionally assign a known public LB IP
|
|
||||||
# loadBalancerIP: 1.2.3.4
|
|
||||||
# Optionally configure a JMX port
|
|
||||||
# requires additional javaOpts, ie
|
|
||||||
# javaOpts: >
|
|
||||||
# -Dcom.sun.management.jmxremote.port=4000
|
|
||||||
# -Dcom.sun.management.jmxremote.authenticate=false
|
|
||||||
# -Dcom.sun.management.jmxremote.ssl=false
|
|
||||||
# jmxPort: 4000
|
|
||||||
# Optionally configure other ports to expose in the controller container
|
|
||||||
extraPorts: []
|
|
||||||
# - name: BuildInfoProxy
|
|
||||||
# port: 9000
|
|
||||||
|
|
||||||
# List of plugins to be install during Jenkins controller start
|
|
||||||
installPlugins:
|
|
||||||
- kubernetes:3600.v144b_cd192ca_a_
|
|
||||||
- workflow-aggregator:581.v0c46fa_697ffd
|
|
||||||
- git:4.11.3
|
|
||||||
- gitea:1.4.3
|
|
||||||
- configuration-as-code:1429.v09b_044a_c93de
|
|
||||||
|
|
||||||
# Set to false to download the minimum required version of all dependencies.
|
|
||||||
installLatestPlugins: true
|
|
||||||
|
|
||||||
# Set to true to download latest dependencies of any plugin that is requested to have the latest version.
|
|
||||||
installLatestSpecifiedPlugins: false
|
|
||||||
|
|
||||||
# List of plugins to install in addition to those listed in controller.installPlugins
|
|
||||||
additionalPlugins: []
|
|
||||||
|
|
||||||
# Enable to initialize the Jenkins controller only once on initial installation.
|
|
||||||
# Without this, whenever the controller gets restarted (Evicted, etc.) it will fetch plugin updates which has the potential to cause breakage.
|
|
||||||
# Note that for this to work, `persistence.enabled` needs to be set to `true`
|
|
||||||
initializeOnce: false
|
|
||||||
|
|
||||||
# Enable to always override the installed plugins with the values of 'controller.installPlugins' on upgrade or redeployment.
|
|
||||||
# overwritePlugins: true
|
|
||||||
|
|
||||||
# Configures if plugins bundled with `controller.image` should be overwritten with the values of 'controller.installPlugins' on upgrade or redeployment.
|
|
||||||
overwritePluginsFromImage: true
|
|
||||||
|
|
||||||
# Enable HTML parsing using OWASP Markup Formatter Plugin (antisamy-markup-formatter), useful with ghprb plugin.
|
|
||||||
# The plugin is not installed by default, please update controller.installPlugins.
|
|
||||||
enableRawHtmlMarkupFormatter: false
|
|
||||||
# Used to approve a list of groovy functions in pipelines used the script-security plugin. Can be viewed under /scriptApproval
|
|
||||||
scriptApproval: []
|
|
||||||
# - "method groovy.json.JsonSlurperClassic parseText java.lang.String"
|
|
||||||
# - "new groovy.json.JsonSlurperClassic"
|
|
||||||
# List of groovy init scripts to be executed during Jenkins controller start
|
|
||||||
initScripts: []
|
|
||||||
# - |
|
|
||||||
# print 'adding global pipeline libraries, register properties, bootstrap jobs...'
|
|
||||||
|
|
||||||
# 'name' is a name of an existing secret in same namespace as jenkins,
|
|
||||||
# 'keyName' is the name of one of the keys inside current secret.
|
|
||||||
# the 'name' and 'keyName' are concatenated with a '-' in between, so for example:
|
|
||||||
# an existing secret "secret-credentials" and a key inside it named "github-password" should be used in Jcasc as ${secret-credentials-github-password}
|
|
||||||
# 'name' and 'keyName' must be lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-',
|
|
||||||
# and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc')
|
|
||||||
additionalExistingSecrets: []
|
|
||||||
# - name: secret-name-1
|
|
||||||
# keyName: username
|
|
||||||
# - name: secret-name-1
|
|
||||||
# keyName: password
|
|
||||||
|
|
||||||
additionalSecrets: []
|
|
||||||
# - name: nameOfSecret
|
|
||||||
# value: secretText
|
|
||||||
|
|
||||||
# Generate SecretClaim resources in order to create Kubernetes secrets from HashiCorp Vault using kube-vault-controller.
|
|
||||||
# 'name' is name of the secret that will be created in Kubernetes. The Jenkins fullname is prepended to this value.
|
|
||||||
# 'path' is the fully qualified path to the secret in Vault
|
|
||||||
# 'type' is an optional Kubernetes secret type. Defaults to 'Opaque'
|
|
||||||
# 'renew' is an optional secret renewal time in seconds
|
|
||||||
secretClaims: []
|
|
||||||
# - name: secretName # required
|
|
||||||
# path: testPath # required
|
|
||||||
# type: kubernetes.io/tls # optional
|
|
||||||
# renew: 60 # optional
|
|
||||||
|
|
||||||
# Name of default cloud configuration.
|
|
||||||
cloudName: "kubernetes"
|
|
||||||
|
|
||||||
# Below is the implementation of Jenkins Configuration as Code. Add a key under configScripts for each configuration area,
|
|
||||||
# where each corresponds to a plugin or section of the UI. Each key (prior to | character) is just a label, and can be any value.
|
|
||||||
# Keys are only used to give the section a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label
|
|
||||||
# characters: lowercase letters, numbers, and hyphens. The keys become the name of a configuration yaml file on the controller in
|
|
||||||
# /var/jenkins_home/casc_configs (by default) and will be processed by the Configuration as Code Plugin. The lines after each |
|
|
||||||
# become the content of the configuration yaml file. The first line after this is a JCasC root element, eg jenkins, credentials,
|
|
||||||
# etc. Best reference is https://<jenkins_url>/configuration-as-code/reference. The example below creates a welcome message:
|
|
||||||
JCasC:
|
|
||||||
defaultConfig: true
|
|
||||||
configScripts: {}
|
|
||||||
# welcome-message: |
|
|
||||||
# jenkins:
|
|
||||||
# systemMessage: Welcome to our CI\CD server. This Jenkins is configured and managed 'as code'.
|
|
||||||
# Ignored if securityRealm is defined in controller.JCasC.configScripts and
|
|
||||||
securityRealm: |-
|
|
||||||
local:
|
|
||||||
allowsSignup: false
|
|
||||||
enableCaptcha: false
|
|
||||||
users:
|
|
||||||
- id: "${chart-admin-username}"
|
|
||||||
name: "Jenkins Admin"
|
|
||||||
password: "${chart-admin-password}"
|
|
||||||
# Ignored if authorizationStrategy is defined in controller.JCasC.configScripts
|
|
||||||
authorizationStrategy: |-
|
|
||||||
loggedInUsersCanDoAnything:
|
|
||||||
allowAnonymousRead: false
|
|
||||||
# Optionally specify additional init-containers
|
|
||||||
customInitContainers: []
|
|
||||||
# - name: custom-init
|
|
||||||
# image: "alpine:3.7"
|
|
||||||
# imagePullPolicy: Always
|
|
||||||
# command: [ "uname", "-a" ]
|
|
||||||
|
|
||||||
sidecars:
|
|
||||||
configAutoReload:
|
|
||||||
# If enabled: true, Jenkins Configuration as Code will be reloaded on-the-fly without a reboot. If false or not-specified,
|
|
||||||
# jcasc changes will cause a reboot and will only be applied at the subsequent start-up. Auto-reload uses the
|
|
||||||
# http://<jenkins_url>/reload-configuration-as-code endpoint to reapply config when changes to the configScripts are detected.
|
|
||||||
enabled: true
|
|
||||||
image: kiwigrid/k8s-sidecar:1.15.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
resources: {}
|
|
||||||
# limits:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 100Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 50m
|
|
||||||
# memory: 50Mi
|
|
||||||
# How many connection-related errors to retry on
|
|
||||||
reqRetryConnect: 10
|
|
||||||
# env:
|
|
||||||
# - name: REQ_TIMEOUT
|
|
||||||
# value: "30"
|
|
||||||
# SSH port value can be set to any unused TCP port. The default, 1044, is a non-standard SSH port that has been chosen at random.
|
|
||||||
# Is only used to reload jcasc config from the sidecar container running in the Jenkins controller pod.
|
|
||||||
# This TCP port will not be open in the pod (unless you specifically configure this), so Jenkins will not be
|
|
||||||
# accessible via SSH from outside of the pod. Note if you use non-root pod privileges (runAsUser & fsGroup),
|
|
||||||
# this must be > 1024:
|
|
||||||
sshTcpPort: 1044
|
|
||||||
# folder in the pod that should hold the collected dashboards:
|
|
||||||
folder: "/var/jenkins_home/casc_configs"
|
|
||||||
# If specified, the sidecar will search for JCasC config-maps inside this namespace.
|
|
||||||
# Otherwise the namespace in which the sidecar is running will be used.
|
|
||||||
# It's also possible to specify ALL to search in all namespaces:
|
|
||||||
# searchNamespace:
|
|
||||||
containerSecurityContext:
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
|
|
||||||
# Allows you to inject additional/other sidecars
|
|
||||||
other: []
|
|
||||||
## The example below runs the client for https://smee.io as sidecar container next to Jenkins,
|
|
||||||
## that allows to trigger build behind a secure firewall.
|
|
||||||
## https://jenkins.io/blog/2019/01/07/webhook-firewalls/#triggering-builds-with-webhooks-behind-a-secure-firewall
|
|
||||||
##
|
|
||||||
## Note: To use it you should go to https://smee.io/new and update the url to the generete one.
|
|
||||||
# - name: smee
|
|
||||||
# image: docker.io/twalter/smee-client:1.0.2
|
|
||||||
# args: ["--port", "{{ .Values.controller.servicePort }}", "--path", "/github-webhook/", "--url", "https://smee.io/new"]
|
|
||||||
# resources:
|
|
||||||
# limits:
|
|
||||||
# cpu: 50m
|
|
||||||
# memory: 128Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 10m
|
|
||||||
# memory: 32Mi
|
|
||||||
# Name of the Kubernetes scheduler to use
|
|
||||||
schedulerName: ""
|
|
||||||
# Node labels and tolerations for pod assignment
|
|
||||||
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
|
|
||||||
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
terminationGracePeriodSeconds:
|
|
||||||
|
|
||||||
terminationMessagePath:
|
|
||||||
terminationMessagePolicy:
|
|
||||||
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
affinity: {}
|
|
||||||
# Leverage a priorityClass to ensure your pods survive resource shortages
|
|
||||||
# ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
|
||||||
priorityClassName:
|
|
||||||
|
|
||||||
podAnnotations: {}
|
|
||||||
# Add StatefulSet annotations
|
|
||||||
statefulSetAnnotations: {}
|
|
||||||
|
|
||||||
# StatefulSet updateStrategy
|
|
||||||
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
|
|
||||||
updateStrategy: {}
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
# Override for the default paths that map requests to the backend
|
|
||||||
paths: []
|
|
||||||
# - backend:
|
|
||||||
# serviceName: >-
|
|
||||||
# {{ template "jenkins.fullname" . }}
|
|
||||||
# # Don't use string here, use only integer value!
|
|
||||||
# servicePort: 8080
|
|
||||||
# For Kubernetes v1.19+, use 'networking.k8s.io/v1'
|
|
||||||
apiVersion: "networking.k8s.io/v1"
|
|
||||||
labels: {}
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
hostName: jenkins.kluster.moll.re
|
|
||||||
tls:
|
|
||||||
- secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
hosts:
|
|
||||||
- jenkins.kluster.moll.re
|
|
||||||
|
|
||||||
# often you want to have your controller all locked down and private
|
|
||||||
# but you still want to get webhooks from your SCM
|
|
||||||
# A secondary ingress will let you expose different urls
|
|
||||||
# with a differnt configuration
|
|
||||||
secondaryingress:
|
|
||||||
enabled: false
|
|
||||||
# paths you want forwarded to the backend
|
|
||||||
# ex /github-webhook
|
|
||||||
paths: []
|
|
||||||
# For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'
|
|
||||||
# For Kubernetes v1.19+, use 'networking.k8s.io/v1'
|
|
||||||
apiVersion: "extensions/v1beta1"
|
|
||||||
labels: {}
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: nginx
|
|
||||||
# kubernetes.io/tls-acme: "true"
|
|
||||||
# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
|
|
||||||
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
|
|
||||||
# ingressClassName: nginx
|
|
||||||
# configures the hostname e.g. jenkins-external.example.com
|
|
||||||
hostName:
|
|
||||||
tls:
|
|
||||||
# - secretName: jenkins-external.example.com
|
|
||||||
# hosts:
|
|
||||||
# - jenkins-external.example.com
|
|
||||||
|
|
||||||
|
|
||||||
agent:
|
|
||||||
enabled: true
|
|
||||||
defaultsProviderTemplate: ""
|
|
||||||
# URL for connecting to the Jenkins contoller
|
|
||||||
jenkinsUrl:
|
|
||||||
# connect to the specified host and port, instead of connecting directly to the Jenkins controller
|
|
||||||
jenkinsTunnel:
|
|
||||||
kubernetesConnectTimeout: 5
|
|
||||||
kubernetesReadTimeout: 15
|
|
||||||
maxRequestsPerHostStr: "32"
|
|
||||||
namespace:
|
|
||||||
image: "jenkins/inbound-agent"
|
|
||||||
tag: "4.11.2-4"
|
|
||||||
workingDir: "/home/jenkins/agent"
|
|
||||||
nodeUsageMode: "NORMAL"
|
|
||||||
customJenkinsLabels: []
|
|
||||||
# name of the secret to be used for image pulling
|
|
||||||
imagePullSecretName:
|
|
||||||
componentName: "jenkins-agent"
|
|
||||||
websocket: false
|
|
||||||
privileged: false
|
|
||||||
runAsUser:
|
|
||||||
runAsGroup:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "512m"
|
|
||||||
memory: "512Mi"
|
|
||||||
# You may want to change this to true while testing a new image
|
|
||||||
alwaysPullImage: false
|
|
||||||
# Controls how agent pods are retained after the Jenkins build completes
|
|
||||||
# Possible values: Always, Never, OnFailure
|
|
||||||
podRetention: "Never"
|
|
||||||
# Disable if you do not want the Yaml the agent pod template to show up
|
|
||||||
# in the job Console Output. This can be helpful for either security reasons
|
|
||||||
# or simply to clean up the output to make it easier to read.
|
|
||||||
showRawYaml: true
|
|
||||||
# You can define the volumes that you want to mount for this container
|
|
||||||
# Allowed types are: ConfigMap, EmptyDir, HostPath, Nfs, PVC, Secret
|
|
||||||
# Configure the attributes as they appear in the corresponding Java class for that type
|
|
||||||
# https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes
|
|
||||||
volumes: []
|
|
||||||
# - type: ConfigMap
|
|
||||||
# configMapName: myconfigmap
|
|
||||||
# mountPath: /var/myapp/myconfigmap
|
|
||||||
# - type: EmptyDir
|
|
||||||
# mountPath: /var/myapp/myemptydir
|
|
||||||
# memory: false
|
|
||||||
# - type: HostPath
|
|
||||||
# hostPath: /var/lib/containers
|
|
||||||
# mountPath: /var/myapp/myhostpath
|
|
||||||
# - type: Nfs
|
|
||||||
# mountPath: /var/myapp/mynfs
|
|
||||||
# readOnly: false
|
|
||||||
# serverAddress: "192.0.2.0"
|
|
||||||
# serverPath: /var/lib/containers
|
|
||||||
# - type: PVC
|
|
||||||
# claimName: mypvc
|
|
||||||
# mountPath: /var/myapp/mypvc
|
|
||||||
# readOnly: false
|
|
||||||
# - type: Secret
|
|
||||||
# defaultMode: "600"
|
|
||||||
# mountPath: /var/myapp/mysecret
|
|
||||||
# secretName: mysecret
|
|
||||||
# Pod-wide environment, these vars are visible to any container in the agent pod
|
|
||||||
|
|
||||||
# You can define the workspaceVolume that you want to mount for this container
|
|
||||||
# Allowed types are: DynamicPVC, EmptyDir, HostPath, Nfs, PVC
|
|
||||||
# Configure the attributes as they appear in the corresponding Java class for that type
|
|
||||||
# https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes/workspace
|
|
||||||
workspaceVolume: {}
|
|
||||||
## DynamicPVC example
|
|
||||||
# type: DynamicPVC
|
|
||||||
# configMapName: myconfigmap
|
|
||||||
## EmptyDir example
|
|
||||||
# type: EmptyDir
|
|
||||||
# memory: false
|
|
||||||
## HostPath example
|
|
||||||
# type: HostPath
|
|
||||||
# hostPath: /var/lib/containers
|
|
||||||
## NFS example
|
|
||||||
# type: Nfs
|
|
||||||
# readOnly: false
|
|
||||||
# serverAddress: "192.0.2.0"
|
|
||||||
# serverPath: /var/lib/containers
|
|
||||||
## PVC example
|
|
||||||
# type: PVC
|
|
||||||
# claimName: mypvc
|
|
||||||
# readOnly: false
|
|
||||||
#
|
|
||||||
# Pod-wide environment, these vars are visible to any container in the agent pod
|
|
||||||
envVars: []
|
|
||||||
# - name: PATH
|
|
||||||
# value: /usr/local/bin
|
|
||||||
nodeSelector: {}
|
|
||||||
# Key Value selectors. Ex:
|
|
||||||
# jenkins-agent: v1
|
|
||||||
|
|
||||||
# Executed command when side container gets started
|
|
||||||
command:
|
|
||||||
args: "${computer.jnlpmac} ${computer.name}"
|
|
||||||
# Side container name
|
|
||||||
sideContainerName: "jnlp"
|
|
||||||
# Doesn't allocate pseudo TTY by default
|
|
||||||
TTYEnabled: false
|
|
||||||
# Max number of spawned agent
|
|
||||||
containerCap: 10
|
|
||||||
# Pod name
|
|
||||||
podName: "default"
|
|
||||||
# Allows the Pod to remain active for reuse until the configured number of
|
|
||||||
# minutes has passed since the last step was executed on it.
|
|
||||||
idleMinutes: 0
|
|
||||||
# Raw yaml template for the Pod. For example this allows usage of toleration for agent pods.
|
|
||||||
# https://github.com/jenkinsci/kubernetes-plugin#using-yaml-to-define-pod-templates
|
|
||||||
# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
||||||
yamlTemplate: ""
|
|
||||||
# yamlTemplate: |-
|
|
||||||
# apiVersion: v1
|
|
||||||
# kind: Pod
|
|
||||||
# spec:
|
|
||||||
# tolerations:
|
|
||||||
# - key: "key"
|
|
||||||
# operator: "Equal"
|
|
||||||
# value: "value"
|
|
||||||
# Defines how the raw yaml field gets merged with yaml definitions from inherited pod templates: merge or override
|
|
||||||
yamlMergeStrategy: "override"
|
|
||||||
# Timeout in seconds for an agent to be online
|
|
||||||
connectTimeout: 100
|
|
||||||
# Annotations to apply to the pod.
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
# Disable the default Jenkins Agent configuration.
|
|
||||||
# Useful when configuring agents only with the podTemplates value, since the default podTemplate populated by values mentioned above will be excluded in the rendered template.
|
|
||||||
disableDefaultAgent: false
|
|
||||||
|
|
||||||
# Below is the implementation of custom pod templates for the default configured kubernetes cloud.
|
|
||||||
# Add a key under podTemplates for each pod template. Each key (prior to | character) is just a label, and can be any value.
|
|
||||||
# Keys are only used to give the pod template a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label
|
|
||||||
# characters: lowercase letters, numbers, and hyphens. Each pod template can contain multiple containers.
|
|
||||||
# For this pod templates configuration to be loaded the following values must be set:
|
|
||||||
# controller.JCasC.defaultConfig: true
|
|
||||||
# Best reference is https://<jenkins_url>/configuration-as-code/reference#Cloud-kubernetes. The example below creates a python pod template.
|
|
||||||
podTemplates: {}
|
|
||||||
# python: |
|
|
||||||
# - name: python
|
|
||||||
# label: jenkins-python
|
|
||||||
# serviceAccount: jenkins
|
|
||||||
# containers:
|
|
||||||
# - name: python
|
|
||||||
# image: python:3
|
|
||||||
# command: "/bin/sh -c"
|
|
||||||
# args: "cat"
|
|
||||||
# ttyEnabled: true
|
|
||||||
# privileged: true
|
|
||||||
# resourceRequestCpu: "400m"
|
|
||||||
# resourceRequestMemory: "512Mi"
|
|
||||||
# resourceLimitCpu: "1"
|
|
||||||
# resourceLimitMemory: "1024Mi"
|
|
||||||
|
|
||||||
# Here you can add additional agents
|
|
||||||
# They inherit all values from `agent` so you only need to specify values which differ
|
|
||||||
additionalAgents: {}
|
|
||||||
# maven:
|
|
||||||
# podName: maven
|
|
||||||
# customJenkinsLabels: maven
|
|
||||||
# # An example of overriding the jnlp container
|
|
||||||
# # sideContainerName: jnlp
|
|
||||||
# image: jenkins/jnlp-agent-maven
|
|
||||||
# tag: latest
|
|
||||||
# python:
|
|
||||||
# podName: python
|
|
||||||
# customJenkinsLabels: python
|
|
||||||
# sideContainerName: python
|
|
||||||
# image: python
|
|
||||||
# tag: "3"
|
|
||||||
# command: "/bin/sh -c"
|
|
||||||
# args: "cat"
|
|
||||||
# TTYEnabled: true
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
## A manually managed Persistent Volume and Claim
|
|
||||||
## Requires persistence.enabled: true
|
|
||||||
## If defined, PVC must be created manually before volume will be bound
|
|
||||||
existingClaim: jenkins-data-nfs
|
|
||||||
|
|
||||||
## Install Default RBAC roles and bindings
|
|
||||||
rbac:
|
|
||||||
create: true
|
|
||||||
readSecrets: false
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
create: true
|
|
||||||
# The name of the service account is autogenerated by default
|
|
||||||
name:
|
|
||||||
annotations: {}
|
|
||||||
imagePullSecretName:
|
|
@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: mathieu
|
|
||||||
name: mathieu-nfs
|
|
||||||
labels:
|
|
||||||
directory: mathieu
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "10Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /mathieu
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: mathieu
|
|
||||||
name: mathieu-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "10Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: mathieu
|
|
@ -1,72 +0,0 @@
|
|||||||
#
|
|
||||||
# IMPORTANT NOTE
|
|
||||||
#
|
|
||||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
|
||||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
|
||||||
#
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- image repository
|
|
||||||
repository: ghost
|
|
||||||
# -- image tag
|
|
||||||
# @default -- chart.appVersion
|
|
||||||
tag:
|
|
||||||
# -- image pull policy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
# See https://ghost.org/docs/config/#running-ghost-with-config-env-variables
|
|
||||||
env:
|
|
||||||
url: "https://cinema.kluster.moll.re"
|
|
||||||
database__client: sqlite3
|
|
||||||
database__connection__filename: "content/data/ghost-data.db"
|
|
||||||
database__useNullAsDefault: true,
|
|
||||||
database__debug: false
|
|
||||||
NODE_ENV: production
|
|
||||||
|
|
||||||
# -- Configures service settings for the chart.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 2368
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
# -- Enable and configure ingress settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
main:
|
|
||||||
enabled: true
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
hosts:
|
|
||||||
- host: cinema.kluster.moll.re
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- cinema.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
|
|
||||||
# -- Configure persistence settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
persistence:
|
|
||||||
content:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: mathieu-nfs
|
|
||||||
|
|
||||||
mariadb:
|
|
||||||
enabled: false
|
|
||||||
architecture: standalone
|
|
||||||
auth:
|
|
||||||
database: ghost
|
|
||||||
username: ghost
|
|
||||||
password: ghost
|
|
||||||
rootPassword: ghost-rootpass
|
|
||||||
primary:
|
|
||||||
persistance:
|
|
||||||
enabled: false
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: minecraft
|
|
||||||
labels:
|
|
||||||
app: minecraft
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: forwarding
|
|
||||||
namespace: minecraft
|
|
||||||
labels:
|
|
||||||
app: forwarding
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: forwarding
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: forwarding
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: forwarding
|
|
||||||
image: simonrupf/socat
|
|
||||||
tty: true
|
|
||||||
ports:
|
|
||||||
- containerPort: 25565
|
|
||||||
args: ["TCP4-LISTEN:25565,fork", "TCP6:mc.game.moll.re:25565"]
|
|
||||||
hostNetwork: true
|
|
||||||
nodeSelector:
|
|
||||||
hdd: enabled
|
|
||||||
# ensures we are running on 192.168.1.122, ie pi node 0
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: forwarding
|
|
||||||
namespace: minecraft
|
|
||||||
|
|
||||||
spec:
|
|
||||||
type: NodePort
|
|
||||||
ipFamilyPolicy: PreferDualStack
|
|
||||||
ports:
|
|
||||||
- name: mc
|
|
||||||
port: 25565
|
|
||||||
selector:
|
|
||||||
app: forwarding
|
|
||||||
|
|
@ -1,351 +0,0 @@
|
|||||||
controller:
|
|
||||||
## The name of the Ingress Controller daemonset or deployment.
|
|
||||||
## Autogenerated if not set or set to "".
|
|
||||||
# name: nginx-ingress
|
|
||||||
|
|
||||||
## The kind of the Ingress Controller installation - deployment or daemonset.
|
|
||||||
kind: deployment
|
|
||||||
|
|
||||||
## Deploys the Ingress Controller for NGINX Plus.
|
|
||||||
nginxplus: false
|
|
||||||
|
|
||||||
# Timeout in milliseconds which the Ingress Controller will wait for a successful NGINX reload after a change or at the initial start.
|
|
||||||
nginxReloadTimeout: 60000
|
|
||||||
|
|
||||||
## Support for App Protect
|
|
||||||
appprotect:
|
|
||||||
## Enable the App Protect module in the Ingress Controller.
|
|
||||||
enable: false
|
|
||||||
## Sets log level for App Protect. Allowed values: fatal, error, warn, info, debug, trace
|
|
||||||
# logLevel: fatal
|
|
||||||
|
|
||||||
## Support for App Protect Dos
|
|
||||||
appprotectdos:
|
|
||||||
## Enable the App Protect Dos module in the Ingress Controller.
|
|
||||||
enable: false
|
|
||||||
## Enable debugging for App Protect Dos.
|
|
||||||
debug: false
|
|
||||||
## Max number of nginx processes to support.
|
|
||||||
maxWorkers: 0
|
|
||||||
## Max number of ADMD instances.
|
|
||||||
maxDaemons: 0
|
|
||||||
## RAM memory size to consume in MB.
|
|
||||||
memory: 0
|
|
||||||
|
|
||||||
## Enables the Ingress Controller pods to use the host's network namespace.
|
|
||||||
hostNetwork: false
|
|
||||||
|
|
||||||
## Enables debugging for NGINX. Uses the nginx-debug binary. Requires error-log-level: debug in the ConfigMap via `controller.config.entries`.
|
|
||||||
nginxDebug: false
|
|
||||||
|
|
||||||
## The log level of the Ingress Controller.
|
|
||||||
logLevel: 1
|
|
||||||
|
|
||||||
## A list of custom ports to expose on the NGINX ingress controller pod. Follows the conventional Kubernetes yaml syntax for container ports.
|
|
||||||
customPorts: []
|
|
||||||
|
|
||||||
image:
|
|
||||||
## The image repository of the Ingress Controller.
|
|
||||||
repository: nginx/nginx-ingress
|
|
||||||
|
|
||||||
## The tag of the Ingress Controller image.
|
|
||||||
tag: "2.2.0"
|
|
||||||
|
|
||||||
## The pull policy for the Ingress Controller image.
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
config:
|
|
||||||
## The name of the ConfigMap used by the Ingress Controller.
|
|
||||||
## Autogenerated if not set or set to "".
|
|
||||||
# name: nginx-config
|
|
||||||
|
|
||||||
## The annotations of the Ingress Controller configmap.
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
## The entries of the ConfigMap for customizing NGINX configuration.
|
|
||||||
entries: {}
|
|
||||||
|
|
||||||
## It is recommended to use your own TLS certificates and keys
|
|
||||||
defaultTLS:
|
|
||||||
## The base64-encoded TLS certificate for the default HTTPS server. If not specified, a pre-generated self-signed certificate is used.
|
|
||||||
## Note: It is recommended that you specify your own certificate.
|
|
||||||
cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN2akNDQWFZQ0NRREFPRjl0THNhWFhEQU5CZ2txaGtpRzl3MEJBUXNGQURBaE1SOHdIUVlEVlFRRERCWk8KUjBsT1dFbHVaM0psYzNORGIyNTBjbTlzYkdWeU1CNFhEVEU0TURreE1qRTRNRE16TlZvWERUSXpNRGt4TVRFNApNRE16TlZvd0lURWZNQjBHQTFVRUF3d1dUa2RKVGxoSmJtZHlaWE56UTI5dWRISnZiR3hsY2pDQ0FTSXdEUVlKCktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUwvN2hIUEtFWGRMdjNyaUM3QlBrMTNpWkt5eTlyQ08KR2xZUXYyK2EzUDF0azIrS3YwVGF5aGRCbDRrcnNUcTZzZm8vWUk1Y2Vhbkw4WGM3U1pyQkVRYm9EN2REbWs1Qgo4eDZLS2xHWU5IWlg0Rm5UZ0VPaStlM2ptTFFxRlBSY1kzVnNPazFFeUZBL0JnWlJVbkNHZUtGeERSN0tQdGhyCmtqSXVuektURXUyaDU4Tlp0S21ScUJHdDEwcTNRYzhZT3ExM2FnbmovUWRjc0ZYYTJnMjB1K1lYZDdoZ3krZksKWk4vVUkxQUQ0YzZyM1lma1ZWUmVHd1lxQVp1WXN2V0RKbW1GNWRwdEMzN011cDBPRUxVTExSakZJOTZXNXIwSAo1TmdPc25NWFJNV1hYVlpiNWRxT3R0SmRtS3FhZ25TZ1JQQVpQN2MwQjFQU2FqYzZjNGZRVXpNQ0F3RUFBVEFOCkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWpLb2tRdGRPcEsrTzhibWVPc3lySmdJSXJycVFVY2ZOUitjb0hZVUoKdGhrYnhITFMzR3VBTWI5dm15VExPY2xxeC9aYzJPblEwMEJCLzlTb0swcitFZ1U2UlVrRWtWcitTTFA3NTdUWgozZWI4dmdPdEduMS9ienM3bzNBaS9kclkrcUI5Q2k1S3lPc3FHTG1US2xFaUtOYkcyR1ZyTWxjS0ZYQU80YTY3Cklnc1hzYktNbTQwV1U3cG9mcGltU1ZmaXFSdkV5YmN3N0NYODF6cFErUyt1eHRYK2VBZ3V0NHh3VlI5d2IyVXYKelhuZk9HbWhWNThDd1dIQnNKa0kxNXhaa2VUWXdSN0diaEFMSkZUUkk3dkhvQXprTWIzbjAxQjQyWjNrN3RXNQpJUDFmTlpIOFUvOWxiUHNoT21FRFZkdjF5ZytVRVJxbStGSis2R0oxeFJGcGZnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
|
|
||||||
|
|
||||||
## The base64-encoded TLS key for the default HTTPS server. Note: If not specified, a pre-generated key is used.
|
|
||||||
## Note: It is recommended that you specify your own key.
|
|
||||||
key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdi91RWM4b1JkMHUvZXVJTHNFK1RYZUprckxMMnNJNGFWaEMvYjVyYy9XMlRiNHEvClJOcktGMEdYaVN1eE9ycXgrajlnamx4NXFjdnhkenRKbXNFUkJ1Z1B0ME9hVGtIekhvb3FVWmcwZGxmZ1dkT0EKUTZMNTdlT1l0Q29VOUZ4amRXdzZUVVRJVUQ4R0JsRlNjSVo0b1hFTkhzbysyR3VTTWk2Zk1wTVM3YUhudzFtMApxWkdvRWEzWFNyZEJ6eGc2clhkcUNlUDlCMXl3VmRyYURiUzc1aGQzdUdETDU4cGszOVFqVUFQaHpxdmRoK1JWClZGNGJCaW9CbTVpeTlZTW1hWVhsMm0wTGZzeTZuUTRRdFFzdEdNVWozcGJtdlFmazJBNnljeGRFeFpkZFZsdmwKMm82MjBsMllxcHFDZEtCRThCay90elFIVTlKcU56cHpoOUJUTXdJREFRQUJBb0lCQVFDZklHbXowOHhRVmorNwpLZnZJUXQwQ0YzR2MxNld6eDhVNml4MHg4Mm15d1kxUUNlL3BzWE9LZlRxT1h1SENyUlp5TnUvZ2IvUUQ4bUFOCmxOMjRZTWl0TWRJODg5TEZoTkp3QU5OODJDeTczckM5bzVvUDlkazAvYzRIbjAzSkVYNzZ5QjgzQm9rR1FvYksKMjhMNk0rdHUzUmFqNjd6Vmc2d2szaEhrU0pXSzBwV1YrSjdrUkRWYmhDYUZhNk5nMUZNRWxhTlozVDhhUUtyQgpDUDNDeEFTdjYxWTk5TEI4KzNXWVFIK3NYaTVGM01pYVNBZ1BkQUk3WEh1dXFET1lvMU5PL0JoSGt1aVg2QnRtCnorNTZud2pZMy8yUytSRmNBc3JMTnIwMDJZZi9oY0IraVlDNzVWYmcydVd6WTY3TWdOTGQ5VW9RU3BDRkYrVm4KM0cyUnhybnhBb0dCQU40U3M0ZVlPU2huMVpQQjdhTUZsY0k2RHR2S2ErTGZTTXFyY2pOZjJlSEpZNnhubmxKdgpGenpGL2RiVWVTbWxSekR0WkdlcXZXaHFISy9iTjIyeWJhOU1WMDlRQ0JFTk5jNmtWajJTVHpUWkJVbEx4QzYrCk93Z0wyZHhKendWelU0VC84ajdHalRUN05BZVpFS2FvRHFyRG5BYWkyaW5oZU1JVWZHRXFGKzJyQW9HQkFOMVAKK0tZL0lsS3RWRzRKSklQNzBjUis3RmpyeXJpY05iWCtQVzUvOXFHaWxnY2grZ3l4b25BWlBpd2NpeDN3QVpGdwpaZC96ZFB2aTBkWEppc1BSZjRMazg5b2pCUmpiRmRmc2l5UmJYbyt3TFU4NUhRU2NGMnN5aUFPaTVBRHdVU0FkCm45YWFweUNweEFkREtERHdObit3ZFhtaTZ0OHRpSFRkK3RoVDhkaVpBb0dCQUt6Wis1bG9OOTBtYlF4VVh5YUwKMjFSUm9tMGJjcndsTmVCaWNFSmlzaEhYa2xpSVVxZ3hSZklNM2hhUVRUcklKZENFaHFsV01aV0xPb2I2NTNyZgo3aFlMSXM1ZUtka3o0aFRVdnpldm9TMHVXcm9CV2xOVHlGanIrSWhKZnZUc0hpOGdsU3FkbXgySkJhZUFVWUNXCndNdlQ4NmNLclNyNkQrZG8wS05FZzFsL0FvR0FlMkFVdHVFbFNqLzBmRzgrV3hHc1RFV1JqclRNUzRSUjhRWXQKeXdjdFA4aDZxTGxKUTRCWGxQU05rMXZLTmtOUkxIb2pZT2pCQTViYjhibXNVU1BlV09NNENoaFJ4QnlHbmR2eAphYkJDRkFwY0IvbEg4d1R0alVZYlN5T294ZGt5OEp0ek90ajJhS0FiZHd6NlArWDZDODhjZmxYVFo5MWpYL3RMCjF3TmRKS2tDZ1lCbyt0UzB5TzJ2SWFmK2UwSkN5TGhzVDQ5cTN3Zis2QWVqWGx2WDJ1VnRYejN5QTZnbXo5aCsKcDNlK2JMRUxwb3B0WFhNdUFRR0xhUkcrYlNNcjR5dERYbE5ZSndUeThXczNKY3dlSTdqZVp2b0ZpbmNvVlVIMwphdmxoTUVCRGYxSjltSDB5cDBwWUNaS2ROdHNvZEZtQktzVEtQMjJhTmtsVVhCS3gyZzR6cFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
|
|
||||||
|
|
||||||
## The secret with a TLS certificate and key for the default HTTPS server.
|
|
||||||
## The value must follow the following format: `<namespace>/<name>`.
|
|
||||||
## Used as an alternative to specifying a certificate and key using `controller.defaultTLS.cert` and `controller.defaultTLS.key` parameters.
|
|
||||||
## Format: <namespace>/<secret_name>
|
|
||||||
secret:
|
|
||||||
|
|
||||||
wildcardTLS:
|
|
||||||
## The base64-encoded TLS certificate for every Ingress/VirtualServer host that has TLS enabled but no secret specified.
|
|
||||||
## If the parameter is not set, for such Ingress/VirtualServer hosts NGINX will break any attempt to establish a TLS connection.
|
|
||||||
cert: ""
|
|
||||||
|
|
||||||
## The base64-encoded TLS key for every Ingress/VirtualServer host that has TLS enabled but no secret specified.
|
|
||||||
## If the parameter is not set, for such Ingress/VirtualServer hosts NGINX will break any attempt to establish a TLS connection.
|
|
||||||
key: ""
|
|
||||||
|
|
||||||
## The secret with a TLS certificate and key for every Ingress/VirtualServer host that has TLS enabled but no secret specified.
|
|
||||||
## The value must follow the following format: `<namespace>/<name>`.
|
|
||||||
## Used as an alternative to specifying a certificate and key using `controller.wildcardTLS.cert` and `controller.wildcardTLS.key` parameters.
|
|
||||||
## Format: <namespace>/<secret_name>
|
|
||||||
secret:
|
|
||||||
|
|
||||||
## The node selector for pod assignment for the Ingress Controller pods.
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
## The termination grace period of the Ingress Controller pod.
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
|
|
||||||
## The resources of the Ingress Controller pods.
|
|
||||||
resources: {}
|
|
||||||
# limits:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 64Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 64Mi
|
|
||||||
|
|
||||||
## The tolerations of the Ingress Controller pods.
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
## The affinity of the Ingress Controller pods.
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
## The volumes of the Ingress Controller pods.
|
|
||||||
volumes: []
|
|
||||||
# - name: extra-conf
|
|
||||||
# configMap:
|
|
||||||
# name: extra-conf
|
|
||||||
|
|
||||||
## The volumeMounts of the Ingress Controller pods.
|
|
||||||
volumeMounts: []
|
|
||||||
# - name: extra-conf
|
|
||||||
# mountPath: /etc/nginx/conf.d/extra.conf
|
|
||||||
# subPath: extra.conf
|
|
||||||
|
|
||||||
## InitContainers for the Ingress Controller pods.
|
|
||||||
initContainers: []
|
|
||||||
# - name: init-container
|
|
||||||
# image: busybox:1.34
|
|
||||||
# command: ['sh', '-c', 'echo this is initial setup!']
|
|
||||||
|
|
||||||
## Extra containers for the Ingress Controller pods.
|
|
||||||
extraContainers: []
|
|
||||||
# - name: container
|
|
||||||
# image: busybox:1.34
|
|
||||||
# command: ['sh', '-c', 'echo this is a sidecar!']
|
|
||||||
|
|
||||||
## The number of replicas of the Ingress Controller deployment.
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
## A class of the Ingress Controller.
|
|
||||||
|
|
||||||
## IngressClass resource with the name equal to the class must be deployed. Otherwise,
|
|
||||||
## the Ingress Controller will fail to start.
|
|
||||||
## The Ingress Controller only processes resources that belong to its class - i.e. have the "ingressClassName" field resource equal to the class.
|
|
||||||
|
|
||||||
## The Ingress Controller processes all the resources that do not have the "ingressClassName" field for all versions of kubernetes.
|
|
||||||
ingressClass: nginx
|
|
||||||
|
|
||||||
## New Ingresses without an ingressClassName field specified will be assigned the class specified in `controller.ingressClass`.
|
|
||||||
setAsDefaultIngress: false
|
|
||||||
|
|
||||||
## Namespace to watch for Ingress resources. By default the Ingress Controller watches all namespaces.
|
|
||||||
watchNamespace: ""
|
|
||||||
|
|
||||||
## Enable the custom resources.
|
|
||||||
enableCustomResources: true
|
|
||||||
|
|
||||||
## Enable preview policies. This parameter is deprecated. To enable OIDC Policies please use controller.enableOIDC instead.
|
|
||||||
enablePreviewPolicies: false
|
|
||||||
|
|
||||||
## Enable OIDC policies.
|
|
||||||
enableOIDC: false
|
|
||||||
|
|
||||||
## Enable TLS Passthrough on port 443. Requires controller.enableCustomResources.
|
|
||||||
enableTLSPassthrough: false
|
|
||||||
|
|
||||||
## Enable cert manager for Virtual Server resources. Requires controller.enableCustomResources.
|
|
||||||
enableCertManager: false
|
|
||||||
|
|
||||||
globalConfiguration:
|
|
||||||
## Creates the GlobalConfiguration custom resource. Requires controller.enableCustomResources.
|
|
||||||
create: false
|
|
||||||
|
|
||||||
## The spec of the GlobalConfiguration for defining the global configuration parameters of the Ingress Controller.
|
|
||||||
spec: {}
|
|
||||||
# listeners:
|
|
||||||
# - name: dns-udp
|
|
||||||
# port: 5353
|
|
||||||
# protocol: UDP
|
|
||||||
# - name: dns-tcp
|
|
||||||
# port: 5353
|
|
||||||
# protocol: TCP
|
|
||||||
|
|
||||||
## Enable custom NGINX configuration snippets in Ingress, VirtualServer, VirtualServerRoute and TransportServer resources.
|
|
||||||
enableSnippets: false
|
|
||||||
|
|
||||||
## Add a location based on the value of health-status-uri to the default server. The location responds with the 200 status code for any request.
|
|
||||||
## Useful for external health-checking of the Ingress Controller.
|
|
||||||
healthStatus: false
|
|
||||||
|
|
||||||
## Sets the URI of health status location in the default server. Requires controller.healthStatus.
|
|
||||||
healthStatusURI: "/nginx-health"
|
|
||||||
|
|
||||||
nginxStatus:
|
|
||||||
## Enable the NGINX stub_status, or the NGINX Plus API.
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
## Set the port where the NGINX stub_status or the NGINX Plus API is exposed.
|
|
||||||
port: 8080
|
|
||||||
|
|
||||||
## Add IPv4 IP/CIDR blocks to the allow list for NGINX stub_status or the NGINX Plus API. Separate multiple IP/CIDR by commas.
|
|
||||||
allowCidrs: "127.0.0.1"
|
|
||||||
|
|
||||||
service:
|
|
||||||
## Creates a service to expose the Ingress Controller pods.
|
|
||||||
create: true
|
|
||||||
|
|
||||||
## The type of service to create for the Ingress Controller.
|
|
||||||
type: LoadBalancer
|
|
||||||
|
|
||||||
## The externalTrafficPolicy of the service. The value Local preserves the client source IP.
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
|
|
||||||
## The annotations of the Ingress Controller service.
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
## The extra labels of the service.
|
|
||||||
extraLabels: {}
|
|
||||||
|
|
||||||
## The static IP address for the load balancer. Requires controller.service.type set to LoadBalancer. The cloud provider must support this feature.
|
|
||||||
loadBalancerIP: ""
|
|
||||||
|
|
||||||
## The list of external IPs for the Ingress Controller service.
|
|
||||||
externalIPs: []
|
|
||||||
|
|
||||||
## The IP ranges (CIDR) that are allowed to access the load balancer. Requires controller.service.type set to LoadBalancer. The cloud provider must support this feature.
|
|
||||||
loadBalancerSourceRanges: []
|
|
||||||
|
|
||||||
## The name of the service
|
|
||||||
## Autogenerated if not set or set to "".
|
|
||||||
# name: nginx-ingress
|
|
||||||
|
|
||||||
httpPort:
|
|
||||||
## Enables the HTTP port for the Ingress Controller service.
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
## The HTTP port of the Ingress Controller service.
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
## The custom NodePort for the HTTP port. Requires controller.service.type set to NodePort.
|
|
||||||
nodePort: ""
|
|
||||||
|
|
||||||
## The HTTP port on the POD where the Ingress Controller service is running.
|
|
||||||
targetPort: 80
|
|
||||||
|
|
||||||
httpsPort:
|
|
||||||
## Enables the HTTPS port for the Ingress Controller service.
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
## The HTTPS port of the Ingress Controller service.
|
|
||||||
port: 443
|
|
||||||
|
|
||||||
## The custom NodePort for the HTTPS port. Requires controller.service.type set to NodePort.
|
|
||||||
nodePort: ""
|
|
||||||
|
|
||||||
## The HTTPS port on the POD where the Ingress Controller service is running.
|
|
||||||
targetPort: 443
|
|
||||||
|
|
||||||
## A list of custom ports to expose through the Ingress Controller service. Follows the conventional Kubernetes yaml syntax for service ports.
|
|
||||||
customPorts: []
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
## The name of the service account of the Ingress Controller pods. Used for RBAC.
|
|
||||||
## Autogenerated if not set or set to "".
|
|
||||||
# name: nginx-ingress
|
|
||||||
|
|
||||||
## The name of the secret containing docker registry credentials.
|
|
||||||
## Secret must exist in the same namespace as the helm release.
|
|
||||||
imagePullSecretName: ""
|
|
||||||
|
|
||||||
reportIngressStatus:
|
|
||||||
## Updates the address field in the status of Ingress resources with an external address of the Ingress Controller.
|
|
||||||
## You must also specify the source of the external address either through an external service via controller.reportIngressStatus.externalService,
|
|
||||||
## controller.reportIngressStatus.ingressLink or the external-status-address entry in the ConfigMap via controller.config.entries.
|
|
||||||
## Note: controller.config.entries.external-status-address takes precedence over the others.
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
## Specifies the name of the service with the type LoadBalancer through which the Ingress Controller is exposed externally.
|
|
||||||
## The external address of the service is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute resources.
|
|
||||||
## controller.reportIngressStatus.enable must be set to true.
|
|
||||||
## The default is autogenerated and matches the created service (see controller.service.create).
|
|
||||||
# externalService: nginx-ingress
|
|
||||||
|
|
||||||
## Specifies the name of the IngressLink resource, which exposes the Ingress Controller pods via a BIG-IP system.
|
|
||||||
## The IP of the BIG-IP system is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute resources.
|
|
||||||
## controller.reportIngressStatus.enable must be set to true.
|
|
||||||
ingressLink: ""
|
|
||||||
|
|
||||||
## Enable Leader election to avoid multiple replicas of the controller reporting the status of Ingress resources. controller.reportIngressStatus.enable must be set to true.
|
|
||||||
enableLeaderElection: true
|
|
||||||
|
|
||||||
## Specifies the name of the ConfigMap, within the same namespace as the controller, used as the lock for leader election. controller.reportIngressStatus.enableLeaderElection must be set to true.
|
|
||||||
## Autogenerated if not set or set to "".
|
|
||||||
# leaderElectionLockName: "nginx-ingress-leader-election"
|
|
||||||
|
|
||||||
## The annotations of the leader election configmap.
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
pod:
|
|
||||||
## The annotations of the Ingress Controller pod.
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
## The additional extra labels of the Ingress Controller pod.
|
|
||||||
extraLabels: {}
|
|
||||||
|
|
||||||
## The PriorityClass of the ingress controller pods.
|
|
||||||
priorityClassName:
|
|
||||||
|
|
||||||
readyStatus:
|
|
||||||
## Enables readiness endpoint "/nginx-ready". The endpoint returns a success code when NGINX has loaded all the config after startup.
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
## Set the port where the readiness endpoint is exposed.
|
|
||||||
port: 8081
|
|
||||||
|
|
||||||
## Enable collection of latency metrics for upstreams. Requires prometheus.create.
|
|
||||||
enableLatencyMetrics: false
|
|
||||||
|
|
||||||
rbac:
|
|
||||||
## Configures RBAC.
|
|
||||||
create: true
|
|
||||||
|
|
||||||
prometheus:
|
|
||||||
## Expose NGINX or NGINX Plus metrics in the Prometheus format.
|
|
||||||
create: true
|
|
||||||
|
|
||||||
## Configures the port to scrape the metrics.
|
|
||||||
port: 9113
|
|
||||||
|
|
||||||
## Specifies the namespace/name of a Kubernetes TLS Secret which will be used to protect the Prometheus endpoint.
|
|
||||||
secret: ""
|
|
||||||
|
|
||||||
## Configures the HTTP scheme used.
|
|
||||||
scheme: http
|
|
||||||
|
|
||||||
nginxServiceMesh:
|
|
||||||
## Enables integration with NGINX Service Mesh.
|
|
||||||
## Requires controller.nginxplus
|
|
||||||
enable: false
|
|
||||||
|
|
||||||
## Enables NGINX Service Mesh workload to route egress traffic through the Ingress Controller.
|
|
||||||
## Requires nginxServiceMesh.enable
|
|
||||||
enableEgress: false
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: nocodb
|
|
||||||
labels:
|
|
||||||
app: nocodb
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: nocodb
|
|
||||||
namespace: nocodb
|
|
||||||
labels:
|
|
||||||
app: nocodb
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: nocodb
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nocodb
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: nocodb
|
|
||||||
image: nocodb/nocodb
|
|
||||||
tty: true
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: nocodb
|
|
||||||
namespace: nocodb
|
|
||||||
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8080
|
|
||||||
selector:
|
|
||||||
app: nocodb
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: nocodb
|
|
||||||
name: nocodb-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- nocodb.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: nocodb.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: nocodb
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,26 +0,0 @@
|
|||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: pihole
|
|
||||||
name: pihole-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- pihole.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: pihole.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: pihole-web
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: pihole
|
|
||||||
name: pihole-nfs
|
|
||||||
labels:
|
|
||||||
directory: pihole
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
capacity:
|
|
||||||
storage: "500Mi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /pihole
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
## pihole.persistentvolumeclaim.yml
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: pihole
|
|
||||||
name: pihole-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "500Mi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: pihole
|
|
||||||
---
|
|
@ -1,397 +0,0 @@
|
|||||||
# Default values for pihole.
|
|
||||||
# This is a YAML-formatted file.
|
|
||||||
# Declare variables to be passed into your templates.
|
|
||||||
|
|
||||||
# -- The number of replicas
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
# -- The `spec.strategyTpye` for updates
|
|
||||||
strategyType: RollingUpdate
|
|
||||||
|
|
||||||
# -- The maximum number of Pods that can be created over the desired number of `ReplicaSet` during updating.
|
|
||||||
maxSurge: 1
|
|
||||||
|
|
||||||
# -- The maximum number of Pods that can be unavailable during updating
|
|
||||||
maxUnavailable: 1
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- the repostory to pull the image from
|
|
||||||
repository: "pihole/pihole"
|
|
||||||
# -- the docker tag, if left empty it will get it from the chart's appVersion
|
|
||||||
tag: ""
|
|
||||||
# -- the pull policy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
dualStack:
|
|
||||||
# -- set this to true to enable creation of DualStack services or creation of separate IPv6 services if `serviceDns.type` is set to `"LoadBalancer"`
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
dnsHostPort:
|
|
||||||
# -- set this to true to enable dnsHostPort
|
|
||||||
enabled: false
|
|
||||||
# -- default port for this pod
|
|
||||||
port: 53
|
|
||||||
|
|
||||||
# -- Configuration for the DNS service on port 53
|
|
||||||
serviceDns:
|
|
||||||
|
|
||||||
# -- deploys a mixed (TCP + UDP) Service instead of separate ones
|
|
||||||
mixedService: false
|
|
||||||
|
|
||||||
# -- `spec.type` for the DNS Service
|
|
||||||
type: LoadBalancer
|
|
||||||
|
|
||||||
# -- The port of the DNS service
|
|
||||||
port: 53
|
|
||||||
|
|
||||||
# -- Optional node port for the DNS service
|
|
||||||
nodePort: ""
|
|
||||||
|
|
||||||
# -- `spec.externalTrafficPolicy` for the DHCP Service
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
|
|
||||||
# -- A fixed `spec.loadBalancerIP` for the DNS Service
|
|
||||||
loadBalancerIP: 192.168.1.3
|
|
||||||
# -- A fixed `spec.loadBalancerIP` for the IPv6 DNS Service
|
|
||||||
loadBalancerIPv6: ""
|
|
||||||
|
|
||||||
# -- Annotations for the DNS service
|
|
||||||
annotations:
|
|
||||||
# metallb.universe.tf/address-pool: network-services
|
|
||||||
metallb.universe.tf/allow-shared-ip: pihole-svc
|
|
||||||
|
|
||||||
# -- Configuration for the DHCP service on port 67
|
|
||||||
serviceDhcp:
|
|
||||||
|
|
||||||
# -- Generate a Service resource for DHCP traffic
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# -- `spec.type` for the DHCP Service
|
|
||||||
type: NodePort
|
|
||||||
|
|
||||||
# -- `spec.externalTrafficPolicy` for the DHCP Service
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
|
|
||||||
# -- A fixed `spec.loadBalancerIP` for the DHCP Service
|
|
||||||
loadBalancerIP: ""
|
|
||||||
# -- A fixed `spec.loadBalancerIP` for the IPv6 DHCP Service
|
|
||||||
loadBalancerIPv6: ""
|
|
||||||
|
|
||||||
# -- Annotations for the DHCP service
|
|
||||||
annotations: {}
|
|
||||||
# metallb.universe.tf/address-pool: network-services
|
|
||||||
# metallb.universe.tf/allow-shared-ip: pihole-svc
|
|
||||||
|
|
||||||
# -- Configuration for the web interface service
|
|
||||||
serviceWeb:
|
|
||||||
# -- Configuration for the HTTP web interface listener
|
|
||||||
http:
|
|
||||||
|
|
||||||
# -- Generate a service for HTTP traffic
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# -- The port of the web HTTP service
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
# -- Configuration for the HTTPS web interface listener
|
|
||||||
https:
|
|
||||||
# -- Generate a service for HTTPS traffic
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# -- The port of the web HTTPS service
|
|
||||||
port: 443
|
|
||||||
|
|
||||||
# -- `spec.type` for the web interface Service
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
# -- `spec.externalTrafficPolicy` for the web interface Service
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
|
|
||||||
# -- A fixed `spec.loadBalancerIP` for the web interface Service
|
|
||||||
loadBalancerIP: ""
|
|
||||||
# -- A fixed `spec.loadBalancerIP` for the IPv6 web interface Service
|
|
||||||
loadBalancerIPv6: ""
|
|
||||||
|
|
||||||
# -- Annotations for the DHCP service
|
|
||||||
annotations: {}
|
|
||||||
# metallb.universe.tf/address-pool: network-services
|
|
||||||
# metallb.universe.tf/allow-shared-ip: pihole-svc
|
|
||||||
|
|
||||||
virtualHost: pi.hole
|
|
||||||
|
|
||||||
# -- Configuration for the Ingress
|
|
||||||
ingress:
|
|
||||||
# -- Generate a Ingress resource
|
|
||||||
enabled: false # DONE EXTERNALLY
|
|
||||||
|
|
||||||
# -- Specify an ingressClassName
|
|
||||||
# ingressClassName: nginx
|
|
||||||
|
|
||||||
# -- Annotations for the ingress
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: nginx
|
|
||||||
# kubernetes.io/tls-acme: "true"
|
|
||||||
path: /
|
|
||||||
hosts:
|
|
||||||
# virtualHost (default value is pi.hole) will be appended to the hosts
|
|
||||||
- chart-example.local
|
|
||||||
tls: []
|
|
||||||
# - secretName: chart-example-tls
|
|
||||||
# hosts:
|
|
||||||
# #- virtualHost (default value is pi.hole) will be appended to the hosts
|
|
||||||
# - chart-example.local
|
|
||||||
|
|
||||||
# -- Probes configuration
|
|
||||||
probes:
|
|
||||||
# -- probes.liveness -- Configure the healthcheck for the ingress controller
|
|
||||||
liveness:
|
|
||||||
# -- Generate a liveness probe
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
failureThreshold: 10
|
|
||||||
timeoutSeconds: 5
|
|
||||||
readiness:
|
|
||||||
# -- Generate a readiness probe
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
failureThreshold: 3
|
|
||||||
timeoutSeconds: 5
|
|
||||||
|
|
||||||
# -- 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:'.
|
|
||||||
resources: {}
|
|
||||||
# limits:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
|
|
||||||
# -- `spec.PersitentVolumeClaim` configuration
|
|
||||||
persistentVolumeClaim:
|
|
||||||
# -- set to true to use pvc
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# -- specify an existing `PersistentVolumeClaim` to use
|
|
||||||
existingClaim: "pihole-nfs"
|
|
||||||
|
|
||||||
# -- Annotations for the `PersitentVolumeClaim`
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
|
|
||||||
size: "500Mi"
|
|
||||||
|
|
||||||
## 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: "-"
|
|
||||||
|
|
||||||
## If subPath is set mount a sub folder of a volume instead of the root of the volume.
|
|
||||||
## This is especially handy for volume plugins that don't natively support sub mounting (like glusterfs).
|
|
||||||
|
|
||||||
## subPath: "pihole"
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
# -- Specify a priorityClassName
|
|
||||||
# priorityClassName: ""
|
|
||||||
|
|
||||||
# Reference: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
|
||||||
topologySpreadConstraints: []
|
|
||||||
# - maxSkew: <integer>
|
|
||||||
# topologyKey: <string>
|
|
||||||
# whenUnsatisfiable: <string>
|
|
||||||
# labelSelector: <object>
|
|
||||||
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- Administrator password when not using an existing secret (see below)
|
|
||||||
adminPassword: "admin"
|
|
||||||
|
|
||||||
# -- Use an existing secret for the admin password.
|
|
||||||
admin:
|
|
||||||
# -- Specify an existing secret to use as admin password
|
|
||||||
existingSecret: ""
|
|
||||||
# -- Specify the key inside the secret to use
|
|
||||||
passwordKey: ""
|
|
||||||
|
|
||||||
# -- extraEnvironmentVars is a list of extra enviroment variables to set for pihole to use
|
|
||||||
extraEnvVars: {}
|
|
||||||
# TZ: UTC
|
|
||||||
|
|
||||||
# -- extraEnvVarsSecret is a list of secrets to load in as environment variables.
|
|
||||||
extraEnvVarsSecret: {}
|
|
||||||
# env_var:
|
|
||||||
# name: secret-name
|
|
||||||
# key: secret-key
|
|
||||||
|
|
||||||
# -- default upstream DNS 1 server to use
|
|
||||||
DNS1: "8.8.8.8"
|
|
||||||
# -- default upstream DNS 2 server to use
|
|
||||||
DNS2: "8.8.4.4"
|
|
||||||
|
|
||||||
antiaff:
|
|
||||||
# -- set to true to enable antiaffinity (example: 2 pihole DNS in the same cluster)
|
|
||||||
enabled: false
|
|
||||||
# -- Here you can set the pihole release (you set in `helm install <releasename> ...`)
|
|
||||||
# you want to avoid
|
|
||||||
avoidRelease: pihole1
|
|
||||||
# -- Here you can choose between preferred or required
|
|
||||||
strict: true
|
|
||||||
|
|
||||||
doh:
|
|
||||||
# -- set to true to enabled DNS over HTTPs via cloudflared
|
|
||||||
enabled: false
|
|
||||||
name: "cloudflared"
|
|
||||||
repository: "crazymax/cloudflared"
|
|
||||||
tag: latest
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# -- Here you can pass environment variables to the DoH container, for example:
|
|
||||||
envVars: {}
|
|
||||||
# TUNNEL_DNS_UPSTREAM: "https://1.1.1.2/dns-query,https://1.0.0.2/dns-query"
|
|
||||||
|
|
||||||
# -- Probes configuration
|
|
||||||
probes:
|
|
||||||
# -- Configure the healthcheck for the doh container
|
|
||||||
liveness:
|
|
||||||
# -- set to true to enable liveness probe
|
|
||||||
enabled: true
|
|
||||||
# -- defines the initial delay for the liveness probe
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
# -- defines the failure threshold for the liveness probe
|
|
||||||
failureThreshold: 10
|
|
||||||
# -- defines the timeout in secondes for the liveness probe
|
|
||||||
timeoutSeconds: 5
|
|
||||||
|
|
||||||
dnsmasq:
|
|
||||||
# -- Add upstream dns servers. All lines will be added to the pihole dnsmasq configuration
|
|
||||||
upstreamServers: []
|
|
||||||
# - server=/foo.bar/192.168.178.10
|
|
||||||
# - server=/bar.foo/192.168.178.11
|
|
||||||
|
|
||||||
# -- Add custom dns entries to override the dns resolution. All lines will be added to the pihole dnsmasq configuration.
|
|
||||||
customDnsEntries: []
|
|
||||||
# - address=/foo.bar/192.168.178.10
|
|
||||||
# - address=/bar.foo/192.168.178.11
|
|
||||||
|
|
||||||
# -- Dnsmasq reads the /etc/hosts file to resolve ips. You can add additional entries if you like
|
|
||||||
additionalHostsEntries: []
|
|
||||||
# - 192.168.0.3 host4
|
|
||||||
# - 192.168.0.4 host5
|
|
||||||
|
|
||||||
# -- Static DHCP config
|
|
||||||
staticDhcpEntries: []
|
|
||||||
# staticDhcpEntries:
|
|
||||||
# - dhcp-host=MAC_ADDRESS,IP_ADDRESS,HOSTNAME
|
|
||||||
|
|
||||||
# -- Other options
|
|
||||||
customSettings:
|
|
||||||
# otherSettings:
|
|
||||||
# - rebind-domain-ok=/plex.direct/
|
|
||||||
|
|
||||||
# -- Here we specify custom cname entries that should point to `A` records or
|
|
||||||
# elements in customDnsEntries array.
|
|
||||||
# The format should be:
|
|
||||||
# - cname=cname.foo.bar,foo.bar
|
|
||||||
# - cname=cname.bar.foo,bar.foo
|
|
||||||
# - cname=cname record,dns record
|
|
||||||
customCnameEntries: []
|
|
||||||
# Here we specify custom cname entries that should point to `A` records or
|
|
||||||
# elements in customDnsEntries array.
|
|
||||||
# The format should be:
|
|
||||||
# - cname=cname.foo.bar,foo.bar
|
|
||||||
# - cname=cname.bar.foo,bar.foo
|
|
||||||
# - cname=cname record,dns record
|
|
||||||
|
|
||||||
# -- list of adlists to import during initial start of the container
|
|
||||||
adlists: {}
|
|
||||||
# If you want to provide blocklists, add them here.
|
|
||||||
# - https://hosts-file.net/grm.txt
|
|
||||||
# - https://reddestdream.github.io/Projects/MinimalHosts/etc/MinimalHostsBlocker/minimalhosts
|
|
||||||
|
|
||||||
# -- list of whitelisted domains to import during initial start of the container
|
|
||||||
whitelist: {}
|
|
||||||
# If you want to provide whitelisted domains, add them here.
|
|
||||||
# - clients4.google.com
|
|
||||||
|
|
||||||
# -- list of blacklisted domains to import during initial start of the container
|
|
||||||
blacklist: {}
|
|
||||||
# If you want to have special domains blacklisted, add them here
|
|
||||||
# - *.blackist.com
|
|
||||||
|
|
||||||
# -- list of blacklisted regex expressions to import during initial start of the container
|
|
||||||
regex: {}
|
|
||||||
# Add regular expression blacklist items
|
|
||||||
# - (^|\.)facebook\.com$
|
|
||||||
|
|
||||||
# -- values that should be added to pihole-FTL.conf
|
|
||||||
ftl: {}
|
|
||||||
# Add values for pihole-FTL.conf
|
|
||||||
# MAXDBDAYS: 14
|
|
||||||
|
|
||||||
# -- port the container should use to expose HTTP traffic
|
|
||||||
webHttp: "80"
|
|
||||||
|
|
||||||
# -- port the container should use to expose HTTPS traffic
|
|
||||||
webHttps: "443"
|
|
||||||
|
|
||||||
# -- hostname of pod
|
|
||||||
hostname: ""
|
|
||||||
|
|
||||||
# -- should the container use host network
|
|
||||||
hostNetwork: "false"
|
|
||||||
|
|
||||||
# -- should container run in privileged mode
|
|
||||||
privileged: "false"
|
|
||||||
|
|
||||||
customVolumes:
|
|
||||||
# -- set this to true to enable custom volumes
|
|
||||||
enabled: false
|
|
||||||
# -- any volume type can be used here
|
|
||||||
config: {}
|
|
||||||
# hostPath:
|
|
||||||
# path: "/mnt/data"
|
|
||||||
|
|
||||||
# -- Additional annotations for pods
|
|
||||||
podAnnotations: {}
|
|
||||||
# Example below allows Prometheus to scape on metric port (requires pihole-exporter sidecar enabled)
|
|
||||||
# prometheus.io/port: '9617'
|
|
||||||
# prometheus.io/scrape: 'true'
|
|
||||||
|
|
||||||
monitoring:
|
|
||||||
# -- Preferably adding prometheus scrape annotations rather than enabling podMonitor.
|
|
||||||
podMonitor:
|
|
||||||
# -- set this to true to enable podMonitor
|
|
||||||
enabled: false
|
|
||||||
# -- Sidecar configuration
|
|
||||||
sidecar:
|
|
||||||
# -- set this to true to enable podMonitor as sidecar
|
|
||||||
enabled: false
|
|
||||||
port: 9617
|
|
||||||
image:
|
|
||||||
repository: ekofr/pihole-exporter
|
|
||||||
tag: 0.0.10
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 128Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
|
|
||||||
podDnsConfig:
|
|
||||||
enabled: true
|
|
||||||
policy: "None"
|
|
||||||
nameservers:
|
|
||||||
- 127.0.0.1
|
|
||||||
- 8.8.8.8
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
|||||||
# Default values for portainer.
|
|
||||||
# This is a YAML-formatted file.
|
|
||||||
# Declare variables to be passed into your templates.
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
# If enterpriseEdition is enabled, then use the values below _instead_ of those in .image
|
|
||||||
enterpriseEdition:
|
|
||||||
enabled: false
|
|
||||||
image:
|
|
||||||
repository: portainer/portainer-ee
|
|
||||||
tag: 2.12.2
|
|
||||||
pullPolicy: Always
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: portainer/portainer-ce
|
|
||||||
tag: latest
|
|
||||||
pullPolicy: Always
|
|
||||||
|
|
||||||
imagePullSecrets: []
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
annotations: {}
|
|
||||||
name: portainer-sa-clusteradmin
|
|
||||||
|
|
||||||
service:
|
|
||||||
# Set the httpNodePort and edgeNodePort only if the type is NodePort
|
|
||||||
# For Ingress, set the type to be ClusterIP and set ingress.enabled to true
|
|
||||||
# For Cloud Providers, set the type to be LoadBalancer
|
|
||||||
type: ClusterIP
|
|
||||||
httpPort: 9000
|
|
||||||
httpsPort: 9443
|
|
||||||
httpNodePort: 30777
|
|
||||||
httpsNodePort: 30779
|
|
||||||
edgePort: 8000
|
|
||||||
edgeNodePort: 30776
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
tls:
|
|
||||||
# If set, Portainer will be configured to use TLS only
|
|
||||||
force: false
|
|
||||||
# If set, will mount the existing secret into the pod
|
|
||||||
existingSecret: ""
|
|
||||||
|
|
||||||
feature:
|
|
||||||
flags: ""
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
enabled: false
|
|
||||||
ingressClassName: ""
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: nginx
|
|
||||||
# Only use below if tls.force=true
|
|
||||||
# nginx.ingress.kubernetes.io/backend-protocol: HTTPS
|
|
||||||
# Note: Hosts and paths are of type array
|
|
||||||
hosts:
|
|
||||||
- host:
|
|
||||||
paths: []
|
|
||||||
# - path: "/"
|
|
||||||
tls: []
|
|
||||||
|
|
||||||
resources: {}
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
existingClaim: portainer-data
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
|||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
namespace: portainer
|
|
||||||
name: portainer-ingressroute
|
|
||||||
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`portainer.kluster.moll.re`)
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: portainer
|
|
||||||
port: 9000
|
|
||||||
tls:
|
|
||||||
certResolver: default-tls
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: portainer
|
|
||||||
name: portainer-data
|
|
||||||
labels:
|
|
||||||
directory: portainer
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "10Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /portainer
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: portainer
|
|
||||||
name: portainer-data
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "10Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: portainer
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: monitoring
|
|
||||||
name: prometheus-data-nfs
|
|
||||||
labels:
|
|
||||||
directory: prometheus
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
capacity:
|
|
||||||
storage: "50Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /prometheus
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
File diff suppressed because it is too large
Load Diff
@ -1,79 +0,0 @@
|
|||||||
# mkdir -p /var/lib/pufferpanel
|
|
||||||
# docker volume create pufferpanel-config
|
|
||||||
# docker create --name pufferpanel -p 8080:8080 -p 5657:5657 -v pufferpanel-config:/etc/pufferpanel -v /var/lib/pufferpanel:/var/lib/pufferpanel --restart=on-failure
|
|
||||||
# docker start pufferpanel
|
|
||||||
# docker exec -it pufferpanel /pufferpanel/pufferpanel user add
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: pufferpanel
|
|
||||||
namespace: pufferpanel
|
|
||||||
labels:
|
|
||||||
app: pufferpanel
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: pufferpanel
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: pufferpanel
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: pufferpanel
|
|
||||||
image: karyeet/pufferpanel:devel
|
|
||||||
tty: true
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
- containerPort: 5657
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/lib/pufferpanel
|
|
||||||
name: pufferpanel-nfs
|
|
||||||
- mountPath: /etc/pufferpanel
|
|
||||||
name: pufferpanel-config-nfs
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: "2Gi"
|
|
||||||
cpu: 1
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: pufferpanel-nfs
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: pufferpanel-nfs
|
|
||||||
- name: pufferpanel-config-nfs
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: pufferpanel-config-nfs
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: pufferpanel
|
|
||||||
namespace: pufferpanel
|
|
||||||
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8080
|
|
||||||
selector:
|
|
||||||
app: pufferpanel
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: pufferpanel-mc
|
|
||||||
namespace: pufferpanel
|
|
||||||
|
|
||||||
spec:
|
|
||||||
# -- `spec.type` for the DNS Service
|
|
||||||
type: LoadBalancer
|
|
||||||
|
|
||||||
# -- The port of the DNS service
|
|
||||||
ports:
|
|
||||||
- name: mc-port
|
|
||||||
port: 25565
|
|
||||||
nodePort: 30005
|
|
||||||
protocol: TCP
|
|
@ -1,28 +0,0 @@
|
|||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: pufferpanel
|
|
||||||
name: pufferpanel-ingress
|
|
||||||
annotations:
|
|
||||||
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
# traefik.ingress.kubernetes.io/router.middlewares: default-redirect@kubernetescrd
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- game.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: game.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: pufferpanel
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,72 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: pufferpanel
|
|
||||||
name: pufferpanel-nfs
|
|
||||||
labels:
|
|
||||||
directory: pufferpanel
|
|
||||||
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "20Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /pufferpanel/data
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: pufferpanel
|
|
||||||
name: pufferpanel-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "20Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: pufferpanel
|
|
||||||
---
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: pufferpanel
|
|
||||||
name: pufferpanel-config-nfs
|
|
||||||
labels:
|
|
||||||
directory: pufferpanel
|
|
||||||
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "1Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /pufferpanel/config
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: pufferpanel
|
|
||||||
name: pufferpanel-config-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "1Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: pufferpanel
|
|
||||||
---
|
|
@ -1,130 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: raspap
|
|
||||||
labels:
|
|
||||||
app: raspap
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: raspap
|
|
||||||
name: raspap-nfs
|
|
||||||
labels:
|
|
||||||
directory: raspap
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "2Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /raspap
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: raspap
|
|
||||||
name: raspap-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "2Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: raspap
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: raspap
|
|
||||||
namespace: raspap
|
|
||||||
labels:
|
|
||||||
app: raspap
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: raspap
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: raspap
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: raspap
|
|
||||||
image: jrcichra/raspap-docker
|
|
||||||
tty: true
|
|
||||||
networkMode: "host"
|
|
||||||
securityContext:
|
|
||||||
capabilities:
|
|
||||||
add:
|
|
||||||
- SYS_ADMIN
|
|
||||||
ports:
|
|
||||||
- containerPort: 8000
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: raspap-nfs
|
|
||||||
- mountPath: /sys/fs/cgroup
|
|
||||||
name: cgroup
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cgroup
|
|
||||||
hostPath:
|
|
||||||
path: /sys/fs/cgroup
|
|
||||||
readOnly: true
|
|
||||||
- name: raspap-nfs
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: raspap-nfs
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: archive
|
|
||||||
namespace: archive
|
|
||||||
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8000
|
|
||||||
selector:
|
|
||||||
app: archive
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: archive
|
|
||||||
name: archive-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- archive.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: archive.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: archive
|
|
||||||
port:
|
|
||||||
number: 8000
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,26 +0,0 @@
|
|||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: rocketchat
|
|
||||||
name: rocketchat-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- chat.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: chat.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: rocketchat-rocketchat
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: rocketchat
|
|
||||||
name: rocketchat-nfs
|
|
||||||
labels:
|
|
||||||
directory: rocketchat
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
capacity:
|
|
||||||
storage: "8Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /rocketchat
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
## pihole.persistentvolumeclaim.yml
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: rocketchat
|
|
||||||
name: rocketchat-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "8Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: rocketchat
|
|
||||||
---
|
|
@ -1,247 +0,0 @@
|
|||||||
## Rocket Chat image version
|
|
||||||
## ref: https://hub.docker.com/r/rocketchat/rocket.chat/tags
|
|
||||||
##
|
|
||||||
image:
|
|
||||||
## NOTE: for microsservices, those two itens get ignored,
|
|
||||||
## for now.
|
|
||||||
repository: rs1977rs/rocketchat
|
|
||||||
tag: arm64-4.3.3
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
imagePullSecrets: []
|
|
||||||
|
|
||||||
## Host for the application
|
|
||||||
## set it to a domain pointing to your loadbalancer
|
|
||||||
# host:
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
minAvailable: 1
|
|
||||||
|
|
||||||
smtp:
|
|
||||||
enabled: false
|
|
||||||
username:
|
|
||||||
password:
|
|
||||||
host:
|
|
||||||
port: 587
|
|
||||||
|
|
||||||
# Extra env vars for Rocket.Chat:
|
|
||||||
extraEnv:
|
|
||||||
# - name: MONGO_OPTIONS
|
|
||||||
# value: '{"ssl": "true"}'
|
|
||||||
# - name: MONGO_OPLOG_URL
|
|
||||||
# value: mongodb://oploguser:password@rocket-1:27017/local&replicaSet=rs0
|
|
||||||
|
|
||||||
## Specifies a Registration Token (obtainable at https://cloud.rocket.chat)
|
|
||||||
#registrationToken: ""
|
|
||||||
|
|
||||||
## Specifies an Enterprise License
|
|
||||||
# license: ""
|
|
||||||
|
|
||||||
## Pod anti-affinity can prevent the scheduler from placing RocketChat replicas on the same node.
|
|
||||||
## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
|
|
||||||
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
|
|
||||||
## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
|
|
||||||
##
|
|
||||||
podAntiAffinity: ''
|
|
||||||
|
|
||||||
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
|
|
||||||
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
|
|
||||||
##
|
|
||||||
podAntiAffinityTopologyKey: kubernetes.io/hostname
|
|
||||||
|
|
||||||
## Assign custom affinity rules to the RocketChat instance
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
|
||||||
##
|
|
||||||
affinity: {}
|
|
||||||
# nodeAffinity:
|
|
||||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
# nodeSelectorTerms:
|
|
||||||
# - matchExpressions:
|
|
||||||
# - key: kubernetes.io/e2e-az-name
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - e2e-az1
|
|
||||||
# - e2e-az2
|
|
||||||
# mongodb://user:password@localhost:27017/local?replicaSet=rs0&authSource=admin
|
|
||||||
|
|
||||||
##
|
|
||||||
## MongoDB chart configuration
|
|
||||||
### ref https://github.com/helm/charts/tree/master/stable/mongodb#configuration
|
|
||||||
##
|
|
||||||
mongodb:
|
|
||||||
## Enable or disable MongoDB dependency completely.
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
auth:
|
|
||||||
rootPassword: blablabla
|
|
||||||
username: rocketchat
|
|
||||||
password: blablabla
|
|
||||||
database: rocketchat
|
|
||||||
|
|
||||||
architecture: replicaset
|
|
||||||
replicaCount: 1
|
|
||||||
arbiter:
|
|
||||||
enabled: false
|
|
||||||
pdb:
|
|
||||||
minAvailable: 0
|
|
||||||
pdb:
|
|
||||||
minAvailable: 0
|
|
||||||
|
|
||||||
# key:
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
enabled: false
|
|
||||||
## mongodb 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: "-"
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 8Gi
|
|
||||||
|
|
||||||
volumePermissions: {enabled: true}
|
|
||||||
|
|
||||||
## Enable persistence using Persistent Volume Claims
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
|
||||||
##
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: rocketchat-nfs
|
|
||||||
## rocketchat 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: "-"
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 8Gi
|
|
||||||
|
|
||||||
## Configure resource requests and limits
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
||||||
##
|
|
||||||
# resources:
|
|
||||||
# requests:
|
|
||||||
# memory: 512Mi
|
|
||||||
# cpu: 300m
|
|
||||||
|
|
||||||
securityContext:
|
|
||||||
enabled: true
|
|
||||||
runAsUser: 999
|
|
||||||
fsGroup: 999
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
# Specifies whether a ServiceAccount should be created
|
|
||||||
create: true
|
|
||||||
|
|
||||||
# The name of the ServiceAccount to use.
|
|
||||||
# If not set and create is true, a name is generated using the fullname template
|
|
||||||
name:
|
|
||||||
|
|
||||||
## Configure the ingress object to hook into existing infastructure
|
|
||||||
### ref : http://kubernetes.io/docs/user-guide/ingress/
|
|
||||||
###
|
|
||||||
ingress:
|
|
||||||
enabled: false
|
|
||||||
pathType: Prefix
|
|
||||||
annotations:
|
|
||||||
{}
|
|
||||||
# ingressClassName: "nxinx"
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: "nginx"
|
|
||||||
path: /
|
|
||||||
tls: {}
|
|
||||||
# - secretName: chart-example-tls
|
|
||||||
# hosts:
|
|
||||||
# - chart-example.local
|
|
||||||
|
|
||||||
service:
|
|
||||||
annotations: {}
|
|
||||||
# service.beta.kubernetes.io/aws-load-balancer-internal: "0.0.0.0/0"
|
|
||||||
|
|
||||||
labels: {}
|
|
||||||
# key: value
|
|
||||||
|
|
||||||
## ServiceType
|
|
||||||
## ref: https://kubernetes.io/docs/user-guide/services/#publishing-services---service-types
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
## Optional static port assignment for service type NodePort.
|
|
||||||
# nodePort: 30000
|
|
||||||
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
## Optional custom labels for the deployment resource.
|
|
||||||
deploymentLabels: {}
|
|
||||||
|
|
||||||
## Optional Pod Labels.
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
## Optional Pod Annotations.
|
|
||||||
podAnnotations:
|
|
||||||
{}
|
|
||||||
# prometheus.io/port: "9458"
|
|
||||||
# prometheus.io/path: "/metrics"
|
|
||||||
# prometheus.io/scrape: "true"
|
|
||||||
|
|
||||||
## Optional Prometheus scraping Settings
|
|
||||||
prometheusScraping:
|
|
||||||
enabled: true
|
|
||||||
port: 9458
|
|
||||||
|
|
||||||
## Liveness and readiness probe values
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
|
||||||
##
|
|
||||||
livenessProbe:
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 15
|
|
||||||
timeoutSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
successThreshold: 1
|
|
||||||
|
|
||||||
readinessProbe:
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 15
|
|
||||||
timeoutSeconds: 5
|
|
||||||
failureThreshold: 3
|
|
||||||
successThreshold: 1
|
|
||||||
|
|
||||||
# # # # # # # # # # # # # # # # #
|
|
||||||
# M I C R O S E R V I C E S #
|
|
||||||
# Only available to E.E users #
|
|
||||||
# # # # # # # # # # # # # # # # #
|
|
||||||
|
|
||||||
## Deploy as microservices?
|
|
||||||
# Monolithic architecture, by default
|
|
||||||
microservices:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
## Parameters for each deployment:
|
|
||||||
presence:
|
|
||||||
replicas: 1
|
|
||||||
ddpStreamer:
|
|
||||||
replicas: 1
|
|
||||||
streamHub:
|
|
||||||
replicas: 1
|
|
||||||
accounts:
|
|
||||||
replicas: 1
|
|
||||||
authorization:
|
|
||||||
replicas: 1
|
|
||||||
nats:
|
|
||||||
replicas: 1
|
|
||||||
|
|
||||||
## Parameters for each Kubernetes service
|
|
||||||
# NOTE: reserved for future usage still
|
|
||||||
presenceService:
|
|
||||||
ddpStreamerService:
|
|
||||||
natsService:
|
|
||||||
streamHubService:
|
|
||||||
accountsService:
|
|
||||||
authorizationService:
|
|
||||||
natsService:
|
|
@ -1,131 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: searx
|
|
||||||
labels:
|
|
||||||
app: searx
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: searx
|
|
||||||
name: searx-data-nfs
|
|
||||||
labels:
|
|
||||||
directory: searx
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "5Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /searx
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: searx
|
|
||||||
name: searx-data-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "5Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: searx
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: searx
|
|
||||||
namespace: searx
|
|
||||||
labels:
|
|
||||||
app: searx
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: searx
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: searx
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: searx
|
|
||||||
image: searxng/searxng
|
|
||||||
tty: true
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/searxng
|
|
||||||
name: searx-data
|
|
||||||
env:
|
|
||||||
- name: BASE_URL
|
|
||||||
value: https://search.kluster.moll.re
|
|
||||||
- name: INSTANCE_NAME
|
|
||||||
value: searx
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "100m"
|
|
||||||
memory: "100Mi"
|
|
||||||
limits:
|
|
||||||
cpu: "1"
|
|
||||||
memory: "500Mi"
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: searx-data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: searx-data-nfs
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: searx
|
|
||||||
namespace: searx
|
|
||||||
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8080
|
|
||||||
selector:
|
|
||||||
app: searx
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
namespace: searx
|
|
||||||
name: searx-ingress
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- search.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
- host: search.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: searx
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
@ -1,40 +0,0 @@
|
|||||||
kind: Deployment
|
|
||||||
apiVersion: apps/v1
|
|
||||||
metadata:
|
|
||||||
name: skooner
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
k8s-app: skooner
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
k8s-app: skooner
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: skooner
|
|
||||||
image: nerdinexile/skooner:latest
|
|
||||||
ports:
|
|
||||||
- containerPort: 4654
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
scheme: HTTP
|
|
||||||
path: /
|
|
||||||
port: 4654
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
timeoutSeconds: 30
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: skooner
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 4654
|
|
||||||
selector:
|
|
||||||
k8s-app: skooner
|
|
@ -1,28 +0,0 @@
|
|||||||
kind: Ingress
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: skooner
|
|
||||||
namespace: kube-system
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- dashboard.kluster.moll.re
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- host: dashboard.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: skooner
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: storage
|
|
||||||
labels:
|
|
||||||
app: storage
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: local-pv
|
|
||||||
namespace: storage
|
|
||||||
spec:
|
|
||||||
capacity:
|
|
||||||
storage: 400Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
storageClassName: local-storage
|
|
||||||
local:
|
|
||||||
path: "/mnt/data/"
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: hdd # only one node will have a drive attached to it!
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- enabled
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: local-claim
|
|
||||||
namespace: storage
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: local-storage
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 400Gi
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: nfs-server
|
|
||||||
namespace: storage
|
|
||||||
labels:
|
|
||||||
app: nfs-server
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: nfs-server
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nfs-server
|
|
||||||
name: nfs-server
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: nfs-server
|
|
||||||
image: itsthenetwork/nfs-server-alpine:11-arm
|
|
||||||
env:
|
|
||||||
- name: SHARED_DIRECTORY
|
|
||||||
value: /exports
|
|
||||||
- name: PERMITTED
|
|
||||||
value: 10.42.*.*
|
|
||||||
# ,192.168.1.112
|
|
||||||
ports:
|
|
||||||
- name: nfs
|
|
||||||
containerPort: 2049
|
|
||||||
- name: mountd
|
|
||||||
containerPort: 20048
|
|
||||||
- name: rpcbind
|
|
||||||
containerPort: 111
|
|
||||||
securityContext:
|
|
||||||
privileged: true
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /exports
|
|
||||||
name: mypvc
|
|
||||||
volumes:
|
|
||||||
- name: mypvc
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: local-claim
|
|
||||||
nodeSelector:
|
|
||||||
hdd: enabled
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: nfs-server
|
|
||||||
namespace: storage
|
|
||||||
spec:
|
|
||||||
type: LoadBalancer
|
|
||||||
loadBalancerSourceRanges:
|
|
||||||
- 192.168.1.112/31
|
|
||||||
#restricted to archspectres ip only!
|
|
||||||
- 192.168.1.134/31
|
|
||||||
# and amd node
|
|
||||||
- 192.168.1.150/24
|
|
||||||
# and more
|
|
||||||
ports:
|
|
||||||
- name: nfs
|
|
||||||
port: 2049
|
|
||||||
- name: mountd
|
|
||||||
port: 20048
|
|
||||||
- name: rpcbind
|
|
||||||
port: 111
|
|
||||||
selector:
|
|
||||||
app: nfs-server
|
|
@ -1,59 +0,0 @@
|
|||||||
# apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
# kind: IngressRoute
|
|
||||||
# metadata:
|
|
||||||
# name: syncthing-ingress
|
|
||||||
# namespace: syncthing
|
|
||||||
# spec:
|
|
||||||
# entryPoints:
|
|
||||||
# - websecure
|
|
||||||
# routes:
|
|
||||||
# - match: Host(`syncthing.kluster.moll.re`)
|
|
||||||
# kind: Rule
|
|
||||||
# services:
|
|
||||||
# - name: syncthing
|
|
||||||
# port: 8384
|
|
||||||
# tls:
|
|
||||||
# certResolver: default-tls
|
|
||||||
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: Middleware
|
|
||||||
metadata:
|
|
||||||
name: authentik-auth
|
|
||||||
namespace: syncthing
|
|
||||||
spec:
|
|
||||||
forwardAuth:
|
|
||||||
address: https://syncthing.kluster.moll.re/outpost.goauthentik.io/auth/traefik
|
|
||||||
trustForwardHeader: true
|
|
||||||
authResponseHeaders:
|
|
||||||
- X-authentik-username
|
|
||||||
- X-authentik-groups
|
|
||||||
- X-authentik-email
|
|
||||||
- X-authentik-name
|
|
||||||
- X-authentik-uid
|
|
||||||
- X-authentik-jwt
|
|
||||||
- X-authentik-meta-jwks
|
|
||||||
- X-authentik-meta-outpost
|
|
||||||
- X-authentik-meta-provider
|
|
||||||
- X-authentik-meta-app
|
|
||||||
- X-authentik-meta-version
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: syncthing-ingress
|
|
||||||
namespace: syncthing
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`syncthing.kluster.moll.re`)
|
|
||||||
kind: Rule
|
|
||||||
middlewares:
|
|
||||||
- name: authentik-auth
|
|
||||||
services:
|
|
||||||
- name: syncthing
|
|
||||||
port: 8384
|
|
||||||
tls:
|
|
||||||
certResolver: default-tls
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: syncthing
|
|
||||||
name: syncthing-nfs
|
|
||||||
labels:
|
|
||||||
directory: syncthing
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "100Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /data-sync
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: syncthing
|
|
||||||
name: syncthing-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "100Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: syncthing
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
|||||||
#
|
|
||||||
# IMPORTANT NOTE
|
|
||||||
#
|
|
||||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
|
||||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
|
||||||
#
|
|
||||||
|
|
||||||
image:
|
|
||||||
# -- image repository
|
|
||||||
repository: syncthing/syncthing
|
|
||||||
# -- image tag
|
|
||||||
tag: 1.18.2
|
|
||||||
# -- image pull policy
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
# -- Configures service settings for the chart.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 8384
|
|
||||||
listen:
|
|
||||||
enabled: true
|
|
||||||
type: NodePort
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
ports:
|
|
||||||
listen:
|
|
||||||
enabled: true
|
|
||||||
port: 22000
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 22000
|
|
||||||
discovery:
|
|
||||||
enabled: true
|
|
||||||
type: NodePort
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
ports:
|
|
||||||
discovery:
|
|
||||||
enabled: true
|
|
||||||
port: 21027
|
|
||||||
protocol: UDP
|
|
||||||
targetPort: 21027
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
# -- Enable and configure ingress settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
main:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# -- Configure persistence settings for the chart under this key.
|
|
||||||
# @default -- See values.yaml
|
|
||||||
persistence:
|
|
||||||
data:
|
|
||||||
enabled: true
|
|
||||||
mountPath: /var/syncthing
|
|
||||||
existingClaim: syncthing-nfs
|
|
@ -1,116 +0,0 @@
|
|||||||
## Default values.yaml for Telegraf
|
|
||||||
## This is a YAML-formatted file.
|
|
||||||
## ref: https://hub.docker.com/r/library/telegraf/tags/
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
image:
|
|
||||||
repo: "telegraf"
|
|
||||||
tag: "1.23"
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
podAnnotations: {}
|
|
||||||
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
imagePullSecrets: []
|
|
||||||
|
|
||||||
## Configure args passed to Telegraf containers
|
|
||||||
args: []
|
|
||||||
|
|
||||||
|
|
||||||
# The name of a secret in the same kubernetes namespace which contains values to
|
|
||||||
# be added to the environment (must be manually created)
|
|
||||||
# This can be useful for auth tokens, etc.
|
|
||||||
|
|
||||||
# envFromSecret: "telegraf-tokens"
|
|
||||||
|
|
||||||
|
|
||||||
env:
|
|
||||||
- name: HOSTNAME
|
|
||||||
value: "telegraf-polling-service"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Configure resource requests and limits
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
||||||
resources: {}
|
|
||||||
# requests:
|
|
||||||
# memory: 128Mi
|
|
||||||
# cpu: 100m
|
|
||||||
# limits:
|
|
||||||
# memory: 128Mi
|
|
||||||
# cpu: 100m
|
|
||||||
|
|
||||||
## Node labels for pod assignment
|
|
||||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
## Affinity for pod assignment
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
|
||||||
##
|
|
||||||
affinity: # launch on same node as nginx controller so that log file is readable
|
|
||||||
podAffinity:
|
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
- labelSelector:
|
|
||||||
matchExpressions:
|
|
||||||
- key: app.kubernetes.io/instance
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- ingress-nginx
|
|
||||||
|
|
||||||
|
|
||||||
## Tolerations for pod assignment
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
||||||
##
|
|
||||||
tolerations: []
|
|
||||||
# - key: "key"
|
|
||||||
# operator: "Equal|Exists"
|
|
||||||
# value: "value"
|
|
||||||
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
|
|
||||||
|
|
||||||
service:
|
|
||||||
enabled: false
|
|
||||||
type: ClusterIP
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Exposed telegraf configuration
|
|
||||||
## For full list of possible values see `/docs/all-config-values.yaml` and `/docs/all-config-values.toml`
|
|
||||||
## ref: https://docs.influxdata.com/telegraf/v1.1/administration/configuration/
|
|
||||||
config:
|
|
||||||
agent:
|
|
||||||
interval: "10s"
|
|
||||||
round_interval: true
|
|
||||||
metric_batch_size: 1000
|
|
||||||
metric_buffer_limit: 10000
|
|
||||||
collection_jitter: "0s"
|
|
||||||
flush_interval: "10s"
|
|
||||||
flush_jitter: "0s"
|
|
||||||
precision: ""
|
|
||||||
debug: false
|
|
||||||
quiet: false
|
|
||||||
logfile: ""
|
|
||||||
hostname: "$HOSTNAME"
|
|
||||||
omit_hostname: false
|
|
||||||
processors:
|
|
||||||
- enum:
|
|
||||||
mapping:
|
|
||||||
field: "status"
|
|
||||||
dest: "status_code"
|
|
||||||
value_mappings:
|
|
||||||
healthy: 1
|
|
||||||
problem: 2
|
|
||||||
critical: 3
|
|
||||||
outputs:
|
|
||||||
- influxdb_v2:
|
|
||||||
urls:
|
|
||||||
- "http://influxdb-influxdb2.monitoring:80"
|
|
||||||
token: N_jNm1hZTfyhJneTJj2G357mQ7EJdNzdvebjSJX6JkbyaXNup_IAqeYowblMgV8EjLypNvauTl27ewJvI_rbqQ==
|
|
||||||
organization: "influxdata"
|
|
||||||
bucket: "kluster"
|
|
||||||
inputs:
|
|
||||||
- prometheus:
|
|
||||||
urls:
|
|
||||||
- "http://10.42.0.218:9113"
|
|
@ -1,25 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: trilium-ingress
|
|
||||||
namespace: trilium
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/ingress.class: nginx
|
|
||||||
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
|
|
||||||
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts: [ 'trilium.kluster.moll.re' ]
|
|
||||||
secretName: cloudflare-letsencrypt-issuer-account-key
|
|
||||||
rules:
|
|
||||||
|
|
||||||
- host: trilium.kluster.moll.re
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: /
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: trilium-trilium-notes
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: trilium
|
|
||||||
name: trilium-data-nfs
|
|
||||||
labels:
|
|
||||||
directory: trilium
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
capacity:
|
|
||||||
storage: "2Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /trilium
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: trilium
|
|
||||||
name: trilium-data-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: slow
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "2Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: trilium
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
|||||||
# Default values for trilium-notes.
|
|
||||||
# This is a YAML-formatted file.
|
|
||||||
# Declare variables to be passed into your templates.
|
|
||||||
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: zadam/trilium
|
|
||||||
tag: "latest"
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
imagePullSecrets: []
|
|
||||||
nameOverride: ""
|
|
||||||
fullnameOverride: ""
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
create: true
|
|
||||||
annotations: {}
|
|
||||||
# If not set and create is true, a name is generated using the fullname template
|
|
||||||
name:
|
|
||||||
|
|
||||||
podSecurityContext:
|
|
||||||
fsGroup: 10000
|
|
||||||
|
|
||||||
securityContext:
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 10000
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
|
|
||||||
service:
|
|
||||||
type: ClusterIP
|
|
||||||
port: 8080
|
|
||||||
|
|
||||||
dataDir: /srv/trilium-data
|
|
||||||
|
|
||||||
persistentVolume:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: trilium-data-nfs
|
|
||||||
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
annotations: {}
|
|
||||||
size: 2Gi
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
enabled: false
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: nginx
|
|
||||||
# kubernetes.io/tls-acme: "true"
|
|
||||||
hosts:
|
|
||||||
- host: chart-example.local
|
|
||||||
paths: []
|
|
||||||
tls: []
|
|
||||||
# - secretName: chart-example-tls
|
|
||||||
# hosts:
|
|
||||||
# - chart-example.local
|
|
||||||
|
|
||||||
resources: {}
|
|
||||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
|
||||||
# choice for the user. This also increases chances charts run on environments with little
|
|
||||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
|
||||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
|
||||||
# limits:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
affinity: {}
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
namespace: webtop
|
|
||||||
name: webtop-data-nfs
|
|
||||||
labels:
|
|
||||||
directory: webtop
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
capacity:
|
|
||||||
storage: "15Gi"
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
nfs:
|
|
||||||
path: /webtop
|
|
||||||
server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: webtop
|
|
||||||
name: webtop-data-nfs
|
|
||||||
spec:
|
|
||||||
storageClassName: fast
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: "15Gi"
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
directory: webtop
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: webtop
|
|
||||||
namespace: webtop
|
|
||||||
labels:
|
|
||||||
app: webtop
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: webtop
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: webtop
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: webtop
|
|
||||||
image: lscr.io/linuxserver/webtop:ubuntu-mate
|
|
||||||
tty: true
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /config
|
|
||||||
name: webtop-data-nfs
|
|
||||||
env:
|
|
||||||
- name: PUID
|
|
||||||
value: "1000"
|
|
||||||
- name: PGID
|
|
||||||
value: "1000"
|
|
||||||
- name: TZ
|
|
||||||
value: "Europe/Berlin"
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- containerPort: 3000
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: webtop-data-nfs
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: webtop-data-nfs
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: webtop
|
|
||||||
namespace: webtop
|
|
||||||
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: webtop
|
|
||||||
port: 3000
|
|
||||||
selector:
|
|
||||||
app: webtop
|
|
Loading…
x
Reference in New Issue
Block a user