feat!: switch from ingress-nginx to traefik

This commit is contained in:
Devin Buhl committed 2021-08-26 08:51:40 -04:00
1 parent ae5e4429c4
commit 40dca8305c
31 files changed
+382 -55

No files matched your search

@@ -25,6 +25,7 @@ spec:
namespaceSelector:
matchNames:
- default
- networking
name: "you"
customApps:
- name: Some External Cluster Service
@@ -98,8 +99,9 @@ spec:
ingress:
main:
enabled: true
ingressClassName: nginx
ingressClassName: "traefik"
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: "websecure"
hajimari.io/enable: "true"
hajimari.io/icon: "weather-sunset"
hosts:
@@ -1,41 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: ingress-nginx
namespace: networking
spec:
interval: 5m
chart:
spec:
# renovate: registryUrl=https://kubernetes.github.io/ingress-nginx
chart: ingress-nginx
version: 4.0.1
sourceRef:
kind: HelmRepository
name: ingress-nginx-charts
namespace: flux-system
values:
controller:
ingressClass: nginx
replicaCount: 1
service:
type: LoadBalancer
loadBalancerIP: "${INGRESS_NGINX_LB}"
externalTrafficPolicy: Local
config:
ssl-protocols: "TLSv1.3 TLSv1.2"
proxy-body-size: "100m"
use-forwarded-headers: "true"
metrics:
enabled: false
serviceMonitor:
enabled: false
extraArgs:
default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-tls"
resources:
requests:
memory: 100Mi
cpu: 100m
limits:
memory: 500Mi
+1 -1
View File
@@ -1,5 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ingress-nginx
- traefik
- wildcard-certificate
@@ -0,0 +1,28 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: traefik-dashboard
namespace: networking
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: "websecure"
hajimari.io/enable: "true"
hajimari.io/icon: "web"
hajimari.io/appName: "traefik"
spec:
tls:
- hosts:
- "traefik.${SECRET_DOMAIN}"
secretName: "${SECRET_DOMAIN/./-}-tls"
rules:
- host: "traefik.${SECRET_DOMAIN}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: traefik
port:
number: 9000
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ingress.yaml
@@ -0,0 +1,85 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: traefik
namespace: networking
spec:
interval: 5m
chart:
spec:
# renovate: registryUrl=https://helm.traefik.io/traefik
chart: traefik
version: 10.3.2
sourceRef:
kind: HelmRepository
name: traefik-charts
namespace: flux-system
interval: 5m
dependsOn:
- name: cert-manager
namespace: cert-manager
values:
image:
name: ghcr.io/k8s-at-home/traefik
deployment:
kind: Deployment
replicas: 1
service:
enabled: true
type: LoadBalancer
spec:
loadBalancerIP: "${SVC_TRAEFIK_ADDR}"
externalTrafficPolicy: Local
logs:
general:
format: json
level: DEBUG
access:
enabled: true
format: json
ingressClass:
enabled: true
isDefaultClass: true
fallbackApiVersion: v1
ingressRoute:
dashboard:
enabled: false
globalArguments:
- "--api.insecure=true"
- "--serverstransport.insecureskipverify=true"
- "--providers.kubernetesingress.ingressclass=traefik"
- "--metrics.prometheus=true"
- "--metrics.prometheus.entryPoint=metrics"
additionalArguments:
- "--providers.kubernetesingress.ingressendpoint.ip=${SVC_TRAEFIK_ADDR}"
- "--providers.kubernetescrd.allowexternalnameservices=true"
ports:
traefik:
expose: true
web:
redirectTo: websecure
websecure:
tls:
enabled: true
options: "default"
metrics:
port: 8082
expose: true
exposedPort: 8082
tlsOptions:
default:
minVersion: VersionTLS12
maxVersion: VersionTLS13
sniStrict: true
pilot:
enabled: false
experimental:
plugins:
enabled: false
resources:
requests:
memory: 100Mi
cpu: 500m
limits:
memory: 500Mi
@@ -2,3 +2,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helm-release.yaml
- tls-store
- dashboard
@@ -0,0 +1,9 @@
---
apiVersion: traefik.containo.us/v1alpha1
kind: TLSStore
metadata:
name: default
namespace: networking
spec:
defaultCertificate:
secretName: "${SECRET_DOMAIN/./-}-tls"
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- default.yaml