mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
♻️ networking
This commit is contained in:
@@ -28,5 +28,3 @@ spec:
|
|||||||
annotations:
|
annotations:
|
||||||
+(external-dns.alpha.kubernetes.io/target): |-
|
+(external-dns.alpha.kubernetes.io/target): |-
|
||||||
services.${SECRET_DOMAIN}.
|
services.${SECRET_DOMAIN}.
|
||||||
+(external-dns/is-public): |-
|
|
||||||
true
|
|
||||||
|
@@ -3,7 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: external-dns
|
name: external-dns
|
||||||
namespace: networking
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
interval: 15m
|
interval: 15m
|
||||||
chart:
|
chart:
|
||||||
@@ -14,7 +14,6 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: external-dns-charts
|
name: external-dns-charts
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
interval: 15m
|
|
||||||
install:
|
install:
|
||||||
createNamespace: true
|
createNamespace: true
|
||||||
remediation:
|
remediation:
|
||||||
@@ -23,7 +22,7 @@ spec:
|
|||||||
remediation:
|
remediation:
|
||||||
retries: 5
|
retries: 5
|
||||||
values:
|
values:
|
||||||
interval: 15m
|
interval: 2m
|
||||||
logLevel: debug
|
logLevel: debug
|
||||||
provider: ovh
|
provider: ovh
|
||||||
env:
|
env:
|
||||||
@@ -43,7 +42,7 @@ spec:
|
|||||||
name: ovh-external-dns-creds
|
name: ovh-external-dns-creds
|
||||||
key: consummer-key
|
key: consummer-key
|
||||||
extraArgs:
|
extraArgs:
|
||||||
- --annotation-filter=external-dns/is-public in (true)
|
- --annotation-filter=external-dns.home.arpa/enabled in (true)
|
||||||
policy: sync
|
policy: sync
|
||||||
sources:
|
sources:
|
||||||
- ingress
|
- ingress
|
||||||
|
@@ -4,7 +4,7 @@ kind: Secret
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
metadata:
|
metadata:
|
||||||
name: ovh-external-dns-creds
|
name: ovh-external-dns-creds
|
||||||
namespace: networking
|
namespace: default
|
||||||
stringData:
|
stringData:
|
||||||
application-key: ENC[AES256_GCM,data:eM+c4o7krcCr38iYl+V9aw==,iv:bWvn6Du2AYczidEiYcCiiXiCWQoNTM55+pEqEDT5gVg=,tag:XAtpQsK7J7mQWs47qqAt/Q==,type:str]
|
application-key: ENC[AES256_GCM,data:eM+c4o7krcCr38iYl+V9aw==,iv:bWvn6Du2AYczidEiYcCiiXiCWQoNTM55+pEqEDT5gVg=,tag:XAtpQsK7J7mQWs47qqAt/Q==,type:str]
|
||||||
application-secret: ENC[AES256_GCM,data:dsAI3MXIpqC5FQZojzchOUfJPARBYOOUbnmY042w9DQ=,iv:gLh0ySZfm1akVIcnN/LMuuI7GZrBBq/X6mnQd1j9BeA=,tag:wIKWVoDMRfn68Ot56HFPGA==,type:str]
|
application-secret: ENC[AES256_GCM,data:dsAI3MXIpqC5FQZojzchOUfJPARBYOOUbnmY042w9DQ=,iv:gLh0ySZfm1akVIcnN/LMuuI7GZrBBq/X6mnQd1j9BeA=,tag:wIKWVoDMRfn68Ot56HFPGA==,type:str]
|
||||||
@@ -24,8 +24,8 @@ sops:
|
|||||||
bi8wYjlEM0xGZExSV05HSGlkYjQ2VlUKesUixJpqR2iYx5kNxrbD0kTG1siHVKqq
|
bi8wYjlEM0xGZExSV05HSGlkYjQ2VlUKesUixJpqR2iYx5kNxrbD0kTG1siHVKqq
|
||||||
sh8UblAqd1av0/3Qpj9dMF8awR8Q80dElcEwXT90Ks/S7p/uEA358g==
|
sh8UblAqd1av0/3Qpj9dMF8awR8Q80dElcEwXT90Ks/S7p/uEA358g==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2022-07-03T14:42:00Z"
|
lastmodified: "2022-09-15T09:52:51Z"
|
||||||
mac: ENC[AES256_GCM,data:xJz+bm7161D3j/NEHZi9XxEp5uHsDDIqKow/nOQzSeHufyiGg34pdR8ibXt+7p6sru64ZIRNKV/OklwtRrLFoiyM/+ZFsgpWC67ACIdksu0cBjIKXsaKSyvdkcZ/hC9C5wMpYMqABBDogYPhR32PqsJ1VBWlCckG0kjo7PNOubk=,iv:ponCl1jFjElSY8HbCbRv4w4gL0C12deWBRzgrXSQpTE=,tag:p/kxR5ZiVxvX7JO6e/ZtMw==,type:str]
|
mac: ENC[AES256_GCM,data:cZAwl1uF59cBodh8F4KSZU8/sLyoRy6k2rFuYx3KH/YpICKj2Omg9D3cH1uUF+x1URYbRcKajKrIZMmpd6gjvoRERjnreuzosZwxeannkTpfZ0N5ivydTSETa9mjPXCP+4VdPQISG0ZYx91uf0nrsZnK3dPOT0W/TfEhAI3JB9c=,iv:ufpSLuakm9X5VB8ZgHdyZyH6PAo11yKHV5jj7TuNPcU=,tag:+GY39oTJ91codPkDrTQYTw==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
encrypted_regex: ^(data|stringData)$
|
encrypted_regex: ^(data|stringData)$
|
||||||
version: 3.7.3
|
version: 3.7.3
|
||||||
|
@@ -2,9 +2,10 @@
|
|||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
name: "${SECRET_CLUSTER_CERTIFICATE_DEFAULT}"
|
name: "${SECRET_CLUSTER_DOMAIN/./-}"
|
||||||
namespace: networking
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
|
secretName: "${SECRET_CLUSTER_DOMAIN/./-}-tls"
|
||||||
issuerRef:
|
issuerRef:
|
||||||
name: letsencrypt-production
|
name: letsencrypt-production
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
@@ -12,4 +13,3 @@ spec:
|
|||||||
dnsNames:
|
dnsNames:
|
||||||
- "${SECRET_CLUSTER_DOMAIN}"
|
- "${SECRET_CLUSTER_DOMAIN}"
|
||||||
- "*.${SECRET_CLUSTER_DOMAIN}"
|
- "*.${SECRET_CLUSTER_DOMAIN}"
|
||||||
secretName: "${SECRET_CLUSTER_CERTIFICATE_DEFAULT}"
|
|
@@ -3,22 +3,30 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: networking
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
interval: 5m
|
interval: 15m
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
# renovate: registryUrl=https://kubernetes.github.io/ingress-nginx
|
|
||||||
chart: ingress-nginx
|
chart: ingress-nginx
|
||||||
version: 4.2.5
|
version: 4.2.5
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: ingress-nginx-charts
|
name: ingress-nginx-charts
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
interval: 5m
|
install:
|
||||||
|
createNamespace: true
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
|
upgrade:
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
|
dependsOn:
|
||||||
|
- name: cert-manager
|
||||||
|
namespace: cert-manager
|
||||||
values:
|
values:
|
||||||
controller:
|
controller:
|
||||||
replicaCount: 2
|
replicaCount: 3
|
||||||
service:
|
service:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
externalIPs:
|
externalIPs:
|
||||||
@@ -26,31 +34,36 @@ spec:
|
|||||||
externalTrafficPolicy: Local
|
externalTrafficPolicy: Local
|
||||||
publishService:
|
publishService:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
ingressClassResource:
|
||||||
|
default: true
|
||||||
config:
|
config:
|
||||||
ssl-protocols: "TLSv1.3 TLSv1.2"
|
client-header-timeout: 120
|
||||||
custom-http-errors: |
|
client-body-buffer-size: "100M"
|
||||||
401,403,404,500,501,502,503
|
client-body-timeout: 120
|
||||||
enable-vts-status: "false"
|
custom-http-errors: |-
|
||||||
|
400,401,403,404,500,502,503,504
|
||||||
|
enable-brotli: "true"
|
||||||
|
forwarded-for-header: "CF-Connecting-IP"
|
||||||
hsts-max-age: "31449600"
|
hsts-max-age: "31449600"
|
||||||
proxy-body-size: "50m"
|
keep-alive: 120
|
||||||
|
keep-alive-requests: 10000
|
||||||
|
proxy-body-size: "100M"
|
||||||
|
ssl-protocols: "TLSv1.3 TLSv1.2"
|
||||||
|
use-forwarded-headers: "true"
|
||||||
extraArgs:
|
extraArgs:
|
||||||
default-ssl-certificate: "networking/${SECRET_CLUSTER_CERTIFICATE_DEFAULT}"
|
default-ssl-certificate: |-
|
||||||
|
default/${SECRET_CLUSTER_DOMAIN/./-}-tls
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 250Mi
|
|
||||||
cpu: 50m
|
|
||||||
|
|
||||||
metrics:
|
metrics:
|
||||||
enabled: true
|
enabled: true
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: true
|
enabled: true
|
||||||
namespace: networking
|
namespace: default
|
||||||
namespaceSelector:
|
namespaceSelector:
|
||||||
any: true
|
any: true
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 250Mi
|
||||||
|
cpu: 50m
|
||||||
affinity:
|
affinity:
|
||||||
podAntiAffinity:
|
podAntiAffinity:
|
||||||
preferredDuringSchedulingIgnoredDuringExecution:
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||||||
@@ -63,7 +76,6 @@ spec:
|
|||||||
values:
|
values:
|
||||||
- ingress-nginx
|
- ingress-nginx
|
||||||
topologyKey: kubernetes.io/hostname
|
topologyKey: kubernetes.io/hostname
|
||||||
|
|
||||||
defaultBackend:
|
defaultBackend:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
|
@@ -2,4 +2,5 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
|
- certificate.yaml
|
||||||
- helm-release.yaml
|
- helm-release.yaml
|
||||||
|
@@ -3,9 +3,9 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: k8s-gateway
|
name: k8s-gateway
|
||||||
namespace: networking
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
interval: 5m
|
interval: 15m
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
# renovate: registryUrl=https://ori-edge.github.io/k8s_gateway/
|
# renovate: registryUrl=https://ori-edge.github.io/k8s_gateway/
|
||||||
@@ -15,7 +15,15 @@ spec:
|
|||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: k8s-gateway-charts
|
name: k8s-gateway-charts
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
interval: 5m
|
install:
|
||||||
|
createNamespace: true
|
||||||
|
crds: CreateReplace
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
|
upgrade:
|
||||||
|
crds: CreateReplace
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
values:
|
values:
|
||||||
domain: "${SECRET_CLUSTER_DOMAIN}"
|
domain: "${SECRET_CLUSTER_DOMAIN}"
|
||||||
service:
|
service:
|
||||||
|
@@ -2,10 +2,9 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
|
||||||
- certificate
|
|
||||||
- external-dns
|
- external-dns
|
||||||
- ingress-nginx
|
- ingress-nginx
|
||||||
- k8s-gateway
|
- k8s-gateway
|
||||||
- smtp-relay
|
- smtp-relay
|
||||||
|
- tigera-operator
|
||||||
- unifi
|
- unifi
|
||||||
|
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: networking
|
|
47
cluster/apps/networking/tigera-operator/helm-release.yaml
Normal file
47
cluster/apps/networking/tigera-operator/helm-release.yaml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: tigera-operator
|
||||||
|
namespace: tigera-operator
|
||||||
|
spec:
|
||||||
|
interval: 15m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: tigera-operator
|
||||||
|
version: v3.24.1
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: project-calico-charts
|
||||||
|
namespace: flux-system
|
||||||
|
install:
|
||||||
|
createNamespace: true
|
||||||
|
crds: CreateReplace
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
|
upgrade:
|
||||||
|
crds: CreateReplace
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
|
values:
|
||||||
|
installation:
|
||||||
|
enabled: true
|
||||||
|
registry: quay.io
|
||||||
|
imagePath: calico
|
||||||
|
calicoNetwork:
|
||||||
|
bgp: Enabled
|
||||||
|
hostPorts: Disabled
|
||||||
|
# Note: The ipPools section cannot be modified post-install.
|
||||||
|
ipPools:
|
||||||
|
- blockSize: 26
|
||||||
|
cidr: "${NET_POD_CIDR}"
|
||||||
|
encapsulation: None
|
||||||
|
natOutgoing: Enabled
|
||||||
|
nodeSelector: all()
|
||||||
|
linuxDataplane: Iptables
|
||||||
|
multiInterfaceMode: None
|
||||||
|
nodeAddressAutodetectionV4:
|
||||||
|
cidrs:
|
||||||
|
- "${NET_NODE_CIDR}"
|
||||||
|
nodeMetricsPort: 9091
|
||||||
|
typhaMetricsPort: 9093
|
@@ -2,4 +2,4 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- certificate.yaml
|
- helm-release.yaml
|
@@ -3,28 +3,33 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: unifi
|
name: unifi
|
||||||
namespace: networking
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
interval: 5m
|
interval: 15m
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
# renovate: registryUrl=https://k8s-at-home.com/charts/
|
|
||||||
chart: unifi
|
chart: unifi
|
||||||
version: 5.1.2
|
version: 5.1.2
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: k8s-at-home-charts
|
name: k8s-at-home-charts
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
interval: 5m
|
install:
|
||||||
|
createNamespace: true
|
||||||
|
crds: CreateReplace
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
|
upgrade:
|
||||||
|
crds: CreateReplace
|
||||||
|
remediation:
|
||||||
|
retries: 5
|
||||||
values:
|
values:
|
||||||
image:
|
image:
|
||||||
repository: jacobalberty/unifi
|
repository: jacobalberty/unifi
|
||||||
tag: v7.2.92
|
tag: v7.2.92
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TZ: "${TIMEZONE}"
|
TZ: "${TIMEZONE}"
|
||||||
|
|
||||||
service:
|
service:
|
||||||
main:
|
main:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
@@ -57,7 +62,6 @@ spec:
|
|||||||
enabled: true
|
enabled: true
|
||||||
port: 10001
|
port: 10001
|
||||||
protocol: UDP
|
protocol: UDP
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
main:
|
main:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -69,12 +73,10 @@ spec:
|
|||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- "unifi.${SECRET_CLUSTER_DOMAIN}"
|
- "unifi.${SECRET_CLUSTER_DOMAIN}"
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
data:
|
data:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingClaim: unifi-config
|
existingClaim: unifi-config
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: 2Gi
|
memory: 2Gi
|
||||||
|
@@ -3,8 +3,10 @@ apiVersion: v1
|
|||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: unifi-config
|
name: unifi-config
|
||||||
namespace: networking
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
|
app.kubernetes.io/name: &name unifi
|
||||||
|
app.kubernetes.io/instance: *name
|
||||||
kasten-io/backup: "true"
|
kasten-io/backup: "true"
|
||||||
spec:
|
spec:
|
||||||
accessModes:
|
accessModes:
|
||||||
|
@@ -21,6 +21,7 @@ resources:
|
|||||||
- kyverno-charts.yaml
|
- kyverno-charts.yaml
|
||||||
- metrics-server-charts.yaml
|
- metrics-server-charts.yaml
|
||||||
- node-feature-discovery.yaml
|
- node-feature-discovery.yaml
|
||||||
|
- project-calico-charts.yaml
|
||||||
- prometheus-community-charts.yaml
|
- prometheus-community-charts.yaml
|
||||||
- rook-ceph-charts.yaml
|
- rook-ceph-charts.yaml
|
||||||
- runix-charts.yaml
|
- runix-charts.yaml
|
||||||
|
9
cluster/charts/project-calico-charts.yaml
Normal file
9
cluster/charts/project-calico-charts.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: project-calico-charts
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 1h
|
||||||
|
url: https://projectcalico.docs.tigera.io/charts
|
Reference in New Issue
Block a user