Files
devstar-create-from-template/modules/k8s/controller/application/templates/statefulset.yaml
2025-08-25 15:46:12 +08:00

86 lines
2.6 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{.ObjectMeta.Name}}
namespace: {{.ObjectMeta.Namespace}}
labels:
app: {{.ObjectMeta.Name}}
devstar.io/managed-by: devstar-application-operator
devstar-resource-type: devstar-application
spec:
serviceName: {{.ObjectMeta.Name}}-svc
replicas: {{.Spec.Replicas | default 1}}
selector:
matchLabels:
app: {{.ObjectMeta.Name}}
devstar-resource-type: devstar-application
template:
metadata:
labels:
app: {{.ObjectMeta.Name}}
devstar-resource-type: devstar-application
spec:
containers:
- name: {{.ObjectMeta.Name}}
image: {{.Spec.Template.Image}}
{{- if .Spec.Template.Command}}
command:
{{- range .Spec.Template.Command}}
- {{.}}
{{- end}}
{{- end}}
{{- if .Spec.Template.Args}}
args:
{{- range .Spec.Template.Args}}
- {{.}}
{{- end}}
{{- end}}
{{- if .Spec.Template.Ports}}
ports:
{{- range .Spec.Template.Ports}}
- name: {{.Name}}
containerPort: {{.Port}}
protocol: {{.Protocol | default "TCP"}}
{{- end}}
{{- end}}
{{- if .Spec.Environment}}
env:
{{- range $key, $value := .Spec.Environment}}
- name: {{$key}}
value: "{{$value}}"
{{- end}}
{{- end}}
{{- if or .Spec.Resources.CPU .Spec.Resources.Memory}}
resources:
limits:
{{- if .Spec.Resources.CPU}}
cpu: {{.Spec.Resources.CPU}}
{{- end}}
{{- if .Spec.Resources.Memory}}
memory: {{.Spec.Resources.Memory}}
{{- end}}
requests:
{{- if .Spec.Resources.CPU}}
cpu: {{.Spec.Resources.CPU}}
{{- end}}
{{- if .Spec.Resources.Memory}}
memory: {{.Spec.Resources.Memory}}
{{- end}}
{{- end}}
{{- if .Spec.Template.HealthCheck}}
{{- if .Spec.Template.HealthCheck.HTTPGet}}
livenessProbe:
httpGet:
path: {{.Spec.Template.HealthCheck.HTTPGet.Path}}
port: {{.Spec.Template.HealthCheck.HTTPGet.Port}}
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: {{.Spec.Template.HealthCheck.HTTPGet.Path}}
port: {{.Spec.Template.HealthCheck.HTTPGet.Port}}
initialDelaySeconds: 5
periodSeconds: 10
{{- end}}
{{- end}}
# 如果需要持久化存储,可以在这里添加 volumeClaimTemplates