304 lines
11 KiB
YAML
304 lines
11 KiB
YAML
{{- if .Values.openlitespeedHelm }}
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-vhosts-pv" }
|
|
spec:
|
|
capacity: { storage: 1Ti }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
hostPath: { path: "{{ .Values.olsVhostsPath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-vhosts-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-vhosts-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 1Ti } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-private-pv" }
|
|
spec:
|
|
capacity: { storage: 5Gi }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
hostPath: { path: "{{ .Values.olsPrivatePath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-private-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-private-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 5Gi } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-public-pv" }
|
|
spec:
|
|
capacity: { storage: 10Gi }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
hostPath: { path: "{{ .Values.olsPublicPath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-public-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-public-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 10Gi } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-config-pv" }
|
|
spec:
|
|
capacity: { storage: 1Gi }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
hostPath: { path: "{{ .Values.olsConfigPath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-config-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-config-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 1Gi } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-admin-pv" }
|
|
spec:
|
|
capacity: { storage: 1Gi }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
hostPath: { path: "{{ .Values.olsAdminPath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-admin-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-admin-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 1Gi } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-phpini-pv" }
|
|
spec:
|
|
capacity: { storage: 1Gi }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
hostPath: { path: "{{ .Values.olsPhpIniPath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-phpini-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-phpini-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 1Gi } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata: { name: "{{ .Values.openlitespeed }}-logs-pv" }
|
|
spec:
|
|
capacity: { storage: 10Gi }
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
persistentVolumeReclaimPolicy: Retain
|
|
storageClassName: ""
|
|
hostPath: { path: "{{ .Values.olsLogsPath }}", type: DirectoryOrCreate }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata: { name: "{{ .Values.openlitespeed }}-logs-pvc", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
volumeName: "{{ .Values.openlitespeed }}-logs-pv"
|
|
volumeMode: Filesystem
|
|
accessModes: [ ReadWriteMany ]
|
|
resources: { requests: { storage: 10Gi } }
|
|
storageClassName: ""
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata: { name: "{{ .Values.openlitespeed }}", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
replicas: 2
|
|
strategy: { type: RollingUpdate, rollingUpdate: { maxSurge: 0, maxUnavailable: 1 } }
|
|
selector: { matchLabels: { app: "{{ .Values.openlitespeed }}" } }
|
|
template:
|
|
metadata: { labels: { app: "{{ .Values.openlitespeed }}" } }
|
|
spec:
|
|
initContainers:
|
|
- name: "{{ .Values.openlitespeed }}-init"
|
|
# image: litespeedtech/openlitespeed:1.8.5-lsphp85
|
|
image: git.api.sodew.ai/mk250/openlitespeed:1.8.5-lsphp85-multiphp-latest
|
|
command: ["sh", "-c"]
|
|
args:
|
|
- |
|
|
if [ ! -f /mnt/config/httpd_config.conf ]; then
|
|
cp -a /usr/local/lsws/conf/. /mnt/config/
|
|
fi
|
|
if [ ! -f /mnt/admin/admin_config.conf ]; then
|
|
cp -a /usr/local/lsws/admin/conf/. /mnt/admin/
|
|
fi
|
|
volumeMounts:
|
|
- { name: "{{ .Values.openlitespeed }}-config-volume", mountPath: /mnt/config }
|
|
- { name: "{{ .Values.openlitespeed }}-admin-volume", mountPath: /mnt/admin }
|
|
shareProcessNamespace: true
|
|
containers:
|
|
- name: "{{ .Values.openlitespeed }}"
|
|
# image: litespeedtech/openlitespeed:1.8.5-lsphp85
|
|
image: git.api.sodew.ai/mk250/openlitespeed:1.8.5-lsphp85-multiphp-latest
|
|
ports:
|
|
- { containerPort: 80 }
|
|
- { containerPort: 7080 }
|
|
resources:
|
|
requests: { cpu: "{{ .Values.profiles.openlitespeed.cpuRequest }}", memory: "{{ .Values.profiles.openlitespeed.memoryRequest }}" }
|
|
limits: { cpu: "{{ .Values.profiles.openlitespeed.cpuLimit }}", memory: "{{ .Values.profiles.openlitespeed.memoryLimit }}" }
|
|
readinessProbe: { tcpSocket: { port: 80 }, initialDelaySeconds: 5, periodSeconds: 5, failureThreshold: 3 }
|
|
livenessProbe: { tcpSocket: { port: 80 }, initialDelaySeconds: 10, periodSeconds: 10, failureThreshold: 5 }
|
|
volumeMounts:
|
|
- { name: "{{ .Values.openlitespeed }}-vhosts-volume", mountPath: {{ .Values.olsPodVhostsPath }} }
|
|
- { name: "{{ .Values.openlitespeed }}-private-volume", mountPath: {{ .Values.olsPodPrivatePath }}, readOnly: true }
|
|
- { name: "{{ .Values.openlitespeed }}-public-volume", mountPath: {{ .Values.olsPodPublicPath }}, readOnly: true }
|
|
- { name: "{{ .Values.openlitespeed }}-config-volume", mountPath: /usr/local/lsws/conf }
|
|
- { name: "{{ .Values.openlitespeed }}-admin-volume", mountPath: /usr/local/lsws/admin/conf }
|
|
- { name: "{{ .Values.openlitespeed }}-phpini-volume", mountPath: /etc/ols-php-ini }
|
|
- { name: "{{ .Values.openlitespeed }}-logs-volume", mountPath: /usr/local/lsws/logs }
|
|
- { name: "{{ .Values.openlitespeed }}-cache-volume", mountPath: /usr/local/lsws/cachedata }
|
|
- { name: "{{ .Values.openlitespeed }}-tmp-volume", mountPath: /tmp/lshttpd }
|
|
volumes:
|
|
- name: "{{ .Values.openlitespeed }}-vhosts-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-vhosts-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-private-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-private-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-public-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-public-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-config-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-config-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-admin-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-admin-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-phpini-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-phpini-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-logs-volume"
|
|
persistentVolumeClaim: { claimName: "{{ .Values.openlitespeed }}-logs-pvc" }
|
|
- name: "{{ .Values.openlitespeed }}-cache-volume"
|
|
emptyDir: { sizeLimit: 100Gi }
|
|
- name: "{{ .Values.openlitespeed }}-tmp-volume"
|
|
emptyDir: { sizeLimit: 100Gi }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata: { name: "{{ .Values.openlitespeed }}", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
selector: { app: "{{ .Values.openlitespeed }}" }
|
|
ports:
|
|
- { name: http, protocol: TCP, port: 80, targetPort: 80 }
|
|
|
|
---
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata: { name: "{{ .Values.openlitespeed }}-ingress", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
ingressClassName: traefik
|
|
rules:
|
|
- http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service: { name: "{{ .Values.openlitespeed }}", port: { number: 80 } }
|
|
|
|
# -------------------------
|
|
# Admin panel
|
|
# -------------------------
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata: { name: "{{ .Values.openlitespeed }}-admin", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
selector: { app: "{{ .Values.openlitespeed }}" }
|
|
type: ClusterIP
|
|
ports:
|
|
- { name: admin, protocol: TCP, port: 7080, targetPort: 7080 }
|
|
|
|
---
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: MiddlewareTCP
|
|
metadata: { name: "{{ .Values.openlitespeed }}-admin-allowlist", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
ipAllowList: { sourceRange: [ {{ .Values.olsAdminWhiteList }} ] }
|
|
|
|
---
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: IngressRouteTCP
|
|
metadata: { name: "{{ .Values.openlitespeed }}-admin", namespace: "{{ .Values.namespace }}" }
|
|
spec:
|
|
entryPoints: [ "olsadmin" ]
|
|
routes:
|
|
- match: HostSNI(`*`)
|
|
middlewares:
|
|
- name: "{{ .Values.openlitespeed }}-admin-allowlist"
|
|
services:
|
|
- name: "{{ .Values.openlitespeed }}-admin"
|
|
port: 7080
|
|
tls:
|
|
passthrough: true
|
|
|
|
---
|
|
apiVersion: helm.cattle.io/v1
|
|
kind: HelmChartConfig
|
|
metadata: { name: traefik, namespace: kube-system }
|
|
spec:
|
|
valuesContent: |-
|
|
ports:
|
|
olsadmin:
|
|
port: 9443
|
|
expose:
|
|
default: true
|
|
exposedPort: 9443
|
|
protocol: TCP
|
|
additionalArguments:
|
|
- "--entryPoints.olsadmin.address=:9443/tcp"
|
|
|
|
{{- end }}
|