Compare commits
56
Commits
ceaedd01f0
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a0a848574 | ||
|
|
a1c7c55af6 | ||
|
|
d0e0d6293f | ||
|
|
dfdb9e265b | ||
|
|
6d5cca04d3 | ||
|
|
7a8f059904 | ||
|
|
95307eeb7a | ||
|
|
d97cd9ca52 | ||
|
|
e38ff7ed9b | ||
|
|
cb33f63ea7 | ||
|
|
8f9c504515 | ||
|
|
310f4e00f9 | ||
|
|
0c5013f156 | ||
|
|
d1b0538bde | ||
|
|
185bf16546 | ||
|
|
e4ca046a13 | ||
|
|
97e4e31486 | ||
|
|
6362d19578 | ||
|
|
b600dfc111 | ||
|
|
1802482f3e | ||
|
|
e1e6f5161d | ||
|
|
37d2be6e27 | ||
|
|
82c2e4d0ec | ||
|
|
d050ee16e1 | ||
|
|
a3e9f3e00a | ||
|
|
002f832321 | ||
|
|
6dfbd9224f | ||
|
|
85982571dd | ||
|
|
f973579c3c | ||
|
|
e1bb9ddda6 | ||
|
|
63591efc8f | ||
|
|
213428cefe | ||
|
|
01b9d5f5d0 | ||
|
|
74bad5e4d5 | ||
|
|
89a7646085 | ||
|
|
da816bbf14 | ||
|
|
e009a6ed81 | ||
|
|
fd497b9506 | ||
|
|
57754701a5 | ||
|
|
d0fdf629b1 | ||
|
|
937efd2a6b | ||
|
|
b869bebfa7 | ||
|
|
e4e9250584 | ||
|
|
23ae073088 | ||
|
|
d96e1ac6c7 | ||
|
|
a8359a6f12 | ||
|
|
8a7bdc9fce | ||
|
|
cbfc6f76e4 | ||
|
|
2169435000 | ||
|
|
bda2eb66ad | ||
|
|
ee777a7a1f | ||
|
|
63e9fb40a1 | ||
|
|
591afcc617 | ||
|
|
c0d8a1e5f3 | ||
|
|
355def67a0 | ||
|
|
270a3fb329 |
@@ -9,6 +9,7 @@
|
||||
"source=${localWorkspaceFolder}/../lms,target=/workspaces/lms,type=bind",
|
||||
"source=${localWorkspaceFolder}/../homeAssistant,target=/workspaces/homeAssistant,type=bind",
|
||||
"source=${localWorkspaceFolder}/../mosquitto,target=/workspaces/mosquitto,type=bind",
|
||||
"source=${localWorkspaceFolder}/../myLimbo.Jellyfin,target=/workspaces/myLimbo.Jellyfin,type=bind",
|
||||
"source=${localWorkspaceFolder}/../kb,target=/workspaces/kb,type=bind",
|
||||
"source=${localWorkspaceFolder}/../pi.bluetooth.speaker,target=/workspaces/pi.bluetooth.speaker,type=bind",
|
||||
"source=${localWorkspaceFolder}/.env.d/kube,target=/home/vscode/.kube,type=bind",
|
||||
@@ -30,7 +31,8 @@
|
||||
"streetsidesoftware.code-spell-checker",
|
||||
"ms-azuretools.vscode-containers",
|
||||
"eamodio.gitlens",
|
||||
"bierner.markdown-preview-github-styles"
|
||||
"bierner.markdown-preview-github-styles",
|
||||
"weaveworks.vscode-gitops-tools"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
``` bash
|
||||
kubectl annotate secret casa-limbosolutions-com-tls \
|
||||
-n casa-limbosolutions-com \
|
||||
replicator.v1.mittwald.de/replicate-to="home-assistant,node-red,lyrionmusicserver"
|
||||
replicator.v1.mittwald.de/replicate-to="home-assistant,node-red,lyrionmusicserver,jellyfin" --overwrite
|
||||
```
|
||||
|
||||
``` bash
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
{
|
||||
"path": "../mosquitto"
|
||||
},
|
||||
{
|
||||
"name": "Jellyfin",
|
||||
"path": "../myLimbo.Jellyfin"
|
||||
},
|
||||
{
|
||||
"name": "kb",
|
||||
"path": "../kb"
|
||||
@@ -42,11 +46,13 @@
|
||||
"davidanson",
|
||||
"eamodio",
|
||||
"envsubst",
|
||||
"kubelet",
|
||||
"lmscommunity",
|
||||
"localtime",
|
||||
"LOGLEVEL",
|
||||
"lyrionmusicserver",
|
||||
"mtxr",
|
||||
"nvme",
|
||||
"rclone",
|
||||
"reverseproxy",
|
||||
"rogalmic",
|
||||
@@ -95,7 +101,22 @@
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Kustomize - Build - Selected File",
|
||||
"type": "shell",
|
||||
"command": "bash -c '[[ \"$(basename ${file})\" == \"kustomization.yaml\" ]] && kubectl kustomize ${fileDirname} || echo \"❌ invalid kustomization.yaml\"'",
|
||||
"problemMatcher": [],
|
||||
"group": "build"
|
||||
},
|
||||
{
|
||||
"label": "Kustomize - Build & Deploy - Selected File",
|
||||
"type": "shell",
|
||||
"command": "bash -c '[[ \"$(basename ${file})\" == \"kustomization.yaml\" ]] && kubectl kustomize ${fileDirname} | kubectl apply -f - || echo \"❌ invalid kustomization.yaml\"'",
|
||||
"problemMatcher": [],
|
||||
"group": "build"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
+26
-4
@@ -13,6 +13,7 @@
|
||||
- [minion01 - worker node](#minion01---worker-node)
|
||||
- [Minion01 - proxmox vm](#minion01---proxmox-vm)
|
||||
- [casa-minion-01 - k3s - setup](#casa-minion-01---k3s---setup)
|
||||
- [fstab](#fstab)
|
||||
- [casa-mini-minion-01 - worker node](#casa-mini-minion-01---worker-node)
|
||||
- [casa-mini-minion-01 - proxmox vm](#casa-mini-minion-01---proxmox-vm)
|
||||
- [casa-mini-minion-01 - k3s - setup](#casa-mini-minion-01---k3s---setup)
|
||||
@@ -186,8 +187,13 @@ EOF
|
||||
### casa - control Plane - k3s setup
|
||||
|
||||
``` bash
|
||||
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.36.1+k3s1 sh -
|
||||
```
|
||||
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.36.1+k3s1 \
|
||||
INSTALL_K3S_EXEC="\
|
||||
--flannel-backend=none \
|
||||
--disable-network-policy \
|
||||
--disable=servicelb" \
|
||||
sh -
|
||||
```
|
||||
|
||||
**Taint NoSchedule on master node:**
|
||||
|
||||
@@ -233,6 +239,7 @@ numa: 0
|
||||
onboot: 1
|
||||
ostype: l26
|
||||
scsi0: fastcore:vm-XXX-disk-0,iothread=1,size=8G,ssd=1
|
||||
scsi1: fluxcore:vm-xx-disk-0,iothread=1,size=32G,ssd=1 # used mainly by jellyfin cache
|
||||
scsi1: fastcore:vm-XXX-disk-2,iothread=1,size=32G,ssd=1 /dataDisk # k3s-data-dir /dataDisk/k3s
|
||||
scsihw: virtio-scsi-single
|
||||
smbios1: xxxx-xxxx-xxxx-xxxx-xxxx
|
||||
@@ -255,7 +262,7 @@ sockets: 1
|
||||
# cat /var/lib/rancher/k3s/server/node-token
|
||||
|
||||
K3S_TOKEN="????"
|
||||
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.36.1+k3s1 INSTALL_K3S_EXEC="agent --data-dir /dataDisk/k3s --server https://casa.dev.lan:6443 --token ${K3S_TOKEN}" sh -s -
|
||||
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.36.1+k3s1 INSTALL_K3S_EXEC="agent --data-dir /dataDisks/nvme00/k3s --server https://casa.dev.lan:6443 --token ${K3S_TOKEN}" sh -s -
|
||||
```
|
||||
|
||||
Change kubectl -n kube-system edit configmap local-path-config on kube-system to set path to provisioner.
|
||||
@@ -264,7 +271,6 @@ Change kubectl -n kube-system edit configmap local-path-config on kube-system to
|
||||
config.json: |-
|
||||
{
|
||||
"nodePathMap":[
|
||||
{
|
||||
"node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
|
||||
"paths":["/var/lib/rancher/k3s/storage"]
|
||||
},
|
||||
@@ -282,6 +288,22 @@ Change kubectl -n kube-system edit configmap local-path-config on kube-system to
|
||||
kubectl label node casa-minion-01 role=worker-node
|
||||
```
|
||||
|
||||
### fstab
|
||||
|
||||
```bash
|
||||
UUID=xxxx-xxxx-xxxx-xxxx-xxxx / ext4 errors=remount-ro 0 1
|
||||
UUID=xxxx-xxxx-xxxx-xxxx-xxxx /dataDisks/nvme00 ext4 errors=remount-ro 0 1
|
||||
UUID=xxxx-xxxx-xxxx-xxxx-xxxx /dataDisks/nvme01-ephemeral ext4 errors=remount-ro 0 1
|
||||
UUID=xxxx-xxxx-xxxx-xxxx-xxxx /dataDisks/ssd00 ext4 errors=remount-ro 0 1
|
||||
```
|
||||
|
||||
``` bash
|
||||
# setup kubelet pods data to nvme01-ephemeral
|
||||
ln -s /dataDisks/nvme01-ephemeral/kubelet/pods /var/lib/kubelet/pods
|
||||
# setup k3s containerd data to nvme01-ephemeral
|
||||
ln -s /dataDisks/nvme01-ephemeral/k3s/agent/containerd /dataDisks/nvme00/k3s/agent/containerd
|
||||
```
|
||||
|
||||
## casa-mini-minion-01 - worker node
|
||||
|
||||
### casa-mini-minion-01 - proxmox vm
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# Cilium
|
||||
|
||||
<oci://quay.io/cilium/charts/cilium>
|
||||
<https://docs.cilium.io/en/stable/helm-reference/#helm-reference>
|
||||
<https://docs.cilium.io/en/stable/installation/k8s-install-helm/>
|
||||
|
||||
## setup and deploy
|
||||
|
||||
Using flux for reconciliation.
|
||||
|
||||
**Restart:**
|
||||
|
||||
Occasionally, Cilium's eBPF maps for L2 announcements can get "stale" after a configuration change (like switching from Local to Cluster). Perform a rolling restart of the Cilium pods to clear the state:
|
||||
|
||||
```bash
|
||||
```
|
||||
|
||||
``` bash
|
||||
POD_NAME=$(kubectl get pod -l 'app.kubernetes.io/name'=cilium-agent -n cilium -o jsonpath='{.items[0].metadata.name}')
|
||||
kubectl exec -n cilium ${POD_NAME} -c cilium-agent -- cilium-dbg status
|
||||
```
|
||||
|
||||
**list load balancers ip pools:**
|
||||
*Required after changes*
|
||||
|
||||
```bash
|
||||
kubectl get CiliumLoadBalancerIPPool -A
|
||||
```
|
||||
|
||||
**Force helm:**
|
||||
|
||||
```bash
|
||||
helm repo add cilium https://helm.cilium.io/
|
||||
helm upgrade cilium cilium/cilium \
|
||||
--version 1.19.5 \
|
||||
-f ./deploy/app/helm-values.yaml \
|
||||
--namespace cilium
|
||||
```
|
||||
@@ -0,0 +1,23 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: cilium
|
||||
namespace: cilium
|
||||
spec:
|
||||
releaseName: cilium
|
||||
interval: 1m
|
||||
|
||||
chart:
|
||||
spec:
|
||||
chart: cilium
|
||||
version: 1.19.5
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: cilium
|
||||
namespace: cilium
|
||||
interval: 40h
|
||||
|
||||
valuesFrom:
|
||||
- kind: Secret
|
||||
name: cilium-helm-values
|
||||
valuesKey: values.yaml
|
||||
@@ -0,0 +1,8 @@
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: cilium
|
||||
namespace: cilium
|
||||
spec:
|
||||
interval: 40h
|
||||
url: https://helm.cilium.io/
|
||||
@@ -0,0 +1,36 @@
|
||||
kubeProxyReplacement: true
|
||||
installCRDs: true
|
||||
routingMode: native
|
||||
enableIPv4Masquerade: true # required even if using bpf.masquerade: true
|
||||
autoDirectNodeRoutes: true
|
||||
ipv4NativeRoutingCIDR: "10.42.0.0/16"
|
||||
bpf:
|
||||
masquerade: true
|
||||
hostLegacyRouting: false # force use of bfp
|
||||
ipam:
|
||||
operator:
|
||||
clusterPoolIPv4PodCIDR: "10.42.0.0/16"
|
||||
clusterPoolIPv4MaskSize: 24
|
||||
l2announcements:
|
||||
enabled: true
|
||||
loadBalancer:
|
||||
mode: hybrid
|
||||
|
||||
operator:
|
||||
replicas: 1
|
||||
|
||||
|
||||
# fix error="listen tcp :30913: bind: address already in use" in agent
|
||||
nodePort:
|
||||
enableHealthCheck: false
|
||||
enableHealthCheckLoadBalancerIP: false
|
||||
|
||||
advertisement:
|
||||
loadBalancerIPs: true
|
||||
externalIPs: true
|
||||
|
||||
hubble:
|
||||
relay:
|
||||
enabled: true
|
||||
ui:
|
||||
enabled: true
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: cilium
|
||||
resources:
|
||||
- helm-repo.yaml
|
||||
- helm-release.yaml
|
||||
secretGenerator:
|
||||
- name: cilium-helm-values
|
||||
files:
|
||||
- values.yaml=helm-values.yaml
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
+2
-3
@@ -1,13 +1,12 @@
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: traefik
|
||||
name: cilium
|
||||
spec:
|
||||
interval: 1m
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: casa
|
||||
namespace: casa-limbosolutions-com
|
||||
path: services/traefik/deploy/app
|
||||
path: ./services/cilium/deploy/app
|
||||
prune: true
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
apiVersion: cilium.io/v2alpha1
|
||||
kind: CiliumL2AnnouncementPolicy
|
||||
metadata:
|
||||
name: casa-l2
|
||||
spec:
|
||||
# nodeSelector:
|
||||
# matchLabels:
|
||||
# casa-lan: "true"
|
||||
serviceSelector:
|
||||
matchLabels:
|
||||
casa-lan-l2-expose: "true"
|
||||
interfaces:
|
||||
- ens18
|
||||
externalIPs: true
|
||||
loadBalancerIPs: true
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumLoadBalancerIPPool
|
||||
metadata:
|
||||
name: casa-l2
|
||||
spec:
|
||||
blocks:
|
||||
- cidr: 192.168.14.0/24
|
||||
@@ -23,3 +23,10 @@ helm upgrade flux-operator oci://ghcr.io/controlplaneio-fluxcd/charts/flux-opera
|
||||
--create-namespace
|
||||
kubectl apply -f ./deploy/fluxsystem.yaml
|
||||
```
|
||||
|
||||
**Allow prometheus scrapping:**
|
||||
|
||||
```bash
|
||||
kubectl apply -f deploy/monitoring.yaml
|
||||
kubectl label ns flux-system prometheus-monitoring=enabled
|
||||
```
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PodMonitor
|
||||
metadata:
|
||||
name: flux-system
|
||||
namespace: flux-system
|
||||
labels:
|
||||
app.kubernetes.io/part-of: flux
|
||||
app.kubernetes.io/component: monitoring
|
||||
prometheus-monitoring: enabled
|
||||
spec:
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- flux-system
|
||||
selector:
|
||||
matchExpressions:
|
||||
- key: app
|
||||
operator: In
|
||||
values:
|
||||
- helm-controller
|
||||
- source-controller
|
||||
- kustomize-controller
|
||||
- notification-controller
|
||||
- image-automation-controller
|
||||
- image-reflector-controller
|
||||
podMetricsEndpoints:
|
||||
- port: http-prom
|
||||
@@ -20,3 +20,9 @@ Using flux for reconciliation.
|
||||
``` bash
|
||||
sops -e deploy/promtail/helm-values.private.dec.yaml > deploy/promtail/helm-values.private.yaml
|
||||
```
|
||||
|
||||
**Check agent:**
|
||||
|
||||
``` bash
|
||||
http://localhost:9090/agent
|
||||
```
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
# values.yaml to install only Prometheus Operator and CRDs
|
||||
|
||||
# Disable all components except the operator
|
||||
defaultRules:
|
||||
create: false
|
||||
|
||||
@@ -10,11 +8,15 @@ alertmanager:
|
||||
grafana:
|
||||
enabled: false
|
||||
|
||||
prometheus:
|
||||
enabled: false
|
||||
|
||||
kubeStateMetrics:
|
||||
enabled: true
|
||||
|
||||
nodeExporter:
|
||||
enabled: true
|
||||
|
||||
prometheus-node-exporter:
|
||||
prometheus:
|
||||
monitor:
|
||||
@@ -27,8 +29,7 @@ prometheus-node-exporter:
|
||||
- targetLabel: cluster
|
||||
replacement: casa
|
||||
|
||||
prometheus:
|
||||
enabled: false
|
||||
|
||||
|
||||
coreDns:
|
||||
enabled: true
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ metadata:
|
||||
name: node-red
|
||||
namespace: node-red
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
|
||||
@@ -1,3 +1,25 @@
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: node-red
|
||||
spec:
|
||||
capacity:
|
||||
storage: 1Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
hostPath:
|
||||
path: /dataDisks/nvme00/k3s/storageStatic/pv-node-red
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- casa-minion-01
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
@@ -9,4 +31,4 @@ spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
storageClassName: local-path
|
||||
storageClassName: ""
|
||||
@@ -4,7 +4,7 @@ metadata:
|
||||
name: storage-limbosolutions-com-seaweedfs-csi-driver
|
||||
spec:
|
||||
releaseName: storage-limbosolutions-com-seaweedfs-csi-driver
|
||||
interval: 40h
|
||||
interval: 1m
|
||||
chart:
|
||||
spec:
|
||||
chart: seaweedfs-csi-driver
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
name: seaweedfs-csi-helm-values
|
||||
valuesKey: values.private.yaml
|
||||
values:
|
||||
storageClassName: storage-limbosolutions-com
|
||||
storageClassName: "" # empty so default storage class is not created
|
||||
storageClassVolumeBindingMode: Immediate
|
||||
isDefaultStorageClass: false
|
||||
#seaweedfsFiler: "" # set on values.private.yaml
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace: storage-limbosolutions-com
|
||||
resources:
|
||||
- helm-repo.yaml
|
||||
- helm-release.yaml
|
||||
- storage-class.yaml
|
||||
secretGenerator:
|
||||
- name: seaweedfs-csi-helm-values
|
||||
files:
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
kind: StorageClass
|
||||
apiVersion: storage.k8s.io/v1
|
||||
metadata:
|
||||
name: storage-limbosolutions-com
|
||||
provisioner: storage-limbosolutions-com-csi-driver
|
||||
parameters:
|
||||
replication: "000"
|
||||
volumeServerAccess: "filerProxy"
|
||||
@@ -0,0 +1,70 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: traefik
|
||||
spec:
|
||||
|
||||
releaseName: traefik
|
||||
interval: 1m
|
||||
chart:
|
||||
spec:
|
||||
chart: traefik
|
||||
version: 40.x.x
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: traefik
|
||||
namespace: traefik
|
||||
interval: 40h
|
||||
values:
|
||||
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: casa-mini-minion-01
|
||||
tolerations:
|
||||
- key: "infra.limbosolutions.com/dedicated"
|
||||
operator: "Equal"
|
||||
value: "casa-mini-minion-01"
|
||||
effect: "NoSchedule"
|
||||
|
||||
ingressClass:
|
||||
enabled: true
|
||||
isDefaultClass: true
|
||||
name: traefik
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
type: LoadBalancer
|
||||
spec:
|
||||
internalTrafficPolicy: Cluster
|
||||
loadBalancerIP: 192.168.14.203
|
||||
allocateLoadBalancerNodePorts: false
|
||||
labels:
|
||||
casa-lan-l2-expose: "true"
|
||||
ports:
|
||||
web:
|
||||
port: 80
|
||||
exposedPort: 80
|
||||
expose:
|
||||
default: true
|
||||
protocol: TCP
|
||||
websecure:
|
||||
port: 443
|
||||
exposedPort: 443
|
||||
expose:
|
||||
default: true
|
||||
protocol: TCP
|
||||
|
||||
providers:
|
||||
kubernetesCRD:
|
||||
enabled: true
|
||||
allowCrossNamespace: false
|
||||
namespaces: []
|
||||
ingressClass: traefik
|
||||
kubernetesIngress:
|
||||
enabled: true
|
||||
ingressClass: traefik
|
||||
|
||||
additionalArguments:
|
||||
- "--providers.kubernetesingress.ingressclass=traefik"
|
||||
- "--providers.kubernetescrd.ingressClass=traefik"
|
||||
- "--providers.kubernetescrd.allowEmptyServices=false"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kube-system
|
||||
namespace: traefik
|
||||
resources:
|
||||
- helm-release.yaml
|
||||
- helm-repo.yaml
|
||||
@@ -1,31 +0,0 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: traefik
|
||||
spec:
|
||||
|
||||
releaseName: traefik
|
||||
interval: 40h
|
||||
chart:
|
||||
spec:
|
||||
chart: traefik
|
||||
version: 40.x.x
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: traefik
|
||||
namespace: kube-system
|
||||
interval: 40h
|
||||
values:
|
||||
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: casa-mini-minion-01
|
||||
tolerations:
|
||||
- key: "infra.limbosolutions.com/dedicated"
|
||||
operator: "Equal"
|
||||
value: "casa-mini-minion-01"
|
||||
effect: "NoSchedule"
|
||||
|
||||
ingressClass:
|
||||
enabled: true
|
||||
isDefaultClass: true
|
||||
name: traefik
|
||||
@@ -0,0 +1,63 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: traefik
|
||||
spec:
|
||||
|
||||
releaseName: traefik
|
||||
interval: 1m
|
||||
chart:
|
||||
spec:
|
||||
chart: traefik
|
||||
version: 40.x.x
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: traefik
|
||||
namespace: traefik-icarus
|
||||
interval: 40h
|
||||
values:
|
||||
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: casa-minion-01
|
||||
|
||||
ingressClass:
|
||||
enabled: true
|
||||
isDefaultClass: false
|
||||
name: traefik-icarus
|
||||
|
||||
service:
|
||||
enabled: true
|
||||
type: LoadBalancer
|
||||
spec:
|
||||
externalTrafficPolicy: Cluster
|
||||
loadBalancerIP: 192.168.14.204
|
||||
labels:
|
||||
casa-lan-l2-expose: "true"
|
||||
ports:
|
||||
web:
|
||||
port: 80
|
||||
exposedPort: 80
|
||||
expose:
|
||||
default: true
|
||||
protocol: TCP
|
||||
websecure:
|
||||
port: 443
|
||||
exposedPort: 443
|
||||
expose:
|
||||
default: true
|
||||
protocol: TCP
|
||||
|
||||
providers:
|
||||
kubernetesCRD:
|
||||
enabled: true
|
||||
allowCrossNamespace: false
|
||||
namespaces: []
|
||||
ingressClass: traefik-icarus
|
||||
kubernetesIngress:
|
||||
enabled: true
|
||||
ingressClass: traefik-icarus
|
||||
|
||||
additionalArguments:
|
||||
- "--providers.kubernetesingress.ingressclass=traefik-icarus"
|
||||
- "--providers.kubernetescrd.ingressClass=traefik-icarus"
|
||||
- "--providers.kubernetescrd.allowEmptyServices=false"
|
||||
@@ -0,0 +1,7 @@
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: traefik
|
||||
spec:
|
||||
interval: 24h
|
||||
url: https://traefik.github.io/charts
|
||||
@@ -0,0 +1,9 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: traefik-icarus
|
||||
resources:
|
||||
- helm-release.yaml
|
||||
- helm-repo.yaml
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: traefik
|
||||
namespace: traefik
|
||||
spec:
|
||||
interval: 1m
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: casa
|
||||
namespace: casa-limbosolutions-com
|
||||
path: services/traefik/deploy/app/default
|
||||
prune: true
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: traefik-icarus
|
||||
namespace: traefik-icarus
|
||||
spec:
|
||||
interval: 1m
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: casa
|
||||
namespace: casa-limbosolutions-com
|
||||
path: services/traefik/deploy/app/icarus
|
||||
prune: true
|
||||
@@ -1,5 +1,5 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kube-system
|
||||
resources:
|
||||
- app-sync.yaml
|
||||
- default-sync.yaml
|
||||
- icarus-sync.yaml
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: wyoming
|
||||
resources:
|
||||
- pvc.yaml
|
||||
- storage.yaml
|
||||
- piper-deployment.yaml
|
||||
- piper-service.yaml
|
||||
- whisper-deployment.yaml
|
||||
|
||||
@@ -20,7 +20,7 @@ spec:
|
||||
containers:
|
||||
- name: wyoming-piper
|
||||
### Maintained by flux - Image Update Automation
|
||||
image: rhasspy/wyoming-piper:latest@sha256:c874e4a04657ae3381332ee5d0c8c70a310dae6722892840f530ac0890b44eb3 # {"$imagepolicy": "wyoming:piper"}
|
||||
image: rhasspy/wyoming-piper:latest@sha256:69b7f797ae3a8c3c0202cbf97152fb795d78c2355de2a31655c20671247360d8 # {"$imagepolicy": "wyoming:piper"}
|
||||
###
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
@@ -34,15 +34,3 @@ spec:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: wyoming-piper
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: wyoming-piper
|
||||
namespace: wyoming
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: wyoming-whisper
|
||||
namespace: wyoming
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 8Gi
|
||||
@@ -0,0 +1,73 @@
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: wyoming-whisper
|
||||
namespace: wyoming
|
||||
spec:
|
||||
capacity:
|
||||
storage: 8Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
hostPath:
|
||||
path: /dataDisks/nvme00/k3s/storageStatic/pv-wyoming-whisper
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- casa-minion-01
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: wyoming-whisper
|
||||
namespace: wyoming
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 8Gi
|
||||
storageClassName: ""
|
||||
---
|
||||
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: wyoming-piper
|
||||
namespace: wyoming
|
||||
spec:
|
||||
capacity:
|
||||
storage: 2Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
hostPath:
|
||||
path: /dataDisks/nvme00/k3s/storageStatic/pv-wyoming-piper
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- casa-minion-01
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: wyoming-piper
|
||||
namespace: wyoming
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
storageClassName: ""
|
||||
@@ -20,7 +20,7 @@ spec:
|
||||
containers:
|
||||
- name: wyoming-whisper
|
||||
### Maintained by flux - Image Update Automation
|
||||
image: rhasspy/wyoming-whisper:latest@sha256:258956d1508a042ae52ceca04da85f6e74e7fab81676e3678619b8047e88c721 # {"$imagepolicy": "wyoming:whisper"}
|
||||
image: rhasspy/wyoming-whisper:latest@sha256:308b7959a925d0cca381c3e6e77292fed87822695635db39c24199d6b7a9e610 # {"$imagepolicy": "wyoming:whisper"}
|
||||
###
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
|
||||
Reference in New Issue
Block a user