kind: StatefulSet apiVersion: apps/v1 metadata: name: zentao namespace: kube-public spec: replicas: 1 selector: matchLabels: app: zentao template: metadata: labels: app: zentao spec: containers: - name: zentao image: 'hub.zentao.net/app/zentao:latest' ports: - name: web containerPort: 80 protocol: TCP env: - name: ZT_MYSQL_HOST value: mysql-zentao - name: ZT_MYSQL_PORT value: '3306' - name: ZT_MYSQL_USER value: root - name: ZT_MYSQL_PASSWORD value: pass4Zentao - name: ZT_MYSQL_DB value: zentao - name: PHP_MAX_EXECUTION_TIME value: '300' - name: PHP_POST_MAX_SIZE value: 512M - name: PHP_UPLOAD_MAX_FILESIZE value: 512M resources: limits: cpu: '2' memory: 4Gi requests: cpu: 500m memory: 2Gi volumeMounts: - name: data mountPath: /data imagePullPolicy: IfNotPresent restartPolicy: Always terminationGracePeriodSeconds: 30 volumeClaimTemplates: - kind: PersistentVolumeClaim apiVersion: v1 metadata: name: data spec: accessModes: - ReadWriteMany resources: requests: storage: 100Gi volumeMode: Filesystem --- kind: Service apiVersion: v1 metadata: name: zentao namespace: kube-public labels: app: zentao spec: ports: - name: web protocol: TCP port: 80 targetPort: 80 selector: app: zentao type: NodePort --- kind: Ingress apiVersion: networking.k8s.io/v1 metadata: name: zentao namespace: kube-public annotations: nginx.ingress.kubernetes.io/proxy-body-size: 1024m nginx.ingress.kubernetes.io/proxy-connect-timeout: '300' nginx.ingress.kubernetes.io/proxy-read-timeout: '300' nginx.ingress.kubernetes.io/proxy-send-timeout: '300' nginx.ingress.kubernetes.io/ssl-redirect: 'false' spec: ingressClassName: nginx tls: - hosts: - zentao.uenpay.com secretName: uenpay.com rules: - host: zentao.uenpay.com http: paths: - path: / pathType: ImplementationSpecific backend: service: name: zentao port: number: 80