new ingressroute for woodpecker
Some checks failed
ci/woodpecker/push/yamllint Pipeline failed

This commit is contained in:
Aaron Riedel 2024-12-22 18:16:44 +01:00
parent 689aecd870
commit bd3ef454a6
Signed by: aaron
GPG key ID: 643004654D40D577
5 changed files with 93 additions and 34 deletions

View file

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- traefik-certmanager.yaml

View file

@ -0,0 +1,66 @@
# from https://github.com/ncsa/traefik-certmanager
#
# Used to automatically create cert request for IngressRoute Objects
#
# Added by Aaron
apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-certmanager
namespace: traefik
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-certmanager
rules:
- apiGroups: ["traefik.io"]
resources: ["ingressroutes"]
verbs: ["watch", "patch"]
- apiGroups: ["cert-manager.io"]
resources: ["certificates"]
verbs: ["get", "create", "delete"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-certmanager
subjects:
- kind: ServiceAccount
name: traefik-certmanager
namespace: traefik
roleRef:
kind: ClusterRole
name: traefik-certmanager
apiGroup: rbac.authorization.k8s.io
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik-certmanager
namespace: traefik
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: traefik-certmanager
template:
metadata:
labels:
app.kubernetes.io/name: traefik-certmanager
spec:
serviceAccount: traefik-certmanager
containers:
- name: traefik-certmanager
image: git.ar21.de/yolokube/traefik-certmanager:latest
imagePullPolicy: Always
env:
- name: ISSUER_NAME
value: letsencrypt-prod
- name: ISSUER_KIND
value: ClusterIssuer
- name: CERT_CLEANUP
value: "true"
- name: PATCH_SECRETNAME
value: "true"

View file

@ -0,0 +1,9 @@
---
resources:
- ../base
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: git.ar21.de/yolokube/traefik-certmanager
newName: git.ar21.de/yolokube/traefik-certmanager
newTag: "1"

View file

@ -1,13 +0,0 @@
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: traefik-cert
namespace: traefik
spec:
secretName: traefik-tls-key
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- traefik.services.yolokube.de

View file

@ -16,28 +16,20 @@ spec:
port: 9000 port: 9000
targetPort: grpc targetPort: grpc
--- ---
apiVersion: networking.k8s.io/v1 apiVersion: traefik.io/v1alpha1
kind: Ingress kind: IngressRoute
metadata: metadata:
annotations:
kubernetes.io/tls-acme: "true"
traefik.ingress.kubernetes.io/loadbalancer.server.scheme: h2c
traefik.ingress.kubernetes.io/service.serversscheme: h2c
name: woodpecker-grpc
namespace: woodpecker namespace: woodpecker
spec:
rules:
- host: "woodpecker-grpc.apps.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: woodpecker-grpc name: woodpecker-grpc
port: spec:
name: grpc entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`woodpecker-grpc.apps.yolokube.de`) && Header(`Content-Type`, `application/grpc`)
services:
- name: woodpecker-grpc
port: grpc
scheme: h2c
tls: tls:
- hosts:
- woodpecker-grpc.apps.yolokube.de
secretName: woodpecker-grpc-tls-key secretName: woodpecker-grpc-tls-key