first-commit
This commit is contained in:
88
modules/k8s/controller/application/templates/service.yaml
Normal file
88
modules/k8s/controller/application/templates/service.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{.ObjectMeta.Name}}-svc
|
||||
namespace: {{.ObjectMeta.Namespace}}
|
||||
labels:
|
||||
app: {{.ObjectMeta.Name}}
|
||||
devstar-resource-type: devstar-application
|
||||
app.kubernetes.io/name: {{.ObjectMeta.Name}}
|
||||
app.kubernetes.io/managed-by: devstar-operator
|
||||
{{- if .Spec.Service}}
|
||||
{{- if .Spec.Service.Labels}}
|
||||
{{- range $key, $value := .Spec.Service.Labels}}
|
||||
{{$key}}: "{{$value}}"
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- if .Spec.Service}}
|
||||
{{- if .Spec.Service.Annotations}}
|
||||
annotations:
|
||||
{{- range $key, $value := .Spec.Service.Annotations}}
|
||||
{{$key}}: "{{$value}}"
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
spec:
|
||||
selector:
|
||||
app: {{.ObjectMeta.Name}}
|
||||
devstar-resource-type: devstar-application
|
||||
type: {{if .Spec.Service}}{{.Spec.Service.Type | default "ClusterIP"}}{{else}}ClusterIP{{end}}
|
||||
|
||||
{{- if and .Spec.Service .Spec.Service.LoadBalancerIP}}
|
||||
loadBalancerIP: {{.Spec.Service.LoadBalancerIP}}
|
||||
{{- end}}
|
||||
|
||||
{{- if and .Spec.Service .Spec.Service.LoadBalancerSourceRanges}}
|
||||
loadBalancerSourceRanges:
|
||||
{{- range .Spec.Service.LoadBalancerSourceRanges}}
|
||||
- {{.}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
|
||||
{{- if and .Spec.Service .Spec.Service.ExternalName}}
|
||||
externalName: {{.Spec.Service.ExternalName}}
|
||||
{{- end}}
|
||||
|
||||
{{- if and .Spec.Service .Spec.Service.SessionAffinity}}
|
||||
sessionAffinity: {{.Spec.Service.SessionAffinity}}
|
||||
{{- else}}
|
||||
sessionAffinity: None
|
||||
{{- end}}
|
||||
|
||||
{{- if and .Spec.Service (eq .Spec.Service.Type "ExternalName")}}
|
||||
# ExternalName 类型不需要 ports 和 selector
|
||||
{{- else}}
|
||||
ports:
|
||||
{{- if and .Spec.Service .Spec.Service.Ports}}
|
||||
# 使用自定义端口配置
|
||||
{{- range .Spec.Service.Ports}}
|
||||
- name: {{.Name}}
|
||||
protocol: {{.Protocol | default "TCP"}}
|
||||
port: {{.Port}}
|
||||
{{- if .TargetPort}}
|
||||
targetPort: {{.TargetPort}}
|
||||
{{- else}}
|
||||
targetPort: {{.Port}}
|
||||
{{- end}}
|
||||
{{- if and (or (eq $.Spec.Service.Type "NodePort") (eq $.Spec.Service.Type "LoadBalancer")) .NodePort}}
|
||||
nodePort: {{.NodePort}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- else}}
|
||||
# 使用模板中的端口配置
|
||||
{{- range .Spec.Template.Ports}}
|
||||
- name: {{.Name | default (printf "port-%d" .Port)}}
|
||||
protocol: {{.Protocol | default "TCP"}}
|
||||
port: {{.Port}}
|
||||
targetPort: {{.Port}}
|
||||
{{- if and $.Spec.Service (or (eq $.Spec.Service.Type "NodePort") (eq $.Spec.Service.Type "LoadBalancer"))}}
|
||||
{{- if $.Spec.Service.NodePorts}}
|
||||
{{- if index $.Spec.Service.NodePorts .Name}}
|
||||
nodePort: {{index $.Spec.Service.NodePorts .Name}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
Reference in New Issue
Block a user