rework core-deployments to use helm 🪖

This commit is contained in:
Aaron Riedel 2023-02-11 01:27:27 +01:00
parent 4758e8391b
commit 99622afe22
Signed by: aaron
GPG key ID: 643004654D40D577
12 changed files with 272 additions and 5848 deletions

51
tests/test-egress.yaml Normal file
View file

@ -0,0 +1,51 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: egress
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: egress-deployment
namespace: egress
labels:
app: egress
spec:
replicas: 3
selector:
matchLabels:
app: egress
template:
metadata:
labels:
app: egress
spec:
containers:
- name: egress
image: curlimages/curl
command: ['/usr/bin/curl']
args: ['-s', '-L', '-4', 'ip.hetzner.com']
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: egress6-deployment
namespace: egress
labels:
app: egress6
spec:
replicas: 3
selector:
matchLabels:
app: egress6
template:
metadata:
labels:
app: egress6
spec:
containers:
- name: egress6
image: curlimages/curl
command: ['/usr/bin/curl']
args: ['-s', '-L', '-6', 'ip.hetzner.com']

192
tests/test-ingress.yaml Normal file
View file

@ -0,0 +1,192 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-deployment
labels:
app: helloworld
spec:
replicas: 3
selector:
matchLabels:
app: helloworld
template:
metadata:
labels:
app: helloworld
spec:
containers:
- name: helloworld
image: testcontainers/helloworld
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: helloworld-service
spec:
selector:
app: helloworld
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: helloworld-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: letsencrypt-staging
acme.cert-manager.io/http01-edit-in-place: "true"
ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- host: "lb1.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: helloworld-service
port:
number: 80
tls:
- hosts:
- lb1.yolokube.de
secretName: helloworld-cert
############### Test
---
apiVersion: v1
kind: Namespace
metadata:
name: aaron-test
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: test1-deployment
namespace: aaron-test
labels:
app: test1
spec:
replicas: 3
selector:
matchLabels:
app: test1
template:
metadata:
labels:
app: test1
spec:
containers:
- name: test1
image: testcontainers/helloworld
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: test1-service
namespace: aaron-test
spec:
selector:
app: test1
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test1-ingress
namespace: aaron-test
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-staging
acme.cert-manager.io/http01-edit-in-place: "true"
ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- host: "test1.apps.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: test1-service
port:
number: 80
tls:
- hosts:
- test1.apps.yolokube.de
secretName: test1-cert
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: test2-deployment
namespace: aaron-test
labels:
app: test2
spec:
replicas: 3
selector:
matchLabels:
app: test2
template:
metadata:
labels:
app: test2
spec:
containers:
- name: test2
image: testcontainers/helloworld
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: test2-service
namespace: aaron-test
spec:
selector:
app: test2
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test2-ingress
namespace: aaron-test
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-staging
acme.cert-manager.io/http01-edit-in-place: "true"
ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- host: "test2.apps.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: test2-service
port:
number: 80
tls:
- hosts:
- test2.apps.yolokube.de
secretName: test2-cert

91
tests/test-storage.yaml Normal file
View file

@ -0,0 +1,91 @@
### example app "privatebin" to test storage
---
apiVersion: v1
kind: Namespace
metadata:
name: paste
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: paste-pvc
namespace: paste
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 8Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: paste-deployment
namespace: paste
labels:
app: paste
spec:
replicas: 1
selector:
matchLabels:
app: paste
template:
metadata:
labels:
app: paste
spec:
securityContext:
fsGroup: 82
containers:
- name: paste
image: privatebin/nginx-fpm-alpine
ports:
- containerPort: 8080
volumeMounts:
- mountPath: "/srv/data"
name: paste-volume
volumes:
- name: paste-volume
persistentVolumeClaim:
claimName: paste-pvc
---
apiVersion: v1
kind: Service
metadata:
name: paste-service
namespace: paste
spec:
selector:
app: paste
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: paste-ingress
namespace: paste
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: letsencrypt-prod
acme.cert-manager.io/http01-edit-in-place: "true"
ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- host: "paste.apps.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: paste-service
port:
number: 80
tls:
- hosts:
- paste.apps.yolokube.de
secretName: paste-cert