From 67011c2b980db01c3b892b152cae4e0b46f1b84e Mon Sep 17 00:00:00 2001 From: Adrien Date: Tue, 5 Mar 2024 21:53:42 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20tools=20namespace,=20plantuml?= =?UTF-8?q?=20and=20dicebear=20tools?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools.yaml | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 tools.yaml diff --git a/tools.yaml b/tools.yaml new file mode 100644 index 0000000..b9c8ecb --- /dev/null +++ b/tools.yaml @@ -0,0 +1,229 @@ +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