Files
projects-platform/tools.yaml

230 lines
4.4 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: tools
labels:
name: tools
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
namespace: tools
name: letsencrypt-plantuml-server
spec:
acme:
email: me@adrien.run
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-plantuml-server
solvers:
- http01:
ingress:
class: traefik
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: tools
name: plantuml-server
labels:
app: plantuml-server
spec:
replicas: 1
selector:
matchLabels:
app: plantuml-server
template:
metadata:
labels:
app: plantuml-server
spec:
containers:
- name: plantuml-server
image: plantuml/plantuml-server:latest
ports:
- name: web
containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
namespace: tools
name: plantuml-server
labels:
app: plantuml-server
spec:
ports:
- name: web
port: 8080
targetPort: web
selector:
app: plantuml-server
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
namespace: tools
name: websecure-redirect
spec:
redirectScheme:
scheme: https
permanent: true
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: tools
name: plantuml-server-web-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
traefik.ingress.kubernetes.io/router.middlewares: default-websecure-redirect@kubernetescrd
spec:
rules:
- host: plantuml.tools.adrien.run
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: plantuml-server
port:
name: web
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: tools
name: plantuml-server-websecure-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt-plantuml-server
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
tls:
- hosts:
- plantuml.tools.adrien.run
secretName: tls-plantuml-server-ingress
rules:
- host: plantuml.tools.adrien.run
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: plantuml-server
port:
name: web
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-dicebear-api-server
namespace: tools
spec:
acme:
email: me@adrien.run
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-dicebear-api-server
solvers:
- http01:
ingress:
class: traefik
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: tools
name: dicebear-api
labels:
app: dicebear-api
spec:
replicas: 1
selector:
matchLabels:
app: dicebear-api
template:
metadata:
labels:
app: dicebear-api
spec:
containers:
- name: dicebear-api
image: dicebear/api:latest
ports:
- name: web
containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
namespace: tools
name: dicebear-api
labels:
app: dicebear-api
spec:
ports:
- name: web
port: 3000
targetPort: web
selector:
app: dicebear-api
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: tools
name: dicebear-api-web-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
traefik.ingress.kubernetes.io/router.middlewares: default-websecure-redirect@kubernetescrd
spec:
rules:
- host: dicebear.tools.adrien.run
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: dicebear-api
port:
name: web
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: tools
name: dicebear-api-websecure-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt-dicebear-api-server
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
tls:
- hosts:
- dicebear.tools.adrien.run
secretName: tls-dicebear-api-server-ingress
rules:
- host: dicebear.tools.adrien.run
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: dicebear-api
port:
name: web