imfreedom/k8s-cluster

fc71e853c3aa
Add a new deployment for moving the imf wiki to mkdocs
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: data-body-size
spec:
buffering:
maxRequestBodyBytes: 209715200
memRequestBodyBytes: 209715
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: data-http
spec:
entryPoints:
- http
routes:
- match: Host(`data.imfreedom.org`)
kind: Rule
services:
- name: data
port: 9000
middlewares:
- name: https-redirect
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: data
spec:
entryPoints:
- https
routes:
- match: Host(`data.imfreedom.org`)
kind: Rule
services:
- name: data
port: 9000
middlewares:
- name: data-body-size
- name: common-headers
tls:
secretName: data-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: data-tls
spec:
secretName: data-tls
issuerRef:
name: letsencrypt
commonName: data.imfreedom.org
dnsNames:
- data.imfreedom.org
---
apiVersion: v1
kind: Service
metadata:
name: data
spec:
ports:
- port: 9000
protocol: TCP
selector:
app: data
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: data
spec:
podSelector:
matchLabels:
app: data
ingress:
- from:
- namespaceSelector:
matchLabels:
name: kube-public
podSelector:
matchExpressions:
- key: app
operator: In
values:
- traefik
- key: role
operator: In
values:
- controller
ports:
- port: 9000
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: data
spec:
replicas: 1
revisionHistoryLimit: 0
selector:
matchLabels:
app: data
strategy:
type: Recreate
template:
spec:
containers:
- name: minio
image: quay.io/minio/minio:RELEASE.2022-01-08T03-11-54Z
imagePullPolicy: Always
env:
- name: MINIO_BROWSER
value: 'off'
livenessProbe:
httpGet:
path: /minio/health/live
port: 9000
scheme: HTTP
readinessProbe:
httpGet:
path: /minio/health/ready
port: 9000
scheme: HTTP
command:
- minio
- server
- /data
- --console-address
- ":9001"
ports:
- containerPort: 9000
name: http
- containerPort: 9001
name: admin
volumeMounts:
- mountPath: /data
name: data
readOnly: false
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 100m
memory: 96Mi
volumes:
- name: data
persistentVolumeClaim:
claimName: data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: gemini.fairwinds.com/v1beta1
kind: SnapshotGroup
metadata:
name: data
spec:
persistentVolumeClaim:
claimName: data
schedule:
- every: 12 hours
keep: 2
---