10
apps/argocd/base/kustomization.yaml
Normal file
10
apps/argocd/base/kustomization.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
helmCharts:
|
||||||
|
- name: argo-cd
|
||||||
|
repo: oci://ghcr.io/argoproj/argo-helm
|
||||||
|
version: 7.3.6
|
||||||
|
releaseName: argocd
|
||||||
|
# apiVersions:
|
||||||
|
# - monitoring.coreos.com/v1
|
||||||
|
valuesFile: values.yaml
|
||||||
49
apps/argocd/base/values.yaml
Normal file
49
apps/argocd/base/values.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
global:
|
||||||
|
domain: argocd.cluster.edward.sydney
|
||||||
|
|
||||||
|
configs:
|
||||||
|
params:
|
||||||
|
server.insecure: true
|
||||||
|
|
||||||
|
controller:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
redis-ha:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
server:
|
||||||
|
serviceType: NodePort
|
||||||
|
httpNodePort: 30080
|
||||||
|
httpsNodePort: 30443
|
||||||
|
autoscaling:
|
||||||
|
enabled: true
|
||||||
|
minReplicas: 2
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||||
|
# nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
|
ingressClassName: nginx
|
||||||
|
hostname: argocd.cluster.edward.sydney
|
||||||
|
extraTls:
|
||||||
|
- hosts:
|
||||||
|
- argocd.cluster.edward.sydney
|
||||||
|
# Based on the ingress controller used secret might be optional
|
||||||
|
secretName: wildcard-tls
|
||||||
|
ingressGrpc:
|
||||||
|
enabled: true
|
||||||
|
ingressClassName: contour-internal
|
||||||
|
extraTls:
|
||||||
|
- hosts:
|
||||||
|
- grpc.argocd.cluster.edward.sydney
|
||||||
|
secretName: wildcard-tls
|
||||||
|
|
||||||
|
repoServer:
|
||||||
|
autoscaling:
|
||||||
|
enabled: true
|
||||||
|
minReplicas: 2
|
||||||
|
|
||||||
|
applicationSet:
|
||||||
|
replicas: 2
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- cilium.yaml
|
- ../../base
|
||||||
49
apps/argocd/env/k3s-cluster/values.yaml
vendored
Normal file
49
apps/argocd/env/k3s-cluster/values.yaml
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
global:
|
||||||
|
domain: argocd.cluster.edward.sydney
|
||||||
|
|
||||||
|
configs:
|
||||||
|
params:
|
||||||
|
server.insecure: true
|
||||||
|
|
||||||
|
controller:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
redis-ha:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
server:
|
||||||
|
serviceType: NodePort
|
||||||
|
httpNodePort: 30080
|
||||||
|
httpsNodePort: 30443
|
||||||
|
autoscaling:
|
||||||
|
enabled: true
|
||||||
|
minReplicas: 2
|
||||||
|
# ingress:
|
||||||
|
# enabled: true
|
||||||
|
# annotations:
|
||||||
|
# nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||||
|
# nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
|
ingressClassName: nginx
|
||||||
|
hostname: argocd.cluster.edward.sydney
|
||||||
|
extraTls:
|
||||||
|
- hosts:
|
||||||
|
- argocd.cluster.edward.sydney
|
||||||
|
# Based on the ingress controller used secret might be optional
|
||||||
|
secretName: wildcard-tls
|
||||||
|
ingressGrpc:
|
||||||
|
enabled: true
|
||||||
|
ingressClassName: contour-internal
|
||||||
|
extraTls:
|
||||||
|
- hosts:
|
||||||
|
- grpc.argocd.cluster.edward.sydney
|
||||||
|
secretName: wildcard-tls
|
||||||
|
|
||||||
|
repoServer:
|
||||||
|
autoscaling:
|
||||||
|
enabled: true
|
||||||
|
minReplicas: 2
|
||||||
|
|
||||||
|
applicationSet:
|
||||||
|
replicas: 2
|
||||||
8
apps/ingress-nginx/base/kustomization.yaml
Normal file
8
apps/ingress-nginx/base/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
helmCharts:
|
||||||
|
- name: ingress-nginx
|
||||||
|
repo: https://kubernetes.github.io/ingress-nginx
|
||||||
|
version: 4.10.1
|
||||||
|
releaseName: ingress-nginx
|
||||||
|
valuesFile: values.yaml
|
||||||
55
apps/ingress-nginx/base/values.yaml
Normal file
55
apps/ingress-nginx/base/values.yaml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
rbac:
|
||||||
|
create: true
|
||||||
|
|
||||||
|
controller:
|
||||||
|
priorityClassName: system-cluster-critical
|
||||||
|
|
||||||
|
extraArgs:
|
||||||
|
update-status-on-shutdown: "false"
|
||||||
|
|
||||||
|
allowSnippetAnnotations: true
|
||||||
|
|
||||||
|
config:
|
||||||
|
proxy-buffer-size: 16k
|
||||||
|
use-gzip: ${use_gzip:=true}
|
||||||
|
enable-brotli: ${enable_brotli:=true}
|
||||||
|
hsts-max-age: ${hsts_max_age:=31536000}
|
||||||
|
hsts-preload: ${hsts_preload:=true}
|
||||||
|
disable-ipv6: ${disable_ipv6:=false}
|
||||||
|
disable-ipv6-dns: ${disable_ipv6_dns:=false}
|
||||||
|
keep-alive-requests: ${keep_alive_requests:=1000}
|
||||||
|
use-geoip2: ${use_geoip2:=true}
|
||||||
|
custom-http-errors: 401,403,404,500,501,502,503,504
|
||||||
|
|
||||||
|
addHeaders:
|
||||||
|
Referrer-Policy: same-origin, strict-origin-when-cross-origin
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-XSS-Protection: 1; mode=block
|
||||||
|
|
||||||
|
ingressClassResource:
|
||||||
|
default: true
|
||||||
|
|
||||||
|
service:
|
||||||
|
externalTrafficPolicy: Cluster
|
||||||
|
ipFamilyPolicy: SingleStack
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: ${metrics_enabled:=false}
|
||||||
|
# serviceMonitor:
|
||||||
|
# enabled: ${metrics_enabled:=false}
|
||||||
|
# scrapeInterval: 1m
|
||||||
|
|
||||||
|
defaultBackend:
|
||||||
|
enabled: true
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/tarampampam/error-pages
|
||||||
|
tag: 2.27.0@sha256:40e2631173b1a407c18fe7d1ba8104d995cf9e4780d123eeadfa1d57c68eaf4f
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
extraEnvs:
|
||||||
|
- name: TEMPLATE_NAME
|
||||||
|
value: connection
|
||||||
|
- name: SHOW_DETAILS
|
||||||
|
value: "true"
|
||||||
|
- name: READ_BUFFER_SIZE
|
||||||
|
value: "8192"
|
||||||
23
apps/ingress-nginx/env/k3s-cluster/configmap.yaml
vendored
Normal file
23
apps/ingress-nginx/env/k3s-cluster/configmap.yaml
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: ingress-nginx-values
|
||||||
|
namespace: ingress-nginx
|
||||||
|
data:
|
||||||
|
use_geoip2: "false"
|
||||||
|
disable_ipv6: "true"
|
||||||
|
disable_ipv6_dns: "true"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: tcp-services
|
||||||
|
namespace: ingress-nginx
|
||||||
|
data: {}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: udp-services
|
||||||
|
namespace: ingress-nginx
|
||||||
|
data: {}
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- repositories.yaml
|
- ./configmap.yaml
|
||||||
|
- ../../base
|
||||||
75
apps/ingress-nginx/env/k3s-cluster/values.yaml
vendored
Normal file
75
apps/ingress-nginx/env/k3s-cluster/values.yaml
vendored
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
rbac:
|
||||||
|
create: true
|
||||||
|
|
||||||
|
controller:
|
||||||
|
priorityClassName: system-cluster-critical
|
||||||
|
|
||||||
|
extraArgs:
|
||||||
|
update-status-on-shutdown: "false"
|
||||||
|
tcp-services-configmap: "ingress-nginx/tcp-services"
|
||||||
|
udp-services-configmap: "ingress-nginx/udp-services"
|
||||||
|
|
||||||
|
allowSnippetAnnotations: true
|
||||||
|
|
||||||
|
config:
|
||||||
|
proxy-buffer-size: 16k
|
||||||
|
use-gzip: ${use_gzip:=true}
|
||||||
|
enable-brotli: ${enable_brotli:=true}
|
||||||
|
hsts-max-age: ${hsts_max_age:=31536000}
|
||||||
|
hsts-preload: ${hsts_preload:=true}
|
||||||
|
disable-ipv6: ${disable_ipv6:=false}
|
||||||
|
disable-ipv6-dns: ${disable_ipv6_dns:=false}
|
||||||
|
keep-alive-requests: ${keep_alive_requests:=1000}
|
||||||
|
use-geoip2: ${use_geoip2:=true}
|
||||||
|
custom-http-errors: 401,403,404,500,501,502,503,504
|
||||||
|
|
||||||
|
extraEnvs:
|
||||||
|
- name: TZ
|
||||||
|
value: Australia/Sydney
|
||||||
|
|
||||||
|
addHeaders:
|
||||||
|
Referrer-Policy: same-origin, strict-origin-when-cross-origin
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-XSS-Protection: 1; mode=block
|
||||||
|
|
||||||
|
ingressClassResource:
|
||||||
|
default: true
|
||||||
|
|
||||||
|
service:
|
||||||
|
externalTrafficPolicy: Cluster
|
||||||
|
ipFamilyPolicy: SingleStack
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: ${metrics_enabled:=false}
|
||||||
|
# serviceMonitor:
|
||||||
|
# enabled: ${metrics_enabled:=false}
|
||||||
|
# scrapeInterval: 1m
|
||||||
|
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/nginx/template
|
||||||
|
name: nginx-template-volume
|
||||||
|
readOnly: true
|
||||||
|
volumes:
|
||||||
|
- name: nginx-template-volume
|
||||||
|
hostPath:
|
||||||
|
path: /mnt/nfs/AppData/ingress-nginx/etc/nginx/template
|
||||||
|
type: Directory
|
||||||
|
|
||||||
|
defaultBackend:
|
||||||
|
enabled: true
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/tarampampam/error-pages
|
||||||
|
tag: 2.27.0@sha256:40e2631173b1a407c18fe7d1ba8104d995cf9e4780d123eeadfa1d57c68eaf4f
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
extraEnvs:
|
||||||
|
- name: TEMPLATE_NAME
|
||||||
|
value: connection
|
||||||
|
- name: SHOW_DETAILS
|
||||||
|
value: "true"
|
||||||
|
- name: READ_BUFFER_SIZE
|
||||||
|
value: "8192"
|
||||||
39
appsets/k3s-cluster-appset.yaml
Normal file
39
appsets/k3s-cluster-appset.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: ApplicationSet
|
||||||
|
metadata:
|
||||||
|
name: k3s-cluster-appset
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
goTemplate: true
|
||||||
|
goTemplateOptions: ["missingkey=error"]
|
||||||
|
generators:
|
||||||
|
- git:
|
||||||
|
repoURL: https://github.com/3dwardch3ng/home-cluster-ops.git
|
||||||
|
revision: HEAD
|
||||||
|
directories:
|
||||||
|
- path: apps/*/envs/k3s-cluster
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: '{{index .path.segments 1}}-{{index .path.segments 3}}'
|
||||||
|
spec:
|
||||||
|
# The project the application belongs to.
|
||||||
|
project: k3s-cluster-ops
|
||||||
|
|
||||||
|
# Source of the application manifests
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/3dwardch3ng/home-cluster-ops.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: '{{.path.path}}'
|
||||||
|
|
||||||
|
# Destination cluster and namespace to deploy the application
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: '{{index .path.segments 1}}-{{index .path.segments 3}}'
|
||||||
|
|
||||||
|
# Sync policy
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
automated: # automated sync by default retries failed attempts 5 times with following delays between attempts ( 5s, 10s, 20s, 40s, 80s ); retry controlled using `retry` field.
|
||||||
|
prune: true # Specifies if resources should be pruned during auto-syncing ( false by default ).
|
||||||
|
selfHeal: true # Specifies if partial app sync should be executed when resources are changed only in target Kubernetes cluster and no git change detected ( false by default ).
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: adguard-home
|
|
||||||
namespace: adguard-home
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/adguard-home/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: adguard-home
|
|
||||||
namespace: adguard-home
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: adguard-home
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: adguard-home
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: adguard-home
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
rpi5.cluster.policy/egress-namespace: "true"
|
|
||||||
rpi5.cluster.policy/egress-world: "true"
|
|
||||||
rpi5.cluster.policy/ingress-namespace: "true"
|
|
||||||
rpi5.cluster.policy/ingress-nginx: "true"
|
|
||||||
rpi5.cluster.policy/ingress-nodes: "true"
|
|
||||||
rpi5.cluster.policy/ingress-world: "true"
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: adguard-home
|
|
||||||
image: adguard/adguardhome:v0.107.51
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 53
|
|
||||||
name: dns-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 53
|
|
||||||
name: dns-udp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 67
|
|
||||||
name: dhcps-udp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 68
|
|
||||||
name: dhcpc-udp
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 80
|
|
||||||
name: http-tcp
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 443
|
|
||||||
name: https-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 443
|
|
||||||
name: https-udp
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 853
|
|
||||||
name: dns-tls-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 853
|
|
||||||
name: dns-tls-udp
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 3000
|
|
||||||
name: http-alt-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 3000
|
|
||||||
name: http-alt-udp
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 5443
|
|
||||||
name: dnscrypt-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
containerPort: 5443
|
|
||||||
name: dnscrypt-udp
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 6060
|
|
||||||
name: http-pprof
|
|
||||||
env:
|
|
||||||
- name: TZ
|
|
||||||
value: Australia/Sydney
|
|
||||||
volumeMounts:
|
|
||||||
- name: adguard-home-data
|
|
||||||
mountPath: /opt/adguardhome/work
|
|
||||||
- name: adguard-home-config
|
|
||||||
mountPath: /opt/adguardhome/conf
|
|
||||||
volumes:
|
|
||||||
- name: adguard-home-data
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/adguardhome/work
|
|
||||||
type: Directory
|
|
||||||
- name: adguard-home-config
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/adguardhome/conf
|
|
||||||
type: Directory
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: adguard-home-ingress
|
|
||||||
namespace: adguard-home
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "adguard-home.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 10080
|
|
||||||
- host: "adguard-home.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 10080
|
|
||||||
- host: "setup.adguard-home.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 13000
|
|
||||||
- host: "setup.adguard-home.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 13000
|
|
||||||
- host: "doh.adguard-home.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: adguard-home
|
|
||||||
port:
|
|
||||||
number: 443
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: adguard-home
|
|
||||||
namespace: adguard-home
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: adguard-home
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: adguard-home
|
|
||||||
type: ClusterIP
|
|
||||||
internalTrafficPolicy: Cluster
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 53
|
|
||||||
targetPort: 53
|
|
||||||
name: dns-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 53
|
|
||||||
targetPort: 53
|
|
||||||
name: dns-udp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 67
|
|
||||||
targetPort: 67
|
|
||||||
name: dhcps-udp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 68
|
|
||||||
targetPort: 68
|
|
||||||
name: dhcpc-udp
|
|
||||||
- protocol: TCP
|
|
||||||
port: 10080
|
|
||||||
targetPort: 80
|
|
||||||
name: http-tcp
|
|
||||||
- protocol: TCP
|
|
||||||
port: 443
|
|
||||||
targetPort: 443
|
|
||||||
name: https-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 443
|
|
||||||
targetPort: 443
|
|
||||||
name: https-udp
|
|
||||||
- protocol: TCP
|
|
||||||
port: 853
|
|
||||||
targetPort: 853
|
|
||||||
name: dns-tls-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 853
|
|
||||||
targetPort: 853
|
|
||||||
name: dns-tls-udp
|
|
||||||
- protocol: TCP
|
|
||||||
port: 13000
|
|
||||||
targetPort: 3000
|
|
||||||
name: https-alt-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 13000
|
|
||||||
targetPort: 3000
|
|
||||||
name: https-alt-udp
|
|
||||||
- protocol: TCP
|
|
||||||
port: 5443
|
|
||||||
targetPort: 5443
|
|
||||||
name: dnscrypt-tcp
|
|
||||||
- protocol: UDP
|
|
||||||
port: 5443
|
|
||||||
targetPort: 5443
|
|
||||||
name: dnscrypt-udp
|
|
||||||
- protocol: TCP
|
|
||||||
port: 6060
|
|
||||||
targetPort: 6060
|
|
||||||
name: https-pprof
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: dns-tcp
|
|
||||||
port: 53
|
|
||||||
targetPort: 53
|
|
||||||
protocol: TCP
|
|
||||||
- name: dns-udp
|
|
||||||
port: 53
|
|
||||||
targetPort: 53
|
|
||||||
protocol: UDP
|
|
||||||
- name: dhcps-udp
|
|
||||||
port: 67
|
|
||||||
targetPort: 67
|
|
||||||
protocol: UDP
|
|
||||||
- name: dhcpc-udp
|
|
||||||
port: 68
|
|
||||||
targetPort: 68
|
|
||||||
protocol: UDP
|
|
||||||
- name: dns-tls-tcp
|
|
||||||
port: 853
|
|
||||||
targetPort: 853
|
|
||||||
protocol: TCP
|
|
||||||
- name: dns-tls-udp
|
|
||||||
port: 853
|
|
||||||
targetPort: 853
|
|
||||||
protocol: UDP
|
|
||||||
- name: dnscrypt-tcp
|
|
||||||
port: 5443
|
|
||||||
targetPort: 5443
|
|
||||||
protocol: TCP
|
|
||||||
- name: dnscrypt-udp
|
|
||||||
port: 5443
|
|
||||||
targetPort: 5443
|
|
||||||
protocol: UDP
|
|
||||||
- name: https-pprof
|
|
||||||
port: 6060
|
|
||||||
targetPort: 6060
|
|
||||||
protocol: TCP
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
kubectl patch service ingress-nginx-controller -n ingress-nginx --patch "$(cat ingress-nginx-svc-controller-patch.yaml)"
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: capacitor-ingress
|
|
||||||
namespace: capacitor
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "capacitor.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: capacitor
|
|
||||||
port:
|
|
||||||
number: 9000
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
---
|
|
||||||
# Source: onechart/templates/service.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: capacitor
|
|
||||||
namespace: capacitor
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: onechart-0.63.0
|
|
||||||
app.kubernetes.io/name: onechart
|
|
||||||
app.kubernetes.io/instance: capacitor
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 9000
|
|
||||||
targetPort: 9000
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: onechart
|
|
||||||
app.kubernetes.io/instance: capacitor
|
|
||||||
---
|
|
||||||
# Source: onechart/templates/deployment.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: capacitor
|
|
||||||
namespace: capacitor
|
|
||||||
labels:
|
|
||||||
helm.sh/chart: onechart-0.63.0
|
|
||||||
app.kubernetes.io/name: onechart
|
|
||||||
app.kubernetes.io/instance: capacitor
|
|
||||||
app.kubernetes.io/managed-by: Helm
|
|
||||||
annotations:
|
|
||||||
kubectl.kubernetes.io/default-container: capacitor
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: onechart
|
|
||||||
app.kubernetes.io/instance: capacitor
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
checksum/config: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: onechart
|
|
||||||
app.kubernetes.io/instance: capacitor
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
rpi5.cluster.policy/egress-namespace: "true"
|
|
||||||
rpi5.cluster.policy/egress-world: "true"
|
|
||||||
rpi5.cluster.policy/ingress-namespace: "true"
|
|
||||||
rpi5.cluster.policy/ingress-nginx: "true"
|
|
||||||
rpi5.cluster.policy/ingress-nodes: "true"
|
|
||||||
rpi5.cluster.policy/ingress-world: "true"
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: ghcr.io/gimlet-io/capacitor:v0.4.2
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: capacitor
|
|
||||||
ports:
|
|
||||||
- containerPort: 9000
|
|
||||||
name: http
|
|
||||||
protocol: TCP
|
|
||||||
readinessProbe:
|
|
||||||
failureThreshold: 3
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: 9000
|
|
||||||
scheme: HTTP
|
|
||||||
initialDelaySeconds: 0
|
|
||||||
periodSeconds: 10
|
|
||||||
successThreshold: 1
|
|
||||||
timeoutSeconds: 3
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 200Mi
|
|
||||||
securityContext: {}
|
|
||||||
initContainers: null
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 999
|
|
||||||
serviceAccountName: capacitor
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: capacitor
|
|
||||||
namespace: capacitor
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: capacitor
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- networking.k8s.io
|
|
||||||
- apps
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
- pods/log
|
|
||||||
- ingresses
|
|
||||||
- deployments
|
|
||||||
- services
|
|
||||||
- secrets
|
|
||||||
- events
|
|
||||||
- configmaps
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- list
|
|
||||||
- apiGroups:
|
|
||||||
- source.toolkit.fluxcd.io
|
|
||||||
- kustomize.toolkit.fluxcd.io
|
|
||||||
- helm.toolkit.fluxcd.io
|
|
||||||
resources:
|
|
||||||
- gitrepositories
|
|
||||||
- ocirepositories
|
|
||||||
- buckets
|
|
||||||
- helmrepositories
|
|
||||||
- helmcharts
|
|
||||||
- kustomizations
|
|
||||||
- helmreleases
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- list
|
|
||||||
- patch # to allow force reconciling by adding an annotation
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: capacitor
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: capacitor
|
|
||||||
namespace: flux-system
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: capacitor
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: capacitor
|
|
||||||
namespace: capacitor
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/capacitor/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
patches:
|
|
||||||
- target:
|
|
||||||
kind: (Service|Deployment)
|
|
||||||
name: capacitor
|
|
||||||
namespace: flux-system
|
|
||||||
patch: |
|
|
||||||
- op: replace
|
|
||||||
path: "/metadata/labels/app.kubernetes.io~1managed-by"
|
|
||||||
value: Flux
|
|
||||||
- op: remove
|
|
||||||
path: "/metadata/labels/helm.sh~1chart"
|
|
||||||
- op: add
|
|
||||||
path: "/metadata/labels/patched"
|
|
||||||
value: "true"
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: code-server-ingress
|
|
||||||
namespace: code-server
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "code-server.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: code-server
|
|
||||||
port:
|
|
||||||
number: 8443
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: code-server-pv
|
|
||||||
namespace: code-server
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 8Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/code-server"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: code-server-pvc
|
|
||||||
namespace: code-server
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: code-server-pvc
|
|
||||||
namespace: code-server
|
|
||||||
labels:
|
|
||||||
name: code-server-pvc
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 8Gi
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: code-server
|
|
||||||
namespace: code-server
|
|
||||||
spec:
|
|
||||||
releaseName: code-server
|
|
||||||
targetNamespace: code-server
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: code-server
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: nicholaswilde
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
secret:
|
|
||||||
PASSWORD: ${password}
|
|
||||||
SUDO_PASSWORD: ${sudo_password}
|
|
||||||
|
|
||||||
env:
|
|
||||||
TZ: "Australia/Sydney"
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: code-server-pvc
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: code-server-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: code-server
|
|
||||||
path: ./code-server
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: code-server
|
|
||||||
namespace: code-server
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: code-server
|
|
||||||
path: ./kubernetes/apps/code-server/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: code-server-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: code-server-secrets
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: dokuwiki-ingress
|
|
||||||
namespace: dokuwiki
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "dokuwiki.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: dokuwiki-dokuwiki
|
|
||||||
port:
|
|
||||||
number: 18000
|
|
||||||
- host: "dokuwiki.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: dokuwiki-dokuwiki
|
|
||||||
port:
|
|
||||||
number: 18000
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: dokuwiki
|
|
||||||
namespace: dokuwiki
|
|
||||||
spec:
|
|
||||||
targetNamespace: dokuwiki
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: dokuwiki
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bitnami
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
dokuwikiUsername: ${username}
|
|
||||||
dokuwikiPassword: ${password}
|
|
||||||
dokuwikiEmail: ${email}
|
|
||||||
dokuwikiFullName: "Edward Cheng"
|
|
||||||
dokuwikiWikiName: My Doku Wiki
|
|
||||||
containerPorts:
|
|
||||||
http: 18000
|
|
||||||
https: 18443
|
|
||||||
persistence:
|
|
||||||
existingClaim: "dokuwiki-pvc"
|
|
||||||
service:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
http: 18000
|
|
||||||
https: 18443
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: dokuwiki-pv
|
|
||||||
namespace: dokuwiki
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 12Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/dokuwiki"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: dokuwiki-pvc
|
|
||||||
namespace: dokuwiki
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: dokuwiki-pvc
|
|
||||||
namespace: dokuwiki
|
|
||||||
labels:
|
|
||||||
name: dokuwiki-pvc
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 12Gi
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: dokuwiki-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: dokuwiki
|
|
||||||
path: ./dokuwiki
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: dokuwiki
|
|
||||||
namespace: dokuwiki
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/dokuwiki/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: dokuwiki-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: dokuwiki-secrets
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: gitea-ingress
|
|
||||||
namespace: gitea
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "gitea.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: gitea-gitea
|
|
||||||
port:
|
|
||||||
number: 10080
|
|
||||||
- host: "gitea.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: gitea-gitea
|
|
||||||
port:
|
|
||||||
number: 10080
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: gitea
|
|
||||||
namespace: gitea
|
|
||||||
spec:
|
|
||||||
targetNamespace: gitea
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: gitea
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bitnami
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
image:
|
|
||||||
debug: true
|
|
||||||
updateStrategy:
|
|
||||||
type: Recreate
|
|
||||||
livenessProbe:
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 600
|
|
||||||
periodSeconds: 60
|
|
||||||
timeoutSeconds: 30
|
|
||||||
failureThreshold: 5
|
|
||||||
successThreshold: 1
|
|
||||||
readinessProbe:
|
|
||||||
enabled: true
|
|
||||||
path: /
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 60
|
|
||||||
timeoutSeconds: 30
|
|
||||||
failureThreshold: 5
|
|
||||||
successThreshold: 1
|
|
||||||
adminUsername: ${admin_username}
|
|
||||||
adminPassword: ${admin_password}
|
|
||||||
adminEmail: ${admin_email}
|
|
||||||
appName: app_name
|
|
||||||
persistence:
|
|
||||||
existingClaim: gitea-pvc
|
|
||||||
service:
|
|
||||||
ports:
|
|
||||||
http: 10080
|
|
||||||
ssh: 10022
|
|
||||||
postgresql:
|
|
||||||
enabled: false
|
|
||||||
externalDatabase:
|
|
||||||
host: ${db_host}
|
|
||||||
port: ${db_port}
|
|
||||||
user: ${db_user}
|
|
||||||
database: ${db_name}
|
|
||||||
password: ${db_password}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: gitea-pv
|
|
||||||
namespace: gitea
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 32Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/gitea"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: gitea-pvc
|
|
||||||
namespace: gitea
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: gitea-pvc
|
|
||||||
namespace: gitea
|
|
||||||
labels:
|
|
||||||
name: gitea-pvc
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 32Gi
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: gitea-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: gitea
|
|
||||||
path: ./gitea
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: gitea
|
|
||||||
namespace: gitea
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/gitea/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: gitea-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: gitea-secrets
|
|
||||||
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: homer
|
|
||||||
namespace: homer
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: homer
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: homer
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: homer
|
|
||||||
rpi5.cluster.policy/egress-world: "true"
|
|
||||||
rpi5.cluster.policy/ingress-world: "true"
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
containers:
|
|
||||||
- name: homer
|
|
||||||
image: b4bz/homer:v24.05.1
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
env:
|
|
||||||
- name: PORT
|
|
||||||
value: "8088"
|
|
||||||
- name: INIT_ASSETS
|
|
||||||
value: "0"
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 8088
|
|
||||||
name: http
|
|
||||||
volumeMounts:
|
|
||||||
- name: assets
|
|
||||||
mountPath: /www/assets
|
|
||||||
volumes:
|
|
||||||
- name: assets
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/homer/www/assets
|
|
||||||
type: Directory
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: homer-ingress
|
|
||||||
namespace: homer
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "home.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: homer
|
|
||||||
port:
|
|
||||||
number: 8088
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: homer
|
|
||||||
namespace: homer
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: homer
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: homer
|
|
||||||
type: ClusterIP
|
|
||||||
internalTrafficPolicy: Cluster
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 8088
|
|
||||||
targetPort: 8088
|
|
||||||
name: http
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: homer
|
|
||||||
namespace: homer
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/homer/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-ingress
|
|
||||||
namespace: jellyfin
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "jellyfin.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: jellyfin
|
|
||||||
port:
|
|
||||||
number: 8096
|
|
||||||
- host: "jellyfin.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: jellyfin
|
|
||||||
port:
|
|
||||||
number: 8096
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-config
|
|
||||||
namespace: jellyfin
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 250Mi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/config"
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-data
|
|
||||||
namespace: jellyfin
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 2Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/data"
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: jellyfin
|
|
||||||
namespace: jellyfin
|
|
||||||
spec:
|
|
||||||
releaseName: jellyfin
|
|
||||||
targetNamespace: jellyfin
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: jellyfin
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: beluga-cloud
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
persistence:
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
volumeClaimSpec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
volumeName: jellyfin-config
|
|
||||||
storageClassName: local-path
|
|
||||||
data:
|
|
||||||
enabled: true
|
|
||||||
volumeClaimSpec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
volumeName: jellyfin-data
|
|
||||||
storageClassName: local-path
|
|
||||||
jellyfin:
|
|
||||||
mediaVolumes:
|
|
||||||
- name: movies
|
|
||||||
readOnly: false
|
|
||||||
volumeSpec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 8Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: jellyfin-mediavol-movies
|
|
||||||
namespace: jellyfin
|
|
||||||
hostPath:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/media/movies"
|
|
||||||
type: "Directory"
|
|
||||||
- name: series
|
|
||||||
readOnly: false
|
|
||||||
volumeSpec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 8Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: jellyfin-mediavol-series
|
|
||||||
namespace: jellyfin
|
|
||||||
hostPath:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/media/series"
|
|
||||||
type: "Directory"
|
|
||||||
- name: music-videos
|
|
||||||
readOnly: false
|
|
||||||
volumeSpec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 8Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: jellyfin-mediavol-music-videos
|
|
||||||
namespace: jellyfin
|
|
||||||
hostPath:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/media/music-videos"
|
|
||||||
type: "Directory"
|
|
||||||
- name: short-videos
|
|
||||||
readOnly: false
|
|
||||||
volumeSpec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 8Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: jellyfin-mediavol-short-videos
|
|
||||||
namespace: jellyfin
|
|
||||||
hostPath:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/media/short-videos"
|
|
||||||
type: "Directory"
|
|
||||||
- name: gv
|
|
||||||
readOnly: false
|
|
||||||
volumeSpec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 8Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: jellyfin-mediavol-gv
|
|
||||||
namespace: jellyfin
|
|
||||||
hostPath:
|
|
||||||
path: "/mnt/nfs/AppData/jellyfin/media/gv"
|
|
||||||
type: "Directory"
|
|
||||||
persistentTranscodes: true
|
|
||||||
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: jellyfin
|
|
||||||
namespace: jellyfin
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/jellyfin/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: kavita
|
|
||||||
namespace: kavita
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: kavita
|
|
||||||
app.kubernetes.io/instance: kavita
|
|
||||||
annotations:
|
|
||||||
kubectl.kubernetes.io/default-container: kavita
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: kavita
|
|
||||||
app.kubernetes.io/instance: kavita
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: kavita
|
|
||||||
app.kubernetes.io/instance: kavita
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: jvmilazz0/kavita:0.8.1
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: kavita
|
|
||||||
ports:
|
|
||||||
- containerPort: 5000
|
|
||||||
name: http
|
|
||||||
protocol: TCP
|
|
||||||
env:
|
|
||||||
- name: TZ
|
|
||||||
value: Australia/Sydney
|
|
||||||
volumeMounts:
|
|
||||||
- name: kavita-config
|
|
||||||
mountPath: /kavita/config
|
|
||||||
- name: kavita-manga
|
|
||||||
mountPath: /manga
|
|
||||||
- name: kavita-book
|
|
||||||
mountPath: /book
|
|
||||||
- name: kavita-doc
|
|
||||||
mountPath: /doc
|
|
||||||
volumes:
|
|
||||||
- name: kavita-config
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/kavita/config
|
|
||||||
type: Directory
|
|
||||||
- name: kavita-manga
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/kavita/manga
|
|
||||||
type: Directory
|
|
||||||
- name: kavita-book
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/kavita/book
|
|
||||||
type: Directory
|
|
||||||
- name: kavita-doc
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/kavita/doc
|
|
||||||
type: Directory
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: kavita-ingress
|
|
||||||
namespace: kavita
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "kavita.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kavita
|
|
||||||
port:
|
|
||||||
number: 5000
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: kavita
|
|
||||||
namespace: kavita
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: kavita
|
|
||||||
app.kubernetes.io/instance: kavita
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 5000
|
|
||||||
targetPort: 5000
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: kavita
|
|
||||||
app.kubernetes.io/instance: kavita
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: kavita
|
|
||||||
namespace: kavita
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/kavita/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- ./adguard-home/adguard-home.yaml
|
|
||||||
- ./capacitor/capacitor.yaml
|
|
||||||
- ./code-server/code-server.yaml
|
|
||||||
- ./dokuwiki/dokuwiki.yaml
|
|
||||||
- ./gitea/gitea.yaml
|
|
||||||
- ./homer/homer.yaml
|
|
||||||
- ./jellyfin/jellyfin.yaml
|
|
||||||
- ./kavita/kavita.yaml
|
|
||||||
- ./nexus/nexus.yaml
|
|
||||||
- ./podinfo/podinfo.yaml
|
|
||||||
- ./qbittorrent/qbittorrent.yaml
|
|
||||||
- ./snippet-box/snippet-box.yaml
|
|
||||||
- ./sonarqube/sonarqube.yaml
|
|
||||||
- ./uptime-kuma/uptime-kuma.yaml
|
|
||||||
- ./vaultwarden/vaultwarden.yaml
|
|
||||||
- ./weave-gitops/weave-gitops.yaml
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: nexus
|
|
||||||
namespace: nexus
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: nexus
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nexus
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 0
|
|
||||||
runAsGroup: 0
|
|
||||||
containers:
|
|
||||||
- name: nexus
|
|
||||||
image: klo2k/nexus3:3.68.1-02
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: "3Gi"
|
|
||||||
cpu: "1"
|
|
||||||
requests:
|
|
||||||
memory: "2Gi"
|
|
||||||
cpu: "500m"
|
|
||||||
ports:
|
|
||||||
- containerPort: 8081
|
|
||||||
volumeMounts:
|
|
||||||
- name: nexus-data
|
|
||||||
mountPath: /nexus-data
|
|
||||||
volumes:
|
|
||||||
- name: nexus-data
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/nexus
|
|
||||||
type: Directory
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: nexus
|
|
||||||
namespace: nexus
|
|
||||||
annotations:
|
|
||||||
prometheus.io/scrape: 'true'
|
|
||||||
prometheus.io/path: /
|
|
||||||
prometheus.io/port: '8081'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nexus
|
|
||||||
type: NodePort
|
|
||||||
ports:
|
|
||||||
- port: 8081
|
|
||||||
targetPort: 8081
|
|
||||||
nodePort: 32000
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: nexus
|
|
||||||
namespace: nexus
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/nexus/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: podinfo
|
|
||||||
namespace: podinfo
|
|
||||||
spec:
|
|
||||||
releaseName: podinfo
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: podinfo
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: podinfo
|
|
||||||
interval: 50m
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
# Default values
|
|
||||||
# https://github.com/stefanprodan/podinfo/blob/master/charts/podinfo/values.yaml
|
|
||||||
values:
|
|
||||||
redis:
|
|
||||||
enabled: true
|
|
||||||
repository: public.ecr.aws/docker/library/redis
|
|
||||||
tag: 7.0.6
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
className: nginx
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: podinfo
|
|
||||||
namespace: podinfo
|
|
||||||
spec:
|
|
||||||
interval: 5m
|
|
||||||
url: https://stefanprodan.github.io/podinfo
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: podinfo
|
|
||||||
namespace: podinfo
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/podinfo/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: qbittorrent-ingress
|
|
||||||
namespace: qbittorrent
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "qbittorrent.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: qbittorrent-qbittorrent-web
|
|
||||||
port:
|
|
||||||
number: 8888
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: qbittorrent
|
|
||||||
namespace: qbittorrent
|
|
||||||
spec:
|
|
||||||
targetNamespace: qbittorrent
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: qbittorrent
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: adminafk
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
service:
|
|
||||||
web:
|
|
||||||
port: 8888
|
|
||||||
torrent:
|
|
||||||
port: 8388
|
|
||||||
config:
|
|
||||||
persistence:
|
|
||||||
name: config
|
|
||||||
storageClass: local-path
|
|
||||||
size: 5Gi
|
|
||||||
volumeMounts:
|
|
||||||
- name: download
|
|
||||||
mountPath: /download
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: config
|
|
||||||
namespace: qbittorrent
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 5Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/qbittorrent/config"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: config
|
|
||||||
namespace: qbittorrent
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
#apiVersion: v1
|
|
||||||
#kind: PersistentVolumeClaim
|
|
||||||
#metadata:
|
|
||||||
# name: qbittorrent-config-pvc
|
|
||||||
# namespace: qbittorrent
|
|
||||||
# labels:
|
|
||||||
# name: qbittorrent-config-pvc
|
|
||||||
#spec:
|
|
||||||
# storageClassName: local-path
|
|
||||||
# volumeMode: Filesystem
|
|
||||||
# accessModes:
|
|
||||||
# - ReadWriteOnce
|
|
||||||
# resources:
|
|
||||||
# requests:
|
|
||||||
# storage: 5Gi
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: download
|
|
||||||
namespace: qbittorrent
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 64Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/qbittorrent/download"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: download
|
|
||||||
namespace: qbittorrent
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: download
|
|
||||||
namespace: qbittorrent
|
|
||||||
labels:
|
|
||||||
name: download
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 64Gi
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: qbittorrent
|
|
||||||
namespace: qbittorrent
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/qbittorrent/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: torrent-tcp
|
|
||||||
port: 8388
|
|
||||||
targetPort: 8388
|
|
||||||
protocol: TCP
|
|
||||||
- name: torrent-udp
|
|
||||||
port: 8388
|
|
||||||
targetPort: 8388
|
|
||||||
protocol: UDP
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
kubectl patch service ingress-nginx-controller -n ingress-nginx --patch "$(cat kubernetes/apps/qbittorrent/scripts/ingress-nginx-svc-controller-patch.yaml)"
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: snippet-box
|
|
||||||
namespace: snippet-box
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snippet-box
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: snippet-box
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snippet-box
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: snippet-box
|
|
||||||
image: pawelmalak/snippet-box:arm
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 5000
|
|
||||||
name: snippet-box
|
|
||||||
env:
|
|
||||||
- name: TZ
|
|
||||||
value: Australia/Sydney
|
|
||||||
volumeMounts:
|
|
||||||
- name: snippet-box-data
|
|
||||||
mountPath: /app/data
|
|
||||||
volumes:
|
|
||||||
- name: snippet-box-data
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/snippet-box
|
|
||||||
type: Directory
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: snippet-box-ingress
|
|
||||||
namespace: snippet-box
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "snippet-box.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: snippet-box
|
|
||||||
port:
|
|
||||||
number: 5000
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: snippet-box
|
|
||||||
namespace: snippet-box
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snippet-box
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: snippet-box
|
|
||||||
type: ClusterIP
|
|
||||||
internalTrafficPolicy: Cluster
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 5000
|
|
||||||
targetPort: 5000
|
|
||||||
name: snippet-box
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: snippet-box
|
|
||||||
namespace: snippet-box
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/snippet-box/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: sonarqube
|
|
||||||
namespace: sonarqube
|
|
||||||
spec:
|
|
||||||
releaseName: sonarqube
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: sonarqube
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bitnami
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
sonarqubeUsername: ${sonarqube_username}
|
|
||||||
sonarqubePassword: ${sonarqube_password}
|
|
||||||
sonarqubeEmail: ${sonarqube_email}
|
|
||||||
smtpHost: ${smtp_host}
|
|
||||||
smtpPort: ${smtp_port}
|
|
||||||
smtpUser: ${smtp_user}
|
|
||||||
smtpPassword: ${smtp_password}
|
|
||||||
smtpProtocol: ${smtp_protocol}
|
|
||||||
service:
|
|
||||||
ports:
|
|
||||||
http: 8090
|
|
||||||
elastic: 9091
|
|
||||||
nodePorts:
|
|
||||||
http: 30080
|
|
||||||
elastic: 30091
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
storageClass: local-path
|
|
||||||
size: "32Gi"
|
|
||||||
existingClaim: "sonarqube-pvc"
|
|
||||||
postgresql:
|
|
||||||
enabled: false
|
|
||||||
externalDatabase:
|
|
||||||
host: ${db_host}
|
|
||||||
user: ${db_user}
|
|
||||||
password: ${db_password}
|
|
||||||
database: ${db_name}
|
|
||||||
port: ${db_port}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: sonarqube-pv
|
|
||||||
namespace: sonarqube
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 32Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/sonarqube"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: sonarqube-pvc
|
|
||||||
namespace: sonarqube
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-2
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: sonarqube-pvc
|
|
||||||
namespace: sonarqube
|
|
||||||
labels:
|
|
||||||
name: sonarqube-pvc
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 32Gi
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: sonarqube-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: sonarqube
|
|
||||||
path: ./sonarqube
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: sonarqube
|
|
||||||
namespace: sonarqube
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/sonarqube/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: sonarqube-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: sonarqube-secrets
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: uptime-kuma-ingress
|
|
||||||
namespace: uptime-kuma
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "uptime-kuma.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: uptime-kuma
|
|
||||||
port:
|
|
||||||
number: 3001
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: uptime-kuma-pv
|
|
||||||
namespace: uptime-kuma
|
|
||||||
labels:
|
|
||||||
type: local
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
capacity:
|
|
||||||
storage: 4Gi
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
local:
|
|
||||||
path: "/mnt/nfs/AppData/uptime-kuma"
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: uptime-kuma-pvc
|
|
||||||
namespace: uptime-kuma
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- rpi5-cluster-node-1
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: uptime-kuma-pvc
|
|
||||||
namespace: uptime-kuma
|
|
||||||
labels:
|
|
||||||
name: uptime-kuma-pvc
|
|
||||||
spec:
|
|
||||||
storageClassName: local-path
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 4Gi
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: uptime-kuma
|
|
||||||
namespace: uptime-kuma
|
|
||||||
spec:
|
|
||||||
releaseName: uptime-kuma
|
|
||||||
targetNamespace: uptime-kuma
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: uptime-kuma
|
|
||||||
version: 2.18.1
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: irsigler
|
|
||||||
namespace: flux-system
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
volume:
|
|
||||||
enabled: true
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 4Gi
|
|
||||||
existingClaim: "uptime-kuma-pvc"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: uptime-kuma
|
|
||||||
namespace: uptime-kuma
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/uptime-kuma/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden
|
|
||||||
namespace: vaultwarden
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: vaultwarden
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: vaultwarden
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: vaultwarden
|
|
||||||
rpi5.cluster.policy/egress-world: "true"
|
|
||||||
rpi5.cluster.policy/ingress-world: "true"
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
containers:
|
|
||||||
- securityContext:
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsGroup: 1000
|
|
||||||
name: vaultwarden
|
|
||||||
image: vaultwarden/server:1.31.0
|
|
||||||
env:
|
|
||||||
- name: DOMAIN
|
|
||||||
value: https://vaultwarden.cluster.edward.sydney
|
|
||||||
- name: SIGNUPS_ALLOWED
|
|
||||||
value: "true"
|
|
||||||
- name: DATABASE_URL
|
|
||||||
value: postgresql://${db_username}:${db_password}@${db_host}:5432/${db_name}
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
containerPort: 80
|
|
||||||
name: http
|
|
||||||
volumeMounts:
|
|
||||||
- name: vaultwarden-data
|
|
||||||
mountPath: /data
|
|
||||||
volumes:
|
|
||||||
- name: vaultwarden-data
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/vaultwarden/data
|
|
||||||
type: Directory
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden-ingress
|
|
||||||
namespace: vaultwarden
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "vaultwarden.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: vaultwarden
|
|
||||||
port:
|
|
||||||
number: 11080
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden
|
|
||||||
namespace: vaultwarden
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: vaultwarden
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: vaultwarden
|
|
||||||
type: ClusterIP
|
|
||||||
internalTrafficPolicy: Cluster
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 11080
|
|
||||||
targetPort: 80
|
|
||||||
name: http
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: vaultwarden
|
|
||||||
path: ./vaultwarden
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: vaultwarden
|
|
||||||
namespace: vaultwarden
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/vaultwarden/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: vaultwarden-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: vaultwarden-secrets
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: weave-gitops-ingress
|
|
||||||
namespace: flux-system
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: "weave-gitops.cluster.edward.sydney"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: ww-gitops-weave-gitops
|
|
||||||
port:
|
|
||||||
number: 9001
|
|
||||||
- host: "weave-gitops.cluster.local"
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- pathType: Prefix
|
|
||||||
path: "/"
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: ww-gitops-weave-gitops
|
|
||||||
port:
|
|
||||||
number: 9001
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
metadata.weave.works/description: This is the source location for the Weave GitOps
|
|
||||||
Dashboard's helm chart.
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/component: ui
|
|
||||||
app.kubernetes.io/created-by: weave-gitops-cli
|
|
||||||
app.kubernetes.io/name: weave-gitops-dashboard
|
|
||||||
app.kubernetes.io/part-of: weave-gitops
|
|
||||||
name: ww-gitops
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 1h0m0s
|
|
||||||
type: oci
|
|
||||||
url: oci://ghcr.io/weaveworks/charts
|
|
||||||
---
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
metadata.weave.works/description: This is the Weave GitOps Dashboard. It provides
|
|
||||||
a simple way to get insights into your GitOps workloads.
|
|
||||||
name: ww-gitops
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: weave-gitops
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: ww-gitops
|
|
||||||
interval: 1h0m0s
|
|
||||||
values:
|
|
||||||
adminUser:
|
|
||||||
create: true
|
|
||||||
passwordHash: $2a$10$gnPEHsFzIJXg/eron5LiQ.teGZkKETxuA2WAyKSbxHvxpkzWJvbDe
|
|
||||||
username: admin
|
|
||||||
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: weave-gitops
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/apps/weave-gitops/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: cert-manager
|
|
||||||
namespace: cert-manager
|
|
||||||
spec:
|
|
||||||
interval: 1h
|
|
||||||
driftDetection:
|
|
||||||
mode: enabled
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: cert-manager
|
|
||||||
version: v1.15.0
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
namespace: cert-manager
|
|
||||||
name: cert-manager
|
|
||||||
interval: 1h
|
|
||||||
install:
|
|
||||||
crds: Create
|
|
||||||
upgrade:
|
|
||||||
crds: CreateReplace
|
|
||||||
values:
|
|
||||||
installCRDs: true
|
|
||||||
|
|
||||||
podLabels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
rpi5.cluster.policy/egress-namespace: "true"
|
|
||||||
rpi5.cluster.policy/egress-world: "true"
|
|
||||||
rpi5.cluster.policy/ingress-namespace: "true"
|
|
||||||
webhook:
|
|
||||||
podLabels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
cainjector:
|
|
||||||
podLabels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
|
|
||||||
global:
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
|
|
||||||
podDnsConfig:
|
|
||||||
nameservers:
|
|
||||||
- 1.1.1.1
|
|
||||||
- 1.0.0.1
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: cert-manager
|
|
||||||
namespace: cert-manager
|
|
||||||
spec:
|
|
||||||
interval: 1h
|
|
||||||
url: https://charts.jetstack.io
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: cert-manager
|
|
||||||
namespace: cert-manager
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: cert-manager
|
|
||||||
path: ./kubernetes/infrastructure/cert-manager/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: namespaces
|
|
||||||
namespace: flux-system
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: clusterissuer-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: cert-manager
|
|
||||||
path: ./clusterissuer
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: namespaces
|
|
||||||
namespace: flux-system
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: clusterissuer
|
|
||||||
namespace: cert-manager
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: cert-manager
|
|
||||||
path: ./kubernetes/infrastructure/cert-manager/clusterissuer
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: clusterissuer-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
- name: cert-manager
|
|
||||||
namespace: cert-manager
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: clusterissuer-secrets
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: certificate-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: cert-manager
|
|
||||||
path: ./certificates
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: namespaces
|
|
||||||
namespace: flux-system
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: certificates
|
|
||||||
namespace: cert-manager
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: cert-manager
|
|
||||||
path: ./kubernetes/infrastructure/cert-manager/certificates
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: certificate-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
- name: cert-manager
|
|
||||||
namespace: cert-manager
|
|
||||||
- name: clusterissuer
|
|
||||||
namespace: cert-manager
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: certificate-secrets
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
#apiVersion: cert-manager.io/v1
|
|
||||||
#kind: Certificate
|
|
||||||
#metadata:
|
|
||||||
# name: adguard-home-cert
|
|
||||||
# namespace: cert-manager
|
|
||||||
#spec:
|
|
||||||
# # Secret names are always required.
|
|
||||||
# secretName: adguard-home.cluster.edward.sydney-tls
|
|
||||||
#
|
|
||||||
# privateKey:
|
|
||||||
# algorithm: RSA
|
|
||||||
# encoding: PKCS1
|
|
||||||
# size: 2048
|
|
||||||
#
|
|
||||||
# # keystores allows adding additional output formats. This is an example for reference only.
|
|
||||||
# keystores:
|
|
||||||
# pkcs12:
|
|
||||||
# create: true
|
|
||||||
# passwordSecretRef:
|
|
||||||
# name: adguard-home-tls-keystore
|
|
||||||
# key: ${adguard_home_certificate_tls_keystore_password}
|
|
||||||
# profile: Modern2023
|
|
||||||
#
|
|
||||||
# duration: 2160h # 90d
|
|
||||||
# renewBefore: 360h # 15d
|
|
||||||
#
|
|
||||||
# isCA: false
|
|
||||||
# usages:
|
|
||||||
# - server auth
|
|
||||||
# - client auth
|
|
||||||
#
|
|
||||||
# subject:
|
|
||||||
# organizations:
|
|
||||||
# - edward.sydney
|
|
||||||
#
|
|
||||||
# # The literalSubject field is exclusive with subject and commonName. It allows
|
|
||||||
# # specifying the subject directly as a string. This is useful for when the order
|
|
||||||
# # of the subject fields is important or when the subject contains special types
|
|
||||||
# # which can be specified by their OID.
|
|
||||||
# #
|
|
||||||
# # literalSubject: "O=jetstack, CN=example.com, 2.5.4.42=John, 2.5.4.4=Doe"
|
|
||||||
#
|
|
||||||
# # At least one of commonName (possibly through literalSubject), dnsNames, uris, emailAddresses, ipAddresses or otherNames is required.
|
|
||||||
# dnsNames:
|
|
||||||
# - "${adguard_home_certificate_dns_name}"
|
|
||||||
# - "*.${adguard_home_certificate_dns_name}"
|
|
||||||
# emailAddresses:
|
|
||||||
# - ${adguard_home_certificate_email}
|
|
||||||
#
|
|
||||||
# # Issuer references are always required.
|
|
||||||
# issuerRef:
|
|
||||||
# name: clusterissuer
|
|
||||||
# # We can reference ClusterIssuers by changing the kind here.
|
|
||||||
# # The default value is Issuer (i.e. a locally namespaced Issuer)
|
|
||||||
# kind: ClusterIssuer
|
|
||||||
# # This is optional since cert-manager will default to this value however
|
|
||||||
# # if you are using an external issuer, change this to that issuer group.
|
|
||||||
# group: cert-manager.io
|
|
||||||
|
|
||||||
#The certificate request has failed to complete and will be retried:
|
|
||||||
# Failed to wait for order resource "adguard-home-cert-1-1931876784" to become
|
|
||||||
# ready: order is in "errored" state: Failed to create Order: 429 urn:ietf:params:acme:error:rateLimited:
|
|
||||||
# Error creating new order :: too many certificates already issued for "edward.sydney".
|
|
||||||
# Retry after 2024-06-25T21:00:00Z: see https://letsencrypt.org/docs/rate-limits/
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: ClusterIssuer
|
|
||||||
metadata:
|
|
||||||
name: clusterissuer
|
|
||||||
namespace: cert-manager
|
|
||||||
spec:
|
|
||||||
acme:
|
|
||||||
email: ${email}
|
|
||||||
server: https://acme-v02.api.letsencrypt.org/directory
|
|
||||||
privateKeySecretRef:
|
|
||||||
name: cluster-issuer-account-key
|
|
||||||
solvers:
|
|
||||||
- dns01:
|
|
||||||
cloudflare:
|
|
||||||
email: ${email}
|
|
||||||
apiTokenSecretRef:
|
|
||||||
name: clusterissuer-secrets
|
|
||||||
key: cloudflare_api_token
|
|
||||||
selector:
|
|
||||||
dnsNames:
|
|
||||||
- "${cluster_cert_domain}"
|
|
||||||
- "*.${cluster_cert_domain}"
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: cilium
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: cilium
|
|
||||||
version: 1.15.5
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
namespace: kube-system
|
|
||||||
name: cilium
|
|
||||||
install:
|
|
||||||
crds: Create
|
|
||||||
upgrade:
|
|
||||||
crds: CreateReplace
|
|
||||||
interval: 1h
|
|
||||||
driftDetection:
|
|
||||||
mode: enabled
|
|
||||||
values:
|
|
||||||
global:
|
|
||||||
encryption:
|
|
||||||
enabled: true
|
|
||||||
nodeEncryption: true
|
|
||||||
|
|
||||||
policyEnforcementMode: default
|
|
||||||
|
|
||||||
operator:
|
|
||||||
replicas: 1
|
|
||||||
|
|
||||||
ipam:
|
|
||||||
mode: cluster-pool
|
|
||||||
operator:
|
|
||||||
clusterPoolIPv4PodCIDRList: [10.42.0.0/16]
|
|
||||||
clusterPoolIPv4MaskSize: 24
|
|
||||||
|
|
||||||
dnsProxy:
|
|
||||||
dnsRejectResponseCode: nameError
|
|
||||||
|
|
||||||
cni:
|
|
||||||
exclusive: false
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: cilium
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/infrastructure/cilium/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: cilium-networkpolicies
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
suspend: false
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/infrastructure/cilium/networkpolicies
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: ingress-nginx
|
|
||||||
namespace: ingress-nginx
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: coredns
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
k8s-app: kube-dns
|
|
||||||
egress:
|
|
||||||
- toEntities:
|
|
||||||
- world
|
|
||||||
toPorts:
|
|
||||||
- ports:
|
|
||||||
- port: "53"
|
|
||||||
- toEntities:
|
|
||||||
- host
|
|
||||||
- remote-node
|
|
||||||
toPorts:
|
|
||||||
- ports:
|
|
||||||
- port: "6443"
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-kube-dns
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchExpressions:
|
|
||||||
- key: rpi5.cluster.policy/egress-kube-dns
|
|
||||||
operator: NotIn
|
|
||||||
values:
|
|
||||||
- "false"
|
|
||||||
egress:
|
|
||||||
- toEndpoints:
|
|
||||||
- matchLabels:
|
|
||||||
io.kubernetes.pod.namespace: kube-system
|
|
||||||
k8s-app: kube-dns
|
|
||||||
toPorts:
|
|
||||||
- ports:
|
|
||||||
- port: "53"
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-kubeapi
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
egress:
|
|
||||||
- toEntities:
|
|
||||||
- host
|
|
||||||
- remote-node
|
|
||||||
toPorts:
|
|
||||||
- ports:
|
|
||||||
- port: "6443"
|
|
||||||
- toEntities:
|
|
||||||
- kube-apiserver
|
|
||||||
toPorts:
|
|
||||||
- ports:
|
|
||||||
- port: "443"
|
|
||||||
- port: "6443"
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-namespace
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/egress-namespace: "true"
|
|
||||||
egress:
|
|
||||||
- toEndpoints:
|
|
||||||
- {}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-nodes
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/egress-nodes: "true"
|
|
||||||
egress:
|
|
||||||
- toEntities:
|
|
||||||
- host
|
|
||||||
- remote-node
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-world
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/egress-world: "true"
|
|
||||||
egress:
|
|
||||||
- toCIDRSet:
|
|
||||||
- cidr: 0.0.0.0/0
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: ingress-namespace
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/ingress-namespace: "true"
|
|
||||||
ingress:
|
|
||||||
- fromEndpoints:
|
|
||||||
- {}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: ingress-ingress
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/ingress-ingress: "true"
|
|
||||||
ingress:
|
|
||||||
- fromEndpoints:
|
|
||||||
- matchLabels:
|
|
||||||
io.kubernetes.pod.namespace: ingress-nginx
|
|
||||||
app.kubernetes.io/name: ingress-nginx
|
|
||||||
app.kubernetes.io/component: controller
|
|
||||||
---
|
|
||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: ingress-nginx
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: ingress-nginx
|
|
||||||
app.kubernetes.io/component: controller
|
|
||||||
egress:
|
|
||||||
- toEndpoints:
|
|
||||||
- matchLabels:
|
|
||||||
rpi5.cluster.policy/ingress-ingress: "true"
|
|
||||||
matchExpressions:
|
|
||||||
- key: io.kubernetes.pod.namespace
|
|
||||||
operator: Exists
|
|
||||||
---
|
|
||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-ingress
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/egress-ingress: "true"
|
|
||||||
egress:
|
|
||||||
- toEndpoints:
|
|
||||||
- matchLabels:
|
|
||||||
io.kubernetes.pod.namespace: ingress-nginx
|
|
||||||
app.kubernetes.io/name: ingress-nginx
|
|
||||||
app.kubernetes.io/component: controller
|
|
||||||
---
|
|
||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: egress-nginx
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: ingress-nginx
|
|
||||||
app.kubernetes.io/component: controller
|
|
||||||
ingress:
|
|
||||||
- fromEndpoints:
|
|
||||||
- matchLabels:
|
|
||||||
rpi5.cluster.policy/egress-ingress: "true"
|
|
||||||
matchExpressions:
|
|
||||||
- key: io.kubernetes.pod.namespace
|
|
||||||
operator: Exists
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: ingress-nodes
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/ingress-nodes: "true"
|
|
||||||
ingress:
|
|
||||||
- fromEntities:
|
|
||||||
- host
|
|
||||||
- remote-node
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumClusterwideNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: ingress-world
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
rpi5.cluster.policy/ingress-world: "true"
|
|
||||||
ingress:
|
|
||||||
- fromEntities:
|
|
||||||
- world
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: cilium.io/v2
|
|
||||||
kind: CiliumNetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: local-path-provisioner
|
|
||||||
namespace: kube-system
|
|
||||||
spec:
|
|
||||||
endpointSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: local-path-provisioner
|
|
||||||
egress:
|
|
||||||
- toEntities:
|
|
||||||
- host
|
|
||||||
- remote-node
|
|
||||||
toPorts:
|
|
||||||
- ports:
|
|
||||||
- port: "6443"
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: consul
|
|
||||||
namespace: consul
|
|
||||||
labels:
|
|
||||||
app: consul
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
protocol: TCP
|
|
||||||
port: 8500
|
|
||||||
targetPort: 8500
|
|
||||||
selector:
|
|
||||||
app: consul
|
|
||||||
type: ClusterIP
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: consul
|
|
||||||
namespace: consul
|
|
||||||
labels:
|
|
||||||
app: consul
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: consul
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: consul
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: consul
|
|
||||||
image: 'consul:1.15.4'
|
|
||||||
args:
|
|
||||||
- agent
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 8500
|
|
||||||
protocol: TCP
|
|
||||||
env:
|
|
||||||
- name: TZ
|
|
||||||
value: Australia/Sydney
|
|
||||||
volumeMounts:
|
|
||||||
- name: consul-data
|
|
||||||
mountPath: /consul/data
|
|
||||||
- name: consul-config
|
|
||||||
mountPath: /consul/config
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
volumes:
|
|
||||||
- name: consul-data
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/consul/data
|
|
||||||
type: Directory
|
|
||||||
- name: consul-config
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/consul/config
|
|
||||||
type: Directory
|
|
||||||
restartPolicy: Always
|
|
||||||
serviceName: consul
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: consul
|
|
||||||
namespace: consul
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/infrastructure/consul/app
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: namespaces
|
|
||||||
namespace: flux-system
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: grafana-dashboards-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
suspend: true
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
targetNamespace: prometheus
|
|
||||||
path: ./grafana-dashboards
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: home-cluster-ops-secrets
|
|
||||||
dependsOn:
|
|
||||||
- name: repositories
|
|
||||||
namespace: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: grafana-dashboards
|
|
||||||
namespace: prometheus
|
|
||||||
spec:
|
|
||||||
suspend: true
|
|
||||||
interval: 10m
|
|
||||||
timeout: 1m30s
|
|
||||||
retryInterval: 30s
|
|
||||||
path: ./kubernetes/infrastructure/grafana-dashboards/dashboards
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
namespace: flux-system
|
|
||||||
name: flux-system
|
|
||||||
dependsOn:
|
|
||||||
- name: namespaces
|
|
||||||
namespace: flux-system
|
|
||||||
- name: grafana-dashboards-secrets
|
|
||||||
namespace: flux-system
|
|
||||||
postBuild:
|
|
||||||
substituteFrom:
|
|
||||||
- kind: Secret
|
|
||||||
name: grafana-dashboards-secrets
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: ingress-nginx
|
|
||||||
namespace: ingress-nginx
|
|
||||||
spec:
|
|
||||||
interval: 1h
|
|
||||||
driftDetection:
|
|
||||||
mode: enabled
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: ingress-nginx
|
|
||||||
version: 4.10.1
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
namespace: ingress-nginx
|
|
||||||
name: ingress-nginx
|
|
||||||
interval: 1h
|
|
||||||
values:
|
|
||||||
rbac:
|
|
||||||
create: true
|
|
||||||
|
|
||||||
controller:
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
|
|
||||||
extraArgs:
|
|
||||||
update-status-on-shutdown: "false"
|
|
||||||
tcp-services-configmap: "ingress-nginx/tcp-services"
|
|
||||||
udp-services-configmap: "ingress-nginx/udp-services"
|
|
||||||
|
|
||||||
podLabels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
rpi5.cluster.policy/egress-namespace: "true"
|
|
||||||
rpi5.cluster.policy/egress-world-with-lan: "true"
|
|
||||||
rpi5.cluster.policy/ingress-nodes: "true"
|
|
||||||
rpi5.cluster.policy/ingress-prometheus: "true"
|
|
||||||
rpi5.cluster.policy/ingress-world: "true"
|
|
||||||
|
|
||||||
allowSnippetAnnotations: true
|
|
||||||
|
|
||||||
# maxmindLicenseKey: ${geoip_license_key}
|
|
||||||
|
|
||||||
config:
|
|
||||||
proxy-buffer-size: 16k
|
|
||||||
use-gzip: ${use_gzip:=true}
|
|
||||||
enable-brotli: ${enable_brotli:=true}
|
|
||||||
hsts-max-age: ${hsts_max_age:=31536000}
|
|
||||||
hsts-preload: ${hsts_preload:=true}
|
|
||||||
disable-ipv6: ${disable_ipv6:=false}
|
|
||||||
disable-ipv6-dns: ${disable_ipv6_dns:=false}
|
|
||||||
keep-alive-requests: ${keep_alive_requests:=1000}
|
|
||||||
use-geoip2: ${use_geoip2:=true}
|
|
||||||
custom-http-errors: 401,403,404,500,501,502,503,504
|
|
||||||
|
|
||||||
extraEnvs:
|
|
||||||
- name: TZ
|
|
||||||
value: Australia/Sydney
|
|
||||||
|
|
||||||
addHeaders:
|
|
||||||
Referrer-Policy: same-origin, strict-origin-when-cross-origin
|
|
||||||
X-Content-Type-Options: nosniff
|
|
||||||
X-Frame-Options: SAMEORIGIN
|
|
||||||
X-XSS-Protection: 1; mode=block
|
|
||||||
|
|
||||||
ingressClassResource:
|
|
||||||
default: true
|
|
||||||
|
|
||||||
service:
|
|
||||||
externalTrafficPolicy: Cluster
|
|
||||||
ipFamilyPolicy: SingleStack
|
|
||||||
|
|
||||||
metrics:
|
|
||||||
enabled: ${metrics_enabled:=false}
|
|
||||||
# serviceMonitor:
|
|
||||||
# enabled: ${metrics_enabled:=false}
|
|
||||||
# scrapeInterval: 1m
|
|
||||||
|
|
||||||
admissionWebhooks:
|
|
||||||
labels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
rpi5.cluster.policy/egress-kubeapi: "true"
|
|
||||||
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/nginx/template
|
|
||||||
name: nginx-template-volume
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: nginx-template-volume
|
|
||||||
hostPath:
|
|
||||||
path: /mnt/nfs/AppData/ingress-nginx/etc/nginx/template
|
|
||||||
type: Directory
|
|
||||||
|
|
||||||
defaultBackend:
|
|
||||||
enabled: true
|
|
||||||
image:
|
|
||||||
repository: ghcr.io/tarampampam/error-pages
|
|
||||||
tag: 2.27.0@sha256:40e2631173b1a407c18fe7d1ba8104d995cf9e4780d123eeadfa1d57c68eaf4f
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
extraEnvs:
|
|
||||||
- name: TEMPLATE_NAME
|
|
||||||
value: connection
|
|
||||||
- name: SHOW_DETAILS
|
|
||||||
value: "true"
|
|
||||||
- name: READ_BUFFER_SIZE
|
|
||||||
value: "8192"
|
|
||||||
podLabels:
|
|
||||||
rpi5.cluster.policy/ingress-namespace: "true"
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: ingress-nginx
|
|
||||||
namespace: ingress-nginx
|
|
||||||
spec:
|
|
||||||
interval: 1h
|
|
||||||
url: https://kubernetes.github.io/ingress-nginx
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: tcp-services
|
|
||||||
namespace: ingress-nginx
|
|
||||||
data:
|
|
||||||
"53": "adguard-home/adguard-home:53"
|
|
||||||
"853": "adguard-home/adguard-home:853"
|
|
||||||
"5443": "adguard-home/adguard-home:5443"
|
|
||||||
"6060": "adguard-home/adguard-home:6060"
|
|
||||||
"8388": "qbittorrent/qbittorrent-qbittorrent-torrent:8388"
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: udp-services
|
|
||||||
namespace: ingress-nginx
|
|
||||||
data:
|
|
||||||
"53": "adguard-home/adguard-home:53"
|
|
||||||
"67": "adguard-home/adguard-home:67"
|
|
||||||
"68": "adguard-home/adguard-home:68"
|
|
||||||
"853": "adguard-home/adguard-home:853"
|
|
||||||
"5443": "adguard-home/adguard-home:5443"
|
|
||||||
"8388": "qbittorrent/qbittorrent-qbittorrent-torrent:8388"
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user