cluster.fun/manifests/skooner/manifest.yaml

107 lines
1.9 KiB
YAML

apiVersion: v1
kind: ServiceAccount
metadata:
name: skooner-user
labels:
app.kubernetes.io/name: skooner
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: skooner-user
labels:
app.kubernetes.io/name: skooner
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: skooner-user
namespace: skooner
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: skooner
labels:
app.kubernetes.io/name: skooner
spec:
replicas: 0
selector:
matchLabels:
app.kubernetes.io/name: skooner
template:
metadata:
labels:
app.kubernetes.io/name: skooner
spec:
containers:
- name: skooner
image: ghcr.io/skooner-k8s/skooner:stable
imagePullPolicy: Always
ports:
- containerPort: 4654
livenessProbe:
httpGet:
scheme: HTTP
path: /
port: 4654
initialDelaySeconds: 30
timeoutSeconds: 30
resources:
limits:
memory: 80Mi
requests:
memory: 80Mi
---
kind: Service
apiVersion: v1
metadata:
name: skooner
labels:
app.kubernetes.io/name: skooner
spec:
ports:
- port: 80
targetPort: 4654
name: web
selector:
app.kubernetes.io/name: skooner
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: skooner
labels:
app.kubernetes.io/name: skooner
annotations:
cert-manager.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- skooner.cluster.fun
secretName: skooner-ingress
rules:
- host: skooner.cluster.fun
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: skooner
port:
name: web