Merge pull request 'ar-new-ingress-woodpecker' (#441) from ar-new-ingress-woodpecker into main
All checks were successful
ci/woodpecker/push/yamllint Pipeline was successful

Reviewed-on: #441
This commit is contained in:
Aaron Riedel 2024-12-22 18:21:06 +01:00
commit 4e6caed22a
6 changed files with 94 additions and 35 deletions

View file

@ -29,7 +29,7 @@ spec:
sources:
- chart: woodpecker
repoURL: oci://ghcr.io/woodpecker-ci/helm
targetRevision: 2.0.2
targetRevision: 2.0.3
helm:
releaseName: woodpecker
valueFiles:

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
targetPort: grpc
---
apiVersion: networking.k8s.io/v1
kind: Ingress
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
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
name: woodpecker-grpc
spec:
rules:
- host: "woodpecker-grpc.apps.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: woodpecker-grpc
port:
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:
- hosts:
- woodpecker-grpc.apps.yolokube.de
secretName: woodpecker-grpc-tls-key
secretName: woodpecker-grpc-tls-key